針對(duì)封閉式引水隧道內(nèi)多點(diǎn)水位信息的實(shí)時(shí)、準(zhǔn)確的采集,提出基于CAN總線" title="CAN總線">CAN總線的嵌入式" title="嵌入式">嵌入式水位監(jiān)測(cè)系統(tǒng)" title="監(jiān)測(cè)系統(tǒng)">監(jiān)測(cè)系統(tǒng)設(shè)計(jì)思想,集總線技術(shù)、單片機(jī)技術(shù)于一體,實(shí)現(xiàn)了對(duì)多點(diǎn)水位信息的采集、計(jì)算、儲(chǔ)存、發(fā)送等處理功能。使用iCAN協(xié)議,使水位監(jiān)測(cè)點(diǎn)可以對(duì)多點(diǎn)水位信息進(jìn)行集中控制采集,可實(shí)時(shí)準(zhǔn)確地掌握隧道內(nèi)多點(diǎn)水位信息。
1 系統(tǒng)總體方案設(shè)計(jì)
1.1 系統(tǒng)基本結(jié)構(gòu)
嵌入式水位監(jiān)測(cè)系統(tǒng)由數(shù)據(jù)監(jiān)測(cè)終端、上位機(jī)監(jiān)測(cè)服務(wù)器和CAN總線網(wǎng)絡(luò)組成,系統(tǒng)總體結(jié)構(gòu)框圖如圖l所示。
系統(tǒng)采用分布式集中管理的結(jié)構(gòu),分為2層:1)第1層是數(shù)據(jù)采集終端層。數(shù)據(jù)采集終端通過水位傳感器對(duì)水位信息進(jìn)行采樣,通過CAN總線接口與第2層進(jìn)行通信;2)第2層是監(jiān)測(cè)管理層。第1層通過CAN總線延長(zhǎng)通信距離,再經(jīng)過CAN適配卡與第2層的監(jiān)測(cè)服務(wù)器相連。一臺(tái)監(jiān)測(cè)服務(wù)器可以管理多個(gè)數(shù)據(jù)采集終端。
在網(wǎng)絡(luò)中的監(jiān)測(cè)終端可以獨(dú)立的對(duì)傳感器進(jìn)行數(shù)據(jù)采集、計(jì)算、儲(chǔ)存等,監(jiān)測(cè)服務(wù)器可以通過CAN總線和各個(gè)監(jiān)測(cè)點(diǎn)之間進(jìn)行實(shí)時(shí)通信,接收監(jiān)測(cè)終端的水位信息向監(jiān)測(cè)終端發(fā)出查詢指令。通過iCAN協(xié)議實(shí)現(xiàn)監(jiān)測(cè)節(jié)點(diǎn)的分散監(jiān)測(cè)和集中管理。當(dāng)系統(tǒng)需要增加監(jiān)測(cè)節(jié)點(diǎn)時(shí),可以直接將其掛在CAN網(wǎng)絡(luò)上,對(duì)系統(tǒng)其他節(jié)點(diǎn)不會(huì)有任何影響。
1.2 監(jiān)測(cè)終端硬件電路設(shè)計(jì)
監(jiān)測(cè)終端的硬件結(jié)構(gòu)框圖如圖2所示,主要包括微處理器、數(shù)據(jù)存儲(chǔ)電路、鍵盤和顯示電路以及CAN收發(fā)等電路。微處理器采用基于ARM7 TDMI核的32位RISC芯片LPC2368,其內(nèi)置2路CAN控制器,通過外接CAN收發(fā)器可方便的進(jìn)行CAN數(shù)據(jù)收發(fā)。傳感器輸出的信號(hào)經(jīng)過濾波和調(diào)理轉(zhuǎn)換為所需要的電信號(hào)。采用12位低功耗、串行輸出模數(shù)轉(zhuǎn)換器TLC2574采集電壓信號(hào),使監(jiān)測(cè)終端能準(zhǔn)確、穩(wěn)定地采集電壓信號(hào)。
1.2.1 器件選型
為提高系統(tǒng)的實(shí)時(shí)性和可靠性,監(jiān)測(cè)終端選用可移植嵌入式操作系統(tǒng)的ARM7 TDMI內(nèi)核的32位RISC芯片LPC2368。LPC2368是一款功能強(qiáng)大的超低功耗ARM7TDMIS內(nèi)核的32位微控制器,最高支持72MHz工作頻率,片內(nèi)有Flash 512KB,ROM 56KB,集成10/100全雙工Ethemet MAC,2個(gè)兼容CAN2.0A/2.OB的CAN控制器,帶RMII接口,其性能穩(wěn)定、功能強(qiáng)大,廣泛應(yīng)用于協(xié)議轉(zhuǎn)換、通信、工業(yè)控制領(lǐng)域。應(yīng)用LPC2368開發(fā)監(jiān)測(cè)終端可以有效控制成本。工業(yè)網(wǎng)絡(luò)需要強(qiáng)穩(wěn)定性,但實(shí)驗(yàn)證明超過60%的總線帶寬使用率就會(huì)造成沖突。1根AHB總線是完全不夠的,而LPC2368具有雙總線機(jī)制和DMA協(xié)處理機(jī)制。任何一根總線都可以通過總線橋與其余總線通信,消除了通信瓶頸。
1.2.2 CAN總線接口硬件設(shè)計(jì)
通過CAN總線通信接口可使各監(jiān)測(cè)終端和監(jiān)控計(jì)算機(jī)通信,實(shí)現(xiàn)監(jiān)測(cè)終端的數(shù)據(jù)共享。CAN總線接口硬件電路如圖3所示。
LPC2368內(nèi)部集成有2個(gè)兼容CAN2.0/2.0B的CAN控制器,只需增加一個(gè)CAN總線收發(fā)器就能滿足設(shè)計(jì)要求。CTM8251T是一款帶隔離的通用CAN收發(fā)器,該器件內(nèi)部集成了所需的CAN隔離及CAN收、發(fā)器,它可以將CAN控制器的邏輯電平轉(zhuǎn)換為CAN總線的差分電平,將CAN總線差分電平轉(zhuǎn)換成邏輯電平,具有DC 2 500 V的隔離功能和CAN總線過壓保護(hù)功能,而且在某一節(jié)點(diǎn)掉電時(shí)不會(huì)影響總線。
各個(gè)監(jiān)測(cè)終端間通過帶屏蔽雙絞線構(gòu)成CAN總線網(wǎng)絡(luò),總線兩端連接120 Ω的匹配電阻,用于提高系統(tǒng)的穩(wěn)定性、增強(qiáng)系統(tǒng)的抗干擾能力。
1.2.3 嵌入式終端電源電路設(shè)計(jì)
基于ARM內(nèi)核的微處理器的嵌入式系統(tǒng)性能在很大程度上取決于電源電路的穩(wěn)定性和可靠性,因此設(shè)計(jì)穩(wěn)定可靠的電源非常重要。LPC23 68有數(shù)字電源輸入和模擬電源輸入2種,分別是+3.3 V和-3.3 V,另外CAN收發(fā)器的供電電壓為+5 V。系統(tǒng)電源采用LM2576系列穩(wěn)壓器,把外部直流電源穩(wěn)壓成+5 V電源,為CAN收發(fā)器提供電源。采用SPXlll7把+5 V電源穩(wěn)壓成2路+3.3 V電源,以提供LPC2368的數(shù)字和模擬電源,數(shù)字電源和模擬電源之間通過磁珠隔離。
2 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)部分包括2方面:1)監(jiān)測(cè)終端軟件設(shè)計(jì),主要是對(duì)傳感器的數(shù)據(jù)采集和處理,完成與上位機(jī)之間的數(shù)據(jù)通信功能;2)上位機(jī)軟件設(shè)計(jì),主要包括CAN節(jié)點(diǎn)初始化、報(bào)文發(fā)送和報(bào)文接收。
2.1 監(jiān)測(cè)終端軟件設(shè)計(jì)
監(jiān)測(cè)終端軟件主要由啟動(dòng)代碼、斷處理、實(shí)時(shí)操作系統(tǒng)、設(shè)備驅(qū)動(dòng)和應(yīng)用程序組成。啟動(dòng)代碼完成啟動(dòng)、初始化硬件、引導(dǎo)系統(tǒng)正常運(yùn)行等工作。實(shí)時(shí)操作系統(tǒng)μC/OS-Ⅱ是系統(tǒng)運(yùn)行的指揮中心,完成任務(wù)調(diào)度和資源分配等工作。設(shè)備驅(qū)動(dòng)是操作系統(tǒng)上層應(yīng)用軟件和下層硬件的聯(lián)系,本設(shè)計(jì)主要包括CAN控制器驅(qū)動(dòng)、A/D采集驅(qū)動(dòng)等。上層應(yīng)用程序基于以上各個(gè)模塊,完成用戶要實(shí)現(xiàn)的各種功能,通常按功能分成多個(gè)模塊。本設(shè)計(jì)中主要包括傳感器數(shù)據(jù)采集模塊、參數(shù)設(shè)置模塊、CAN通信模塊。由表1所列的任務(wù)完成以上模塊功能。
2.1.1 定時(shí)數(shù)據(jù)采集
定時(shí)數(shù)據(jù)采集模塊負(fù)責(zé)定時(shí)采集傳感器的信號(hào)。A/D轉(zhuǎn)換由定時(shí)器產(chǎn)生周期中斷標(biāo)志觸發(fā),當(dāng)采樣完1個(gè)周期后,由中斷服務(wù)程序發(fā)給Task_AD發(fā)送信號(hào)量,Task_AD收到信號(hào)量后,將數(shù)據(jù)進(jìn)行相應(yīng)的處理。
2.1.2 CAN收發(fā)子程序
CAN協(xié)議是建立在ISO的開放系統(tǒng)互聯(lián)模型的基礎(chǔ)上的,取其中的3層:物理層、數(shù)據(jù)鏈路層和應(yīng)用層。物理層和數(shù)據(jù)鏈路層的功能可由CAN接口芯片實(shí)現(xiàn),而應(yīng)用層的功能則要靠應(yīng)用程序完成。CAN總線接口通信模塊是接收和發(fā)送CAN總線數(shù)據(jù)。主要操作包括CAN控制器初始化和CAN總線上接收和發(fā)送數(shù)據(jù)的操作。
CAN收發(fā)子程序主要完成CAN控制器的初始化和CAN數(shù)據(jù)的接收、發(fā)送。CAN控制器的初始化主要是給相應(yīng)的寄存器寫入一定的數(shù)值以完成各種參數(shù)的設(shè)置,如波特率、位周期寬度、采樣點(diǎn)位置等。
CAN控制器有3個(gè)獨(dú)立的發(fā)送緩沖寄存器,發(fā)送時(shí)要判斷緩沖空閑。本設(shè)計(jì)中,先判斷第一主發(fā)送緩沖區(qū),然后進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,啟動(dòng)發(fā)送數(shù)據(jù)。接收采用中斷方式。報(bào)文發(fā)送、接收數(shù)據(jù)流程如圖4所示。
2.1.3 iCAN協(xié)議報(bào)文處理
iCAN協(xié)議為CAN總線的應(yīng)用層協(xié)議。該協(xié)議是基于CAN的內(nèi)部通信協(xié)議,小巧、通信效率高,對(duì)硬件資源要求低,適用于小型系統(tǒng)。系統(tǒng)中的設(shè)備統(tǒng)稱為iCAN節(jié)點(diǎn)。iCAN協(xié)議定義的通信方式是“面向節(jié)點(diǎn),基于連接”的通信方式。“面向節(jié)點(diǎn)”是指源節(jié)點(diǎn)地址及目的節(jié)點(diǎn)地址均已給定,即對(duì)于任何一個(gè)報(bào)文參與通信的雙方是確定的。“基于連接”是指在網(wǎng)絡(luò)中任何一個(gè)參與通信的從站設(shè)備都必須和主站設(shè)備之間建立一個(gè)獨(dú)立的通信連接。這樣也為對(duì)任何一個(gè)設(shè)備的通信進(jìn)行監(jiān)控提供可能。
iCAN協(xié)議使用了擴(kuò)展幀格式CAN報(bào)文,對(duì)CAN報(bào)文的29位標(biāo)識(shí)符和報(bào)文數(shù)據(jù)都做了詳細(xì)規(guī)定。報(bào)文標(biāo)識(shí)符制定了數(shù)據(jù)通信中的源節(jié)點(diǎn)MACID和目標(biāo)節(jié)點(diǎn)MACID,并指示了報(bào)文的功能以及所要訪問的資源。報(bào)文標(biāo)識(shí)符被分為5個(gè)部分:SrcMACID(源節(jié)點(diǎn)編號(hào))、De2stMACID(目標(biāo)節(jié)點(diǎn)編號(hào))、ACK位、FUNC ID(功能碼)、Source ID(資源節(jié)點(diǎn)編號(hào))。
監(jiān)測(cè)終端要收發(fā)的數(shù)據(jù)必須符合iCAN協(xié)議報(bào)文的格式,先要把CAN的數(shù)據(jù)轉(zhuǎn)換成符合iCAN協(xié)議格式的報(bào)文,再通過CAN的首發(fā)子程序接收和發(fā)送。
2.2 上位機(jī)管理軟件設(shè)計(jì)
完成上述設(shè)計(jì)后,在計(jì)算機(jī)端還需要一套水位監(jiān)測(cè)系統(tǒng)管理軟件,以實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)采集、與數(shù)據(jù)庫的連接和數(shù)據(jù)實(shí)時(shí)查詢等功能。上位機(jī)軟件流程如圖5所示。
監(jiān)測(cè)終端采集傳感器信號(hào),實(shí)時(shí)獲得水位數(shù)據(jù)并通過ZOPC_SERVER服務(wù)器傳輸?shù)娇蛻舳薑ingVIEW,同時(shí)KingVIEW作為服務(wù)器提供數(shù)據(jù)給SQL數(shù)據(jù)庫。在KingVIEW的圖形化界面上既可以顯示實(shí)時(shí)水位數(shù)據(jù),又可以查看歷史水位數(shù)據(jù)。
3 結(jié)束語
實(shí)驗(yàn)結(jié)果表明:該系統(tǒng)可通過1根雙絞線在通信速率為9 600 b/s的情況下,可在6 km范圍內(nèi)實(shí)時(shí)監(jiān)測(cè)63個(gè)節(jié)點(diǎn)的水位信息。此嵌入式水位監(jiān)測(cè)系統(tǒng)可應(yīng)用在基于ARM7核心的多點(diǎn)水位監(jiān)測(cè)的工廠、城市供水、隧道等場(chǎng)合。本系統(tǒng)可以實(shí)現(xiàn)水位信息采集的現(xiàn)場(chǎng)總線通信,使各節(jié)點(diǎn)連接在總線網(wǎng)絡(luò)上,實(shí)時(shí)獲取水位信息,方便數(shù)據(jù)庫的管理和更新,可進(jìn)行數(shù)據(jù)庫的定點(diǎn)定時(shí)水位查詢。