?

基于CAN總線的分布式車間溫濕度檢測系統

2012-06-23 06:42鄧小龍
電子科技 2012年10期
關鍵詞:溫濕度總線單片機

徐 亮,鄧小龍

(1.上海交通大學機械與動力工程學院,上海 200240;2.江蘇信息職業技術學院電氣工程系,江蘇 無錫 214153)

許多行業如紡織、卷煙、化工、食品加工等對生產車間的溫濕度都有一定的要求,其中有些企業往往需要一種能夠獨立于空調控制系統的車間溫濕度檢測系統。這種車間溫濕度檢測系統作為空調控制的一種冗余設計或者說輔助手段,成本往往相對較低。

溫濕度檢測系統作為一種應用廣泛的非標準化檢測系統,不同的設計者、不同的應用需求,使得目前此類檢測系統的設計方案呈現出種類各異、五花八門的現象。文獻[1]介紹了一種應用于蔬菜大棚的溫濕度測控系統的設計,以P87LPC76x單片機作為主控器,能利用PID算法,通過控制執行器加熱、加濕起到調節蔬菜大棚溫濕度的目的,該系統現已廣泛應用于吉林松原農村蔬菜大棚,運行良好。文獻[2]介紹了一種能應用于多種工業場合的溫濕度檢測系統的設計,該系統基于AT89C52單片機開發,能將傳感器采集到的溫濕度信號通過RS485網絡傳送至上位計算機,該系統簡單實用,具有良好的性價比。文獻[3]介紹了一種應用于檢測安裝有中央空調的建筑物的內部環境溫濕度的數據采集器的設計,該檢測裝置獨立于中央空調而工作,為評價中央空調運行質量、調試空調系統提供基礎數據。該系統基于16位單片機MSP430F開發,與PC機實時通信,能通過PC機設置數據采集器參數,并控制數據采集器工作。

1 系統設計

系統自主設計了兩種模塊電路:(1)檢測模塊。每一塊檢測模塊將被安裝于車間不同的地點,用于檢測車間內不同位置的溫濕度,系統最多支持64個檢測模塊同時工作。(2)通信模塊。監視計算機與各檢測模塊之間的通信“橋梁”,一個通信模塊含有4路通信通道,每1路通信通道可連接至1個計算機COM口,實現監視計算機對檢測模塊的分組輪詢。

檢測模塊與通信模塊之間通過CAN總線通信。CAN(Controller Area Network)總線于1986年由德國BOSCH公司提出,是一種多主方式的串行通訊總線,最早用于汽車電路中,經過數十年的發展日趨完善,目前被廣泛應用于汽車、石油、化工、制造業等許多領域,被譽為“最有前途的總線技術之一”。選擇CAN總線,是因為CAN總線相比傳統的RS485總線優勢明顯,主要體現在以下3點:(1)傳統的RS485總線僅有電氣協議,而CAN總線則具有完善的通信協議,易于開發。(2)傳統的 RS485總線通信距離不超過1.5 km,而CAN總線的通信距離在5 kbit·s-1速率時最遠可達10 km。(3)傳統的RS485總線當系統有錯誤出現多節點同時向總線發送數據時,導致總線呈現短路從而損壞某些節點,而CAN節點在錯誤嚴重的情況下具有自動關閉輸出的功能,不會影響到整個CAN 總線[4]。

在本系統中,通信模塊與COM口的串行通信速率成為整個系統的通信瓶頸,但仍然考慮使用計算機COM口采集數據而非專業接口卡,主要是出于對成本的考慮。為緩解系統瓶頸的考慮,計算機安裝了PCI轉RS-232串口擴展卡(SYBA 9865-4S),將計算機串口擴充為4個,同時通信模塊設計了4個通信通道,平均每個通信通道能與最多16個檢測模塊進行分組通信,以加快數據更新速率。

由于通信模塊與計算機COM口采用RS232通信方式,理論上RS232通信距離為15 m,因此通信模塊與計算機之間必須保持在15 m以下,實際安裝1.5 m以內,通信速率可保證在38.4 kbit·s-1下穩定通信。

圖1 溫濕度檢測系統拓撲圖

2 上位機監視計算機程序的設計

計算機監視程序采用C#2010開發控制臺程序,Access2010開發后臺數據庫。程序主要具有如下功能:(1)管理員與技術員二級用戶權限。(2)溫濕度警報上下限設定。(3)溫濕度歷史數據記錄。(4)溫濕度報表打印。

這里主要介紹監視程序通信部分的程序設計思路:

(1)監視程序可打開4個計算機COM口,根據設定的每個COM口輪詢的檢測模塊編號范圍向連接的COM口發送數據串并激活通信模塊輪詢各個檢測模塊,發送的數據串長度為5 Byte,如圖2所示,格式為:第1 Byte為“讀數據”命令字段,第2 Byte為與連接到COM口的通信通道所連接的第1個檢測模塊的站號,第3 Byte為與該通道所連接的最后1個檢測模塊的站號,第4個和第5 Byte為CRC校驗碼。

圖2 計算機COM口發送給通信通道輪詢命令數據格式

(2)通信模塊的每個通道主控器輪詢一遍所有與之相連接的檢測模塊之后,便主動向計算機返回一次數據,刷新監視程序顯示的溫濕度數據,某通信通道返回的數據串長度由連接到該通信通道的檢測模塊數目而決定,當檢測模塊數目為n時,如圖3所示,格式為:第1 Byte為“讀數據”命令字段,監視計算機通過第1 Byte可辨識此數據串為下位機返回數據,第2個到第3n+1 Byte為與該通信通道連接的所有檢測模塊返回的溫濕度數據,連續3 Byte為一組,記錄了單個檢測模塊的返回數據,第3n+2個和第3n+3 Byte為CRC校驗碼。

圖3 通信通道返回給計算機的數據格式

3 通信模塊的設計

3.1 通信模塊的硬件設計

通信模塊具有4路通信通道,可分別連接4個計算機COM口,各通信通道相互獨立,大體分為主控器(4個)、RS232/TTL電平轉換電路(2個)、CAN驅動器(4個)3部分組成,統一供+5 V電壓:

(1)主控器選擇 Microchip公司生產的PIC18F25K80單片機,該單片機資源豐富,具有32 kB的程序存儲器、3648 Byte的數據存儲器、1024 Byte的數據EEPROM,并集成一個CAN控制器。將二路撥碼開關連接至單片機I/O口,用于設置通信模塊在CAN總線上的站號,設定站號范圍為00~11。

(2)通信模塊通過電平轉換電路MAX232芯片與計算機COM口進行數據交換,由于1個MAX232支持兩組串口數據獨立收發,因此可供2路通信通道同時使用。

(3)主控器PIC18F25K80自身集成一個CAN控制器,因此無需額外增加CAN控制器,僅需連接一個CAN驅動器PCA82C250即可與CAN總線進行通信。

PIC18F25K80自身集成的CAN控制器廣泛支持CAN 1.2、CAN 2.0A、CAN 2.0B Passive和 CAN 2.0B Active多個版本的協議,支持DeviceNet數據字節過濾,支持標準幀數據和擴展幀數據,通信速率最高可達1 Mbit·s-1。

PCA82C250作為目前應用最廣泛的CAN驅動器,其最大通信速率可達1 Mbit·s-1,最多可支持110個節點,具有多重保護功能,安全可靠。PIC18F25K80的CAN收發引腳CANRX、CANTX與PCA82C250通過2只光耦6N137連接,PCA82C250直接接入CAN總線。

圖4 通信模塊原理結構圖

3.2 通信模塊的軟件設計

通信模塊在收到來自上位機的命令后,開始輪詢與之相連接的檢測模塊。通信模塊向與之相連的第一個檢測模塊發出讀數據命令,待被詢檢測模塊返回數據后再向下一個檢測模塊發出讀數據命令,依此類推。如果被詢檢測模塊在1000 ms內沒有返回數據,則重新發送讀數據命令,重復3次后如果被詢檢測模塊依然沒有返回數據,則檢測模塊便自動將讀數據緩沖數組內相應單元全部置FF,并將相應標志位置1,在下次輪詢時,自動跳過此檢測模塊,待檢修人員排除故障后,再通過監視計算機手動發出清除標志位命令或者將通信模塊斷電復位,即可恢復通信模塊與所有檢測模塊的通信。最后所有檢測模塊讀取完畢,通信模塊自動將數據上傳至上位監視計算機。程序流程圖如圖5所示。

通信模塊向檢測模塊發出的讀數據命令由2 Byte組成:第1 Byte是模塊通道的CAN站號,第2 Byte是被詢檢測模塊的CAN站號。由于檢測模塊向被詢模塊發出的命令僅有讀數據命令一條,因此無需添加命令代碼字節。

圖5 通信模塊的程序流程圖

在CAN 2.0B規范中,數據幀有兩種幀格式:標準幀數據格式和擴展幀數據格式,兩者的區別在于前者具有11位標識符而后者具有29位標識符,如圖6所示,標準幀格式仲裁段標識符僅有11位,而擴展幀格式仲裁段標識符比標準幀格式仲裁段標識符多出18個標識符,即29個標識符。CAN控制器會根據用戶對寄存器的設定值按幀格式自動生成輸出脈沖序列。對于開發人員而言,前者僅需要配置2 Byte的TX識別碼,而后者需要配置4 Byte的TX識別碼,用于描述該幀數據在總線上的“數據身份”。鑒于通信與檢測模塊之間的通信關系比較簡單,這里選用標準幀數據格式,2 Byte的TX識別碼分別為數據源和數據目標地址,即對于通信模塊而言,第1 Byte定義為通信模塊某通道的站號,第2 Byte定義為某時刻該通信通道所訪問的檢測模塊站號。

圖6 CAN2.0B規范中兩種數據幀格式

4 溫濕度檢測模塊的設計

4.1 溫濕度檢測模塊的硬件設計

檢測模塊大體可分為主控器、溫度傳感器、濕度傳感器、CAN驅動器4個部分:

(1)主控器同樣采用了PIC18F25K80單片機。6路撥碼開關連接至單片機的I/O口,用于設定檢測模塊在CAN總線上的站號,設定站號范圍為11000000~11111111。

(2)溫度傳感器采用Dallas公司生產的一線式數字溫度傳感器DS18B20,該傳感器它具有微型化、低功耗、高性能、抗干擾能力強等優點,DS18B20可直接將溫度轉化成串行數字信號給單片機處理,溫度測量的范圍為-55~+125℃,測溫分辨率可達0.0625℃,測溫范圍與精度完全符合項目要求[5]。

(3)濕度傳感器采用 Honeywell公司生產的HIH4000相對濕度傳感器,該傳感器內部集成了信號處理功能電路,可將相對濕度值變換成電容值,再將電容值轉換成線性電壓輸出。PIC18F25K80單片機片內集成一個8路輸入的A/D模塊,可將HIH4000輸出的線性電壓模擬量直接轉換為一個12位的數字量并存儲在PIC18F25K80單片機中。

(4)與通信模塊相同,PIC18F25K80的CAN收發引腳CANRX、CANTX通過2只光耦6N137與CAN驅動器 PCA82C250相連,PCA82C250直接接入 CAN總線。

圖7 溫濕度檢測模塊原理結構圖

4.2 溫濕度檢測模塊的軟件設計

檢測模塊不斷讀取溫度傳感器和濕度傳感器采集的數據,每次采集完溫度與濕度數據后,檢測是否有來自通信模塊的讀數據命令,如果有則將采集的溫度與濕度數據返回給通信模塊,如果沒有則繼續讀取溫度傳感器和濕度傳感器采集的數據,程序流程如圖8所示。

圖8 溫濕度檢測模塊程序流程圖

與通信模塊一致,檢測模塊的CAN通信數據幀格式同樣采用標準幀數據格式。其中,2的TX識別碼分別設定為數據源地址和數據目標地址,即第1 Byte被設定為檢測模塊站號,第2 Byte被設定為與之連接的通信通道的站號;數據字節僅使用3個,第1 Byte和第2 Byte高4位共計12位用于存放來自溫度傳感器的數據,第2 Byte的低4位和第3 Byte共計12位用于存放來自濕度傳感器的數據,將溫濕度傳感器取得的兩個12位數字量壓縮為3 Byte并寫入CAN驅動器發送緩沖區可有效提高數據更新速率。

5 結束語

現場總線技術的發展、單片機功能的增強、傳感器線性化與集成度的提高等技術,為系統的設計帶來了便利,也為該檢測系統的穩定性提供了保障;Dot Net技術的發展為快速開發穩定可靠的計算機應用程序提供了條件。經開發設計,系統目前尚處于小規模試運行階段,經過一段時間的試運行證明本系統具有穩定可靠、通信距離遠、抗干擾能力強等諸多優點,能滿足企業需求。

[1]馬善農,王懷平.基于P87LPC76x系列單片機的溫、濕度測控系統[J].電子產品世界,2002(4):43,57.

[2]劉丙友,凌有鑄.基于單片機AT89C52的多路溫、濕度測試系統[J].自動化與儀表,2007,22(3):80 -82.

[3]李延平.基于單片機的低功耗溫濕度數據采集器的研制[J].儀器儀表學報,2002,23(Z2):624 -625.

[4]李真花,崔健.CAN總線輕松入門與實踐[M].北京:北京航空航天大學出版社,2011.

[5]黃保瑞,賈之豪,邵婷婷.基于AT89C51單片機的溫度測控系統設計[J].現代電子技術,2011(6):42 -43,147.

猜你喜歡
溫濕度總線單片機
基于AT89C51的數字型蠶用溫濕度計的設計
基于單片機的SPWM控制逆變器的設計與實現
基于DSP的多路溫濕度監測系統
基于單片機的層次漸變暖燈的研究
基于單片機的便捷式LCF測量儀
基于PCI Express總線的xHC與FPGA的直接通信
機載飛控1553B總線轉以太網總線設計
基于溫濕度控制的天氣預測裝置
蒸發冷卻溫濕度獨立控制空調系統的應用
CAN總線并發通信時下位機應用軟件設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合