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