陳起傳,余小平,龍小翠
(成都理工大學(xué)信息科學(xué)與技術(shù)學(xué)院,成都610059)
CHEN Qichuan,YUXiaoping*,LONGXiaocui
(Chengdu University of Technology,Chengdu 610059,China)
在20 m長的單總線上,多點(diǎn)實(shí)時測溫系統(tǒng)接入10組DS18B20器件對樣品進(jìn)行溫度測量。結(jié)果發(fā)現(xiàn)主機(jī)漏讀了總線上離主機(jī)最遠(yuǎn)的溫度器件的片序列號,而其余9組都能被獲取,并且能正確的讀回測量溫度值。器件漏讀的現(xiàn)象可能是總線分布電容和電阻引起的信號衰減所致;也可能是總線的傳輸時延,使器件信息傳輸主機(jī)時,主機(jī)漏讀溫度器件信息引起;還可能是單總線傳輸線路過長、器件過多,使得總線驅(qū)動不足引起信息錯誤所導(dǎo)致[1]。然而提高I/O驅(qū)動之后,發(fā)現(xiàn)器件遺漏仍然存在,說明提高I/O驅(qū)動能力并沒有解決器件遺漏的問題[2]。為了解決測溫器件的遺漏問題,本文通過理論分析和實(shí)驗(yàn)說明傳輸延時和分布電容、電阻對單總線器件遺漏的影響。
單總線多點(diǎn)實(shí)時溫度測量系統(tǒng)采用C8051F340為主控制器,通過循環(huán)掃描讀取器件測量溫度值,進(jìn)而使用UART通信接口將采集的溫度數(shù)據(jù)進(jìn)行封裝后上傳上位機(jī)。上位機(jī)對接收到的溫度信息進(jìn)行誤差處理后在上位機(jī)顯示并記錄,實(shí)現(xiàn)多點(diǎn)溫度測量的實(shí)時監(jiān)控[3-4]。單總線多點(diǎn)實(shí)時溫度測量系統(tǒng)框圖如圖1所示。
圖1 多點(diǎn)溫度采集系統(tǒng)框圖
從圖2可得主機(jī)從總線上獲取溫度器件信息時,所有溫度器件向主機(jī)發(fā)送數(shù)據(jù)在15μs內(nèi)完成,15μs時間片之后總線上的器件會釋放總線。當(dāng)主機(jī)拉低總線后,寫命令在總線上的傳輸延時導(dǎo)致總線上任意兩個溫度器件不能同時刻響應(yīng)主機(jī)。如果兩個相鄰溫度器件的相距太遠(yuǎn),它們的數(shù)據(jù)不能同時傳輸?shù)街鳈C(jī),就會發(fā)生漏讀的現(xiàn)象。
圖2 主機(jī)讀取總線時間片
假設(shè)總線上相鄰兩個溫度器件到主機(jī)的距離分別為0和S。主機(jī)在拉低總線15μs內(nèi)讀總線,如果溫度器件數(shù)據(jù)都能被主機(jī)讀取到,那么距離為S的溫度器件數(shù)據(jù)傳到主機(jī)的時間t應(yīng)滿足下式:
假設(shè)響應(yīng),數(shù)據(jù)穩(wěn)定,主機(jī)采樣時間分別為:
μs。信號在導(dǎo)線上的傳輸速率為v=I/nqs,那么可得不漏讀數(shù)據(jù)時兩個溫度器件間的最大距離為:
導(dǎo)體中電流的傳輸速率v接近光速,所以理論上任意兩個相鄰溫度器件的最大相距為Smax=3.0×108×6×10-6=1.8 km。要使主機(jī)不遺漏的獲取溫度器件,必須滿足任意兩個溫度器件間的距離滿足S<Smax。此系統(tǒng)中單總線的長度遠(yuǎn)小于Smax,所以只要主機(jī)讀總線的時間接近15μs,就不會發(fā)生器件漏讀[5]。
主機(jī)3.3 V高電平信號在總線上傳輸時,因衰減和干擾很可能下降到溫度器件的判決門限電平以下,導(dǎo)致溫度器件收到主機(jī)所發(fā)的高電平被判為低電平,使單總線上離主機(jī)較遠(yuǎn)的器件錯誤響應(yīng)主機(jī)的指令,從而發(fā)生器件遺漏。信號衰減與導(dǎo)線電阻和分布電容有關(guān)系。單總線導(dǎo)線電阻R如下:
由式(3)可得:導(dǎo)線長度L越長,電阻R越大,電壓在總線上傳輸時總線的分壓就越大,對于溫度器件而言,信號的衰減也越大。
總線采用信號線與地線平行的連接方式的等效分布電容,如圖3所示。
圖3 單總線分布電容模型
圖中C1…Cn為單總線上n個器件對應(yīng)的分布電容,器件分布電容一般為固定數(shù)值。C為導(dǎo)線對地的分布電容,由式(4)可得:
其中D為信號線到地線的距離,d為傳輸數(shù)據(jù)線的直徑,L為傳輸數(shù)據(jù)線的長度,ε0為真空介電常數(shù)。可以看出采用同種導(dǎo)線時,總線長度L越長C越大,接入器件數(shù)量n越大,分布電容C1∥…∥Cn的值越大。所以單總線上接入的器件越多,總線長度越長,總線的分布電容就越大。因而,到達(dá)主機(jī)距離最遠(yuǎn)的溫度器件對地的交流阻抗越小,器件的交流分壓就越小,因此到達(dá)溫度器件時信號衰減就越大[6]。
由于單總線的長度越長導(dǎo)線的電阻和分布電容越大,信號在傳輸線上的衰減就越快,導(dǎo)致高電平數(shù)據(jù)傳輸?shù)捷^遠(yuǎn)的溫度器件時,信號衰減到溫度器件判決門限電平以下,致使其接收到的主機(jī)指令發(fā)生錯誤,導(dǎo)致較遠(yuǎn)溫度器件無法響應(yīng)主機(jī),發(fā)生遺漏現(xiàn)象[7]。
為解決器件遺漏的問題,需要采取措施使主機(jī)數(shù)據(jù)傳輸?shù)綔囟绕骷r,不至于衰減到溫度器件判決門限以下。下面提出兩個解決辦法:一個是改變單總線的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu);另一個是提高總線高電平的電壓幅值。
總線型的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)要求所有的器件接在一條導(dǎo)線上,增加器件數(shù)量時,需要增加總線的長度。這不僅會使離主機(jī)較遠(yuǎn)的器件收到的主機(jī)信號嚴(yán)重衰減,而且不利于多點(diǎn)分散式溫度測量布線的實(shí)現(xiàn)。改變總線的拓?fù)浣Y(jié)構(gòu),不僅可以減小總線長度增加帶來的總線電阻分壓,還能夠在一定程度上提高溫度測量的靈活性。
如圖4(a)所示,星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)由多條總線型支路組成,所以星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)總的導(dǎo)線電阻相當(dāng)于單總線型n條通路并聯(lián),即R=R1∥…∥Rn。因此星形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)在很大程度上減小了導(dǎo)線電阻引起的信號衰減問題,從而減緩總線型拓?fù)浣Y(jié)構(gòu)的器件遺漏現(xiàn)象。同時,星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對實(shí)現(xiàn)四周分散型的多點(diǎn)溫度測量也很方便,且每條導(dǎo)線都可以達(dá)到總線型時的長度和接入從機(jī)的數(shù)量;環(huán)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖4(b)所示,是將主機(jī)和溫度器件連在一個環(huán)形上,把總線型拓?fù)浣Y(jié)構(gòu)的首尾相連。與總線型網(wǎng)絡(luò)拓?fù)湎啾瓤偩€的長度不變,但是最遠(yuǎn)的器件的總線長度減小了一半,因而總線上的導(dǎo)線電阻變成R/2,所以信號衰減得到一定程度的改善,能接入更多的器件。同時環(huán)型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)也易于實(shí)現(xiàn)分布于四周的多點(diǎn)溫度測量硬件布線。
圖4 星型和環(huán)形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
但是改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)只能一定程度上減小總線的傳輸電阻,并不能解決因器件數(shù)量的增多引起總線分布電容增加而導(dǎo)致的信號衰減問題。所以提出將3.3 V電平轉(zhuǎn)化為5 V接到總線上增加信號衰減的冗余度的解決方法。
為了使單總線上的信號從主機(jī)傳輸?shù)綇臋C(jī)時,信號衰減后不低于從機(jī)的判決門限,根據(jù)主機(jī)I/O設(shè)計一個合適的雙向電平轉(zhuǎn)換電路將主機(jī)的3.3 V電壓轉(zhuǎn)換成5 V后再接到單總線上,將總線上5 V信號轉(zhuǎn)換成3.3 V后再傳送給主機(jī)。這樣總線信號衰減的冗余度增加,總線長度加長、器件增多時,高電平信號不會很快衰減到判決門限以下。雙向電平轉(zhuǎn)換電路由如圖5(a)所示,5 V電平經(jīng)過一個遲滯比較器,再經(jīng)過一個與非門輸出3.3 V;而3.3 V通過一個與非門之后再經(jīng)過一個三態(tài)緩沖器輸出5 V電平。雙向電平轉(zhuǎn)換電路本質(zhì)是依靠與非門的OC門輸出實(shí)現(xiàn)的,同時為保障電平轉(zhuǎn)換前后的一致性,在高電平變?yōu)榈碗娖蕉嗽黾恿朔情T電路,在低電平變?yōu)楦唠娖蕉艘苍黾恿朔情T[8]。雙向電平轉(zhuǎn)換電路工作頻率在1 M時的雙向信號輸出波形如圖5(b)所示。
圖5 雙向電平轉(zhuǎn)化電路設(shè)計
實(shí)驗(yàn)可得總線上接入10個溫度器件時,交流信號電平衰減和器件到主機(jī)的距離關(guān)系如圖6所示。
圖6 總線接入10個器件高電平衰減情況
從圖6中實(shí)驗(yàn)記錄結(jié)果可以看出,總線型拓?fù)浣Y(jié)構(gòu)上接入10個器件時,總線長度增加到20 m時,高電平已經(jīng)下降到3 V以下;而環(huán)形拓?fù)浣Y(jié)構(gòu)總線增加到20 m時,電平還未衰減到3 V。所以,將系統(tǒng)總線首尾相接后,主機(jī)可以獲得所有從機(jī)器件的序列號和溫度信息。但是總線的長度變得更長后,改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),已經(jīng)不能夠解決信號衰減的問題。而從測試結(jié)果可知,在總線上接入10個器件時,總線長度增加到50 m后,5 V電平未衰減到3 V以下,所以在單總線的主機(jī)和溫度器件之間增加雙向的電平轉(zhuǎn)換電路,可以在保證溫度器件不被遺漏的情況下,很大程度上提高總線長度和接入器件數(shù)量。
系統(tǒng)以C8051F340為下位機(jī)實(shí)現(xiàn)了PC機(jī)對多點(diǎn)溫度實(shí)時測量。在系統(tǒng)實(shí)現(xiàn)過程中發(fā)現(xiàn),由于I/O口信號在單總線上的衰減,致使距離主機(jī)較遠(yuǎn)的溫度器件收到的高電平信號低于DS18B20的判決門限,從而導(dǎo)致主機(jī)指令無法正確的傳輸?shù)綔囟绕骷?,產(chǎn)生器件遺漏的現(xiàn)象。實(shí)驗(yàn)發(fā)現(xiàn)改變單總線的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可以減小導(dǎo)線電阻,可以在一定程度上解決遺漏問題,且能提高單總線多點(diǎn)測溫布線靈活性和實(shí)用性。而總線加長、器件增多時,改變網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)對于減小信號衰減已不明顯,在主機(jī)和總線器件之間增加雙向電平轉(zhuǎn)換電路,可以在溫度器件不被遺漏,且不改網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的情況下,將10個從機(jī)器件的傳輸距離增加到至少50 m。系統(tǒng)研究已經(jīng)解決生物冷點(diǎn)溫度測試實(shí)驗(yàn)中多點(diǎn)溫度采集的問題,同時也可以應(yīng)用到農(nóng)業(yè)生產(chǎn)大棚、倉庫溫度管理等系統(tǒng)之中解決多點(diǎn)長線的溫度采集問題。
[1] 高占鳳,劉玉紅,杜彥良.基于單總線技術(shù)的溫濕度監(jiān)測系統(tǒng)[J].電子器件,2006,29(4):1135 -1338.
[2] 艾紅.多點(diǎn)測溫與長線傳輸在分布式測溫系統(tǒng)中的研究[J].自動化儀表,2011,32(2):65 -68.
[3] 王福泉,萬頻.DS18B20在空調(diào)檢測系統(tǒng)溫度采集模塊中的應(yīng)用[J].電子技術(shù)應(yīng)用,2011,37(8):46 -48.
[4] 陳良光,李雄杰.大規(guī)模多點(diǎn)測溫中縮短巡檢周期的一種DS18B20訪問協(xié)議[J].傳感技術(shù)學(xué)報,2006,19(5):1581-1584.
[5] 鄧世建,胡媛媛.基于DS18B20的MOA溫度遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計[J].電子器件,2011,34(2):206-209.
[6] 丁凱,陳曉光.電纜分布電容對航天器低頻交流信號傳輸?shù)挠绊懛治觯跩].航天器環(huán)境程,2012(10):554-556.
[7] 沈莉麗,陳鐘榮.基于CPLD和DS18B20的多路溫度檢測系統(tǒng)設(shè)計[J].電子器件,2008,31(4):1252-1255.
[8] 孫爍.一種寬電壓差電平轉(zhuǎn)換接口電路設(shè)計[J].微機(jī)處理,2013,4(2):94 -96.