單片機多機通信網(wǎng)絡(luò )改進(jìn)及數據通信容錯技術(shù)
半雙工通信:采用一對平衡差分信號線(xiàn),R 為T(mén)TL/CMOS 接收端;RE 為其使能端,低電平有效. D 為T(mén)TL/CMOS 的發(fā)送端,DE為其使能端,高電平有效. A 、B 為一對平衡線(xiàn),RS485 通過(guò)它來(lái)接收和發(fā)送信號. 每個(gè)端口的RS485 收發(fā)器的接收使能端接低電平,保證端RS485 總線(xiàn)上的數據都能通過(guò)RS485 的接收驅動(dòng)器,送到每個(gè)終端的微處理器的串行輸入口;RS485 收發(fā)器的發(fā)送使能端由每個(gè)終端的并行口控制,每個(gè)終端在需要發(fā)送數據時(shí),才使發(fā)送使能拉高,將數據通過(guò)RS485 的發(fā)送驅動(dòng)器,送到RS485總線(xiàn)上,如圖4 所示.

圖4 基于RS - 485 總線(xiàn)的單片機多機通信原理圖
RS485 實(shí)現全雙工通信:采用兩對平衡差分信號線(xiàn), R 為T(mén)TL/CMOS 接收端;RE為其使能端,低電平有效. D 為T(mén)TL/CMOS的發(fā)送端,DE 為其使能端,高電平有效. A 、B 為一對平衡線(xiàn),RS485 通過(guò)它來(lái)接收和發(fā)送信號. 總線(xiàn)采用RS - 485 模式,用MAX88 完成收發(fā)功能. 如距離較遠時(shí),在中途進(jìn)行接收并放大.多機通信網(wǎng)絡(luò )電路如圖5 所示.

圖5 基于RS - 485 總線(xiàn)的單片機多機通信原理圖
多機競爭總線(xiàn)的問(wèn)題:在通信系統中,有多個(gè)單片機同時(shí)要求通信時(shí),就出現多主爭用總線(xiàn)問(wèn)題. 解決的方法:
1) 通信過(guò)程中,設有啟始和結束標志符,如果通信正在進(jìn)行,除正在通信的結點(diǎn)外,其它所有的結點(diǎn)置為從機狀態(tài);
2) 在測量總線(xiàn)是空狀態(tài)之后,才允許請求通信的機器由從機狀態(tài)升為主機狀態(tài);
3) 聯(lián)絡(luò )從機過(guò)程中,五次不成,就退出本次通信. 避免無(wú)效通信占用過(guò)長(cháng)的時(shí)間,影響通信質(zhì)量.
3 容錯技術(shù)
在單片機組成的嵌入式控制系統中,利用單片機的串行口,可實(shí)現單機對單機的通信、或者實(shí)現一個(gè)主機與多臺從機的通信,利用MODEN 實(shí)現遠距離的信息傳輸. 基于RS485 總線(xiàn)可實(shí)現網(wǎng)絡(luò )化自由通信. 但單片機多用在工業(yè)控制現場(chǎng),其通信受到各種各樣的干擾信號的干擾,由于單片機的內存及操作系統不允許裝載復雜的通信容錯程序. 針對單片機通信的特點(diǎn),介紹一種簡(jiǎn)單可行的差錯糾錯的編碼方法:
單片機串行通信以8 位數據或九位,一個(gè)啟始位,一個(gè)停止位的通信模型. 通信數據量不會(huì )太大等特點(diǎn). 采用混合糾錯檢錯的方法. 首先采用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時(shí),傳送沒(méi)有錯. G2 G1 G0 的值就指明7 位編碼中第i 位傳錯,對該位求反,即可完成糾錯. (7 ,4) 校驗碼的格式,見(jiàn)表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 .
單片機在發(fā)送數據前,先按漢明編碼格式,把要發(fā)送的數據變成漢明碼,即8 位編碼中,有4 位數據. 所以一個(gè)字節有效數據分成低4 位、高4 位,然后編成漢明碼后,發(fā)送到縮機. 接收機收到數據后,對數據進(jìn)行差錯和糾錯. 即首先計算出G2 G1 G0 檢錯信息字的值,由信息檢錯字知道那一位出錯,對該位求反,即可完全糾錯. 錯位與信息字G2 G1 G0 的關(guān)系見(jiàn)表2.
B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 |
D3 | D2 | D1 | P2 | D0 | P1 | P0 |
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 |
漢明校驗碼可以查出信息中的一位錯,并能知道是那位錯,可以糾正. 如果兩位出錯,僅靠漢明碼不能進(jìn)行差錯和糾錯. 利用第八位作為奇偶驗位,可以查出兩位錯,但不能糾錯.
對單片機通信結點(diǎn)進(jìn)行改進(jìn),適合快速通信的RS - 485 網(wǎng)絡(luò )技術(shù). 并用漢明校驗碼使單片機數據通信具有容錯功能,提高單片機通信數據傳輸速率,減少誤碼率. 使單片機有望成為各種網(wǎng)絡(luò )的普通的網(wǎng)絡(luò )結點(diǎn).
單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
雙控開(kāi)關(guān)相關(guān)文章:雙控開(kāi)關(guān)原理
評論