摘 要:為了提高倉庫監(jiān)控系統(tǒng)的可靠性和傳輸距離,設(shè)計(jì)了基于CAN總線的倉庫監(jiān)控系統(tǒng)。系統(tǒng)采用分布式網(wǎng)絡(luò)結(jié)構(gòu),主要分為上位機(jī)和下位機(jī)兩部分。上位機(jī)主要完成了EPP并口協(xié)議的CAN通訊適配器的設(shè)計(jì)以及倉庫人機(jī)界面的軟件設(shè)計(jì);下位機(jī)主要完成了CAN節(jié)點(diǎn)和溫、濕度等參數(shù)的傳感器選型和對溫、濕度等參數(shù)控制器的設(shè)計(jì)。設(shè)計(jì)的系統(tǒng)滿足對大庫區(qū)的環(huán)境參數(shù)實(shí)時(shí)檢測的要求。
關(guān)鍵詞:CAN總線;溫度;濕度;監(jiān)控系統(tǒng)
中圖分類號:TN915文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2008)07-144-04
Design of Warehouses Temperature and Humidity Monitoring System Based on CAN Bus
FENG Qinghua1,CHEN Haiyun1,LU Tongda1,LAIYANG Yuexing2
(1.School of Electric Information Engineering,Southwest Petroleum University,Chengdu,610500,China;
2.Sichuan Petroleum Construction Engineering Corp.Ltd.,Chengdu,610213,China)
Abstract:In order to increase the identity and transmit distance of the store monitoring system,the monitoring system based on the CAN bus is designed.The system adopts the distributed network architecture,it is composed of host and slave computer.The host machine plays the design of the CAN adapter on EPP parallel protocol and the man-machine interface software.The slave computer completes the transducer choice of the CAN node and the temperature,also including the design of temperature controller.The system can satisfy the desire of real-time monitoring for big store.
Keywords:CAN bus;temperature;humidity;monitoring system
1 引 言
在倉庫的貨物的管理中,需要對溫度、濕度等環(huán)境參數(shù)進(jìn)行監(jiān)控,以保證倉庫的安全。隨著庫區(qū)的面積逐漸擴(kuò)大,需要傳輸能力強(qiáng)和通信距離遠(yuǎn)的監(jiān)控系統(tǒng)來有效地對倉庫貨物進(jìn)行監(jiān)管。
CAN(Controller Area Network,控制器局域網(wǎng))總線技術(shù)具有先進(jìn)的多主網(wǎng)絡(luò)結(jié)構(gòu)、通訊距離遠(yuǎn)、價(jià)位低、可靠性高、系統(tǒng)容量大、安裝方便、維護(hù)費(fèi)用低、性價(jià)比高等優(yōu)點(diǎn)。特別對庫區(qū)較大、倉庫分布較分散的大型倉庫的監(jiān)控非常適用。
2 系統(tǒng)硬件設(shè)計(jì)
本系統(tǒng)采用分布式監(jiān)控網(wǎng)絡(luò),主要分為上位機(jī)和下位機(jī)兩部分,而上位機(jī)硬件包括CAN通訊適配器和上位監(jiān)控管理機(jī)組成;下位機(jī)則由CAN節(jié)點(diǎn)和現(xiàn)場傳感器組和溫度濕度參數(shù)控制器組成,如圖1所示。
其工作原理是下位機(jī)節(jié)點(diǎn)通過一定時(shí)間間隔把含有地址、溫度、濕度等數(shù)據(jù)量的報(bào)文向CAN總線發(fā)送,總線通過自身仲裁確定先把優(yōu)先級最高的數(shù)據(jù)放到總線上,然后自動仲裁依次發(fā)送優(yōu)先級相對較低的報(bào)文到CAN總線。由于CAN總線的信息存取利用了廣播式的存取工作方式,報(bào)文可以在任何時(shí)候由任何節(jié)點(diǎn)發(fā)送到空閑的總線上,每個(gè)CAN總線節(jié)點(diǎn)都接收到了總線上出現(xiàn)的報(bào)文信息,通過每個(gè)節(jié)點(diǎn)的報(bào)文濾波和地址設(shè)置,上位機(jī)CAN節(jié)點(diǎn)能實(shí)現(xiàn)上傳報(bào)文的接收。上位機(jī)接收到報(bào)文信息后通過組態(tài)王軟件實(shí)現(xiàn)倉庫溫度等參數(shù)實(shí)時(shí)監(jiān)視和記錄。同時(shí)上位機(jī)通過倉庫人機(jī)界面可隨時(shí)發(fā)送控制信息到CAN總線上,地址匹配的CAN總線節(jié)點(diǎn)能收到信息。通過這種方式即可實(shí)現(xiàn)倉庫的溫度等參數(shù)的反饋控制。
圖1 系統(tǒng)總體結(jié)構(gòu)
2.1 上位機(jī)系統(tǒng)的硬件設(shè)計(jì)
CAN通訊適配器承擔(dān)上位計(jì)算機(jī)和CAN節(jié)點(diǎn)之間的數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù),實(shí)現(xiàn)上位機(jī)與下位機(jī)的通訊。利用EPP并行口實(shí)現(xiàn)PC機(jī)與SJA1000的通信,關(guān)鍵在于實(shí)現(xiàn)SJA1000的讀寫時(shí)序,實(shí)現(xiàn)的方法有兩種:軟件產(chǎn)生讀寫時(shí)序電路和硬件產(chǎn)生讀寫時(shí)序電路。該系統(tǒng)用硬件產(chǎn)生讀寫時(shí)序電路,通過邏輯門的時(shí)間延遲來產(chǎn)生SJA1000握手等信號。設(shè)計(jì)電路如圖2所示。
圖2 CAN適配器電路圖
2.2 下位機(jī)系統(tǒng)的硬件設(shè)計(jì)
下位機(jī)包括CAN節(jié)點(diǎn)、現(xiàn)場傳感器組和溫度濕度參數(shù)控制器。CAN節(jié)點(diǎn)主要是完成CAN總線信號和CAN網(wǎng)絡(luò)通訊的配置?,F(xiàn)場傳感器組和參數(shù)控制器部分主要是和CAN節(jié)點(diǎn)完成實(shí)時(shí)監(jiān)測倉庫內(nèi)各個(gè)測試點(diǎn)的溫度、濕度情況,還要負(fù)責(zé)接收上位管理機(jī)的命令,根據(jù)上位管理機(jī)的要求傳輸數(shù)據(jù)和反饋控制。下位機(jī)結(jié)構(gòu)組成如圖3所示。
圖3 下位機(jī)結(jié)構(gòu)
2.2.1 CAN節(jié)點(diǎn)
CAN節(jié)點(diǎn)器件主要包括:微處理器AT89S52單片機(jī)、CAN控制器SJA1000和CAN總線收發(fā)器PCA82C250。
(1) CAN控制器SJA1000
SJA1000的工作模式通過其內(nèi)部的時(shí)鐘分頻寄存器CDR中的CAN模式位來選擇。硬件復(fù)位時(shí)默認(rèn)模式是BasicCAN工作模式。SJA1000相對于微控制器相當(dāng)于是一存儲映象I/O設(shè)備,他的地址域由控制段和信息緩沖區(qū)段組成,在向下加載初始化期間,控制器可被編程以設(shè)定通信參數(shù),CAN總線上的通信可通過此段由微控制器控制。
SJA1000內(nèi)部寄存器有的是只能寫的,有的是既可讀又可寫的。系統(tǒng)正常工作之前,微控制器要對某些寄存器進(jìn)行初始化,以保證系統(tǒng)的各部分之間能進(jìn)行正確的數(shù)據(jù)交換。CAN控制器的內(nèi)容都是通過微控制器寫入的,其讀寫時(shí)序如圖4所示。
圖4 SJA1000的讀寫時(shí)序
從讀/寫時(shí)序圖來看,微控制器對SJA1000進(jìn)行操作,由于SJA1000內(nèi)可存儲數(shù)據(jù)的地址信息?,F(xiàn)場數(shù)據(jù)采集與控制層負(fù)責(zé)從現(xiàn)場采集數(shù)據(jù)以CAN協(xié)議的格式發(fā)送到總線上,根據(jù)需要對現(xiàn)場設(shè)備進(jìn)行實(shí)時(shí)控制和監(jiān)視。系統(tǒng)上電后微處理器先對自身和SJA1000進(jìn)行初始化,以SJA1000傳送到CAN總線上或直接現(xiàn)場顯示、控制;對從CAN總線上來的信息則采用中斷方式,系統(tǒng)每接收到一幀信息,便產(chǎn)生一次中斷,引發(fā)微處理機(jī)進(jìn)入中斷,在中斷服務(wù)程序中讀取該幀信息并傳送到現(xiàn)場。
(2) CAN收發(fā)器PCA82C250
PCA82C250為CAN收發(fā)器,是CAN控制器和物理總線間的接口,提供對總線的驅(qū)動發(fā)送能力,CAN控制器的差動發(fā)送能力和CAN控制器的差動接收能力。他有很強(qiáng)的抗瞬間干擾和保護(hù)總線的能力,具有3種不同的工作模式即高速、斜率控制和待機(jī)??偩€上的某節(jié)點(diǎn)掉電不會影響總線,在40 m內(nèi)實(shí)現(xiàn)高速應(yīng)用可達(dá)1 Mb/s,最多可掛110個(gè)節(jié)點(diǎn)。管腳8(RS)允許PCA82C250選擇3種不同的工作模式,如表1所示。
表1 PCA82C250的工作模式
通過上面的結(jié)構(gòu)框圖繪制出了如圖5所示的CAN節(jié)點(diǎn)具體的電路。
2.2.2 溫度檢測部分
系統(tǒng)采用由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,該傳感器屬于新一代適配微處理器的智能溫度傳感器。DS18B20主要有兩種工作方式:寄生電源工作方式和外接電源工作方式。本系統(tǒng)采用外接電源方式(如圖6)。
圖5 CAN節(jié)點(diǎn)電路圖
圖6 DS18B20測溫電路
2.2.3 濕度檢測部分
濕度檢測采用HS1101型濕度傳感器,HS1101是HUMIREL公司生產(chǎn)的變?nèi)菔较鄬穸葌鞲衅鳎捎锚?dú)特的工藝設(shè)計(jì)。
HS1101測量濕度采用將HS1101置于555振蕩電路中,將電容值的變化轉(zhuǎn)換成電壓頻率信號,可以直接被微處理器采集。
設(shè)計(jì)的電路如圖7所示。
圖7 濕度測量電路
555芯片外接電阻R20,R19與HS1101,構(gòu)成對HS1101的充電回路。7端通過芯片內(nèi)部的晶體管對地短路實(shí)現(xiàn)對HS1101的放電回路,并將引腳2,6端相連引入到片內(nèi)比較器,構(gòu)成一個(gè)多諧波振蕩器,其中,R20相對于R19必須非常的小,但決不能低于一個(gè)最小值。R18是防止短路的保護(hù)電阻。
表2 典型頻率濕度關(guān)系
HS1101 作為一個(gè)變化的電容器,連接2和6引腳。引腳作為R20的短路引腳。HS1101的等效電容通過R19和R20充電達(dá)到上限電壓(近似于0.67 VCC,時(shí)間記為T1),這時(shí)555的引腳3由高電平變?yōu)榈碗娖?,然后通過R19開始放電,由于R20被7引腳短路接地,所以只放電到觸發(fā)界線(近似于0.33 VCC,時(shí)間記為T2),這時(shí)555芯片的引腳3變?yōu)楦唠娖?。通過不同的兩個(gè)電阻R19,R20進(jìn)行傳感器的不停充放電,產(chǎn)生方波輸出。可以得出:
T1=C(R4+R2)×ln 2
T2=CR2×ln 2
這樣可得555輸出方波頻率為:
由此可以看出,空氣相對濕度與555芯片輸出頻率存在一定線性關(guān)系。表2給出了典型頻率濕度關(guān)系(參考點(diǎn):25 ℃,相對濕度:55%,輸出頻率:6.660 kHz)??梢酝ㄟ^微處理器采集555芯片的頻率,然后查表即可得出相對濕度值。為了更好提高測量精度,將采用下位機(jī)負(fù)責(zé)采集頻率,將頻率值送入上位機(jī)進(jìn)行分段處理。
2.2.4 溫濕度控制部分
在監(jiān)控系統(tǒng)中,除了實(shí)時(shí)檢測溫度濕度等參數(shù)外,還需要對這些參數(shù)進(jìn)行控制。在溫度等測量參數(shù)超過用戶設(shè)定值范圍時(shí),啟動相關(guān)控制設(shè)備,否則關(guān)閉控制設(shè)備。系統(tǒng)采用繼電器控制通風(fēng),除濕等設(shè)備的啟動,具體電路設(shè)計(jì)如圖8所示,其中J1用于控制通風(fēng)設(shè)備,J2,J3用于控制濕度。
圖8 溫度等參數(shù)控制電路
3 系統(tǒng)軟件設(shè)計(jì)
監(jiān)控系統(tǒng)軟件設(shè)計(jì)分為上位機(jī)系統(tǒng)的軟件設(shè)計(jì)和下位機(jī)系統(tǒng)的軟件設(shè)計(jì)。
上位機(jī)系統(tǒng)的軟件包括監(jiān)控管理部分軟件和CAN適配器軟件?,F(xiàn)場監(jiān)控管理部分主要利用組態(tài)王軟件完成倉庫的現(xiàn)場測量點(diǎn)模擬,對倉庫的現(xiàn)場數(shù)據(jù)進(jìn)行采集,并對采集數(shù)據(jù)進(jìn)行分析,自動計(jì)算倉內(nèi)的最高、最低和平均溫度值,還可計(jì)算出每層的最高、最低和平均溫度值,完成超限實(shí)時(shí)報(bào)警,同時(shí)實(shí)現(xiàn)對現(xiàn)場設(shè)備進(jìn)行操作控制。例如啟動通風(fēng)、除濕、噴灑及安全保護(hù)裝置,報(bào)警、切斷電源等。并自動生成各種報(bào)表和圖表,建立和存儲倉庫的倉儲歷史檔案和打印功能。而遠(yuǎn)程監(jiān)控管理部分主要完成倉庫狀態(tài)遠(yuǎn)程查詢,報(bào)表打印和遠(yuǎn)程控制等功能。
對于CAN適配器的軟件設(shè)計(jì)采用Windows環(huán)境下的VB語言進(jìn)行開發(fā),由于Windows的保護(hù),VB無法直接讀寫并行端口,需要另外的程序模塊來實(shí)現(xiàn)并行端口的直接讀寫,使用WINIO模塊來解決VB對并口的讀寫。同時(shí),由于WINIO模塊不支持系統(tǒng)中斷,還需要利用VB編寫線程來查詢SJA1000的中斷狀態(tài)。
下位機(jī)系統(tǒng)的軟件包括CAN節(jié)點(diǎn)的軟件和溫濕度檢測控制軟件。軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方式。軟件中主要程序有SJA1000的初始化,報(bào)文的發(fā)送程序,報(bào)文的接收程序,CAN總線錯(cuò)誤處理程序,以及和傳感器配合實(shí)現(xiàn)現(xiàn)場參數(shù)的采集。
4 結(jié) 語
該設(shè)計(jì)在倉庫的總體結(jié)構(gòu)設(shè)計(jì)中,成功引入CAN總線作為通訊網(wǎng)絡(luò),其中下位機(jī)利用AT89S52單片機(jī)和SJA1000完成CAN節(jié)點(diǎn)設(shè)計(jì),上位機(jī)完成了對CAN通訊適配器的設(shè)計(jì),采用上位機(jī)高級語言VB和EPP協(xié)議實(shí)現(xiàn)SJA1000的控制,大大地提高了系統(tǒng)內(nèi)部的速率和實(shí)時(shí)性,具有處理速度快,成本較低的優(yōu)點(diǎn)。
參 考 文 獻(xiàn)
[1]劉江虹,徐曉東.在VB中對并行口編程[J].內(nèi)蒙古大學(xué)學(xué)報(bào):自然科學(xué)版,2003,34(6):685-688.
[2]史久根,張培仁,陳真勇.CAN現(xiàn)場總線系統(tǒng)設(shè)計(jì)技術(shù)[M].北京:國防工業(yè)出版社,2004.
[3]戴佳,戴衛(wèi)恒.51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2006.
作者簡介 馮慶華 男,1981年出生,碩士研究生。主要從事自動檢測與控制技術(shù)方向的研究。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。