新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)多機(jī)通信網(wǎng)絡(luò)改進(jìn)及數(shù)據(jù)通信容錯(cuò)技術(shù)

        單片機(jī)多機(jī)通信網(wǎng)絡(luò)改進(jìn)及數(shù)據(jù)通信容錯(cuò)技術(shù)

        作者: 時(shí)間:2012-10-16 來源:網(wǎng)絡(luò) 收藏

        半雙工通信:采用一對(duì)平衡差分信號(hào)線,R 為TTL/CMOS 接收端;RE 為其使能端,低電平有效. D 為TTL/CMOS 的發(fā)送端,DE為其使能端,高電平有效. A 、B 為一對(duì)平衡線,RS485 通過它來接收和發(fā)送信號(hào). 每個(gè)端口的RS485 收發(fā)器的接收使能端接低電平,保證端RS485 總線上的數(shù)據(jù)都能通過RS485 的接收驅(qū)動(dòng)器,送到每個(gè)終端的微處理器的串行輸入口;RS485 收發(fā)器的發(fā)送使能端由每個(gè)終端的并行口控制,每個(gè)終端在需要發(fā)送數(shù)據(jù)時(shí),才使發(fā)送使能拉高,將數(shù)據(jù)通過RS485 的發(fā)送驅(qū)動(dòng)器,送到RS485總線上,如圖4 所示.
        單片機(jī)多機(jī)通信網(wǎng)絡(luò)改進(jìn)及數(shù)據(jù)通信容錯(cuò)技術(shù)
        圖4  基于RS - 485 總線的多機(jī)通信原理圖
         RS485 實(shí)現(xiàn)全雙工通信:采用兩對(duì)平衡差分信號(hào)線, R 為TTL/CMOS 接收端;RE為其使能端,低電平有效. D 為TTL/CMOS的發(fā)送端,DE 為其使能端,高電平有效. A 、B 為一對(duì)平衡線,RS485 通過它來接收和發(fā)送信號(hào). 總線采用RS - 485 模式,用MAX88 完成收發(fā)功能. 如距離較遠(yuǎn)時(shí),在中途進(jìn)行接收并放大.電路如圖5 所示.
        單片機(jī)多機(jī)通信網(wǎng)絡(luò)改進(jìn)及數(shù)據(jù)通信容錯(cuò)技術(shù)
        圖5  基于RS - 485 總線的多機(jī)通信原理圖
        多機(jī)競爭總線的問題:在通信系統(tǒng)中,有多個(gè)同時(shí)要求通信時(shí),就出現(xiàn)多主爭用總線問題. 解決的方法:
        1) 通信過程中,設(shè)有啟始和結(jié)束標(biāo)志符,如果通信正在進(jìn)行,除正在通信的結(jié)點(diǎn)外,其它所有的結(jié)點(diǎn)置為從機(jī)狀態(tài);
        2) 在測量總線是空狀態(tài)之后,才允許請(qǐng)求通信的機(jī)器由從機(jī)狀態(tài)升為主機(jī)狀態(tài);
        3) 聯(lián)絡(luò)從機(jī)過程中,五次不成,就退出本次通信. 避免無效通信占用過長的時(shí)間,影響通信質(zhì)量.

        3  
        在單片機(jī)組成的嵌入式控制系統(tǒng)中,利用單片機(jī)的串行口,可實(shí)現(xiàn)單機(jī)對(duì)單機(jī)的通信、或者實(shí)現(xiàn)一個(gè)主機(jī)與多臺(tái)從機(jī)的通信,利用MODEN 實(shí)現(xiàn)遠(yuǎn)距離的信息傳輸. 基于RS485 總線可實(shí)現(xiàn)網(wǎng)絡(luò)化自由通信. 但單片機(jī)多用在工業(yè)控制現(xiàn)場,其通信受到各種各樣的干擾信號(hào)的干擾,由于單片機(jī)的內(nèi)存及操作系統(tǒng)不允許裝載復(fù)雜的通信容錯(cuò)程序. 針對(duì)單片機(jī)通信的特點(diǎn),介紹一種簡單可行的差錯(cuò)糾錯(cuò)的編碼方法:
        單片機(jī)串行通信以8 位數(shù)據(jù)或九位,一個(gè)啟始位,一個(gè)停止位的通信模型. 通信數(shù)據(jù)量不會(huì)太大等特點(diǎn). 采用混合糾錯(cuò)檢錯(cuò)的方法. 首先采用Hamming(7 ,4) 模型編碼. 即在7 位編碼中,其中4 位是有效數(shù)據(jù),3 位是冗余校驗(yàn)碼. 設(shè)D3 D2 D1 D0 是4 位有效數(shù)據(jù), P2 P1 P0 是3 位校驗(yàn)碼,將D3 D2 D1 D0 分成三組, P2 , P1 , P0 分別是3 組的校驗(yàn)位, G2 G1 G0 為檢錯(cuò)信息,當(dāng)G2 G1 G0 = 000時(shí),傳送沒有錯(cuò). G2 G1 G0 的值就指明7 位編碼中第i 位傳錯(cuò),對(duì)該位求反,即可完成糾錯(cuò). (7 ,4) 校驗(yàn)碼的格式,見表1 :
        D3 D2 D1 P2 D0 P1 P0 . 7 位(7 ,4) D3 D2 D1 P2 D0 P1 P0 校驗(yàn)碼分成三組:
        第一組:檢錯(cuò)信息G0 ,含有: D3 、D1 、D0 、P0 ,其中: P0 = D3⊕D1⊕D0 , G0 = P0⊕D3⊕D1⊕D0 .
        第二組:檢錯(cuò)信息G1 ,含有: D3 、D2 、D0 、P1 ,其中: P1 = D3⊕D2⊕D0 , G1 = P1⊕D3⊕D2⊕D0 .
        第三組:檢錯(cuò)信息G2 ,含有: D3 、D2 、D1 、P2 ,其中: P2 = D3⊕D2⊕D1 , G2 = P2⊕D3⊕D2⊕D1 .
         單片機(jī)在發(fā)送數(shù)據(jù)前,先按漢明編碼格式,把要發(fā)送的數(shù)據(jù)變成漢明碼,即8 位編碼中,有4 位數(shù)據(jù). 所以一個(gè)字節(jié)有效數(shù)據(jù)分成低4 位、高4 位,然后編成漢明碼后,發(fā)送到縮機(jī). 接收機(jī)收到數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行差錯(cuò)和糾錯(cuò). 即首先計(jì)算出G2 G1 G0 檢錯(cuò)信息字的值,由信息檢錯(cuò)字知道那一位出錯(cuò),對(duì)該位求反,即可完全糾錯(cuò). 錯(cuò)位與信息字G2 G1 G0 的關(guān)系見表2.

        表1
        B7B6B5B4B3B2B1B0
        D3D2D1P2D0P1P0

        表2  糾錯(cuò)信息
        G2 G1 G0出錯(cuò)位求反糾錯(cuò)
        000正確
        001P0-P0
        010P1-P1
        011 D0-D0
        100P2-P2
        101D1-D1
        110D2-D2
        111D3-D3

        漢明校驗(yàn)碼可以查出信息中的一位錯(cuò),并能知道是那位錯(cuò),可以糾正. 如果兩位出錯(cuò),僅靠漢明碼不能進(jìn)行差錯(cuò)和糾錯(cuò). 利用第八位作為奇偶驗(yàn)位,可以查出兩位錯(cuò),但不能糾錯(cuò).
        對(duì)單片機(jī)通信結(jié)點(diǎn)進(jìn)行改進(jìn),適合快速通信的RS - 485 網(wǎng)絡(luò)技術(shù). 并用漢明校驗(yàn)碼使單片機(jī)具有容錯(cuò)功能,提高單片機(jī)通信數(shù)據(jù)傳輸速率,減少誤碼率. 使單片機(jī)有望成為各種網(wǎng)絡(luò)的普通的網(wǎng)絡(luò)結(jié)點(diǎn).

        單片機(jī)相關(guān)文章:單片機(jī)教程


        單片機(jī)相關(guān)文章:單片機(jī)視頻教程


        單片機(jī)相關(guān)文章:單片機(jī)工作原理


        數(shù)字通信相關(guān)文章:數(shù)字通信原理


        通信相關(guān)文章:通信原理


        雙控開關(guān)相關(guān)文章:雙控開關(guān)原理

        上一頁 1 2 下一頁

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 商河县| 塘沽区| 漠河县| 宁化县| 永善县| 关岭| 涟水县| 牟定县| 平武县| 天等县| 新泰市| 手游| 翁牛特旗| 吉隆县| 郎溪县| 彰化县| 泰和县| 荃湾区| 定远县| 温泉县| 东海县| 巴塘县| 温宿县| 广平县| 德惠市| 临颍县| 双桥区| 观塘区| 临西县| 任丘市| 大名县| 馆陶县| 阿克陶县| 和平区| 旅游| 仲巴县| 柳州市| 阿城市| 北京市| 梁河县| 东山县|