單片機構成的多機通信系統中常采用總線型主從式結構。在多個單片機組成的系統中,只允許存在一個主機,其他的就是從機,從機要服從主機的控制,這就是總線型主從式結構。
當51單片機進行多機通信時,串口要工作在方式2和方式3。假設當前多機通信系統有1個主機和3個從機,從機地址分別是00H、01H、02H。如果距離很近它們直接可以以TTL電平通信,一旦距離較遠的時候,常采用RS-485串行標準總線進行數據傳輸。
為了區分是數據信息還是地址信息,主機用第九位數據TB8作為地址/數據的識別位,地址幀的TB8=1,數據幀的TB8=0。各從機的SM2必須置1。
在主機與某一從機通信前,先將該從機的地址發送給各從機。由于各從機SM2=1,接收到的地址幀RB8=1,所以各從機的接收信息都有效,送入各自的接收緩沖器SBUF,并置RI=1。各從機CPU響應中斷后,通過軟件判斷主機送來的是不是本從機地址,如是本從機地址,就使SM2=0,否則保持SM2=1。
接著主機發送數據幀,因數據幀的第九位數據RB8=0,只有地址相符的從機其SM2=0,才能將8位數據裝入接收緩沖區SBUF,其他從機因SM2=1,數據將丟失,從而實現主機與從機的一對一通信。
串口工作方式2、3也可以用于多機通信,此時第九位數據可作為奇偶校驗位,但必須使SM2=0。
來源;21ic