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