基于USB串口多點(diǎn)溫度采集系統(tǒng)的設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
在科研實(shí)驗(yàn)、大棚蔬菜種植、各種動(dòng)物養(yǎng)殖及衛(wèi)生醫(yī)療等場(chǎng)合經(jīng)常要用到多點(diǎn)溫度采集系統(tǒng)。利用PC機(jī)將采集到的多點(diǎn)溫度進(jìn)行分析處理是非常方便的,目前PC機(jī)的數(shù)據(jù)接口最方便的就是通用串行總線USB。USB總線具有連接方便,無需外接電源,即插即用,支持熱插拔,動(dòng)態(tài)加載驅(qū)動(dòng)程序等特有優(yōu)點(diǎn),在主機(jī)和數(shù)據(jù)采集系統(tǒng)之間可以實(shí)現(xiàn)簡(jiǎn)單、快捷、可靠的連接和通訊。在測(cè)試設(shè)備與計(jì)算機(jī)之間建立有效、靈活、低功耗、可靠的通訊方式。實(shí)現(xiàn)測(cè)試儀器高速、便捷、網(wǎng)絡(luò)化是當(dāng)今儀器發(fā)展的一個(gè)重要方向。所以,基于USB總線的多點(diǎn)溫度采集系統(tǒng)是一種非常實(shí)用的溫度采集方式。
2 USB串口溫度采集系統(tǒng)
一個(gè)實(shí)用的USB溫度采集系統(tǒng)包括溫度數(shù)據(jù)采集器、微控制器以及USB通信接口。為了擴(kuò)展其用途,還可以加上多路模擬開關(guān)和數(shù)字I/0端口。設(shè)計(jì)選用南京信恒公司生產(chǎn)的USB通信接口器件CH372。由于該器件功能強(qiáng),體積小,價(jià)格低,應(yīng)用方便,在一定層次上簡(jiǎn)化了溫度采集系統(tǒng)的工作量,并降低了成本。其主要設(shè)計(jì)原理是:將不斷變化的多個(gè)外界溫度模擬量通過數(shù)字溫度傳感器陣列DSl8820轉(zhuǎn)換而變成單片機(jī)能夠處理的數(shù)字量,AT89S52對(duì)轉(zhuǎn)換后的數(shù)據(jù)做相應(yīng)的處理。由USB接口電纜與PC主機(jī)組成數(shù)據(jù)處理平臺(tái),用來將實(shí)時(shí)采集到的溫度數(shù)據(jù)高速回送到計(jì)算機(jī)之中,形成原始數(shù)據(jù)文件,為后續(xù)數(shù)據(jù)處理做準(zhǔn)備。圖1為該溫度采集系統(tǒng)原理框圖。
3 溫度采集系統(tǒng)方案實(shí)現(xiàn)
USB溫度采集系統(tǒng)從功能上劃分為溫度采集模塊,USB接口模塊和PC主機(jī)客戶應(yīng)用程序模塊3部分。
(1)USB接口模塊采用集成度高、功能較強(qiáng)USB專用接口器件CH372,簡(jiǎn)化程序設(shè)計(jì)工作量,使得整個(gè)溫度采集系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,可靠性高。
(2)溫度采集模塊 由數(shù)字溫度傳感器DSl8820陣列和微控制器組成。DSl8820能直接讀出被測(cè)溫度并且可根據(jù)實(shí)際要求通過簡(jiǎn)單的編程實(shí)現(xiàn)9~12位的數(shù)字值讀數(shù)方式。
(3)PC主機(jī)客戶應(yīng)用程序模塊 用戶應(yīng)用程序負(fù)責(zé)接收和存儲(chǔ)USB設(shè)備采集來的溫度數(shù)據(jù)。通過顯示器把采集出的溫度數(shù)據(jù)顯示出來,并根據(jù)需要進(jìn)行后續(xù)處理。
4 系統(tǒng)硬件電路設(shè)計(jì)
多點(diǎn)溫度采集系統(tǒng)設(shè)計(jì)一方面是探索自主開發(fā)技術(shù),更重要的是使所研究的溫度采集器具有更好的靈活性,以滿足不同的應(yīng)用需求。系統(tǒng)硬件設(shè)計(jì)的關(guān)鍵是溫度采集信號(hào)電路與單片機(jī)接口電路的設(shè)計(jì)。
4.1 USB接口芯片與上位機(jī)的接口電路
在設(shè)計(jì)中采用USB接口器件CH372,它有兩種型號(hào):CH372A為5 V電源電壓,CH372V為3.3 V電源電壓。CH372是一個(gè)USB總線的通用設(shè)備接口器件。在本地端,CH372具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出,可以方便地掛接到單片機(jī)的系統(tǒng)總線上;在計(jì)算機(jī)系統(tǒng)中,CH372的配套軟件提供了簡(jiǎn)潔易用的操作接口,與本地端的單片機(jī)通訊就如同讀寫文件。CH372內(nèi)置了USB通訊中的底層協(xié)議.具有省事的內(nèi)置固件模式和靈活的外置固件模式。在內(nèi)置同件模式下,CH372自動(dòng)處理默認(rèn)端點(diǎn)O的所有事務(wù),本地端單片機(jī)只要負(fù)責(zé)數(shù)據(jù)交換,所以單片機(jī)程序非常簡(jiǎn)潔。在外置同件模式下,由外部單片機(jī)根據(jù)需要自行處理各種USB請(qǐng)求,從而可以實(shí)現(xiàn)符合各種USB類規(guī)范的設(shè)備。圖2為CH372連接原理圖。
CH372控制器的主要特點(diǎn)如下:
①支持全速設(shè)備接口,兼容USB2.0規(guī)范,即插即用,外同元器件只需要晶體和電容。
②提供一對(duì)主端點(diǎn)和一對(duì)輔助端點(diǎn),支持控制傳輸、批量傳輸、中斷傳輸。
③具有8位數(shù)據(jù)總線和讀、寫、片選控制線以及中斷輸出.可以方便的掛接到單片機(jī)等控制器的系統(tǒng)總線上。
④內(nèi)置了USB通訊中的底層協(xié)議,具有省事的內(nèi)置固件模式和靈活的外置固件模式。在內(nèi)置固件模式下,CH372自動(dòng)處理默認(rèn)端點(diǎn)0的所有事務(wù),自動(dòng)完成標(biāo)準(zhǔn)的USB枚舉配置過程,本地端單片機(jī)只要負(fù)責(zé)數(shù)據(jù)交換,所以單片機(jī)程序非常簡(jiǎn)潔。
USB器件與上位機(jī)接口電路原理圖如圖3所示,P1是USB總線接口,USB總線包括一對(duì)5 V電源線和一對(duì)數(shù)據(jù)信號(hào)線。USB總線提供的電源電流最大可以達(dá)到500 mA。選電阻R,用于在電源斷電后將電解電容C5中的電能及時(shí)釋放掉,使VCC及時(shí)下降到0 V,確保在下次通電時(shí)CH372能夠可靠的上電復(fù)位。電容C3用于CH372內(nèi)部電源節(jié)點(diǎn)退耦,C3是容量為0.01μ F的高頻瓷片電容。電容C4用于外部電源退耦,C4是容量為O.1μF的獨(dú)石或高頻瓷片電容。晶體Xl、電容C2和C1用于CH372的時(shí)鐘振蕩電路。
4.2 USB接口器件與單片機(jī)接口電路
CH372具有通用的被動(dòng)并行接口,可以直接連接AT89S52。在設(shè)計(jì)應(yīng)用電路中,CH372可以通過8位被動(dòng)并行接口的D7~DO、RD、WR、CS、A0直接掛接到單片機(jī)U2的系統(tǒng)總線上.如圖3所示。
4.3 USB串口溫度采集系統(tǒng)總體原理
在設(shè)計(jì)中,采用數(shù)字溫度傳感器DSl8820實(shí)現(xiàn)溫度采集。DSl8820是DALLAS公司生產(chǎn)的基于串行接口的一線式數(shù)字溫度傳感器,它是將半導(dǎo)體溫敏器件、A/D轉(zhuǎn)換器、存儲(chǔ)器等做在一個(gè)很小的集成電路芯片上,傳感器直接輸出的就是溫度信號(hào)數(shù)字值。DSl8820具有如下特性:
①采用單總線技術(shù),與單片機(jī)通信只需要一根I/0線,在一根線上可掛接多個(gè)DSl8820。
②低壓供電,電源范圍3~5V,可以本地供電,也可以直接從數(shù)據(jù)線上竊取電源(寄生式供電)。
③每只DSl8820具有一個(gè)獨(dú)立的、不可修改的64位序列號(hào),根據(jù)序列號(hào)可以訪問對(duì)應(yīng)的器件。
④測(cè)溫范圍為一55℃~+125℃,在一10℃~85℃范圍內(nèi)誤差為±0.5℃。
⑤可編程數(shù)據(jù)為9~12位,其轉(zhuǎn)換12位的溫度時(shí)間為750 ms(最大)。
⑥D(zhuǎn)Sl8820可將檢測(cè)到的溫度值直接轉(zhuǎn)化成數(shù)字量,并通過串行通信的方式與主控制器進(jìn)行數(shù)據(jù)通信。
由數(shù)字溫度傳感器DSl8820的特性可知,在它采集模擬溫度信號(hào)并與單片機(jī)進(jìn)行通信時(shí),只需要一根I/0線與單片機(jī)AT89S52的P口連接,而在一根線上可以掛接多個(gè)數(shù)字溫度傳感器DSl8820,可以測(cè)出不同地點(diǎn)的溫度數(shù)據(jù),從而實(shí)現(xiàn)了溫度的多點(diǎn)采集。USB串口多點(diǎn)溫度采集系統(tǒng)其中的一路原理圖見圖3所示。
5 系統(tǒng)軟件設(shè)計(jì)
USB溫度采集系統(tǒng)的軟件部分包括3個(gè)方面:?jiǎn)纹瑱C(jī)中的固件程序,設(shè)備驅(qū)動(dòng)程序,和主機(jī)上的應(yīng)用程序。整個(gè)軟件系統(tǒng)的組成如圖4所示。
5.1 固件程序
在外置固件模式下,由外部單片機(jī)根據(jù)需要自行處理各種USB請(qǐng)求,從而可以實(shí)現(xiàn)符合各種USB類規(guī)范的設(shè)備。CH372初始化程序流程圖如圖5所示。
5.2 設(shè)備驅(qū)動(dòng)程序
USB驅(qū)動(dòng)程序可以采用WDM(Windows Driver Mode)模式設(shè)計(jì)。WDM驅(qū)動(dòng)程序采用靈活的分層驅(qū)動(dòng)方法,在用戶和物理設(shè)備之間存在著幾個(gè)不同的驅(qū)動(dòng)程序?qū)哟危腋鲗由系腤DM驅(qū)動(dòng)程序具有不同優(yōu)先級(jí)。利用WDM設(shè)計(jì)的驅(qū)動(dòng)程序可根據(jù)用戶的需要調(diào)整,靈活性好,但需要了解操作系統(tǒng)原理及相關(guān)硬件工作細(xì)節(jié),而且工作量較大。設(shè)計(jì)采用南京信恒公司的通用驅(qū)動(dòng)程序,直接下載后安裝即可。
5.3 應(yīng)用程序
應(yīng)用程序的設(shè)計(jì)可根據(jù)用戶的需求進(jìn)行適當(dāng)調(diào)整,溫度采集系統(tǒng)提供了一個(gè)通用的上位機(jī)應(yīng)用程序,將采集來的溫度值直接顯示到電腦屏幕上。應(yīng)用層接口是由CH372動(dòng)態(tài)鏈接庫DLL提供的面向功能應(yīng)用的API,所有API在調(diào)用后都有操作狀態(tài)返回,但不一定有應(yīng)答數(shù)據(jù)。CH372動(dòng)態(tài)鏈接庫提供的API包括:設(shè)備管理API、數(shù)據(jù)傳輸API和中斷處理API。CH372與計(jì)算機(jī)連接的上位機(jī)總體程序流程圖如圖6所示。
5.4 DSl8820溫度采集子程序
系統(tǒng)程序設(shè)計(jì)的關(guān)鍵在于數(shù)字傳感器DSl8820與單片機(jī)之間的“單總線”傳輸軟件的編寫和單片機(jī)與PC機(jī)之間USB串行通信軟件的編寫。從機(jī)使用C語言編程,完成單片機(jī)對(duì)DSl8820的溫度采集和單片機(jī)與USB接口通信。單片機(jī)對(duì)DS18820的溫度采集流程圖如圖7所示。
6 結(jié)語
設(shè)計(jì)的基于USB串口的多點(diǎn)溫度采集系統(tǒng)。硬件電路十分簡(jiǎn)單,而且安裝方便,即插即用,有很好的可靠性和穩(wěn)定性,可廣泛應(yīng)用于生產(chǎn)車間、糧倉、各種大棚、大型商場(chǎng)及賓館等場(chǎng)所的多點(diǎn)溫度檢測(cè)與控制。創(chuàng)新點(diǎn):使用數(shù)字溫度傳感器DSl8820簡(jiǎn)化了測(cè)溫器件與單片機(jī)的接口電路,從而使硬件電路體積小、連接方便,具有速度快、可靠性高、性價(jià)比好、應(yīng)用性強(qiáng)等特點(diǎn)。