歡迎您光臨本站 登入註冊首頁

概述

   在目前單片機組成的嵌入式控制系統中,所謂的多機通信是指上位機與下位機之間的主從模式的通信,一個單片機系統為主機,n個應用系統為從機,從機之間不能進行通信.目前單片機……

    在目前單片機組成的嵌入式控制系統中,所謂的多機通信是指上位機與下位機之間的主從模式的通信,一個單片機系統為主機, n 個應用系統為從機,從機之間不能進行通信. 目前單片機通信存在通信網路模式簡單,數據的通信速率低,沒有容錯技術等缺點.
    MCS-51 單片機串列介面SBUF ,由SCON 控制為用於多機通信的工作方式2 ,3. 當SM2 = 1 ,出現兩種情況:接收到第9 位數據為1 時,數據才裝入SBUF ,並置RI = 1 ,向CPU 發出中斷請求;如果接收到第9 位數據為0 時,則不發生中斷,信息被丟失. 若SM2 = 0 ,則接收到的第9 位數據無論是0 還是1 ,都產生RI = 1 中斷標誌,接收到的數據裝入SBUF 中. 多機通信過程安排如下:
1) 使所有的從機SM2 = 1 ,處於接收地址狀態;
2) 主機發一幀地址信息,從機接收到地址幀后,將與本從機的地址進行比較. 是本機,使SM2 = 0 ,地址不符合的從機,保持SM2 = 1 ,退出本次通信;
3) 主機發送的數據或命令,以第九位為0 表示. 主從模式的多機通信的拓撲結構,主機的RXD 與所有從機的TXD 端相連,而主機的TXD 與所有的從機的RXD 端連接,如圖1 所示.
 
圖1  主從多機通信拓撲結構

1  網路結構的改進
    主從模式的多機通信在拓撲結構中,主機只有一個且固定不變,從機是多個,它們之間不能通信.在新的多機通信網路中,沒有真正的主機和從機之分,所有的結點都是平權的. 匯流排也是兩條,一根作為主機發送信息,從機接收;另一根是從機發送信息,主機接收. 每一個結點的機器既是從機,又是潛在的主機. 非主動通信狀態時,為從機狀態. 需要通信時,改變連線的接法,並使自己變為主機狀態. 主機狀態:它的TXD 端與所有從機的RXD 連接,它的RXD 與所有從機的TXD 連接,以便發送從機地址,與從機建立通信聯繫,完成交流信息的目的. 本次通信完畢后,自動降為從機狀態,並且線路的連接方式也變成從機連接. 從機狀態:它的TXD 與所有從機的TXD 連載一條匯流排上,連接到主機的RXD 端,它的RXD 連接到主機的TXD.其拓撲結構如圖2 所示.
 
圖2  多機串列通信拓撲結構
說明:1) 任一個結點機器,不主動通信時,處於從機狀態,要求通信時,躍遷為主機狀態. 行使主機通信形式和權利;
2) 結點機器的TXD ,RXD 與匯流排的連接有兩種方式:主機連接、從機連接. 由機器的狀態來決定,也就是說,連接方式與機器的狀態相適應,受機器狀態的控制.
    邏輯電路介面式連接:用三態門74HC126. 非門用74HC04 實現連接轉換功能. 用P1. 0 控制三態門,當P1. 0 = 0 時,其TXD 接主機的RXD ,它的RXD 接主機的TXD ,結點成為從機狀態;當P1. 0 = 1 時,其TXD 連接所有從機的RXD ,它的RXD 連接所有從機TXD ,該結點成為主機狀態. 連接變換電路圖如圖3 所示.
 
圖3  由三態門構成多機串列通信智能連接電路
多機通信協議: 1) 在初始化或複位時,每個結點都使P1. 0 = 0 ,SM2 = 1 ,處於只接收地址幀(串列幀的第9 位為1) ,對數據幀(串列口的第9 位為0) 則不做響應的從機狀態.
2) 需要通信的結點機器,檢測到匯流排空時,置SM2 = 0 ,P1. 0 = 1 ,躍遷為主機狀態,發送一個地址幀,其中含8 位地址數據,第9 位為標誌位.
3) 當從機接收到主機發來的地址幀后,將所接收的地址與本機地址相比較,若地址與本機地址相符,便使SM2 = 0 ,以便接收主機后發來的數據P命令,對於地址不相符合的從機,仍保持SM2 = 1 狀態,故不能接收主機隨後發來的數據信息.
4) 主機發送數據或控制指令,其數據幀第9 位置0 ,表示發送的是數據.
5) 當主機改為與另外從機聯繫時,可再發出地址幀來尋找其它從機. 而先前被定址過的從機在分析出主機是對其它從機定址時,恢復其SM2 = 1 ,等待主機的再一次定址. 主機也可以通過發送一個複位指令,使所有從機處於等待定址狀態.
6) 通信結束后,置P1. 0 為0 ,SM2 位為1 ,退回到從機狀態.

2  RS485 匯流排改善通道
    RS485 串列介面和傳統的RS232 串列介面相比有以下特點:RS485 的電氣特性:邏輯“1”以兩線間的電壓差為+ 2~ + 6 V 表示,邏輯“0”以兩線間的電壓差為- 2~ - 6 V 表示. 介面信號電平比RS232C 低. 不易損壞介面電路的晶元,且該電平信號與TTL電平兼容,可方便的TTL 電路連接. RS485 的數據最高傳輸速率為10Mbps. RS485 介面是採用平衡驅動器、差分接收器的組合,抗共模干擾能力強,即抗雜訊干擾性好.RS485 介面的最大傳輸距離為1219.5 m(標準值) ,實際上可達3000 m. RS485 介面在匯流排上允許連接多達128 個接收器,即具有多站能力,這樣用戶利用單一的RS485 介面方便的建立起設備網路. 因RS485 介面具有上述優點,使其得到廣泛的應用.
    半雙工通信:採用一對平衡差分信號線,R 為TTL/CMOS 接收端;RE 為其使能端,低電平有效. D 為TTL/CMOS 的發送端,DE為其使能端,高電平有效. A 、B 為一對平衡線,RS485 通過它來接收和發送信號. 每個埠的RS485 收發器的接收使能端接低電平,保證端RS485 匯流排上的數據都能通過RS485 的接收驅動器,送到每個終端的微處理器的串列輸入口;RS485 收發器的發送使能端由每個終端的并行口控制,每個終端在需要發送數據時,才使發送使能拉高,將數據通過RS485 的發送驅動器,送到RS485匯流排上,如圖4 所示.
 
圖4  基於RS - 485 匯流排的單片機多機通信原理圖
 RS485 實現全雙工通信:採用兩對平衡差分信號線, R 為TTL/CMOS 接收端;RE為其使能端,低電平有效. D 為TTL/CMOS的發送端,DE 為其使能端,高電平有效. A 、B 為一對平衡線,RS485 通過它來接收和發送信號. 匯流排採用RS - 485 模式,用MAX88 完成收發功能. 如距離較遠時,在中途進行接收並放大.多機通信網路電路如圖5 所示.
 
圖5  基於RS - 485 匯流排的單片機多機通信原理圖
    多機競爭匯流排的問題:在通信系統中,有多個單片機同時要求通信時,就出現多主爭用匯流排問題. 解決的方法:
1) 通信過程中,設有啟始和結束標誌符,如果通信正在進行,除正在通信的結點外,其它所有的結點置為從機狀態;
2) 在測量匯流排是空狀態之後,才允許請求通信的機器由從機狀態升為主機狀態;
3) 聯絡從機過程中,五次不成,就退出本次通信. 避免無效通信佔用過長的時間,影響通信質量.

3  容錯技術
    在單片機組成的嵌入式控制系統中,利用單片機的串列口,可實現單機對單機的通信、或者實現一個主機與多台從機的通信,利用MODEN 實現遠距離的信息傳輸. 基於RS485 匯流排可實現網路化自由通信. 但單片機多用在工業控制現場,其通信受到各種各樣的干擾信號的干擾,由於單片機的內存及操作系統不允許裝載複雜的通信容錯程序. 針對單片機通信的特點,介紹一種簡單可行的差錯糾錯的編碼方法:
    單片機串列通信以8 位數據或九位,一個啟始位,一個停止位的通信模型. 通信數據量不會太大等特點. 採用混合糾錯檢錯的方法. 首先採用Hamming(7 ,4) 模型編碼. 即在7 位編碼中,其中4 位是有效數據,3 位是冗餘校驗碼. 設D3 D2 D1 D0 是4 位有效數據, P2 P1 P0 是3 位校驗碼,將D3 D2 D1 D0 分成三組, P2 , P1 , P0 分別是3 組的校驗位, G2 G1 G0 為檢錯信息,當G2 G1 G0 = 000時,傳送沒有錯. G2 G1 G0 的值就指明7 位編碼中第i 位傳錯,對該位求反,即可完成糾錯. (7 ,4) 校驗碼的格式,見表1 :
D3 D2 D1 P2 D0 P1 P0 . 7 位(7 ,4) D3 D2 D1 P2 D0 P1 P0 校驗碼分成三組:
第一組:檢錯信息G0 ,含有: D3 、D1 、D0 、P0 ,其中: P0 = D3⊕D1⊕D0 , G0 = P0⊕D3⊕D1⊕D0 .
第二組:檢錯信息G1 ,含有: D3 、D2 、D0 、P1 ,其中: P1 = D3⊕D2⊕D0 , G1 = P1⊕D3⊕D2⊕D0 .
第三組:檢錯信息G2 ,含有: D3 、D2 、D1 、P2 ,其中: P2 = D3⊕D2⊕D1 , G2 = P2⊕D3⊕D2⊕D1 .
 單片機在發送數據前,先按漢明編碼格式,把要發送的數據變成漢明碼,即8 位編碼中,有4 位數據. 所以一個位元組有效數據分成低4 位、高4 位,然後編成漢明碼后,發送到縮機. 接收機收到數據后,對數據進行差錯和糾錯. 即首先計算出G2 G1 G0 檢錯信息字的值,由信息檢錯字知道那一位出錯,對該位求反,即可完全糾錯. 錯位與信息字G2 G1 G0 的關係見表2.

表1
B7 B6 B5 B4 B3 B2 B1 B0
  D3 D2 D1 P2 D0 P1 P0
    
 
表2  糾錯信息
G2 G1 G0 出錯位  求反糾錯
000  正確  
001 P0  -P0
010 P1 -P1
011 D0 -D0
100 P2 -P2
101 D1 -D1
110 D2 -D2
111 D3 -D3
     
    漢明校驗碼可以查出信息中的一位錯,並能知道是那位錯,可以糾正. 如果兩位出錯,僅靠漢明碼不能進行差錯和糾錯. 利用第八位作為奇偶驗位,可以查出兩位錯,但不能糾錯.
    對單片機通信結點進行改進,適合快速通信的RS - 485 網路技術. 並用漢明校驗碼使單片機數據通信具有容錯功能,提高單片機通信數據傳輸速率,減少誤碼率. 使單片機有望成為各種網路的普通的網路結點.


[admin via 研發互助社區 ] 單片機多機通信網路改進及數據通信容錯技術已經有2364次圍觀

http://cocdig.com/docs/show-post-42320.html