孫 瑜,張 悅,陳勁操
(南京理工大學(xué)能源與動力工程學(xué)院,南京 210094)
基于USB接口的多路溫度采集系統(tǒng)設(shè)計(jì)
孫 瑜,張 悅,陳勁操
(南京理工大學(xué)能源與動力工程學(xué)院,南京 210094)
針對現(xiàn)有測溫系統(tǒng)在測量范圍及操作性方面的局限性,設(shè)計(jì)了一種溫度采集系統(tǒng)。它的兩個主要技術(shù)特征為多點(diǎn)測量并將溫度數(shù)據(jù)通過USB接口上傳。介紹了基于ARM GPIO口的多點(diǎn)并行測量方案,給出了有關(guān)軟硬件設(shè)計(jì),驗(yàn)證了方案的時間優(yōu)越性。提出了一種解決DS18B20“85”問題的新方法。論證研究了USB通信管理機(jī)制,設(shè)計(jì)了邏輯節(jié)點(diǎn)訪問程序。所設(shè)計(jì)系統(tǒng)可以有效完成多點(diǎn)溫度測量和USB通信,具有推廣應(yīng)用價值。
溫度采集;多點(diǎn)測控;USB通信
隨著社會的進(jìn)步和工業(yè)技術(shù)的發(fā)展,對溫度測量范圍以及便捷性操作方式提出了要求。根據(jù)多點(diǎn)溫度測量的工業(yè)要求,開發(fā)出一種能夠同時測量處理多點(diǎn)溫度并且實(shí)時性好、精度高且操作方便的溫度采集系統(tǒng)是一個有意義的課題。
本文在多點(diǎn)測溫技術(shù)和USB通信技術(shù)的基礎(chǔ)上設(shè)計(jì)溫度采集系統(tǒng)。溫度采集方式為基于ARM GPIO口的多路并行。數(shù)據(jù)通信方式為USB總線通信,通過微處理器內(nèi)嵌USB的管理機(jī)制完成USB通信設(shè)計(jì),討論了對USB邏輯節(jié)點(diǎn)的訪問完成數(shù)據(jù)交換的技術(shù)。所設(shè)計(jì)的系統(tǒng)可以同時完成多路溫度數(shù)據(jù)采集,并且具有測溫范圍廣、穩(wěn)定性高、轉(zhuǎn)換速度快等優(yōu)勢;同時,采用USB接口進(jìn)行溫度數(shù)據(jù)傳輸可以有效提高系統(tǒng)的操作便捷性。
該系統(tǒng)的硬件框圖如圖1所示,系統(tǒng)主要由溫度采集系統(tǒng)、數(shù)據(jù)傳輸系統(tǒng)和監(jiān)控系統(tǒng)3部分組成。溫度采集系統(tǒng)控制核心選用LPC2142,可完成對監(jiān)測點(diǎn)溫度的讀取和轉(zhuǎn)換并設(shè)置相應(yīng)的溫度上下限報警值。數(shù)據(jù)傳輸系統(tǒng)通過USB總線將測溫系統(tǒng)采集數(shù)據(jù)送入上位機(jī)。監(jiān)控系統(tǒng)進(jìn)行數(shù)據(jù)接收、處理、分析和顯示。測溫系統(tǒng)主要用于多點(diǎn)測溫,同時也可以使用單路溫度傳感器進(jìn)行單點(diǎn)溫度監(jiān)測,使用較為靈活。
圖1 測溫系統(tǒng)總體架構(gòu)
2.1 傳感器的選型
目前在工程領(lǐng)域中使用的溫度傳感器主要有模擬傳感器和數(shù)字傳感器,相比于模擬集成溫度傳感器,數(shù)字溫度傳感器具有外接處理電路少、測量精度高、系統(tǒng)誤差率低及抗干擾能力強(qiáng)等優(yōu)勢。在多種數(shù)字溫度傳感器中,由于DS18B20具有獨(dú)特的單總線接口方式,通信協(xié)議較為簡單[1],在多點(diǎn)測溫時具有明顯的優(yōu)勢,與其他智能溫度傳感器相比更適合本系統(tǒng),所以選用數(shù)字溫度傳感器DS18B20作為溫度測量的傳感器。
2.2 多路并行采集方案論證
DS18B20支持多點(diǎn)組網(wǎng)功能且具有寬電源電壓范圍,因此可以在單總線上掛接多路傳感器進(jìn)行溫度測量。現(xiàn)有基于DS18B20的多路溫度采集系統(tǒng)多選用此種方式。但是在這種方式下,傳感器的溫度轉(zhuǎn)換是逐路完成的,當(dāng)傳感器數(shù)量較多時轉(zhuǎn)換需要占用較多時間,而且當(dāng)單總線掛接傳感器數(shù)量超過8個時,就需要解決微處理器總線驅(qū)動不足的問題[2],因此這種方式不適用于溫度測量點(diǎn)較多、測量時間要求高的場合。在這種情況下提出一種基于ARM GPIO的多路傳感器并行采集方案,控制核心選用LPC2142,DS18B20配置寄存器設(shè)置12位的溫度轉(zhuǎn)換位數(shù),如圖2所示。
圖2 多路傳感器并行采集結(jié)構(gòu)圖
在設(shè)計(jì)中,每一路傳感器對應(yīng)LPC2142的一個GPIO口,當(dāng)微處理器發(fā)出溫度轉(zhuǎn)換命令時,多路溫度傳感器同時進(jìn)行溫度轉(zhuǎn)換,轉(zhuǎn)換時間和單路傳感器溫度轉(zhuǎn)換時間相同。若采用單總線掛接多路傳感器的方式,對于14路傳感器,采用單總線傳輸。由此可以看出,多路并行溫度采集的方案具有轉(zhuǎn)換時間上的顯著優(yōu)勢。
開機(jī)時對傳感器的初始化設(shè)計(jì)為逐路初始化的方式。溫度采集系統(tǒng)逐路初始化的方式可以有效避免大電流,提高系統(tǒng)的穩(wěn)定性。這種設(shè)計(jì)在開機(jī)時刻有一些時間損失,進(jìn)入采集循環(huán)后就沒有影響了。
3.1 USB接口電路的設(shè)計(jì)
USB接口是數(shù)據(jù)采集系統(tǒng)的核心之一,本次設(shè)計(jì)選擇內(nèi)置USB控制器的ARM系列LPC2142構(gòu)造接口電路,LPC2142提供2 kB的端點(diǎn)RAM供USB2.0全速設(shè)備控制器訪問,USB接口電路如圖3所示。
圖3 USB接口電路
USB接口電路設(shè)計(jì)為從機(jī)工作方式:①當(dāng)USB總線未連接時,LPC2142通過置P0.31引腳為高電平,使3.3 V電壓直接加至USB的信號輸入端,從而提高USB接口信號線的抗干擾能力;②接入指示:LPC2142的P0.23接至USB +5 V端,當(dāng)USB總線通過接口電路與PC機(jī)連接時,P0.23為高電平,通知LPC2142“USB總線接通”;③單片機(jī)處理USB中斷并置P0.31引腳為低電平,點(diǎn)亮LED指示燈,表示USB已接入,可以進(jìn)行數(shù)據(jù)通信。
3.2 USB通信模型
USB通信系統(tǒng)包括“USB主機(jī)”、“USB從機(jī)”以及“USB互連”三個部分。USB接口電路設(shè)計(jì)為從機(jī)工作模式,LPC2142的MCU為USB主機(jī),通信過程架構(gòu)在USB主機(jī)數(shù)據(jù)緩沖區(qū)和USB端點(diǎn)之上[3]。LPC2142USB支持32個物理端點(diǎn)(16個邏輯端點(diǎn)),端點(diǎn)的類型及方向是固定的,一個邏輯端點(diǎn)對應(yīng)于兩個物理端點(diǎn),部分端點(diǎn)配置見表1。
溫度采集系統(tǒng)需要配置兩個不同的邏輯端點(diǎn),一個用于接收并判斷USB主機(jī)發(fā)送指令,另一個用于存儲并發(fā)送USB從機(jī)的溫度數(shù)據(jù)??紤]到同步端點(diǎn)類型對數(shù)據(jù)收發(fā)的及時性較高,選擇邏輯3端點(diǎn)作為USB從機(jī)對主機(jī)的響應(yīng)端點(diǎn),同時,由于邏輯2端點(diǎn)具有雙緩沖,可以在USB主機(jī)IN令牌到達(dá)之前存儲數(shù)據(jù),且其數(shù)據(jù)包長度支持表示14路溫度信息。本次設(shè)計(jì)選用邏輯2端點(diǎn)作為USB從機(jī)向主機(jī)發(fā)送數(shù)據(jù)的端點(diǎn)。
表1 LPC2142USB端點(diǎn)配置
在ADS1.2環(huán)境下,USB從機(jī)可以通過固件程序操作端點(diǎn),完成數(shù)據(jù)傳輸過程,通信模型如圖4所示。
圖4 系統(tǒng)通信模型
圖4中,當(dāng)USB主機(jī)從USB從機(jī)接收溫度數(shù)據(jù)時,必須完成以下過程:①USB主機(jī)向USB從機(jī)發(fā)送IN令牌;②USB設(shè)備控制器將IN緩沖區(qū)中的溫度數(shù)據(jù)發(fā)送到USB主機(jī);③主機(jī)收到IN緩沖區(qū)發(fā)來的數(shù)據(jù)后,發(fā)送ACK令牌作為應(yīng)答;④USB設(shè)備控制器收到ACK令牌,向MCU發(fā)送中斷請求,置相應(yīng)軟件標(biāo)志位為1,告知MCU溫度數(shù)據(jù)發(fā)送成功。在USB主機(jī)安裝設(shè)備驅(qū)動程序后,即可通過軟件操作完成USB主從機(jī)的數(shù)據(jù)通信[4]。
4.1 溫度采集系統(tǒng)軟件設(shè)計(jì)
當(dāng)以LPC2142為核心的溫度采集系統(tǒng)置于多點(diǎn)測溫環(huán)境下時,控制器嚴(yán)格按照DS18B20的溫度采集時序控制多路傳感器進(jìn)行溫度測量,采集系統(tǒng)軟件設(shè)計(jì)流程如圖5所示。
DS18B20在上電時會產(chǎn)生85℃的溫度讀數(shù),即通常所說的“85”現(xiàn)象?,F(xiàn)象產(chǎn)生最根本的原因是時序的不匹配,一種是DS18B20與USB傳輸時序不匹配,另一種是DS18B20與單片機(jī)時序不匹配。本次軟件設(shè)計(jì)是通過空讀一遍傳感器數(shù)據(jù)忽略85℃的讀數(shù),再次讀取溫度傳感器數(shù)據(jù)時即為正常溫度。這種方式可以用最少的軟硬件資源解決“85”問題,具有極強(qiáng)的實(shí)用性。
圖5 溫度采集系統(tǒng)軟件流程圖
4.2 通信軟件設(shè)計(jì)
溫度采集系統(tǒng)USB主從機(jī)間的通信設(shè)計(jì)為如下兩個步驟:(1)USB主機(jī)發(fā)送指令1,USB從機(jī)判斷是否為指令“F0F0”,如果是,應(yīng)答“e0”,表示通信過程建立;(2)USB主機(jī)發(fā)送指令2,USB從機(jī)判斷是否為指令“F1F1”,如果是,應(yīng)答“e1”,并通過調(diào)用LPC2142動態(tài)庫中的API函數(shù)訪問相應(yīng)端點(diǎn),將14路溫度數(shù)據(jù)送入USB主機(jī)。軟件設(shè)計(jì)流程圖如圖6所示。
圖6 通信軟件流程圖
試驗(yàn)時,僅在14路傳感器接口中單數(shù)位置接入溫度傳感器,通過C語言編寫上位機(jī)測試軟件,運(yùn)行結(jié)果如圖7所示。為保證溫度測量精度,數(shù)組中溫度存儲數(shù)據(jù)為實(shí)際溫度值的10倍,存儲順序?yàn)橄鹊妥止?jié)后高字節(jié),對于無溫度傳感器接入的端口設(shè)計(jì)為-990℃的溫度輸入。從圖7中可以看出,測試系統(tǒng)可以有效完成指令判別和溫度數(shù)據(jù)測量發(fā)送功能。
圖7 溫度測量結(jié)果
本次設(shè)計(jì)的溫度采集系統(tǒng)綜合利用多點(diǎn)測量技術(shù)和USB通信技術(shù),實(shí)現(xiàn)了溫度的采集、處理和通信功能,可用于-55~+125℃環(huán)境下多路溫度測量。測試結(jié)果表明,該系統(tǒng)實(shí)時性好,具有較高的穩(wěn)定性和測量精度,并且操作簡便,克服了已有溫度測試儀器的不足,故具有廣泛的應(yīng)用前景。
[1]張軍.智能溫度傳感器DS18B20及其應(yīng)用[J].儀表技術(shù),2010(4):68-70.
ZHANG Jun. Smart temperature sensor ds18b20 and its application[J]. Instrumentation Technology, 2010(4): 68-70.
[2]楊久河.基于DS18B20的多點(diǎn)式無線溫度測量儀的設(shè)計(jì)與實(shí)現(xiàn)[D].青島:中國海洋大學(xué),2010.
[3]王榮.基于USB接口的溫度采集系統(tǒng)研究[D].西安:中國人民解放軍第四軍醫(yī)大學(xué),2007.
[4]劉宇.基于USB通信協(xié)議的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[D].哈爾濱:哈爾濱工程大學(xué),2013.
(本文編輯:楊林青)
Design of Multi-Channel Temperature Acquisition System Based on USB Interface
SUN Yu,ZHANG Yue,CHEN Jin-cao
(School of Energy and Power Engineering,Nanjing University of Science and Technology, Nanjing 210094, China)
This paper proposes a temperature acquisition system in order to solve the limitations of measuring range and operation. Two main technical features are multi-point measurement and uploading temperature data by the USB interface. This paper introduces the scheme of multi-point temperature parallel measurement based on ARM GPIO. Moreover, it designs the related softwares and hardwares, and verifies the superiority in time of parallel acquisition program. Moreover, it proposes a new solution to "85′′ phenomenon of DS18B20, discusses the mechanism of USB communication management, and designs the logical nodes access program. The designed system can effectively complete the multi-point temperature measurement and USB communication, valuable in popularization and application.
temperature acquisition; parallel measurement; USB communication
10.11973/dlyny201701012
孫 瑜(1993-),女,碩士研究生,主要研究方向?yàn)殡娏﹄娮优c電力傳動、嵌入式方面的開發(fā)。
TP212.9
A
2095-1256(2017)01-0050-04
2016-11-23