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