• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      SHT10傳感器在溫濕度監(jiān)測系統(tǒng)中的應(yīng)用

      2012-10-22 03:35:22陸榮鑑
      傳感器與微系統(tǒng) 2012年9期
      關(guān)鍵詞:微控制器時(shí)序校驗(yàn)

      陸榮鑑,李 品,孫 周

      (南京林業(yè)大學(xué)機(jī)電院機(jī)械電子工程系,江蘇南京 210037)

      0 引言

      倉儲管理、生產(chǎn)制造、氣象觀測、科學(xué)研究以及日常生活中,需要對溫度、濕度進(jìn)行實(shí)時(shí)檢測。傳統(tǒng)的溫度、濕度傳感器測量精度難以保證,且在線性度、重復(fù)性、互換性、一致性等方面表現(xiàn)較差。隨著新技術(shù)和新材料的發(fā)展,數(shù)字式溫濕度傳感器出現(xiàn)了,具有代表性的是瑞士Sensirion公司生產(chǎn)的SHT1x/7x系列單片集成傳感器,這類傳感器可以同時(shí)測量濕度、溫度,不僅提高了測量精度,還簡化了外圍電路。本文選用的是SHT10傳感器[1]。

      在工業(yè)控制領(lǐng)域,RS—485是常用的計(jì)算機(jī)與外部串行設(shè)備之間進(jìn)行數(shù)據(jù)交換的通信協(xié)議。因其具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優(yōu)點(diǎn)就使其成為首選的串行接口。本文介紹了基于RS—485串行接口總線的多點(diǎn)溫濕度監(jiān)測系統(tǒng)。

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

      1.1 數(shù)據(jù)采集單元設(shè)計(jì)

      數(shù)據(jù)采集單元由溫濕度傳感器SHT10和微控制器PIC16F873組成。

      SHT10通過二線串行接口與微處理器連接,如圖1所示。SHT10 的供電電壓是 2.4~5.5 V,推薦使用 3.3 V,電源引腳VDD和GND之間需要加一個100nF的去耦電容器。串行時(shí)鐘輸入線SCK用于使PIC16F873與SHT10之間通信同步,由于SHT10接口包含了完全靜態(tài)邏輯,因而不存在最小SCK頻率限制,即微控制器可以以任意低的速度與SHT10通信。串行數(shù)據(jù)線DATA引腳是三態(tài)門結(jié)構(gòu),用于數(shù)據(jù)的讀取。DATA在SCK時(shí)鐘下降沿之后改變狀態(tài),并僅在SCK時(shí)鐘上升沿有效。在PIC16F873向SHT10發(fā)送數(shù)據(jù)且SCK時(shí)鐘為高電平時(shí),DATA必須保持穩(wěn)定。為避免信號沖突,PIC16F873應(yīng)拉低 DATA,當(dāng)需要拉高DATA信號時(shí),可以通過附加的上拉電阻來實(shí)現(xiàn)[1]。

      1.2 數(shù)據(jù)傳輸單元設(shè)計(jì)

      RS—485總線采用雙絞線差分傳輸,可連接成半雙工和全雙工方式,最遠(yuǎn)傳輸距離為4000ft(1ft=0.3048m)。系統(tǒng)數(shù)據(jù)傳輸網(wǎng)絡(luò)采取主從式,上位機(jī)PC機(jī)為主機(jī)[2],下位機(jī)PIC16F873為從機(jī)。主機(jī)控制整個網(wǎng)絡(luò)的通信時(shí)序,每個從機(jī)有一個識別地址,當(dāng)從機(jī)被尋址時(shí),該機(jī)做出響應(yīng),保證各從站分時(shí)使用總線,從而避免數(shù)據(jù)傳輸沖突。系統(tǒng)選用半雙工式通信芯片75LBC184,允許在總線上掛接最多64個類似器件。該芯片帶有內(nèi)置高能量瞬變噪聲保護(hù)裝置,顯著提高了抵抗數(shù)據(jù)同步傳輸電纜上的瞬變噪聲的可靠性。

      PIC16F873單片機(jī)自帶異步通信接口,外接RS—485收發(fā)器75LBC184。PIC16F873的異步通信口與75LBC184之間采用3片光耦進(jìn)行電氣隔離,如圖2所示。由于上位機(jī)的接口是RS—232接口,故兩者之間還需加上 RS—232/RS—485轉(zhuǎn)換器進(jìn)行信號轉(zhuǎn)換。

      圖1 數(shù)據(jù)采集單元Fig 1 Data acquisition unit

      圖2 數(shù)據(jù)傳輸單元Fig 2 Data transmission unit

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

      2.1 SHT10 工作時(shí)序

      SHT10上電后11 ms進(jìn)入休眠模式,首先應(yīng)發(fā)送一個傳輸啟動時(shí)序(如圖3所示)喚醒芯片。隨后,微控制器可向SHT10發(fā)送命令,命令字包括高3位的地址位 (目前只支持000)和低5位的命令位。常用命令有:0x03測溫度,0x05測相對濕度,0x07讀寄存器,0x06寫寄存器,0x1e軟件復(fù)位。在發(fā)送命令時(shí)序中,SHT10在第8個SCK時(shí)鐘周期下降沿后拉低DATA來表示正確接收到命令。SHT10在第9個SCK時(shí)鐘周期的下降沿之后釋放DATA線,DATA恢復(fù)至高電平。微控制器發(fā)出一組測量命令后需要根據(jù)測量數(shù)據(jù)精確度8/12/14 bit分別等待最長20/80/320 ms,SHT10通過拉低DATA表示測量結(jié)束,同時(shí)存儲測量結(jié)果等待微控制器讀取,SHT10自動進(jìn)入空閑狀態(tài)[1]。

      圖3 SHT10傳輸啟動時(shí)序Fig 3 Transmission start timing sequence of SHT10

      測量數(shù)據(jù)讀取前,微控制器重新啟動SCK,SHT10傳送2字節(jié)的測量數(shù)據(jù)與1字節(jié)的CRC校驗(yàn)數(shù)據(jù),傳輸數(shù)據(jù)的順序是從最高位(MSB)到最低位(LSB)。微控制器接收到每個字節(jié)后,將數(shù)據(jù)線拉成低電平,產(chǎn)生應(yīng)答信號ACK,以CRC校驗(yàn)字節(jié)的確認(rèn)表示通信結(jié)束。CRC寄存器通過計(jì)算多項(xiàng)式(x8+x5+x4+1)來判定測量過程是否發(fā)生錯誤,一旦發(fā)現(xiàn)錯誤,微控器就發(fā)送軟啟動命令,重新進(jìn)行測量。如果不使用CRC—8校驗(yàn),微控器可以在測量值LSB后保 持DATA高電平來終止通信。SHT10在測量和通信完成后會自動返回睡眠模式。

      如果微控制器與SHT10通信中斷,可通過連接復(fù)位時(shí)序復(fù)位,即當(dāng)DATA保持高電平時(shí),觸發(fā)SCK時(shí)鐘9次或更多次,如圖4所示。這個時(shí)序只復(fù)位串口,狀態(tài)寄存器內(nèi)容仍然保留。

      圖4 SHT10連接復(fù)位時(shí)序Fig 4 Connection reset timing sequence of SHT10

      2.2 數(shù)據(jù)采集模塊軟件設(shè)計(jì)

      這個模塊主要是根據(jù)SHT10的功能時(shí)序?qū)/O口進(jìn)行操作,使其完成溫濕度的測量,并將測量結(jié)果發(fā)送至微控制器中進(jìn)行計(jì)算,如圖5所示。

      圖5 數(shù)據(jù)采集程序Fig 5 Data acquisition program

      溫濕度值在PIC16F873中以BCD碼存儲,共計(jì)5個寄存器。0x0020存放溫度值的小數(shù)部分,0x0021存放溫度值整數(shù)部分的十位和個位,0x0022存放溫度值整數(shù)部分的符號位和百位數(shù);0x0023存放濕度值的小數(shù)部分,0x0024存放濕度值的整數(shù)部分。

      2.3 數(shù)據(jù)傳輸部分程序設(shè)計(jì)

      異步通信中以10位字符為1幀,1位起始位,8位數(shù)據(jù)位,1 位停止位,無奇偶校驗(yàn)位,波特率為 9 600 bps[3]。PIC16F873的USART模塊帶有一個8位的波特率發(fā)生器BRG,為串行信息幀格式中的每一位編碼的發(fā)送和接收檢測提供定時(shí)時(shí)鐘,通過BRGH,SPBRG寄存器確定波特率。這里選用BRGH=1(高速方式),SPBRG寄存器初值設(shè)為25。

      2.4 協(xié)議設(shè)計(jì)

      RS—485電氣接口規(guī)范只規(guī)定了電氣特性,而沒有規(guī)定插件傳輸電纜和通信協(xié)議,在數(shù)據(jù)收發(fā)過程中,依據(jù)ModB-us協(xié)議保證數(shù)據(jù)的可靠傳輸。ModBus協(xié)議有2種傳輸模式,即RTU模式和ASCII模式。RTU模式表達(dá)相同的信息需要較少的位數(shù),即信息幀中的8位數(shù)據(jù)作為2個4位16進(jìn)制字符,且在相同通信速率下具有更大的數(shù)據(jù)流量,故系統(tǒng)選用RTU模式,典型的消息幀如表1所示。最終數(shù)據(jù)會被從最低位開始轉(zhuǎn)換成二進(jìn)制編碼發(fā)送,采用CRC—16進(jìn)行數(shù)據(jù)有效性檢驗(yàn)[4]。

      表1 RTU協(xié)議典型消息幀Tab 1 Agreement typical news frame of RTU

      在RTU模式中,一幀信息的結(jié)束到另一幀信息的開始至少需要3.5個字符的時(shí)間間隔(由于波特率是9600 kps,故這里的時(shí)間間隔是3.7 ms),系統(tǒng)通過定時(shí)器2設(shè)定中斷來判斷幀的起始和結(jié)束。從機(jī)每接收到一個新的字節(jié),就重啟定時(shí)器計(jì)時(shí)。當(dāng)超過設(shè)定的3.7 ms時(shí),定時(shí)器中斷,并在中斷中設(shè)定一個標(biāo)志位,當(dāng)主程序查詢到這個標(biāo)志位時(shí)暫停定時(shí)器的工作繼而處理接收到的數(shù)據(jù)。另外,整個消息幀必須作為一連續(xù)數(shù)據(jù)流傳輸,如果在幀完成之前有超過1.5個字符的時(shí)間間隔,接收設(shè)備將刷新不完整的消息并假定下一字節(jié)是一個新消息的地址字節(jié)。如果一個新消息在小于3.5個字符時(shí)間(1.6 ms)內(nèi)接著前個消息開始,接收的設(shè)備將認(rèn)為它是前一消息的延續(xù),但這樣CRC校驗(yàn)不會正確[5]。串口中斷和定時(shí)器中斷子程序如圖6和圖7所示。

      在PIC16F873里,專門劃出一塊緩沖區(qū)用于串行通信,從0x0060到0x0080。系統(tǒng)中若主機(jī)設(shè)備想要了解某一從機(jī)的測量值時(shí),發(fā)送一個包含從機(jī)地址編碼的信息,則符合相應(yīng)地址碼的從機(jī)接收通信命令,并根據(jù)功能碼與相關(guān)要求讀取信息。如果CRC校驗(yàn)無誤,則執(zhí)行相應(yīng)的任務(wù),然后把執(zhí)行結(jié)果返送給主機(jī)。

      圖6 串口中斷子程序流程圖Fig 6 Flow chart of serial interrupt subprogram

      圖7 定時(shí)器中斷子程序流程圖Fig 7 Flow chart of timer interrupt subprogram

      2.5 單片機(jī)主程序設(shè)計(jì)

      單片機(jī)主程序分為四部分:初始化模塊、數(shù)據(jù)接收模塊、數(shù)據(jù)采集模塊、數(shù)據(jù)處理和發(fā)送模塊。初始化模塊包括波特率設(shè)置、定時(shí)器設(shè)置、開中斷等;數(shù)據(jù)接收模塊由串口中斷子程序和定時(shí)器中斷子程序組成;數(shù)據(jù)采集模塊如前所述;數(shù)據(jù)處理和發(fā)送模塊包括校驗(yàn)計(jì)算和將數(shù)據(jù)打包成協(xié)議設(shè)定格式并回復(fù)主機(jī)。從機(jī)接收到主機(jī)命令并且校驗(yàn)正確之后,進(jìn)入數(shù)據(jù)采集模塊,繼而再將所需數(shù)據(jù)發(fā)送至主機(jī)。

      2.6 監(jiān)測中心軟件界面與實(shí)驗(yàn)數(shù)據(jù)

      本系統(tǒng)共放置了10個監(jiān)測點(diǎn),所有監(jiān)測點(diǎn)通過RS—485總線連到中心計(jì)算機(jī),監(jiān)測軟件采用VB編寫。

      界面分4個區(qū),分別為通信串口設(shè)置區(qū)、數(shù)據(jù)查詢區(qū)、監(jiān)測點(diǎn)溫濕度數(shù)據(jù)顯示區(qū)、采集控制區(qū)。其中通信串口設(shè)置區(qū)用來設(shè)置串口號和通信速率;數(shù)據(jù)查詢區(qū)提供各監(jiān)測點(diǎn)的溫度、濕度查詢,溫度、濕度報(bào)警設(shè)置值查詢,當(dāng)按下要查詢項(xiàng)目的按鈕,會跳出相應(yīng)的文本框,提供復(fù)制黏貼;監(jiān)測點(diǎn)溫濕度數(shù)據(jù)顯示區(qū)顯示10個監(jiān)測點(diǎn)當(dāng)前的溫度和濕度;采集控制區(qū)是對溫濕度數(shù)據(jù)進(jìn)行復(fù)位,對溫濕度報(bào)警值進(jìn)行設(shè)定。測試數(shù)據(jù)如表2所示。

      表2 實(shí)驗(yàn)測試值Tab 2 Experimental test value

      經(jīng)測試,所測數(shù)據(jù)均符合要求,達(dá)到技術(shù)指標(biāo)的要求。

      3 結(jié)論

      本文介紹了SHT10在溫濕度監(jiān)測系統(tǒng)中的應(yīng)用,通過RS—485實(shí)現(xiàn)指定范圍內(nèi)溫濕度監(jiān)測網(wǎng)絡(luò)。本系統(tǒng)已在大棚和藥品倉庫溫濕度監(jiān)系統(tǒng)系統(tǒng)得到應(yīng)用。在后續(xù)的研究中,考慮組建無線傳感器網(wǎng)絡(luò),通過基站收集各節(jié)點(diǎn)的數(shù)據(jù),集中處理后提交給用戶。以此實(shí)現(xiàn)復(fù)雜的指定范圍內(nèi)目標(biāo)檢測與跟蹤,具有快速展開、抗毀性強(qiáng)等特點(diǎn)。

      [1] Datasheet SHT1x(SHT10,SHT11,SHT15)humidity and temperature sensor datasheet[Z].Sensirion,2009.

      [2] 李學(xué)海.PIC單片機(jī)原理[M].北京:北京航空航天大學(xué)出版社,2004.

      [3] B&B Electronics Ltd.RS—422 and RS—485 Application Note[Z].Ireland,2006.

      [4] Modicon Manual,Inc.Modicon modbus protocol reference guide P1—MBUS—300Rev.J.[Z].Modicon Manual Inc,1996.

      [5] 孟 華,王鵬達(dá),李明偉.基于ModBus協(xié)議的觸摸屏與PIC單片機(jī)的通信實(shí)現(xiàn)[J].儀表技術(shù)與傳感器,2009(10):58-60.

      猜你喜歡
      微控制器時(shí)序校驗(yàn)
      基于時(shí)序Sentinel-2數(shù)據(jù)的馬鈴薯遙感識別研究
      基于Sentinel-2時(shí)序NDVI的麥冬識別研究
      爐溫均勻性校驗(yàn)在鑄鍛企業(yè)的應(yīng)用
      物聯(lián)網(wǎng)技術(shù)在微控制器實(shí)驗(yàn)教學(xué)中的應(yīng)用
      電子制作(2017年14期)2017-12-18 07:07:58
      一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
      電子制作(2016年15期)2017-01-15 13:39:08
      大型電動機(jī)高阻抗差動保護(hù)穩(wěn)定校驗(yàn)研究
      電測與儀表(2015年1期)2015-04-09 12:03:02
      基于加窗插值FFT的PMU校驗(yàn)方法
      鍋爐安全閥在線校驗(yàn)不確定度評定
      Atmel針對新一代物聯(lián)網(wǎng)應(yīng)用發(fā)布全新32位微控制器
      最新STM32設(shè)計(jì)工具增加對混合信號微控制器的支持
      清涧县| 合江县| 平山县| 吴桥县| 金堂县| 吉林市| 大姚县| 厦门市| 苗栗市| 庐江县| 巴楚县| 南召县| 香河县| 隆林| 勃利县| 阳新县| 马边| 牙克石市| 双峰县| 廉江市| 达尔| 乌拉特前旗| 赤壁市| 正安县| 灵台县| 平远县| 千阳县| 楚雄市| 临清市| 偃师市| 富裕县| 鄂伦春自治旗| 浮梁县| 安庆市| 准格尔旗| 共和县| 岗巴县| 宜昌市| 罗山县| 涞水县| 长寿区|