數字溫溫度記錄儀中的USB主機設計
關(guān)鍵詞 數字溫濕度傳感器HygroClip USB主機MSP430F1611
引 言
在USB拓撲結構中PC機扮演著(zhù)核心作用,沒(méi)有PC機的參與,USB設備將無(wú)用武之地;但隨著(zhù)USB-OTG規范的提出和USB主機接口芯片的產(chǎn)出,USB主機逐漸應用到各種場(chǎng)合中,如數碼伴侶、打印機等。目前,大多數的溫濕度記錄儀都是通過(guò)單片機的A/D模塊多次采樣.經(jīng)過(guò)軟件濾波,得到一個(gè)均值,然后再通過(guò)模擬傳感器的數據校正表?yè)Q算出實(shí)際的溫濕度,而且都是通過(guò)串口與上位機進(jìn)行通信,上位機需要編寫(xiě)一個(gè)數據分析軟件來(lái)設置記錄儀的工作模式,并對記錄的歷史數據進(jìn)行分析與處理。根據對以往記錄儀的分析和對USB-OTG技術(shù)的深入研究,提出了數字溫濕度記錄儀系統中USB主機設計的實(shí)現方案。將USB主機嵌入到數字溫濕度記錄儀系統中,把對記錄儀的設置預先寫(xiě)到USB磁盤(pán)上,再將USB磁盤(pán)插到記錄儀上,分別按下讀/寫(xiě)按鍵,記錄儀分別完成讀取磁盤(pán)上的配置和將記錄數據寫(xiě)到USB磁盤(pán)上。下面詳細分析其硬件設計和軟件實(shí)現過(guò)程。
1 硬件設計
記錄儀系統硬件結構如圖1所示。該系統主要完成采集、顯示和記錄數據,并驅動(dòng)USB磁盤(pán),在單片機上實(shí)現讀寫(xiě)USB磁盤(pán)功能。整個(gè)系統硬件主要由一個(gè)主控芯片、數字溫濕度傳感器、USB主機接口芯片、E2PROM、LCD液晶顯示器等構成。系統由電池供電,無(wú)論是硬件設計還是軟件編程都要考慮功耗問(wèn)題,所以主控芯片選用超低功耗的MSP430F1611單片機,結合軟件編程能延長(cháng)電池壽命。數字溫濕度傳感器選用的是Rotronic公司的HygroC1ip,USB主機芯片選用Philips公司的ISPl362。
1.1 數字溫濕度傳感器HygroClip
HygroClip是一種數字溫濕度傳感器,具有5根線(xiàn):電源、地、溫度輸出、濕度輸出、數字輸入/輸出。供電電壓需要5 V,而整個(gè)系統的工作電壓小于5 V,所以要外加有使能端輸出為5V的升壓器,使能端由MSP430F1611的普通I/O口控制,這樣可以有選擇地使傳感器工作,有利于降低系統功耗。傳感器主要由AIRCHIP2000和Micro-Controller/E2PROM兩部分構成。AIRcHIP2000中的集成電路負責測量溫濕度,并將它們轉換為數字量;D/A轉換器將MicroController發(fā)出的數據轉為模擬輸出。MicroController根據數字量算出溫濕度的實(shí)際值,通過(guò)數字輸出線(xiàn)發(fā)送到MSP430F16ll中。E2PROM用來(lái)保存校正數據、傳感器數據等。HygroClip與MSP430F1611傳輸數據通過(guò)數據輸入/輸出線(xiàn)來(lái)完成,所以是一位一位地發(fā)送數據,發(fā)送8位代表發(fā)完1個(gè)字節,有點(diǎn)類(lèi)似于串口通信協(xié)議。串口通信協(xié)議規定如下:先發(fā)送同步頭,當HygroC1ip接入系統3秒鐘后,自動(dòng)進(jìn)入發(fā)送溫濕度數據狀態(tài),單片機檢測到其下降沿中斷,然后開(kāi)啟上升沿中斷,啟動(dòng)定時(shí)器計數,計算進(jìn)入上升沿中斷的時(shí)間。若在800μs左右,表示可能是同步頭,此時(shí)開(kāi)下降沿中斷,并重計定時(shí)器的時(shí)間。若在4700μs左右,則表示抓到同步頭。該下降沿標志著(zhù)第一位發(fā)送數據的開(kāi)始,經(jīng)過(guò)200μs查看接收位的狀態(tài),為“1”表示收到的是“1”,為“0”表示收到的就是“0”。其數字輸入/輸出引腳的波形如圖2所示。
1.2 ISPl362簡(jiǎn)介
ISPl362是Philips公司推出的USB芯片。它在單芯片上集成了OTG控制器、主機控制器、設備控制器、USB收發(fā)器、OTG收發(fā)器和緩存器等。OTG控制器完全兼容USB2.0及On-The-Go Supplement 1.0協(xié)議,支持OTG標準要求的所有功能。在OTG模式下工作時(shí),可通過(guò)主機通信協(xié)議HNP實(shí)現主機和外設兩種功能的轉化,并支持對話(huà)請求協(xié)議SNP。主機和設備控制器遵守USB2.O協(xié)議,支持1.5 Mb/s的低速傳輸和12 Mb/s的全速傳輸。當作為設備控制器時(shí),具有兩個(gè)控制端點(diǎn),且能利用14個(gè)端點(diǎn)進(jìn)行四種傳輸類(lèi)型的任意類(lèi)型。ISP1362還集成了計時(shí)器及支持OTG功能所需要的模擬元件,而且內部還有一個(gè)鎖相環(huán)PLL,因此可以選用12MHz的晶振,既降低了成本,又降低了EMI。ISP1362支持內置電源供電及外部電源供電兩種模式。對于較低功耗的應用設計,可用內部集成的電荷泵激勵器;而如果應用系統的功耗較高,則要用外部電源供電。ISPl362還提供2個(gè)USB端口。端口1可進(jìn)行軟件配置,并可用作下行、上行OTG端口。作為OTG端口,端口1可在主機或外設模式下工作,并可通過(guò)HNP或布線(xiàn)變化來(lái)動(dòng)態(tài)轉換角色。端口2只用作下行傳輸。ISPl362的接口電路如圖3所示。
1.3 MSP430F1611簡(jiǎn)介
MSP430F1611是TI公司推出的一款16位超低功耗單片機,工作電源電壓為1.8~3.6 V,可用電池工作,而且可以有很長(cháng)的使用時(shí)間;具有16位RISC結構,CPU中的16個(gè)寄存器和常數發(fā)生器使MSP430微控制器能達到最高的代碼效率;靈活的時(shí)鐘源可以使器件達到最低的功耗;具有5種省電模式,在lMHz的時(shí)鐘條件下運行,耗電電流(0.1~400 μA)因不同的工作模式而不同;數字控制振蕩器(DCO)可使器件從低功耗模式迅速喚醒,在少于6μs的時(shí)間內激活到活躍的工作方式;支持串行在系統編程和安全熔絲的程序代碼保護,內部具有10KB容量的RAM,可以存放大容量中間數據和變量。
2 軟件設計
整個(gè)系統軟件分為用戶(hù)程序和uSB主機軟件兩部分,USB主機軟件為用戶(hù)程序提供軟件接口。當記錄儀需要讀寫(xiě)USB磁盤(pán)時(shí),調用接口發(fā)送讀寫(xiě)命令即可實(shí)現。用戶(hù)程序集成初始化、采集、顯示、記錄等子程序。初始化單片機與其外圍模塊;采集程序負責將數字溫濕度傳感器的脈沖輸入轉換為溫濕度的值;顯示程序則將采集到的數據通過(guò)液晶顯示器顯示出來(lái),顯示頻率可以設置;記錄程序將采集的數據寫(xiě)到F2PROM保存,掉電不丟失,從而要通過(guò)I/O口模擬I2C協(xié)議實(shí)現讀寫(xiě)32PROM,USB主機軟件集成USB主機控制器驅動(dòng)程序(HCD)、USB驅動(dòng)程序(USBD)和MassStorage類(lèi)驅動(dòng)程序。HCD負責完成對USB主機控制器ISPl362配置和工作管理,通過(guò)數據線(xiàn)上的電平變化檢測到USB設備的接入和拔出,如ISPl362的初始化、設置ISPl362的寄存器實(shí)現鏈路級數據傳輸等。USBD是整個(gè)主機軟件的核心部分,相當于PC機上USB主機的核心驅動(dòng)程序,按照USB協(xié)議合理調用HCD來(lái)獲取設備、配置、接口及端點(diǎn)描述符,然后對USB設備設置地址并與之通信,從而識別并判斷USB設備是否屬于Mass Storage類(lèi)。Mass Storage類(lèi)驅動(dòng)程序包括Bulk_Only傳輸協(xié)議的實(shí)現以及在協(xié)議實(shí)現的基礎上發(fā)送特定的請求命令,進(jìn)而對USB磁盤(pán)上的F1ash進(jìn)行讀和寫(xiě),從USB磁盤(pán)上讀取對記錄儀的配置,并將記錄儀保存的數據寫(xiě)到USB磁盤(pán)上供上位機分析處理。
為了將系統的功耗降到最低,僅僅在硬件設計上考慮是遠遠不夠的,還需要設計低功耗的軟件來(lái)配合硬件工作,才能達到理想的目標。在本系統中,為了降低功耗,將用戶(hù)程序和USB主機軟件進(jìn)行整理和優(yōu)化,分成主程序、看門(mén)狗中斷子程序和USB主機程序三大模塊。主程序負責初始化、開(kāi)中斷后進(jìn)入低功耗工作模式,然后一直等待中斷,看門(mén)狗中斷程序負責采集數據、顯示數據、保存數據等功能,因為記錄儀需要不斷的采集、顯示和保存,所以要周期性地進(jìn)入中斷。采集、顯示和保存這三個(gè)事件不是同步的,每次進(jìn)入中斷后都會(huì )采集數據,但是達到顯示和保存條件之后分別進(jìn)入相應的處理,而且顯示和保存的時(shí)間參數是通過(guò)USB磁盤(pán)配置得到的,可以更改。讀寫(xiě)中斷子程序負責判斷按鍵類(lèi)型,在Mass Storage類(lèi)驅動(dòng)程序基礎上建立一個(gè)FAT文件系統,支持FATl6/FAT32兩種文件格式,以文件的形式統一管理USB磁盤(pán)上的內容。各個(gè)程序流程如圖4至圖6所示。
3 結論
將USB主機應用到數字溫濕度記錄儀系統中;使用數字傳感器可大大提高記錄的精度,記錄儀通過(guò)USB磁盤(pán)就可上傳配置和下載數據,可去除對PC機的依賴(lài),擴大應用范圍,具有很好的擴展性;使用超低功耗單片機大大降低系統的功率,延長(cháng)電池的壽命。
評論