單片機多機通信網(wǎng)絡(luò)改進及數(shù)據(jù)通信容錯技術(shù)
在目前單片機組成的嵌入式控制系統(tǒng)中,所謂的多機通信是指上位機與下位機之間的主從模式的通信,一個單片機系統(tǒng)為主機, n 個應(yīng)用系統(tǒng)為從機,從機之間不能進行通信. 目前單片機通信存在通信網(wǎng)絡(luò)模式簡單,數(shù)據(jù)的通信速率低,沒有容錯技術(shù)等缺點.
MCS-51 單片機串行接口SBUF ,由SCON 控制為用于多機通信的工作方式2 ,3. 當SM2 = 1 ,出現(xiàn)兩種情況:接收到第9 位數(shù)據(jù)為1 時,數(shù)據(jù)才裝入SBUF ,并置RI = 1 ,向CPU 發(fā)出中斷請求;如果接收到第9 位數(shù)據(jù)為0 時,則不發(fā)生中斷,信息被丟失. 若SM2 = 0 ,則接收到的第9 位數(shù)據(jù)無論是0 還是1 ,都產(chǎn)生RI = 1 中斷標志,接收到的數(shù)據(jù)裝入SBUF 中. 多機通信過程安排如下:
1) 使所有的從機SM2 = 1 ,處于接收地址狀態(tài);
2) 主機發(fā)一幀地址信息,從機接收到地址幀后,將與本從機的地址進行比較. 是本機,使SM2 = 0 ,地址不符合的從機,保持SM2 = 1 ,退出本次通信;
3) 主機發(fā)送的數(shù)據(jù)或命令,以第九位為0 表示. 主從模式的多機通信的拓撲結(jié)構(gòu),主機的RXD 與所有從機的TXD 端相連,而主機的TXD 與所有的從機的RXD 端連接,如圖1 所示.
圖1 主從多機通信拓撲結(jié)構(gòu)
1 網(wǎng)絡(luò)結(jié)構(gòu)的改進
主從模式的多機通信在拓撲結(jié)構(gòu)中,主機只有一個且固定不變,從機是多個,它們之間不能通信.在新的多機通信網(wǎng)絡(luò)中,沒有真正的主機和從機之分,所有的結(jié)點都是平權(quán)的. 總線也是兩條,一根作為主機發(fā)送信息,從機接收;另一根是從機發(fā)送信息,主機接收. 每一個結(jié)點的機器既是從機,又是潛在的主機. 非主動通信狀態(tài)時,為從機狀態(tài). 需要通信時,改變連線的接法,并使自己變?yōu)橹鳈C狀態(tài). 主機狀態(tài):它的TXD 端與所有從機的RXD 連接,它的RXD 與所有從機的TXD 連接,以便發(fā)送從機地址,與從機建立通信聯(lián)系,完成交流信息的目的. 本次通信完畢后,自動降為從機狀態(tài),并且線路的連接方式也變成從機連接. 從機狀態(tài):它的TXD 與所有從機的TXD 連載一條總線上,連接到主機的RXD 端,它的RXD 連接到主機的TXD.其拓撲結(jié)構(gòu)如圖2 所示.
圖2 多機串行通信拓撲結(jié)構(gòu)
說明:1) 任一個結(jié)點機器,不主動通信時,處于從機狀態(tài),要求通信時,躍遷為主機狀態(tài). 行使主機通信形式和權(quán)利;
2) 結(jié)點機器的TXD ,RXD 與總線的連接有兩種方式:主機連接、從機連接. 由機器的狀態(tài)來決定,也就是說,連接方式與機器的狀態(tài)相適應(yīng),受機器狀態(tài)的控制.
邏輯電路接口式連接:用三態(tài)門74HC126. 非門用74HC04 實現(xiàn)連接轉(zhuǎn)換功能. 用P1. 0 控制三態(tài)門,當P1. 0 = 0 時,其TXD 接主機的RXD ,它的RXD 接主機的TXD ,結(jié)點成為從機狀態(tài);當P1. 0 = 1 時,其TXD 連接所有從機的RXD ,它的RXD 連接所有從機TXD ,該結(jié)點成為主機狀態(tài). 連接變換電路圖如圖3 所示.
圖3 由三態(tài)門構(gòu)成多機串行通信智能連接電路
多機通信協(xié)議: 1) 在初始化或復(fù)位時,每個結(jié)點都使P1. 0 = 0 ,SM2 = 1 ,處于只接收地址幀(串行幀的第9 位為1) ,對數(shù)據(jù)幀(串行口的第9 位為0) 則不做響應(yīng)的從機狀態(tài).
2) 需要通信的結(jié)點機器,檢測到總線空時,置SM2 = 0 ,P1. 0 = 1 ,躍遷為主機狀態(tài),發(fā)送一個地址幀,其中含8 位地址數(shù)據(jù),第9 位為標志位.
3) 當從機接收到主機發(fā)來的地址幀后,將所接收的地址與本機地址相比較,若地址與本機地址相符,便使SM2 = 0 ,以便接收主機后發(fā)來的數(shù)據(jù)P命令,對于地址不相符合的從機,仍保持SM2 = 1 狀態(tài),故不能接收主機隨后發(fā)來的數(shù)據(jù)信息.
4) 主機發(fā)送數(shù)據(jù)或控制指令,其數(shù)據(jù)幀第9 位置0 ,表示發(fā)送的是數(shù)據(jù).
5) 當主機改為與另外從機聯(lián)系時,可再發(fā)出地址幀來尋找其它從機. 而先前被尋址過的從機在分析出主機是對其它從機尋址時,恢復(fù)其SM2 = 1 ,等待主機的再一次尋址. 主機也可以通過發(fā)送一個復(fù)位指令,使所有從機處于等待尋址狀態(tài).
6) 通信結(jié)束后,置P1. 0 為0 ,SM2 位為1 ,退回到從機狀態(tài).
2 RS485 總線改善信道
RS485 串行接口和傳統(tǒng)的RS232 串行接口相比有以下特點:RS485 的電氣特性:邏輯“1”以兩線間的電壓差為+ 2~ + 6 V 表示,邏輯“0”以兩線間的電壓差為- 2~ - 6 V 表示. 接口信號電平比RS232C 低. 不易損壞接口電路的芯片,且該電平信號與TTL電平兼容,可方便的TTL 電路連接. RS485 的數(shù)據(jù)最高傳輸速率為10Mbps. RS485 接口是采用平衡驅(qū)動器、差分接收器的組合,抗共模干擾能力強,即抗噪聲干擾性好.RS485 接口的最大傳輸距離為1219.5 m(標準值) ,實際上可達3000 m. RS485 接口在總線上允許連接多達128 個接收器,即具有多站能力,這樣用戶利用單一的RS485 接口方便的建立起設(shè)備網(wǎng)絡(luò). 因RS485 接口具有上述優(yōu)點,使其得到廣泛的應(yīng)用.
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
數(shù)字通信相關(guān)文章:數(shù)字通信原理
通信相關(guān)文章:通信原理
雙控開關(guān)相關(guān)文章:雙控開關(guān)原理
評論