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