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