摘 要:為了提高倉(cāng)庫(kù)監(jiān)控系統(tǒng)的可靠性和傳輸距離,設(shè)計(jì)了基于CAN總線的倉(cāng)庫(kù)監(jiān)控系統(tǒng)。系統(tǒng)采用分布式網(wǎng)絡(luò)結(jié)構(gòu),主要分為上位機(jī)和下位機(jī)兩部分。上位機(jī)主要完成了EPP并口協(xié)議的CAN通訊適配器的設(shè)計(jì)以及倉(cāng)庫(kù)人機(jī)界面的軟件設(shè)計(jì);下位機(jī)主要完成了CAN節(jié)點(diǎn)和溫、濕度等參數(shù)的傳感器選型和對(duì)溫、濕度等參數(shù)控制器的設(shè)計(jì)。設(shè)計(jì)的系統(tǒng)滿足對(duì)大庫(kù)區(qū)的環(huán)境參數(shù)實(shí)時(shí)檢測(cè)的要求。
關(guān)鍵詞:CAN總線;溫度;濕度;監(jiān)控系統(tǒng)
中圖分類號(hào):TN915文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):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 引 言
在倉(cāng)庫(kù)的貨物的管理中,需要對(duì)溫度、濕度等環(huán)境參數(shù)進(jìn)行監(jiān)控,以保證倉(cāng)庫(kù)的安全。隨著庫(kù)區(qū)的面積逐漸擴(kuò)大,需要傳輸能力強(qiáng)和通信距離遠(yuǎn)的監(jiān)控系統(tǒng)來(lái)有效地對(duì)倉(cāng)庫(kù)貨物進(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)。特別對(duì)庫(kù)區(qū)較大、倉(cāng)庫(kù)分布較分散的大型倉(cāng)庫(kù)的監(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)場(chǎng)傳感器組和溫度濕度參數(shù)控制器組成,如圖1所示。
其工作原理是下位機(jī)節(jié)點(diǎn)通過(guò)一定時(shí)間間隔把含有地址、溫度、濕度等數(shù)據(jù)量的報(bào)文向CAN總線發(fā)送,總線通過(guò)自身仲裁確定先把優(yōu)先級(jí)最高的數(shù)據(jù)放到總線上,然后自動(dòng)仲裁依次發(fā)送優(yōu)先級(jí)相對(duì)較低的報(bào)文到CAN總線。由于CAN總線的信息存取利用了廣播式的存取工作方式,報(bào)文可以在任何時(shí)候由任何節(jié)點(diǎn)發(fā)送到空閑的總線上,每個(gè)CAN總線節(jié)點(diǎn)都接收到了總線上出現(xiàn)的報(bào)文信息,通過(guò)每個(gè)節(jié)點(diǎn)的報(bào)文濾波和地址設(shè)置,上位機(jī)CAN節(jié)點(diǎn)能實(shí)現(xiàn)上傳報(bào)文的接收。上位機(jī)接收到報(bào)文信息后通過(guò)組態(tài)王軟件實(shí)現(xiàn)倉(cāng)庫(kù)溫度等參數(shù)實(shí)時(shí)監(jiān)視和記錄。同時(shí)上位機(jī)通過(guò)倉(cāng)庫(kù)人機(jī)界面可隨時(shí)發(fā)送控制信息到CAN總線上,地址匹配的CAN總線節(jié)點(diǎn)能收到信息。通過(guò)這種方式即可實(shí)現(xiàn)倉(cāng)庫(kù)的溫度等參數(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í)序電路,通過(guò)邏輯門的時(shí)間延遲來(lái)產(chǎn)生SJA1000握手等信號(hào)。設(shè)計(jì)電路如圖2所示。
圖2 CAN適配器電路圖
2.2 下位機(jī)系統(tǒng)的硬件設(shè)計(jì)
下位機(jī)包括CAN節(jié)點(diǎn)、現(xiàn)場(chǎng)傳感器組和溫度濕度參數(shù)控制器。CAN節(jié)點(diǎn)主要是完成CAN總線信號(hào)和CAN網(wǎng)絡(luò)通訊的配置。現(xiàn)場(chǎng)傳感器組和參數(shù)控制器部分主要是和CAN節(jié)點(diǎn)完成實(shí)時(shí)監(jiān)測(cè)倉(cāng)庫(kù)內(nèi)各個(gè)測(cè)試點(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的工作模式通過(guò)其內(nèi)部的時(shí)鐘分頻寄存器CDR中的CAN模式位來(lái)選擇。硬件復(fù)位時(shí)默認(rèn)模式是BasicCAN工作模式。SJA1000相對(duì)于微控制器相當(dāng)于是一存儲(chǔ)映象I/O設(shè)備,他的地址域由控制段和信息緩沖區(qū)段組成,在向下加載初始化期間,控制器可被編程以設(shè)定通信參數(shù),CAN總線上的通信可通過(guò)此段由微控制器控制。
SJA1000內(nèi)部寄存器有的是只能寫的,有的是既可讀又可寫的。系統(tǒng)正常工作之前,微控制器要對(duì)某些寄存器進(jìn)行初始化,以保證系統(tǒng)的各部分之間能進(jìn)行正確的數(shù)據(jù)交換。CAN控制器的內(nèi)容都是通過(guò)微控制器寫入的,其讀寫時(shí)序如圖4所示。
圖4 SJA1000的讀寫時(shí)序
從讀/寫時(shí)序圖來(lái)看,微控制器對(duì)SJA1000進(jìn)行操作,由于SJA1000內(nèi)可存儲(chǔ)數(shù)據(jù)的地址信息。現(xiàn)場(chǎng)數(shù)據(jù)采集與控制層負(fù)責(zé)從現(xiàn)場(chǎng)采集數(shù)據(jù)以CAN協(xié)議的格式發(fā)送到總線上,根據(jù)需要對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行實(shí)時(shí)控制和監(jiān)視。系統(tǒng)上電后微處理器先對(duì)自身和SJA1000進(jìn)行初始化,以SJA1000傳送到CAN總線上或直接現(xiàn)場(chǎng)顯示、控制;對(duì)從CAN總線上來(lái)的信息則采用中斷方式,系統(tǒng)每接收到一幀信息,便產(chǎn)生一次中斷,引發(fā)微處理機(jī)進(jìn)入中斷,在中斷服務(wù)程序中讀取該幀信息并傳送到現(xiàn)場(chǎng)。
(2) CAN收發(fā)器PCA82C250
PCA82C250為CAN收發(fā)器,是CAN控制器和物理總線間的接口,提供對(duì)總線的驅(qū)動(dòng)發(fā)送能力,CAN控制器的差動(dòng)發(fā)送能力和CAN控制器的差動(dòng)接收能力。他有很強(qiáng)的抗瞬間干擾和保護(hù)總線的能力,具有3種不同的工作模式即高速、斜率控制和待機(jī)。總線上的某節(jié)點(diǎn)掉電不會(huì)影響總線,在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的工作模式
通過(guò)上面的結(jié)構(gòu)框圖繪制出了如圖5所示的CAN節(jié)點(diǎn)具體的電路。
2.2.2 溫度檢測(cè)部分
系統(tǒng)采用由DALLAS半導(dǎo)體公司生產(chǎn)的DS18B20型單線智能溫度傳感器,該傳感器屬于新一代適配微處理器的智能溫度傳感器。DS18B20主要有兩種工作方式:寄生電源工作方式和外接電源工作方式。本系統(tǒng)采用外接電源方式(如圖6)。
圖5 CAN節(jié)點(diǎn)電路圖
圖6 DS18B20測(cè)溫電路
2.2.3 濕度檢測(cè)部分
濕度檢測(cè)采用HS1101型濕度傳感器,HS1101是HUMIREL公司生產(chǎn)的變?nèi)菔较鄬?duì)濕度傳感器,采用獨(dú)特的工藝設(shè)計(jì)。
HS1101測(cè)量濕度采用將HS1101置于555振蕩電路中,將電容值的變化轉(zhuǎn)換成電壓頻率信號(hào),可以直接被微處理器采集。
設(shè)計(jì)的電路如圖7所示。
圖7 濕度測(cè)量電路
555芯片外接電阻R20,R19與HS1101,構(gòu)成對(duì)HS1101的充電回路。7端通過(guò)芯片內(nèi)部的晶體管對(duì)地短路實(shí)現(xiàn)對(duì)HS1101的放電回路,并將引腳2,6端相連引入到片內(nèi)比較器,構(gòu)成一個(gè)多諧波振蕩器,其中,R20相對(duì)于R19必須非常的小,但決不能低于一個(gè)最小值。R18是防止短路的保護(hù)電阻。
表2 典型頻率濕度關(guān)系
HS1101 作為一個(gè)變化的電容器,連接2和6引腳。引腳作為R20的短路引腳。HS1101的等效電容通過(guò)R19和R20充電達(dá)到上限電壓(近似于0.67 VCC,時(shí)間記為T1),這時(shí)555的引腳3由高電平變?yōu)榈碗娖剑缓笸ㄟ^(guò)R19開(kāi)始放電,由于R20被7引腳短路接地,所以只放電到觸發(fā)界線(近似于0.33 VCC,時(shí)間記為T2),這時(shí)555芯片的引腳3變?yōu)楦唠娖健Mㄟ^(guò)不同的兩個(gè)電阻R19,R20進(jìn)行傳感器的不停充放電,產(chǎn)生方波輸出。可以得出:
T1=C(R4+R2)×ln 2
T2=CR2×ln 2
這樣可得555輸出方波頻率為:
由此可以看出,空氣相對(duì)濕度與555芯片輸出頻率存在一定線性關(guān)系。表2給出了典型頻率濕度關(guān)系(參考點(diǎn):25 ℃,相對(duì)濕度:55%,輸出頻率:6.660 kHz)。可以通過(guò)微處理器采集555芯片的頻率,然后查表即可得出相對(duì)濕度值。為了更好提高測(cè)量精度,將采用下位機(jī)負(fù)責(zé)采集頻率,將頻率值送入上位機(jī)進(jìn)行分段處理。
2.2.4 溫濕度控制部分
在監(jiān)控系統(tǒng)中,除了實(shí)時(shí)檢測(cè)溫度濕度等參數(shù)外,還需要對(duì)這些參數(shù)進(jìn)行控制。在溫度等測(cè)量參數(shù)超過(guò)用戶設(shè)定值范圍時(shí),啟動(dòng)相關(guān)控制設(shè)備,否則關(guān)閉控制設(shè)備。系統(tǒng)采用繼電器控制通風(fēng),除濕等設(shè)備的啟動(dòng),具體電路設(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適配器軟件。現(xiàn)場(chǎng)監(jiān)控管理部分主要利用組態(tài)王軟件完成倉(cāng)庫(kù)的現(xiàn)場(chǎng)測(cè)量點(diǎn)模擬,對(duì)倉(cāng)庫(kù)的現(xiàn)場(chǎng)數(shù)據(jù)進(jìn)行采集,并對(duì)采集數(shù)據(jù)進(jìn)行分析,自動(dòng)計(jì)算倉(cāng)內(nèi)的最高、最低和平均溫度值,還可計(jì)算出每層的最高、最低和平均溫度值,完成超限實(shí)時(shí)報(bào)警,同時(shí)實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)設(shè)備進(jìn)行操作控制。例如啟動(dòng)通風(fēng)、除濕、噴灑及安全保護(hù)裝置,報(bào)警、切斷電源等。并自動(dòng)生成各種報(bào)表和圖表,建立和存儲(chǔ)倉(cāng)庫(kù)的倉(cāng)儲(chǔ)歷史檔案和打印功能。而遠(yuǎn)程監(jiān)控管理部分主要完成倉(cāng)庫(kù)狀態(tài)遠(yuǎn)程查詢,報(bào)表打印和遠(yuǎn)程控制等功能。
對(duì)于CAN適配器的軟件設(shè)計(jì)采用Windows環(huán)境下的VB語(yǔ)言進(jìn)行開(kāi)發(fā),由于Windows的保護(hù),VB無(wú)法直接讀寫并行端口,需要另外的程序模塊來(lái)實(shí)現(xiàn)并行端口的直接讀寫,使用WINIO模塊來(lái)解決VB對(duì)并口的讀寫。同時(shí),由于WINIO模塊不支持系統(tǒng)中斷,還需要利用VB編寫線程來(lái)查詢SJA1000的中斷狀態(tài)。
下位機(jī)系統(tǒng)的軟件包括CAN節(jié)點(diǎn)的軟件和溫濕度檢測(cè)控制軟件。軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方式。軟件中主要程序有SJA1000的初始化,報(bào)文的發(fā)送程序,報(bào)文的接收程序,CAN總線錯(cuò)誤處理程序,以及和傳感器配合實(shí)現(xiàn)現(xiàn)場(chǎng)參數(shù)的采集。
4 結(jié) 語(yǔ)
該設(shè)計(jì)在倉(cāng)庫(kù)的總體結(jié)構(gòu)設(shè)計(jì)中,成功引入CAN總線作為通訊網(wǎng)絡(luò),其中下位機(jī)利用AT89S52單片機(jī)和SJA1000完成CAN節(jié)點(diǎn)設(shè)計(jì),上位機(jī)完成了對(duì)CAN通訊適配器的設(shè)計(jì),采用上位機(jī)高級(jí)語(yǔ)言VB和EPP協(xié)議實(shí)現(xiàn)SJA1000的控制,大大地提高了系統(tǒng)內(nèi)部的速率和實(shí)時(shí)性,具有處理速度快,成本較低的優(yōu)點(diǎn)。
參 考 文 獻(xiàn)
[1]劉江虹,徐曉東.在VB中對(duì)并行口編程[J].內(nèi)蒙古大學(xué)學(xué)報(bào):自然科學(xué)版,2003,34(6):685-688.
[2]史久根,張培仁,陳真勇.CAN現(xiàn)場(chǎng)總線系統(tǒng)設(shè)計(jì)技術(shù)[M].北京:國(guó)防工業(yè)出版社,2004.
[3]戴佳,戴衛(wèi)恒.51單片機(jī)C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M].北京:電子工業(yè)出版社,2006.
作者簡(jiǎn)介 馮慶華 男,1981年出生,碩士研究生。主要從事自動(dòng)檢測(cè)與控制技術(shù)方向的研究。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。