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