找回密碼
         注冊(cè)會(huì)員
        搜索附件  

        1253512699_1.jpg

         

        單片機(jī)RS-485多機(jī)通訊的實(shí)現(xiàn):
        摘 要 本文介紹一種能利用RS-485電氣特性和簡(jiǎn)單的結(jié)構(gòu)方式,采用自定義串行通信協(xié)議,實(shí)現(xiàn)單片機(jī)RS-485多機(jī)通訊的方法和技巧。  關(guān)鍵詞 單片機(jī),RS-485總線(xiàn),總線(xiàn)沖突,串行通信
          1 簡(jiǎn)介
          RS-485串行總線(xiàn)接口標(biāo)準(zhǔn)以差分平衡方式傳輸信號(hào),具有很強(qiáng)的抗共模干擾的能力,允許一對(duì)雙絞線(xiàn)上一個(gè)發(fā)送器驅(qū)動(dòng)多個(gè)負(fù)載設(shè)備。工業(yè)現(xiàn)場(chǎng)控制系統(tǒng)中一般都采用該總線(xiàn)標(biāo)準(zhǔn)進(jìn)行數(shù)據(jù)傳輸,而且一般采用RS-485串行總線(xiàn)接口標(biāo)準(zhǔn)的系統(tǒng)都使用8044芯片作為通信控制器或各分機(jī)的CPU。8044芯片內(nèi)部集成了SDLC,HDLC等通信協(xié)議,并且集成了相應(yīng)的硬件電路,通過(guò)硬件電路和標(biāo)準(zhǔn)協(xié)議的配合,使系統(tǒng)的通訊準(zhǔn)確、可靠、快速。8044在市場(chǎng)上日漸稀少,雖然有8344可替代,但幾百元的價(jià)位與普通單片機(jī)幾元至幾十元的價(jià)位相差甚遠(yuǎn),用戶(hù)在開(kāi)發(fā)一般的單片機(jī)應(yīng)用系統(tǒng)時(shí),都希望能用簡(jiǎn)單的電路和簡(jiǎn)單的通信協(xié)議完成數(shù)據(jù)交換。譬如:利用單片機(jī)本身所提供的簡(jiǎn)單串行接口,加上總線(xiàn)驅(qū)動(dòng)器如SN75176等組合成簡(jiǎn)單的RS-485通訊網(wǎng)絡(luò)。本文所述的方法已成功地應(yīng)用于工程項(xiàng)目,一臺(tái)主機(jī)與60臺(tái)從機(jī)通訊,通訊波特率達(dá)64KBPS。
          2 總線(xiàn)驅(qū)動(dòng)器芯片SN75176
          常用的RS-485總線(xiàn)驅(qū)動(dòng)芯片有SN75174,SN75175,SN75176。SN75176芯片有一個(gè)發(fā)送器和一個(gè)接收器,非常適合作為RS-485總線(xiàn)驅(qū)動(dòng)芯片。
          SN75176及其邏輯如圖1所示。
          

          圖1 SN75176芯片及其邏輯關(guān)系
          3 RS-485方式構(gòu)成的多機(jī)通信原理
          在由單片機(jī)構(gòu)成的多機(jī)串行通信系統(tǒng)中,一般采用主從式結(jié)構(gòu):從機(jī)不主動(dòng)發(fā)送命令或數(shù)據(jù),一切都由主機(jī)控制。并且在一個(gè)多機(jī)通信系統(tǒng)中,只有一臺(tái)單機(jī)作為主機(jī),各臺(tái)從機(jī)之間不能相互通訊,即使有信息交換也必須通過(guò)主機(jī)轉(zhuǎn)發(fā)。采用RS-485構(gòu)成的多機(jī)通訊原理框圖,如圖2所示。
          

          圖2 采用RS-485構(gòu)成的多機(jī)通訊原理框圖
          在總線(xiàn)末端接一個(gè)匹配電阻,吸收總線(xiàn)上的反射信號(hào),保證正常傳輸信號(hào)干凈、無(wú)毛刺。匹配電阻的取值應(yīng)該與總線(xiàn)的特性阻抗相當(dāng)。
          當(dāng)總線(xiàn)上沒(méi)有信號(hào)傳輸時(shí),總線(xiàn)處于懸浮狀態(tài),容易受干擾信號(hào)的影響。將總線(xiàn)上差分信號(hào)的正端A+和+5電源間接一個(gè)10K的電阻;正端A+和負(fù)端B-間接一個(gè)10K的電阻;負(fù)端B-和地間接一個(gè)10K的電阻,形成一個(gè)電阻網(wǎng)絡(luò)。當(dāng)總線(xiàn)上沒(méi)有信號(hào)傳輸時(shí),正端A+的電平大約為3.2V,負(fù)端B-的電平大約為1.6V,即使有干擾信號(hào),卻很難產(chǎn)生串行通信的起始信號(hào)0,從而增加了總線(xiàn)抗干擾的能力。
          4 通信規(guī)則
          由于RS-485通訊是一種半雙工通訊,發(fā)送和接收共用同一物理信道。在任意時(shí)刻只允許一臺(tái)單機(jī)處于發(fā)送狀態(tài)。因此要求應(yīng)答的單機(jī)必須在偵聽(tīng)到總線(xiàn)上呼叫信號(hào)已經(jīng)發(fā)送完畢,并且沒(méi)有其它單機(jī)發(fā)出應(yīng)答信號(hào)的情況下,才能應(yīng)答。半雙工通訊對(duì)主機(jī)和從機(jī)的發(fā)送和接收時(shí)序有嚴(yán)格的要求。如果在時(shí)序上配合不好,就會(huì)發(fā)生總線(xiàn)沖突,使整個(gè)系統(tǒng)的通訊癱瘓,無(wú)法正常工作。要做到總線(xiàn)上的設(shè)備在時(shí)序上的嚴(yán)格配合,必須要遵從以下幾項(xiàng)原則:
          1) 復(fù)位時(shí),主從機(jī)都應(yīng)該處于接收狀態(tài)。
          SN75176芯片的發(fā)送和接收功能轉(zhuǎn)換是由芯片的 RE* ,DE端控制的。RE*=1,DE=1時(shí),SN75176發(fā)送狀態(tài);RE*=0,DE=0時(shí),SN75176處于接收狀態(tài)。一般使用單片機(jī)的一根口線(xiàn)連接RE*,DE端。在上電復(fù)位時(shí),由于硬件電路穩(wěn)定需要一定的時(shí)間,并且單片機(jī)各端口復(fù)位后處于高電平狀態(tài),這樣就會(huì)使總線(xiàn)上各個(gè)分機(jī)處于發(fā)送狀態(tài),加上上電時(shí)各電路的不穩(wěn)定,可能向總線(xiàn)發(fā)送信息。因此,如果用一根口線(xiàn)作發(fā)送和接收控制信號(hào),應(yīng)該將口線(xiàn)反向后接入SN75176的控制端,使上電時(shí)SN75176處于接收狀態(tài)。
          另外,在主從機(jī)軟件上也應(yīng)附加若干處理措施,如:上電時(shí)或正式通訊之前,對(duì)串行口做幾次空操作,清除端口的非法數(shù)據(jù)和命令。
          2) 控制端RE*,DE的信號(hào)的有效脈寬應(yīng)該大于發(fā)送或接收一幀信號(hào)的寬度。
          在RS-232,RS-422等全雙工通訊過(guò)程中,發(fā)送和接收信號(hào)分別在不同的物理鏈路上傳輸,發(fā)送端始終為發(fā)送端,接收端始終為接收端,不存在發(fā)送、接收控制信號(hào)切換問(wèn)題。在RS-485半雙工通訊中,由于SN75176的發(fā)送和接收都由同一器件完成,并且發(fā)送和接收使用同一物理鏈路,必須對(duì)控制信號(hào)進(jìn)行切換。控制信號(hào)何時(shí)為高電平,何時(shí)為低電平,一般以單片機(jī)的TI,RI信號(hào)作參考。
          發(fā)送時(shí),檢測(cè)TI是否建立起來(lái),當(dāng)TI為高電平后關(guān)閉發(fā)送功能轉(zhuǎn)為接收功能;
          接收時(shí),檢測(cè)RI是否建立起來(lái),當(dāng)RI為高電平后,接收完畢,又可以轉(zhuǎn)為發(fā)送。
          在理論上雖然行得通,但在實(shí)際聯(lián)調(diào)中卻出現(xiàn)傳輸數(shù)據(jù)時(shí)對(duì)時(shí)錯(cuò)的現(xiàn)象。根據(jù)查證有關(guān)資料,并在聯(lián)調(diào)中借助存儲(chǔ)示波器反復(fù)測(cè)試,才發(fā)現(xiàn)一個(gè)值得注意的問(wèn)題,我們可以查看單片機(jī)的時(shí)序:
          

          圖3 串行口模式3時(shí)序圖
          單片機(jī)在串行口發(fā)送數(shù)據(jù)時(shí),只要將8位數(shù)據(jù)位傳送完畢,TI標(biāo)志即建立,但此時(shí)應(yīng)發(fā)送的第九位數(shù)據(jù)位(若發(fā)送地址幀時(shí))和停止位尚未發(fā)出。如果在這是關(guān)閉發(fā)送控制,勢(shì)必造成發(fā)送幀數(shù)據(jù)不完整。如果單片機(jī)多機(jī)通訊采用較高的波特率,幾條操作指令的延時(shí)就可能超過(guò)2位(或1位)數(shù)據(jù)的發(fā)送時(shí)間,問(wèn)題或許不會(huì)出現(xiàn)。但是如果采用較低波特率,如9600,發(fā)送一位數(shù)據(jù)需100μs左右,單靠幾條操作指令的延時(shí)遠(yuǎn)遠(yuǎn)不夠,問(wèn)題就明顯地暴露出來(lái)。接收數(shù)據(jù)時(shí)也同樣如此,單片機(jī)在接收完8個(gè)數(shù)據(jù)位后就建立起RI信號(hào),但此時(shí)還未接收到第九位數(shù)據(jù)位(若接收地址幀時(shí))和停止位。所以,接收端必須延時(shí)大于2位數(shù)據(jù)位的時(shí)間(1位數(shù)據(jù)位時(shí)間=1/波特率),再作應(yīng)答,否則會(huì)發(fā)生總線(xiàn)沖突。
          3) 總線(xiàn)上所連接的各單機(jī)的發(fā)送控制信號(hào)在時(shí)序上完全隔開(kāi)。
          為了保證發(fā)送和接收信號(hào)的完整和正確,避免總線(xiàn)上信號(hào)的碰撞,對(duì)總線(xiàn)的使用權(quán)必須進(jìn)行分配才能避免競(jìng)爭(zhēng),連接到總線(xiàn)上的單機(jī),其發(fā)送控制信號(hào)在時(shí)間上要完全隔離。
          總之,發(fā)送和接收控制信號(hào)應(yīng)該足夠?qū)挘员WC完整地接收一幀數(shù)據(jù),任意兩個(gè)單機(jī)的發(fā)送控制信號(hào)在時(shí)間上完全分開(kāi),避免總線(xiàn)爭(zhēng)端。
          程序流程框圖,參見(jiàn)圖4。其中:a)為發(fā)送流程圖;b)為接收流程圖。
          

          圖4 程序流程圖
          注:延時(shí)T秒的取值
          (1) 傳送地址幀時(shí),T>2X(1/波特率),可以選取T=2.5X(1/波特率)。
          (2) 傳送數(shù)據(jù)幀時(shí),T>1X(1/波特率),可以選取T=1.5X(1/波特率)。
          作者簡(jiǎn)介:尹 紅 工程師。主要從事計(jì)算機(jī)應(yīng)用和數(shù)控產(chǎn)品的研究和開(kāi)發(fā)工作
          唐 煜 研究員。主要從事計(jì)算機(jī)自動(dòng)化會(huì)議系列產(chǎn)品的研究和開(kāi)發(fā)工作
          作者單位:中國(guó)科學(xué)院成都計(jì)算機(jī)應(yīng)用研究所 四川。成都(610041)
        很好很強(qiáng)大  不錯(cuò)的文檔
        1253512699_1.jpg

        QQ|手機(jī)版|MCU資訊論壇 ( 京ICP備18035221號(hào)-2 )|網(wǎng)站地圖

        GMT+8, 2025-5-1 00:31 , Processed in 0.028715 second(s), 8 queries , Redis On.

        Powered by Discuz! X3.5

        © 2001-2025 Discuz! Team.

        返回頂部
        影音先锋在线资源资源网| 亚洲国产精品久久久久| 91精品国产福利在线观看麻豆| 国产成人精品综合网站| 亚洲精品欧美日韩| 精品久久人人妻人人做精品| 亚洲欧美日韩精品久久亚洲区| 91九色在线观看| 久久国产免费观看精品| 久久国产精品二国产精品| 黄色影院免费观看| 91国内外精品自在线播放| 国产亚洲精品国看不卡| 日本午夜vr影院新入口| 99久久精品毛片免费播放| 国产精品人成在线观看| 外国成人免费视频| 国产成人精品免费视| 精品国产免费人成网站| 亚洲精品国精品久久99热一| 国产在线精品一区二区不卡 | 国产亚洲精品自在线观看| 影音先锋中文字幕在线| 精品精品国产自在久久高清| 久久国产热这里只有精品| 无码精品A∨在线观看| 2021最新国产精品一区| 日韩精品视频在线观看免费| 国产色婷婷五月精品综合在线| 精品精品国产国产| 久久99精品国产自在现线小黄鸭| 国产精品成人小电影在线观看| 国产美女精品一区二区| 亚洲国产精品不卡在线电影| 好硬好湿好爽再深一点动态图片| 亚洲国产成人精品不卡青青草原| 91九色在线观看| 国产精品久久久99| 精品一区二区三区在线观看视频| 国产精品亚洲mnbav网站| 久久免费的精品国产V∧|