摘要根據(jù)在研制節(jié)能燈壽命檢測系統(tǒng)中,實際檢測環(huán)境傳輸數(shù)據(jù)量大,實時性強的特點,對物理總線的拓撲結構和通信協(xié)議提出要求。采用零延時RS一485接口電路,邏輯上采用主從式網(wǎng)絡結構,物理結構上采用星型網(wǎng)絡拓撲結構;設計出一種支持主從式網(wǎng)絡結構的485HUB,經(jīng)過通信協(xié)議的幀校驗和幀超時的設計,進一步提高軟件抗干擾的能力。測試結果表明,系統(tǒng)穩(wěn)定可靠,抗干擾能力強。
關鍵詞零延時RS一485節(jié)能燈壽命檢測
1概述
RS一485接口是一種基于平衡發(fā)送和差分接收的串行總線,具有很強的抗共模干擾能力,在適當?shù)牟ㄌ芈氏聜鬏斁嚯x遠;同時易于進行網(wǎng)絡擴展,被廣泛的應用在很多工業(yè)現(xiàn)場。
節(jié)能燈壽命檢測環(huán)境中,主要干擾來自開關和壽命檢測的強電干擾、開關產(chǎn)生的電磁干擾、空氣循環(huán)設備的干擾等等;同時由于壽命檢測環(huán)境溫度高,強電系統(tǒng)復雜,也給系統(tǒng)的運行提出更高的要求。壽命檢測系統(tǒng)要求實時報告每一盞節(jié)能燈的運行狀態(tài)、環(huán)境溫度、電壓等,并在壽終計算出節(jié)能燈壽命、光通等參數(shù)??梢娤到y(tǒng)的傳輸數(shù)據(jù)量大,實時性強,因此物理總線的拓撲結構和通信協(xié)議尤為關鍵。
2接口設計
良好的接口設計,應該在硬件上保證系統(tǒng)有良好的抗干擾性、穩(wěn)定性和易擴展性。本系統(tǒng)選用了性價比很高的半雙工接口芯片SN65HVD3082。它具有以下特點[1]:
①滿足或超出TIA/EIA-485A標準的要求;
②低靜態(tài)電流消耗——有效模式為小于0。3mA,關閉模式為lnA;
③優(yōu)化的驅(qū)動器輸出信號,傳輸率達200kbps時保持低EMI;
④1/8單元負載——1條總線上多達256個節(jié)點;
⑤總線引腳ESD保護超過16kv;
⑥工業(yè)標準SN75176覆蓋范圍;
⑦失效保護功能。
基于SN65HVD3082的RS-485接口電路,通常有三種方案。
(1)直接控制收發(fā)的RS-485接口電路
此方法使用控制器切換發(fā)送使能和接收使能端,控制接口電路數(shù)據(jù)的發(fā)送和接收。由于采用直接收發(fā),因此需要發(fā)送和接收時的轉換,只能加入額外的控制器來控制發(fā)送和接收的轉換;同時,需要用控制器存儲轉發(fā)所有的傳輸數(shù)據(jù),這樣,每傳輸1幀數(shù)據(jù),至少損失1個單位的接收時間(儲存轉發(fā)1幀數(shù)據(jù)的時間)。此方案不利于數(shù)據(jù)量大的實時通信,而且在發(fā)送和接收的切換過程中,在VA和VB(VA和VB分別是Rs一485總線的A、B端的電壓)有階躍電壓的產(chǎn)生。這個階躍電壓對接收器的接收有干擾產(chǎn)生。
(2)自動收發(fā)轉換的RS-485接口電路
圖l所示的虛線框中為接口電路,通過對真值表進行分析,其發(fā)送和接收過程為:
當發(fā)送端DI=O時,DE/RE=1發(fā)送O電平,接收端RO=O;當發(fā)送端DI=1時,DE/RE=0,VA=VB=2。5V,接收端由于上拉電阻的作用RO=1。
在此接口電路的TXo端加入1kHz的TTL方波對電路進行測試。未加入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和電路中的電阻、電容等元件構成一個延時很短的電路,其主要作用是:
①發(fā)送器在發(fā)送高電平的時候,在短延時內(nèi)不再是處于高阻狀態(tài),仍有驅(qū)動電流存在,這樣在一定程度上可以增加接口的抗干擾能力。
②從真值表可以看出.對于接收器,當VID=VA-VR≥一O。01V時,RO=1;在發(fā)送端,當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ā)轉換的RS-485接口電路換成零延時的RS-485接口電路,如圖4所示。同樣在TX0端加入1kHz的方波對電路進行測試,結果是接收端RO的上升沿不會有延遲。這和是否接入120Ω的端電阻沒有關系,證實了以上的分析。
圖2、3中虛線箭頭指向處的電壓為2。5V。
圖4中,根據(jù)系統(tǒng)所確定的傳輸速度來選擇R3和C0參數(shù),以達到零延時。傳輸速度越高,延時越小。這里選擇R3=22kΩ,C0=1000pF。
自動收發(fā)轉換的RS-4t85接口電路和零延時的RS-485接口電路都有不足之處,即在發(fā)送端發(fā)送連續(xù)的高電平時,邏輯上發(fā)送端是處于發(fā)送狀態(tài),接收端處于接收狀態(tài);但實際上,此時所有SN75HVl53082接口的DE/RE=0,所以,所有的發(fā)送端和接收端都處于接收狀態(tài)。這在對等的網(wǎng)絡結構中是不能忽視的,因為在這段時間內(nèi),總線是空閑的,是允許節(jié)點發(fā)送數(shù)據(jù)的。
這里采用的是主從式的網(wǎng)絡結構,因此這個問題不會影響系統(tǒng)工作。
3網(wǎng)絡拓撲結構
網(wǎng)絡拓撲結構的設計是根據(jù)壽命檢測系統(tǒng)的實際需要提出的,設計目標是:滿足lO個壽命架,每個壽命架64個節(jié)點的檢測要求,在硬件和軟件上做到容易擴展,走線合理。因此邏輯上采用主從式網(wǎng)絡結構,物理結構上采用星型拓撲結構,如圖5所示。這個拓撲結構有兩級總線,主要由以下設備組成:
①RS-232轉RS-485。實現(xiàn)RS-232到RS-485電氣信號的轉換,這是第一級RS-485總線。
②10口的485HIJB(集線器)。如圖6所示,485HUB是由1個主機和10個從機的零延時的RS-485接口組成,這是在邏輯上實現(xiàn)主從式結構的基礎。當主機端下行發(fā)送數(shù)據(jù)時,連接在10個從機接口上的所有接口都可以接收到數(shù)據(jù);而當某個從機接口上掛接的節(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的一條總線可以連接多達256個節(jié)點,因此在每個從機接口上可以擴展更多的節(jié)點;同時在RS-232轉RS-485轉換器的總線上也可以連接更多的485HUB。這樣就可以實現(xiàn)硬件上的擴展。
4通信協(xié)議
采用9600bps的波特率,固定長度幀結構,幀長度10字節(jié)。幀信息定義如下:幀頭(0x550xAA)、命令(1字節(jié))、數(shù)據(jù)(4字節(jié))、從機地址(2字節(jié))、校驗(1字節(jié))。
在通信協(xié)議中采用幀校驗和幀超時,以達到軟件抗干擾的目的。
①幀校驗:采用累加和校驗。在發(fā)送時,把幀頭、命令、數(shù)據(jù)、從機地址幾個域相加并取最低字節(jié)填充到校驗域。如果節(jié)點不處于接收狀態(tài),則啟動發(fā)送,否則等待;如果在未超時,并完整地接收到10字節(jié)時,把幀頭、命令、數(shù)據(jù)、從機地址幾個域相加,并與校驗域比較,相同表示成功接收到1幀數(shù)據(jù)。
②幀超時:幀超時定義是,在接收到第一個字節(jié)時,進入接收狀態(tài),并設置8ms定時,以后每接收到一個字節(jié),重置8ms定時。正常情況下,接收一個字節(jié)約1ms時間。如果超過8ms,則退出接收狀態(tài),丟棄當前接收幀,回到空閑狀態(tài),等待下一幀的接收。
在程序設計中,幀超時的定義與程序的架構和波特率有關,原則上只要大于1個字節(jié)的接收時間就可以了。這里選擇8ms與程序的架構有關。
5測試結論和應用前景
在設置了所有節(jié)點的地址后,即可在現(xiàn)場對系統(tǒng)進行測試。測試方案是,在PC機端運行測試軟件,約每隔50ms發(fā)送一次測試命令輪詢所有的節(jié)點。每一次發(fā)送都要求有數(shù)據(jù)返回,否則視為通信錯誤。軟件連續(xù)運行7天,沒有發(fā)現(xiàn)錯誤,說明系統(tǒng)穩(wěn)定可靠。
目前設計的節(jié)能燈壽命檢測系統(tǒng)已經(jīng)在現(xiàn)場成功投入使用,運行效果良好。此系統(tǒng)設計思想對于設計具有大量節(jié)點、大數(shù)據(jù)量的實時智能檢測系統(tǒng)起到借鑒作用,在自動化檢測領域中將有較為廣泛的應用價值。