<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 零延時RS一485接口電路的設(shè)計與應(yīng)用

          零延時RS一485接口電路的設(shè)計與應(yīng)用

          作者: 時間:2012-05-30 來源:網(wǎng)絡(luò) 收藏

          摘要根據(jù)在研制節(jié)能燈壽命檢測系統(tǒng)中,實際檢測環(huán)境傳輸數(shù)據(jù)量大,實時性強的特點,對物理總線的拓?fù)浣Y(jié)構(gòu)和通信協(xié)議提出要求。采用零一485,邏輯上采用主從式網(wǎng)絡(luò)結(jié)構(gòu),物理結(jié)構(gòu)上采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);出一種支持主從式網(wǎng)絡(luò)結(jié)構(gòu)的485HUB,經(jīng)過通信協(xié)議的幀校驗和幀超時的,進(jìn)一步提高軟件抗干擾的能力。測試結(jié)果表明,系統(tǒng)穩(wěn)定可靠,抗干擾能力強。

          本文引用地址:http://www.ex-cimer.com/article/148974.htm

          關(guān)鍵詞零一485節(jié)能燈壽命檢測

          1概述

          一485是一種基于平衡發(fā)送和差分接收的串行總線,具有很強的抗共模干擾能力,在適當(dāng)?shù)牟ㄌ芈氏聜鬏斁嚯x遠(yuǎn);同時易于進(jìn)行網(wǎng)絡(luò)擴展,被廣泛的在很多工業(yè)現(xiàn)場。

          節(jié)能燈壽命檢測環(huán)境中,主要干擾來自開關(guān)和壽命檢測的強電干擾、開關(guān)產(chǎn)生的電磁干擾、空氣循環(huán)設(shè)備的干擾等等;同時由于壽命檢測環(huán)境溫度高,強電系統(tǒng)復(fù)雜,也給系統(tǒng)的運行提出更高的要求。壽命檢測系統(tǒng)要求實時報告每一盞節(jié)能燈的運行狀態(tài)、環(huán)境溫度、電壓等,并在壽終計算出節(jié)能燈壽命、光通等參數(shù)??梢娤到y(tǒng)的傳輸數(shù)據(jù)量大,實時性強,因此物理總線的拓?fù)浣Y(jié)構(gòu)和通信協(xié)議尤為關(guān)鍵。

          2

          良好的接口設(shè)計,應(yīng)該在硬件上保證系統(tǒng)有良好的抗干擾性、穩(wěn)定性和易擴展性。本系統(tǒng)選用了性價比很高的半雙工接口芯片SN65HVD3082。它具有以下特點[1]:

          ①滿足或超出TIA/EIA-485A標(biāo)準(zhǔn)的要求;

          ②低靜態(tài)電流消耗——有效模式為小于0。3mA,關(guān)閉模式為lnA;

          ③優(yōu)化的驅(qū)動器輸出信號,傳輸率達(dá)200kbps時保持低EMI;

          ④1/8單元負(fù)載——1條總線上多達(dá)256個節(jié)點;

          ⑤總線引腳ESD保護超過16kv;

          ⑥工業(yè)標(biāo)準(zhǔn)SN75176覆蓋范圍;

          ⑦失效保護功能。

          基于SN65HVD3082的RS-485接口,通常有三種方案。

          (1)直接控制收發(fā)的RS-485接口

          此方法使用控制器切換發(fā)送使能和接收使能端,控制接口電路數(shù)據(jù)的發(fā)送和接收。由于采用直接收發(fā),因此需要發(fā)送和接收時的轉(zhuǎn)換,只能加入額外的控制器來控制發(fā)送和接收的轉(zhuǎn)換;同時,需要用控制器存儲轉(zhuǎn)發(fā)所有的傳輸數(shù)據(jù),這樣,每傳輸1幀數(shù)據(jù),至少損失1個單位的接收時間(儲存轉(zhuǎn)發(fā)1幀數(shù)據(jù)的時間)。此方案不利于數(shù)據(jù)量大的實時通信,而且在發(fā)送和接收的切換過程中,在VA和VB(VA和VB分別是Rs一485總線的A、B端的電壓)有階躍電壓的產(chǎn)生。這個階躍電壓對接收器的接收有干擾產(chǎn)生。

          (2)自動收發(fā)轉(zhuǎn)換的RS-485接口電路

          圖l所示的虛線框中為接口電路,通過對真值表進(jìn)行分析,其發(fā)送和接收過程為:

          當(dāng)發(fā)送端DI=O時,DE/RE=1發(fā)送O電平,接收端RO=O;當(dāng)發(fā)送端DI=1時,DE/RE=0,VA=VB=2。5V,接收端由于上拉電阻的作用RO=1。

          在此接口電路的TXo端加入1kHz的TTL方波對電路進(jìn)行測試。未加入120Ω端電阻時,接口芯片的485-A和485-B腳都有約50μs的電壓變化過程,如圖2所示。接收端Ro波形的上升沿有明顯的延遲約30~40μs(和數(shù)據(jù)發(fā)送端DI比較),造成很大的傳輸誤差;加入120Ω端電阻時,延遲明顯縮小,約3μs。

          此電路在發(fā)送高電平時,發(fā)送器處于高阻狀態(tài),總線上所有接口處于接收狀態(tài),總線是空閑的,允許其他接口發(fā)送數(shù)據(jù),因此容易引入總線沖突。特別是連續(xù)發(fā)送商電平比特時,發(fā)送器處于高阻狀態(tài)的時間越長,引入總線沖突的幾率就越大。

          (3)零的RS-485接口電路

          零延時RS-4185接口電路主要采用74HCl4和電路中的電阻、電容等元件構(gòu)成一個延時很短的電路,其主要作用是:

          ①發(fā)送器在發(fā)送高電平的時候,在短延時內(nèi)不再是處于高阻狀態(tài),仍有驅(qū)動電流存在,這樣在一定程度上可以增加接口的抗干擾能力。

          ②從真值表可以看出.對于接收器,當(dāng)VID=VA-VR≥一O。01V時,RO=1;在發(fā)送端,當(dāng)DE/RE=0,發(fā)送驅(qū)動器的VA和VB都是高阻態(tài),此時VA=VB=2。5V,因此,這時對于接收端RO=1;而在短延時的時間內(nèi),由千DI=1且DE/RE=1.所以RO=1.可見在短延時和DE/RE=0的時間內(nèi)接收端RO=l,這樣就完成了對高電平的發(fā)送和接收,而且在接收端的上升沿不會有延遲,即零延時,如圖3所示。

          把圖l中自動收發(fā)轉(zhuǎn)換的RS-485接口電路換成零延時的RS-485接口電路,如圖4所示。同樣在TX0端加入1kHz的方波對電路進(jìn)行測試,結(jié)果是接收端RO的上升沿不會有延遲。這和是否接入120Ω的端電阻沒有關(guān)系,證實了以上的分析。

          圖2、3中虛線箭頭指向處的電壓為2。5V。

          圖4中,根據(jù)系統(tǒng)所確定的傳輸速度來選擇R3和C0參數(shù),以達(dá)到零延時。傳輸速度越高,延時越小。這里選擇R3=22kΩ,C0=1000pF。

          自動收發(fā)轉(zhuǎn)換的RS-4t85接口電路和零延時的RS-485接口電路都有不足之處,即在發(fā)送端發(fā)送連續(xù)的高電平時,邏輯上發(fā)送端是處于發(fā)送狀態(tài),接收端處于接收狀態(tài);但實際上,此時所有SN75HVl53082接口的DE/RE=0,所以,所有的發(fā)送端和接收端都處于接收狀態(tài)。這在對等的網(wǎng)絡(luò)結(jié)構(gòu)中是不能忽視的,因為在這段時間內(nèi),總線是空閑的,是允許節(jié)點發(fā)送數(shù)據(jù)的。

          這里采用的是主從式的網(wǎng)絡(luò)結(jié)構(gòu),因此這個問題不會影響系統(tǒng)工作。

          3網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)

          網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計是根據(jù)壽命檢測系統(tǒng)的實際需要提出的,設(shè)計目標(biāo)是:滿足lO個壽命架,每個壽命架64個節(jié)點的檢測要求,在硬件和軟件上做到容易擴展,走線合理。因此邏輯上采用主從式網(wǎng)絡(luò)結(jié)構(gòu),物理結(jié)構(gòu)上采用星型拓?fù)浣Y(jié)構(gòu),如圖5所示。這個拓?fù)浣Y(jié)構(gòu)有兩級總線,主要由以下設(shè)備組成:

          ①RS-232轉(zhuǎn)RS-485。實現(xiàn)RS-232到RS-485電氣信號的轉(zhuǎn)換,這是第一級RS-485總線。

          ②10口的485HIJB(集線器)。如圖6所示,485HUB是由1個主機和10個從機的零延時的RS-485接口組成,這是在邏輯上實現(xiàn)主從式結(jié)構(gòu)的基礎(chǔ)。當(dāng)主機端下行發(fā)送數(shù)據(jù)時,連接在10個從機接口上的所有接口都可以接收到數(shù)據(jù);而當(dāng)某個從機接口上掛接的節(jié)點上行發(fā)送數(shù)據(jù)時,只有主機節(jié)點(PS端)和掛接在同一個從機接口上的其他節(jié)點可以接收到數(shù)據(jù)。這是第二級RS-485總線。

          ③單片機節(jié)點。有4種節(jié)點,即節(jié)能燈狀態(tài)采集節(jié)點、溫度采集節(jié)點、供電電壓采集節(jié)點和模式控制節(jié)點。每個單片機節(jié)點的通信接口都采用零延時的RS-485接口電路,每一個節(jié)點都有自己的地址,用于PC端尋址。

          理論上,SN75HVD3082的一條總線可以連接多達(dá)256個節(jié)點,因此在每個從機接口上可以擴展更多的節(jié)點;同時在RS-232轉(zhuǎn)RS-485轉(zhuǎn)換器的總線上也可以連接更多的485HUB。這樣就可以實現(xiàn)硬件上的擴展。

          4通信協(xié)議

          采用9600bps的波特率,固定長度幀結(jié)構(gòu),幀長度10字節(jié)。幀信息定義如下:幀頭(0x550xAA)、命令(1字節(jié))、數(shù)據(jù)(4字節(jié))、從機地址(2字節(jié))、校驗(1字節(jié))。

          在通信協(xié)議中采用幀校驗和幀超時,以達(dá)到軟件抗干擾的目的。

          ①幀校驗:采用累加和校驗。在發(fā)送時,把幀頭、命令、數(shù)據(jù)、從機地址幾個域相加并取最低字節(jié)填充到校驗域。如果節(jié)點不處于接收狀態(tài),則啟動發(fā)送,否則等待;如果在未超時,并完整地接收到10字節(jié)時,把幀頭、命令、數(shù)據(jù)、從機地址幾個域相加,并與校驗域比較,相同表示成功接收到1幀數(shù)據(jù)。

          ②幀超時:幀超時定義是,在接收到第一個字節(jié)時,進(jìn)入接收狀態(tài),并設(shè)置8ms定時,以后每接收到一個字節(jié),重置8ms定時。正常情況下,接收一個字節(jié)約1ms時間。如果超過8ms,則退出接收狀態(tài),丟棄當(dāng)前接收幀,回到空閑狀態(tài),等待下一幀的接收。

          在程序設(shè)計中,幀超時的定義與程序的架構(gòu)和波特率有關(guān),原則上只要大于1個字節(jié)的接收時間就可以了。這里選擇8ms與程序的架構(gòu)有關(guān)。

          5測試結(jié)論和前景

          在設(shè)置了所有節(jié)點的地址后,即可在現(xiàn)場對系統(tǒng)進(jìn)行測試。測試方案是,在PC機端運行測試軟件,約每隔50ms發(fā)送一次測試命令輪詢所有的節(jié)點。每一次發(fā)送都要求有數(shù)據(jù)返回,否則視為通信錯誤。軟件連續(xù)運行7天,沒有發(fā)現(xiàn)錯誤,說明系統(tǒng)穩(wěn)定可靠。

          目前設(shè)計的節(jié)能燈壽命檢測系統(tǒng)已經(jīng)在現(xiàn)場成功投入使用,運行效果良好。此系統(tǒng)設(shè)計思想對于設(shè)計具有大量節(jié)點、大數(shù)據(jù)量的實時智能檢測系統(tǒng)起到借鑒作用,在自動化檢測領(lǐng)域中將有較為廣泛的價值。

          DIY機械鍵盤相關(guān)社區(qū):機械鍵盤DIY


          上拉電阻相關(guān)文章:上拉電阻原理


          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();