• <rt id="yiquk"><tbody id="yiquk"></tbody></rt>
    <table id="yiquk"><tbody id="yiquk"></tbody></table>
  • <kbd id="yiquk"></kbd>
    <cite id="yiquk"></cite>
    • <bdo id="yiquk"><source id="yiquk"></source></bdo>
    • <samp id="yiquk"></samp>
      <abbr id="yiquk"></abbr>
      <button id="yiquk"></button>
    • <table id="yiquk"><source id="yiquk"></source></table>
      <bdo id="yiquk"><tbody id="yiquk"></tbody></bdo>
      首頁(yè) 公司簡(jiǎn)介 產(chǎn)品目錄 公司新聞 技術(shù)文章 資料下載 聯(lián)系我們
      產(chǎn)品目錄
      • 溫濕度變送器
      • 溫度傳感器
      • 溫度變送器
      • 一體化溫度變送器
      • 智能隔離變送器
      • 壓力傳感器
      • 壓力變送器
      • 液位傳感器
      • 液位變送器
      • 液位計(jì)
      • 自控儀表
      聯(lián)系我們
      聯(lián)系人:張先生
      聯(lián)系電話:010-62230011
      傳真:010-62230033
      地址:北京西直門北大街32號(hào)楓藍(lán)國(guó)際A座1711
      Email:
      郵編:100082
      公司網(wǎng)址:http://www.bjsailing.com.cn/
      技術(shù)文章
      首頁(yè) >>> 技術(shù)文章

      基于ARM7和數(shù)字溫度傳感器的多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)

      基于ARM7和數(shù)字溫度傳感器的多點(diǎn)測(cè)溫系統(tǒng)設(shè)計(jì)

      0 引言

      溫度檢測(cè)是現(xiàn)代檢測(cè)技術(shù)的重要組成部分,在保證產(chǎn)品質(zhì)量、節(jié)約能源和**生產(chǎn)等方面起著關(guān)鍵的作用。傳統(tǒng)的溫度檢測(cè)是基于模擬傳感,模擬信號(hào)易受干擾,不穩(wěn)定,價(jià)格高,體積大。隨著科學(xué)技術(shù)的發(fā)展,由單片集成電路構(gòu)成的溫度傳感器的種類越來(lái)越多,測(cè)量的精度越來(lái)越高,數(shù)字溫度傳感器具有價(jià)格低、高精度、適用微型封裝、能工作在寬溫度范圍內(nèi)等優(yōu)點(diǎn)。在很多應(yīng)用中,數(shù)字溫度傳感器正開始替代傳統(tǒng)的模擬溫度傳感器,如DSl8B20、DS18B21和DS16B20等。本文提出了一種基于DSl8B20數(shù)字化傳感器的溫度采集系統(tǒng)。

      1 系統(tǒng)硬件設(shè)計(jì)

      GP

      I

      O

       

       

       

       

      LPC2114

       

      IIC

      模擬總線

      CH375

      LCD

      USB接口

      DS18B20(2)

      DS18B20(1)

      DS18B20(n)

      鍵盤

      上

      位

      機(jī)

      E2PROM

      …

      電源

      JTAG

      復(fù)位

      圖1 系統(tǒng)結(jié)構(gòu)框圖

      多點(diǎn)測(cè)溫系統(tǒng)通過(guò)鍵盤設(shè)置,利用數(shù)字溫度傳感器DS18B20檢測(cè)不同環(huán)境、不同要求下的個(gè)點(diǎn)或多點(diǎn)的溫度,然后LPC2114讀取溫度值,通過(guò)USB接口將數(shù)據(jù)傳輸給上位機(jī),在上位機(jī)的顯示界面上顯示,以提示相關(guān)人員對(duì)所檢測(cè)的環(huán)境作出相應(yīng)措施。

      本系統(tǒng)分為ARM處理器模塊、LCD顯示鍵盤設(shè)置模塊、n個(gè)DS18B20組成的測(cè)溫模塊、USB 通行模塊組成。本系統(tǒng)結(jié)構(gòu)見圖1。

      1.1 LPC2114處理器模塊

      ARM處理器包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、Intel的Xscale、StrongARM等幾個(gè)系列[1]。總共有30家半導(dǎo)體公司與ARM簽訂了硬件技術(shù)使用許可協(xié)議,其中包括Intel、IBM、LG半導(dǎo)體、NEC、SONY、PHILIPS和國(guó)家半導(dǎo)體這樣的大公司[2]。

      本系統(tǒng)選用Philips公司的ARM7TDMI-S核ARM微處理器LPC2114。這款處理器由較小的64引腳了LQFP封裝,極低的功耗和極小的體積。它具有16KB靜態(tài)RAM、128KB片內(nèi)Flash、4路10位ADC、多個(gè)內(nèi)部中斷、2個(gè)32位定時(shí)器、6路輸出的PWM單元等片上資源,所以特別適用于工業(yè)控制和醫(yī)療系統(tǒng)等。本設(shè)計(jì)選用它,能夠滿足小型化、低功耗、低成本的要求。

      1.2 溫度檢測(cè)模塊

      DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,主要由4部分組成:64位ROM、溫度傳感器、高低溫度報(bào)警觸發(fā)器TH和TL、配置寄存器[3]。與其它溫度傳感器相比,它具有以下特性:

      (1)具有3引腳TO-92小體積封裝形式;

      (2)溫度測(cè)量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測(cè)溫分辨率可達(dá)0.0625℃,被測(cè)溫度用符號(hào)擴(kuò)展的16位數(shù)字量方式串行輸出;

      (3)其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;

      (4) 多個(gè)DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點(diǎn)使DS18B20非常適用于遠(yuǎn)距離多點(diǎn)溫度檢測(cè)系統(tǒng)。

      1.3 鍵盤設(shè)置模塊

      DS18B20 具有一個(gè)配置寄存器,為了滿足測(cè)溫的靈活性以及出于**性的考慮,需要在不同的場(chǎng)合根據(jù)不同的需要對(duì)這幾個(gè)寄存器進(jìn)行配置。R1、R0決定溫度轉(zhuǎn)換的精度位數(shù):R1R0=“00”,9位精度,*大轉(zhuǎn)換時(shí)間為93.75ms;R1R0=“01”,10位精度,*大轉(zhuǎn)換時(shí)間為187.5ms;R1R0=“10”,11位精度,*大轉(zhuǎn)換時(shí)間為375ms;R1R0=“11”,12位精度,*大轉(zhuǎn)換時(shí)間為750ms;未編程時(shí)默認(rèn)為12位精度??梢愿鶕?jù)不同的情況的要求通過(guò)鍵盤操作來(lái)改變精度的位數(shù),以求得在準(zhǔn)確度和轉(zhuǎn)換速度之間的一個(gè)折中點(diǎn)。

      DS18B20還具有兩個(gè)8位的高低溫報(bào)警寄存器TH和TL。通過(guò)設(shè)置報(bào)警的臨界值確定被測(cè)對(duì)象是否在要求的溫度范圍內(nèi),如果超出了警戒溫度則及時(shí)提醒操作者進(jìn)行適當(dāng)?shù)牟僮鳌?span lang="EN-US">

      以上所有這些配置都可以通過(guò)8位鍵盤來(lái)操作,包括兩位數(shù)的精度設(shè)置、3位數(shù)高低溫警戒溫度值得設(shè)定和報(bào)警標(biāo)志的開關(guān)。鍵值功能表見表1。

      表1  8位鍵值功能表

      1

      2

      3

      4

      5

      6

      7

      8

      多點(diǎn)采集

      單點(diǎn)采集

      配置

      確認(rèn)

      百位

      十位

      個(gè)位

      報(bào)警開/關(guān)

      因?yàn)閷?duì)顯示界面要求不高,可用128×64點(diǎn)陣的中文液晶顯示器來(lái)提供,包括當(dāng)前精度設(shè)置、警戒溫度上下限值以及國(guó)警戒溫度的開關(guān)。如果是單點(diǎn)溫度采集,則顯示該點(diǎn)的通道號(hào)以及該通道的當(dāng)前溫度值。軟件部分還通過(guò)液晶顯示器向用戶提供界面友好的中文向?qū)?lái)引導(dǎo)用戶一步步進(jìn)行正確的操作[4]。

      1.4 USB通信模塊

      P0.31    1

      P1.28   27

      P1.24    8

      P1.30    3

      P1.29    4

      P1.23   15

      P1.22   16

      P1.21   17

      P1.20   18

      P1.19   19

      P1.18   20

      P1.17   21

      P1.16   22

      10

      11

      圖2 LPC2114實(shí)現(xiàn)USB總線

       

          D+

          D-

      A0

      D0

      D1

      D2

      D3

      D4

      D5

      D6

      D7

      CH375是南京沁恒研發(fā)的一個(gè)USB總線的通用接口芯片,支持USB-HOST主機(jī)方式和USB-DEVICE/SLAVE設(shè)備方式[5]。全速USB-HOST主機(jī)接口,兼容USB2.0,在本地端,具有8位數(shù)據(jù)總線,讀、寫、片選控制線以及中斷輸出,可以方便地掛接到LPC2114系統(tǒng)總線上。外圍元器件只需晶體和電容,支持5V電源電壓和3.3V電源電壓。主機(jī)端點(diǎn)輸入和輸出緩沖區(qū)各64字節(jié),支持常用的12Mbps全速USB設(shè)備及控制傳輸、批量傳輸、中斷傳輸。自動(dòng)檢測(cè)USB設(shè)備的連接和斷開,提供設(shè)備連接和斷開的時(shí)間通知。內(nèi)置控制傳輸?shù)膮f(xié)議處理器,簡(jiǎn)化常用的控制傳輸。內(nèi)置固件處理Mass-Storage海量存儲(chǔ)設(shè)備的專用通信協(xié)議固件,支持Bulk-Only傳輸協(xié)議,SCSI、UFI、RBC或等效命令集的USB存儲(chǔ)設(shè)備(包括USB硬盤/USB閃存盤/U盤),方便將測(cè)試數(shù)據(jù)存儲(chǔ)在U盤等海量存儲(chǔ)設(shè)備上。同樣,通過(guò)LPC2114的P1[16:31]模擬總線方式,模擬出讀/寫時(shí)序,實(shí)現(xiàn)與上位機(jī)數(shù)據(jù)的高速傳輸。CH375支持USB的控制傳輸、批量傳輸、中斷傳輸。出于即時(shí)性考慮,本系統(tǒng)采用中斷傳輸方式。LPC2114實(shí)現(xiàn)USB總線見圖2。

      2 系統(tǒng)軟件設(shè)計(jì)

      多點(diǎn)測(cè)溫系統(tǒng)的控制系統(tǒng)軟件設(shè)計(jì)主要包括三個(gè)面:先移植嵌入式實(shí)時(shí)多任務(wù)操作系統(tǒng) C/OS-Ⅱ,然后就是采集溫度參數(shù)設(shè)置、DS18B20操作,*后就是LPC2114與上位機(jī)通信接口USB的驅(qū)動(dòng)及上位機(jī)中多路溫度顯示界面。

      2.1 移植 C/OS-Ⅱ內(nèi)核

      C/OS-Ⅱ是一個(gè)完整的,可移植、固化、裁剪的占先式實(shí)時(shí)多任務(wù)內(nèi)核[6]。 C/OS-Ⅱ是用ANSI的C語(yǔ)言編寫的,包含一個(gè)小部分匯編語(yǔ)言代碼,使之可供不同架構(gòu)的微處理器是用。目前,它已經(jīng)在幾十種從8位到64位的微處理器上實(shí)現(xiàn)了成功的移植。

          由于設(shè)計(jì) C/OS-Ⅱ時(shí)就考慮到了在不同處理器上移植,因而移植 C/OS-Ⅱ?qū)嶋H上需要修改的代碼量很小。由于篇幅的限制, C/OS-Ⅱ在LPC2114上的移植方法和過(guò)程,見參考文獻(xiàn)[2]。

      2.2 DS18B20測(cè)溫軟件設(shè)計(jì)

      每一個(gè)DS18B20在其ROM中都存在有其**的48位序列號(hào),在出廠前已寫入片內(nèi)ROM中。主機(jī)在進(jìn)入操作程序前必須用讀ROM(33H)命令將該DS18B20的序列號(hào)讀出。

      當(dāng)主機(jī)需要對(duì)眾多在線DS18B20的某一個(gè)進(jìn)行操作時(shí),首先要發(fā)出匹配ROM(55H)。接著主機(jī)提供64位序列(包括該DS18B20的48位序列號(hào)),之后的操作就是針對(duì)該DS18B20的。

      在DS18B20組成的多點(diǎn)測(cè)溫系統(tǒng)中,主機(jī)在發(fā)出跳ROM命令之后,再發(fā)出統(tǒng)一的溫度轉(zhuǎn)換啟動(dòng)碼44H,就可以實(shí)現(xiàn)所有DS18B20的統(tǒng)一轉(zhuǎn)換。再經(jīng)過(guò)1s后就可以用很少的時(shí)間去逐一讀回每個(gè)DS18B20的溫度數(shù)據(jù)。。這種方式使其時(shí)間值往往小于傳統(tǒng)方式。

      由于DS18B20與微處理器間采用串行數(shù)據(jù)傳送,在對(duì)DS18B20進(jìn)行讀寫編程時(shí),必須嚴(yán)

       

      格的保證讀寫的時(shí)序,否則將無(wú)法讀取測(cè)溫結(jié)果。因此,對(duì)DS18B20 操作部分采用匯編語(yǔ)言來(lái)實(shí)現(xiàn)。初始化流程見圖3。

      本系統(tǒng)可經(jīng)過(guò)設(shè)置模塊來(lái)設(shè)置不同要求的測(cè)溫方式,根據(jù)前面定義的鍵盤設(shè)置模塊可知,可以實(shí)現(xiàn)單點(diǎn)測(cè)溫和多點(diǎn)測(cè)溫。兩種方式**不同就是ARM向DS18B20發(fā)送溫度轉(zhuǎn)換命令和讀取溫度寄存器之前,單點(diǎn)溫度檢測(cè)要首先發(fā)送匹配命令55H,然后是選定通道DS18B20的ROM號(hào);而多點(diǎn)測(cè)溫只要發(fā)送略過(guò)ROM命令CCH即可。對(duì)第n通道進(jìn)行溫度檢測(cè),讀取并存儲(chǔ)溫度值。多點(diǎn)溫度讀取轉(zhuǎn)換流程見圖4。

      開始

      Y

      圖4 多點(diǎn)溫度讀取轉(zhuǎn)換流程圖

      N

      n-1=0?

      總線變高?

      總線變低,檢測(cè)DS18B20響應(yīng)結(jié)束信號(hào)

      DS18B20存

      在信號(hào)?

      總線變高?

      LPC2114釋放總線

      LPC2114發(fā)送

      復(fù)位脈沖

      N

      N

      Y

      Y

      返回

       

      LPC2114向所有DS18B20

      發(fā)送復(fù)位命令

       

      延時(shí)300 s結(jié)束初始化,返回

      N

      Y

      圖3 初始化流程圖

      跳過(guò)匹配ROM

      LPC2114向所有DS18B20溫度變換命令

      延時(shí)1s(等待全部溫度轉(zhuǎn)換結(jié)束)

      讀第n個(gè)DS18B20溫度

      LPC2114向所有DS18B20發(fā)送復(fù)位命令

      匹配第n個(gè)ROM

      存儲(chǔ)緩沖區(qū)指針增1

      2.3 USB驅(qū)動(dòng)軟件設(shè)計(jì)

          當(dāng)溫度采集后,要通過(guò)USB接口傳到上位機(jī),其中CH375與微處理器的接口通過(guò)固化在Flash中的固件程序(Firmare)來(lái)完成的。Firmare是USB和用戶代碼之間的接口。本次USB接口芯片的固件設(shè)計(jì)成完全的中斷驅(qū)動(dòng),以保持響應(yīng)得實(shí)時(shí)性。

      上位機(jī)應(yīng)用層發(fā)送主動(dòng)請(qǐng)求給LPC2114,被動(dòng)應(yīng)答是指在LPC2114收到數(shù)據(jù)請(qǐng)求后,上傳給上位機(jī)應(yīng)用層的應(yīng)答數(shù)據(jù)。所有的通訊都由上位機(jī)應(yīng)用層發(fā)起,然后以接收到LPC2114的應(yīng)答結(jié)束,完整的過(guò)程包括:① 上位機(jī)將數(shù)據(jù)請(qǐng)求發(fā)送給CH375 芯片;② CH375 芯片以中斷方式通知LPC2114;③ LPC2114進(jìn)入中斷服務(wù)程序,獲取CH375 的中斷狀態(tài)并分析;④ 如果是上傳,則釋放當(dāng)前USB 緩沖區(qū),然后退出中斷程序;⑤ 如果是下傳,則從數(shù)據(jù)下傳緩沖區(qū)中讀取數(shù)據(jù)塊;⑥ 分析接收到的數(shù)據(jù)塊,準(zhǔn)備應(yīng)答數(shù)據(jù),也可以先退出中斷程序再處理;⑦ LPC2114將應(yīng)答數(shù)據(jù)寫入批量端點(diǎn)的上傳緩沖區(qū)中,然后退出中斷程序;⑧ CH375 芯片將應(yīng)答數(shù)據(jù)返回給上位機(jī);⑨ 上位機(jī)接收到應(yīng)答數(shù)據(jù)。

      應(yīng)用程序

      USB硬件

      用戶態(tài)

         I/O系統(tǒng)服務(wù)

      Win32 API調(diào)用

      WIN32子系統(tǒng)

         I/O管理器

      USB總線驅(qū)動(dòng)程序

      功能驅(qū)動(dòng)程序

      核心態(tài)

      圖5 USB驅(qū)動(dòng)程序的分層結(jié)構(gòu)

          設(shè)備驅(qū)動(dòng)程序就是控制硬件設(shè)備的一組函數(shù)。WDM(Win32 Driver Model)是Microsoft公司力推的全新的驅(qū)動(dòng)程序模式,它的應(yīng)用平臺(tái)是Windows 98/Me/2000操作系統(tǒng)[7].

      雖然Windows2000提供有多種通用的USB驅(qū)動(dòng)程序,但并不滿足本嵌入式系統(tǒng)的設(shè)計(jì)需求,因此本系統(tǒng)采用Windows DDK(Device Driver Kit)開發(fā)工具,開發(fā)了基于WDM模型的USB設(shè)備功能驅(qū)動(dòng)程序[8]。

        運(yùn)行在核心態(tài)的USB驅(qū)動(dòng)程序是基于WIN32驅(qū)動(dòng)程序模型WDM(Windows Driver Model)的,它采用分層驅(qū)動(dòng)程序模型,由USB總線驅(qū)動(dòng)程序和USB功能驅(qū)動(dòng)程序兩部分組成,總線驅(qū)動(dòng)程序由操作系統(tǒng)提供,只需編寫相應(yīng)的功能驅(qū)動(dòng)程序即可。

      本功能驅(qū)動(dòng)程序主要由四個(gè)模塊組成:初始化模塊、I/O模塊、即插即用管理模塊和電源管理模塊。另外,還有一個(gè).INF文件用于驅(qū)動(dòng)程序的安裝, INF文件含有安裝一個(gè)WDM設(shè)備驅(qū)動(dòng)程序需要的所有必要的信息,包括要復(fù)制的文件列表、要?jiǎng)?chuàng)建的注冊(cè)表項(xiàng)、設(shè)備的ID和兼容ID等。USB驅(qū)動(dòng)程序的分層結(jié)構(gòu)見圖5。

      3 結(jié)束語(yǔ)

          將n個(gè)DS18S20構(gòu)建成一個(gè)多點(diǎn)測(cè)溫系統(tǒng),實(shí)現(xiàn)了多點(diǎn)溫度測(cè)量,其轉(zhuǎn)換精度高,抗干擾能力強(qiáng),實(shí)時(shí)性好,使用時(shí)無(wú)需標(biāo)定和測(cè)試;與LPC2114的接口簡(jiǎn)單,可方便地實(shí)現(xiàn)多點(diǎn)組網(wǎng)測(cè)溫,給硬件設(shè)計(jì)工作帶來(lái)了極大的方便。另外采用DS18S20能有效地降低成本,簡(jiǎn)化系統(tǒng)設(shè)計(jì),占用系統(tǒng)I/O資源少、擴(kuò)展方便,在多點(diǎn)溫度檢測(cè)中有比較好的應(yīng)用前景。

      上一篇:濕度測(cè)量的基本概念
      下一篇:數(shù)字溫度傳感器DS18B20的原理與應(yīng)用
      Copyright@ 2003-2025  北京賽億凌科技有限公司版權(quán)所有      電話:010-62230011 傳真:010-62230033 地址:北京西直門北大街32號(hào)楓藍(lán)國(guó)際A座1711 郵編:100082
               京ICP備06005659號(hào)-2   

      感谢您访问我们的网站,您可能还对以下资源感兴趣:

      嘿咻漫画视频
      <bdo id="s28mi"><source id="s28mi"></source></bdo>
      <button id="s28mi"></button>