盧焱+張鳳登
摘 要:設(shè)計(jì)一種基于CAN總線的遠(yuǎn)程溫濕度綜合探測(cè)器,具有高穩(wěn)定性、高精度、抗干擾能力強(qiáng)的特點(diǎn)。同時(shí)添加了ESP8266無(wú)線模塊,將采集到的數(shù)據(jù)傳輸?shù)桨沧靠蛻舳嘶蚱渌K端,使設(shè)計(jì)更加靈敏高效、快捷方便,便于用戶使用。采用數(shù)字型智能溫濕度傳感器,以單片機(jī)STC5A60S2為主控制器,溫濕度傳感器由數(shù)據(jù)總線將數(shù)據(jù)傳送給單片機(jī),OLED12864實(shí)時(shí)顯示室內(nèi)的溫濕度值,單片機(jī)通過(guò)CAN控制器和CAN收發(fā)器連接至CAN總線,實(shí)現(xiàn)與總線其它節(jié)點(diǎn)的通信。最后對(duì)系統(tǒng)精度進(jìn)行實(shí)驗(yàn)驗(yàn)證,其溫度測(cè)量精度達(dá)到±0.2℃,濕度精度±4%RH,結(jié)果表明該系統(tǒng)精度高、性能穩(wěn)定,能快速高效地將當(dāng)前環(huán)境的溫濕度值反饋給用戶。
關(guān)鍵詞: CAN總線;溫濕度;無(wú)線;STC51
DOIDOI:10.11907/rjdk.172489
中圖分類號(hào):TP319
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-7800(2018)002-0086-03
0 引言
溫濕度的測(cè)量在多個(gè)方面都有應(yīng)用。在日常生活中,空氣中的溫濕度決定了空氣質(zhì)量,與人類生活質(zhì)量及健康問(wèn)題息息相關(guān);在農(nóng)業(yè)方面,大棚內(nèi)適宜的溫濕度可以促進(jìn)植物健康成長(zhǎng);在工業(yè)領(lǐng)域,溫濕度的應(yīng)用與其重要性更為突出:工廠車間里的高精度儀器設(shè)備都對(duì)其工作環(huán)境有嚴(yán)格要求,溫濕度需要控制在一定范圍,即實(shí)時(shí)監(jiān)測(cè)溫濕度值,并且根據(jù)實(shí)時(shí)測(cè)得的數(shù)據(jù)對(duì)一些設(shè)備進(jìn)行控制,以確保當(dāng)前環(huán)境的溫濕度值達(dá)到要求[1-3]。傳統(tǒng)的遠(yuǎn)程溫濕度檢測(cè)系統(tǒng)通常存在傳輸抗干擾能力差、無(wú)法簡(jiǎn)便接入多個(gè)傳導(dǎo)點(diǎn)等問(wèn)題,使系統(tǒng)的互換性和適應(yīng)性、測(cè)量精度與穩(wěn)定性受到影響。本課題內(nèi)容致力于實(shí)現(xiàn)基于CAN總線的高適應(yīng)性、抗干擾能力強(qiáng)的遠(yuǎn)程溫濕度測(cè)量系統(tǒng)[4-6]。同時(shí)具有較高的綜合性,包含了數(shù)據(jù)采集、數(shù)據(jù)處理、圖像顯示、數(shù)據(jù)傳輸?shù)纫幌盗邢嚓P(guān)聯(lián)的子問(wèn)題,因此需要有一個(gè)整體的思路進(jìn)行串聯(lián)和設(shè)計(jì)。
1 研究現(xiàn)狀及設(shè)計(jì)原理
1.1 溫濕度測(cè)量發(fā)展現(xiàn)狀
溫度數(shù)值測(cè)量有兩種方式,分別是接觸式和非接觸式測(cè)溫。傳統(tǒng)上有多種測(cè)量濕度的方法:動(dòng)態(tài)法、靜態(tài)法、露點(diǎn)法等。露點(diǎn)法是用于測(cè)量當(dāng)前空氣中的相對(duì)濕度到達(dá)飽和,也就是空氣中的氣態(tài)水轉(zhuǎn)變?yōu)橐夯畷r(shí)的濕度值,不僅準(zhǔn)確度與精確度均相對(duì)較高,而且測(cè)量范疇相對(duì)較寬。另外,目前濕度測(cè)量的發(fā)展趨向,也正從單一的濕敏元件朝著智能化、多參數(shù)檢測(cè)、集成化、數(shù)字化的方向發(fā)展。
綜上,溫度和濕度兩個(gè)物理量本來(lái)就相互影響,傳統(tǒng)上將其分開獨(dú)立測(cè)量無(wú)疑又增大了測(cè)量的誤差。因此,現(xiàn)在普遍用得最多的溫濕度測(cè)量方法是通過(guò)整合在一起的電子式數(shù)字式傳感器。與傳統(tǒng)測(cè)量方法與器件相比,電子式測(cè)量使用方便、成本低廉、精度高,而且內(nèi)部整合模數(shù)字信號(hào)轉(zhuǎn)換,方便與其它微處理器及電子器件連接,無(wú)疑契合了當(dāng)前數(shù)字化的發(fā)展趨勢(shì)。最終筆者選擇DHT22溫濕度傳感器。
1.2 CAN總線發(fā)展現(xiàn)狀
CAN總線具有成本低廉、數(shù)據(jù)傳輸距離遠(yuǎn)、數(shù)據(jù)傳輸率高(最高1Mbps)、優(yōu)先權(quán)仲裁無(wú)破壞、錯(cuò)誤檢測(cè)中斷重發(fā)可靠、環(huán)境適應(yīng)能力較強(qiáng)和抗擾能力強(qiáng)的特點(diǎn),本課題采用CAN總線作為數(shù)據(jù)通信方式。CAN總線系統(tǒng)的硬件框架由多個(gè)節(jié)點(diǎn)構(gòu)成,通常兩端需要分別加上120Ω的終端電阻,使用高頻信號(hào)傳輸時(shí),信號(hào)到達(dá)傳輸線末端后不產(chǎn)生反射,干擾信號(hào)[7] 。CAN總線通信通過(guò)幀傳輸報(bào)文實(shí)現(xiàn)。根據(jù)其格式可分為基于CAN2.0A的11位標(biāo)準(zhǔn)幀格式以及基于CAN2.0B的含有擴(kuò)展標(biāo)志位的29位擴(kuò)展幀格式。報(bào)文主要有4種固定的幀類型:數(shù)據(jù)幀、遠(yuǎn)程幀、錯(cuò)誤幀、過(guò)載幀[8] 。
1.3 無(wú)線模塊工作原理
此次使用的無(wú)線模塊是ESP8266模塊,封裝尺寸小、能耗低,專門為移動(dòng)設(shè)備和物聯(lián)網(wǎng)應(yīng)用設(shè)計(jì)而成,可將物理設(shè)備連接到無(wú)線網(wǎng)絡(luò)上,以進(jìn)行互聯(lián)網(wǎng)或局域網(wǎng)通信,從而實(shí)現(xiàn)聯(lián)網(wǎng)功能。
ESP8266模塊支持3種工作模式:
(1)STA 模式。ESP8266模塊通過(guò)借助路由器可以連接到互聯(lián)網(wǎng)、手機(jī)或電腦,從而可以通過(guò)連接互聯(lián)網(wǎng)實(shí)現(xiàn)遠(yuǎn)程控制設(shè)備。
(2)AP模式。ESP8266模塊作為熱點(diǎn),實(shí)現(xiàn)模塊與手機(jī)或電腦的直接通訊,從而實(shí)現(xiàn)局域網(wǎng)無(wú)線控制。
(3)STA+AP模式。兩種模式共同存在的形式,即可以通過(guò)互聯(lián)網(wǎng),從而實(shí)現(xiàn)兩種模式的相互交換,對(duì)于使用而言,這種模式相對(duì)來(lái)說(shuō)操作更加方便,應(yīng)用較為廣泛。
2 測(cè)量系統(tǒng)硬件設(shè)計(jì)
2.1 總體結(jié)構(gòu)
溫濕度測(cè)量系統(tǒng)總體結(jié)構(gòu)見圖1。
2.2 單片機(jī)最小系統(tǒng)
單片機(jī)最小系統(tǒng)包括:?jiǎn)纹瑱C(jī)、復(fù)位電路、晶振電路。晶振電路:其作用是為了給整個(gè)系統(tǒng)提供一個(gè)穩(wěn)定的振蕩源。復(fù)位電路:主板復(fù)位電路的作用是把主板上所有存儲(chǔ)器以及連接在上主板的CPU、顯卡、內(nèi)存、硬盤等部件中的存儲(chǔ)器在進(jìn)行清零,即初始化,使所有存儲(chǔ)器在同一節(jié)拍下有序地工作。復(fù)位的方式有兩種:一是自動(dòng)復(fù)位(開機(jī)時(shí)),由PG信號(hào)電路進(jìn)行復(fù)位;二是手動(dòng)復(fù)位(死機(jī)時(shí)可以選擇),按下機(jī)箱面板上的RESET重啟按鈕,開始復(fù)位。
2.3 DHT22傳感器
根據(jù)DHT22的工作電壓范圍情況(3.3~5.5V),所以通常給傳感器外界加上的直流電源是5V。器件使用單總線數(shù)據(jù)格式進(jìn)行通訊:一次通信時(shí)間4~5ms左右,數(shù)據(jù)分為兩個(gè)部分:小數(shù)和整數(shù)。一次完整的數(shù)據(jù)傳輸為40bit,由高位先出。
2.4 無(wú)線傳輸及顯示模塊
根據(jù)ESP8266無(wú)線模塊的工作電壓情況,通常會(huì)給ESP8266的外界加上3.3V直流電源。UTXD引腳需要連接至單片機(jī)P3.0,URXD引腳需要連接至單片機(jī)P3.1,數(shù)據(jù)收發(fā)功能得以實(shí)現(xiàn)。
OLED12864液晶顯示屏的尺寸為0.96寸,具有高分辨率,為128*64,直接接3.3V就可以工作了[9]。其模塊接口為SPI/IIC,因此引腳4接至P1.5,MOSI作用為SPI同步串行接口的主出從入,以此來(lái)實(shí)現(xiàn)數(shù)據(jù)收發(fā);引腳3(SPI時(shí)鐘信號(hào))接至P3.4CLOCKOUT0(計(jì)數(shù)器0的時(shí)鐘輸出)。endprint
2.5 CAN模塊通信
CAN控制器用于實(shí)現(xiàn)CAN協(xié)議,對(duì)外需要供應(yīng)MCU物理線路的接口,再由CAN收發(fā)器完成CAN控制器與物理總線之間的連接。當(dāng)SJA1000作為CAN控制器與CAN總線相連時(shí),其須使用引腳為:P0、RD、WR、ALE、INT1、P23、AD0。PCA82C250 CAN收發(fā)器工作模式多樣,共有3種,通過(guò)Rs控制引腳,可以對(duì)其模式進(jìn)行轉(zhuǎn)換控制。
3 系統(tǒng)軟件設(shè)計(jì)
整個(gè)系統(tǒng)軟件部分主要由溫濕度測(cè)量、CAN通信以及無(wú)線模塊構(gòu)成。而溫濕度測(cè)量部分又可分為初始化和主系統(tǒng)執(zhí)行兩部分:當(dāng)上電啟動(dòng)或者復(fù)位后開始進(jìn)入系統(tǒng)初始化。以此對(duì)芯片內(nèi)部相關(guān)系統(tǒng)、CAN通信模塊、LED指示燈、OLED顯示屏、蜂鳴器以及DHT22傳感器進(jìn)行初始化。傳感器初始化后判斷傳感器是否工作正常,若否,則重新進(jìn)行初始化;若是,繼續(xù)操作進(jìn)入系統(tǒng)執(zhí)行部分。
3.1 溫濕度測(cè)量系統(tǒng)軟件設(shè)計(jì)
3.1.1 溫濕度模塊測(cè)量流程
溫濕度模塊測(cè)量流程見圖2。
3.1.2 溫濕度值計(jì)算
濕度:濕度的分辨率是16位,高位在前。校驗(yàn)成功后,將濕度高八位與濕度低八位轉(zhuǎn)化為十六進(jìn)制,然后通過(guò)計(jì)算得出的濕度值是實(shí)際濕度值的10倍。
溫度:溫度分辨率是16位,高位在前。校驗(yàn)成功后,將溫度高八位與溫度低八位轉(zhuǎn)化為十六進(jìn)制,然后通過(guò)計(jì)算得出的溫度值是實(shí)際溫度值的10倍。其中,溫度的正負(fù)由最高位表示:當(dāng)溫度最高位的數(shù)值等于1時(shí),代表負(fù)溫度;當(dāng)溫度最高位的數(shù)值等于0時(shí),表示正溫度。
3.2 無(wú)線模塊軟件設(shè)計(jì)
3.2.1 ESP8266工作原理
ESP8266是高性能無(wú)線SOC(System on Chip,即一個(gè)有專用目標(biāo)的集成電路芯片),主頻可以支持兩種頻率,分別為80MHz和160 MHz,支持 RTOS,擁有集成Wi-Fi MAC/BB/RF/PA/LNA、板載天線。支持標(biāo)準(zhǔn)的IEEE802.11 b/g/n協(xié)議、完整的TCP/IP協(xié)議棧[10]。當(dāng)串口開始通訊時(shí),ESP8266的固件便開始自動(dòng)編程,TCP/IP協(xié)議模型對(duì)數(shù)據(jù)進(jìn)行封裝,從而實(shí)現(xiàn)數(shù)據(jù)無(wú)線收發(fā)。
本次設(shè)計(jì)中,將ESP8266無(wú)線模塊置于AT模式:使模塊可以作為熱點(diǎn)使用,熱點(diǎn)密碼設(shè)置為:0123456789。
3.3 CAN通信實(shí)現(xiàn)
3.3.1 CAN通信
(1)CAN初始化。在應(yīng)用CAN總線進(jìn)行通信前,需要對(duì)CAN總線進(jìn)行一系列參數(shù)配置。調(diào)用CAN_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode)函數(shù)配置波特率以及CAN的工作模式。按照先后順序可分為:GPIO口配置、CAN初始化配置、過(guò)濾器配置。本設(shè)計(jì)采取標(biāo)準(zhǔn)格式進(jìn)行配置。
(2)節(jié)點(diǎn)發(fā)送。狀態(tài)寄存器判斷狀態(tài)是否可以接收,接下來(lái)配置發(fā)送緩沖器。在判斷數(shù)據(jù)緩沖區(qū)是否被鎖時(shí):若SR2為放映邏輯0,則鎖;若SR2為放映邏輯1,則開。
(3)節(jié)點(diǎn)接收。報(bào)文接收開始觸發(fā),前提是接收中斷使能(RIE)必須為邏輯1。
3.3.2 CAN控制器SJA1000
(1)初始化。①?gòu)?fù)位模式—開始配置;②開始配置時(shí)鐘分頻寄存器,決定工作模式(決定Peli模式還是Basic模式);③開始配置總線定時(shí)寄存器,確定波特率;④開始配置中斷使能寄存器,決定使用哪幾個(gè)中斷;⑤配置輸出控制寄存器;⑥配置驗(yàn)收碼、屏蔽碼,決定接受哪一類節(jié)點(diǎn)的數(shù)據(jù);⑦退出復(fù)位模式,進(jìn)入正常工作模式。
(2)發(fā)送。①查詢當(dāng)前狀態(tài)(是否接收、發(fā)送數(shù)據(jù),數(shù)據(jù)緩沖區(qū)是否被鎖);②配置發(fā)送緩沖區(qū);③配置命令寄存器,啟動(dòng)發(fā)送。
(3)接收(擴(kuò)展幀與標(biāo)準(zhǔn)幀由于ID長(zhǎng)度不同,驗(yàn)收也有區(qū)別)。①采用中斷接收(關(guān)CPU中斷);②判斷是不是接收中斷;③判斷是數(shù)據(jù)幀還是遠(yuǎn)程幀;④取得數(shù)據(jù);⑤開啟中斷。
幀數(shù)據(jù)傳輸時(shí),CAN控制器(SJA1000)需要驗(yàn)收濾波,若與本節(jié)吻合,則數(shù)據(jù)可存入相應(yīng)的寄存器里,否則拋棄該數(shù)據(jù)。
4 結(jié)語(yǔ)
4.1 數(shù)據(jù)結(jié)論
某日各個(gè)時(shí)間所測(cè)得的實(shí)驗(yàn)結(jié)果如表1所示。
4.2 結(jié)論
本設(shè)計(jì)最核心之處是在CAN總線上,因?yàn)镃AN總線這種通訊協(xié)議方式有極強(qiáng)的拓展性和穩(wěn)定性。只需要設(shè)置好用戶層參數(shù)以后便可以接入CAN網(wǎng)絡(luò),而不需要對(duì)主機(jī)或者整個(gè)系統(tǒng)造成任何改變,這就使得本設(shè)計(jì)可以方便地接入任何CAN總線網(wǎng)絡(luò),正是這種便捷通用的優(yōu)越性以及CAN總線工業(yè)級(jí)的穩(wěn)定抗干擾性,使得本設(shè)計(jì)有了設(shè)計(jì)生成的價(jià)值及意義。
當(dāng)然,由于水平有限,對(duì)CAN總線以及51芯片的應(yīng)用理解還在初級(jí)階段,本設(shè)計(jì)還有許多可以優(yōu)化升級(jí)的地方。比如可以考慮多CAN節(jié)點(diǎn)的通訊網(wǎng)絡(luò),同時(shí)建立一個(gè)合適的網(wǎng)絡(luò)結(jié)構(gòu),編寫上位機(jī)程序,將CAN信號(hào)轉(zhuǎn)換成232信號(hào),實(shí)現(xiàn)與上位機(jī)的連接,方便用戶對(duì)整個(gè)系統(tǒng)的操作等。一系列的優(yōu)化以及應(yīng)用會(huì)隨著對(duì)CAN總線的學(xué)習(xí)及應(yīng)用得到進(jìn)一步改善和提高。
參考文獻(xiàn):
[1] 譚林.基于單片機(jī)的溫度監(jiān)控系統(tǒng)設(shè)計(jì)[J].國(guó)外電子測(cè)量技術(shù), 2009,28(4):50-52.
[2] 周云輝,王嬌,錢云飛.基于嵌入式的環(huán)境溫濕度監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].電子測(cè)量技術(shù), 2012(9):80-82.
[3] 張瑞華.溫室環(huán)境自動(dòng)監(jiān)控[J].計(jì)算機(jī)與農(nóng)業(yè),2002 (2):8-10.
[4] 朱恒軍,于泓博,王發(fā)智.基于CAN總線的大棚溫度測(cè)控系統(tǒng)設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2012(5):183-187.
[5] 徐亮,鄧小龍.基于CAN總線的分布式車間溫濕度檢測(cè)系統(tǒng)[J].電子科技, 2012(10):19-22.
[6] 王歡,黃晨.高精度無(wú)線環(huán)境溫濕度測(cè)量系統(tǒng)設(shè)計(jì)研究[J].電子測(cè)量與儀器學(xué)報(bào), 2013(3):211-216.
[7] 牛躍聽.CAN總線應(yīng)用層協(xié)議實(shí)例解析[M].北京:北京航空航天大學(xué)出版社, 2007.
[8] 張鳳登.現(xiàn)場(chǎng)總線技術(shù)與應(yīng)用[M].北京:科學(xué)出版社, 2008.
[9] 張素萍,李朝強(qiáng),張建芬.基于單片機(jī)的OLED顯示系統(tǒng)設(shè)計(jì)[J].福建電腦, 2015(8):15-16.
[10] 楊博雄,倪玉華.無(wú)線傳感網(wǎng)絡(luò)[M].北京:人民郵電出版社, 2015.endprint