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