趙建新
(哈爾濱華德學(xué)院,黑龍江 哈爾濱150025)
自動化設(shè)備遠(yuǎn)程監(jiān)控系統(tǒng)的總體結(jié)構(gòu)如圖1 所示。
圖1 遠(yuǎn)程監(jiān)控系統(tǒng)總體結(jié)構(gòu)
遠(yuǎn)程監(jiān)控系統(tǒng)結(jié)構(gòu)主要分為三個部分:遠(yuǎn)程監(jiān)控平臺、嵌入式服務(wù)器、智能CAN節(jié)點。其中現(xiàn)場層主要是指智能CAN節(jié)點與嵌入式服務(wù)器。智能CAN節(jié)點的主要功能是對現(xiàn)場數(shù)據(jù)進(jìn)行采集,并完成監(jiān)控端所發(fā)的指令,從而能夠順利進(jìn)行有效的通信傳遞,并與嵌入式服務(wù)器完成實時信息交流;嵌入式服務(wù)器在能夠?qū)崿F(xiàn)CAN總線通信功能的基礎(chǔ)上,還建立了遠(yuǎn)程監(jiān)控端通信系統(tǒng),做到網(wǎng)上實時監(jiān)控,從而實現(xiàn)CAN與Internet 報文之間的轉(zhuǎn)換,即CAN協(xié)議與TCP 協(xié)議的轉(zhuǎn)換。
現(xiàn)場層中的智能CAN 節(jié)點主要負(fù)責(zé)對自動化設(shè)備運(yùn)行狀態(tài)進(jìn)行數(shù)據(jù)采集,智能CAN節(jié)點需要以單片機(jī)為中心進(jìn)行控制系統(tǒng)設(shè)計,通過設(shè)備傳感器對運(yùn)行狀態(tài)進(jìn)行信號采集,接著由單片機(jī)負(fù)責(zé)數(shù)據(jù)處理,并運(yùn)用CAN總線嵌入式服務(wù)器來滿足通信功能。具體CAN節(jié)點結(jié)構(gòu)如圖2 所示。
圖2 CAN 節(jié)點結(jié)構(gòu)圖
在進(jìn)行CAN節(jié)點的軟件編寫環(huán)節(jié)時,需要采用匯編語言,并結(jié)合模塊化設(shè)計思維進(jìn)行處理,實際操作環(huán)節(jié)主要包含以下三種功能模塊:
2.1 節(jié)點初始化模塊。該模塊具體涉及節(jié)點控制器初始化及CAN控制器初始化兩個環(huán)節(jié)。自動化設(shè)備在系統(tǒng)上電后,就能夠完成節(jié)點控制器的初始化,而且可以自主進(jìn)行工作狀態(tài)的設(shè)定及判斷。CAN控制器需要設(shè)備進(jìn)行上電復(fù)位后才能實現(xiàn)初始化環(huán)節(jié),而且必須在復(fù)位狀態(tài)下才能進(jìn)行后續(xù)設(shè)置,CAN 控制器的初始化設(shè)置主要涉及模塊設(shè)置、時鐘輸出寄存器設(shè)置、接收碼寄存器(ACR)設(shè)置、接收屏蔽碼寄存器(AMR)設(shè)置、總線定時器設(shè)置和輸出控制寄存器的設(shè)置。CAN控制器初始化流程如圖3 所示。
2.2 數(shù)據(jù)采集處理模塊。該模塊的功能是進(jìn)行數(shù)據(jù)讀取,具體是對AD 轉(zhuǎn)換后的數(shù)據(jù)進(jìn)行讀取及處理。數(shù)據(jù)采集處理環(huán)節(jié)會受到多種外界干擾因素,因此在進(jìn)行硬件設(shè)計環(huán)節(jié)選用了屏蔽線,使得信號線寄生電容耦合信號過程中所產(chǎn)生的交流干擾得到有效屏蔽,再加上采取串聯(lián)電阻、以及添加旁路電容等一系列方法,也能夠有效降低隨機(jī)信號的影響。還有在進(jìn)行電路設(shè)計環(huán)節(jié)時需要注意模數(shù)轉(zhuǎn)換器的選擇,一般需要選擇共模抑制較高的,能夠避免一些共模干擾。除去以上幾種抑制干擾的情況外,針對尖脈沖干擾、工頻干擾和其他隨機(jī)干擾,需要通過軟件濾波的方式進(jìn)行削弱。
圖3 CAN 控制器初始化流程圖
2.3 CAN通信模塊。(1)CAN用戶協(xié)議的制定。CAN通信模塊首先是進(jìn)行用戶協(xié)議制定,該環(huán)節(jié)的CAN 報文一般是選用11字節(jié)的標(biāo)準(zhǔn)幀,其中表頭需要占用前3 個字節(jié)來表示,數(shù)據(jù)區(qū)則需要占用后8 個字節(jié)來表示。自動化設(shè)備在進(jìn)行遠(yuǎn)程監(jiān)控環(huán)節(jié)能夠接收四組表頭信息,每組表頭信息的標(biāo)識符占11 位,這四組表頭所含信息均不同,前三組主要負(fù)責(zé)對信息狀態(tài)進(jìn)行描述,第四組為點對點信息,其功能主要是進(jìn)行網(wǎng)絡(luò)設(shè)備配置,并實現(xiàn)對長數(shù)據(jù)塊信息的傳輸。設(shè)備之間可以通過這些表頭信息自由進(jìn)行數(shù)據(jù)交換,而且可以實現(xiàn)一對多和多對一的接收方式。如果其中某一設(shè)備發(fā)生故障時,便可通過表頭數(shù)據(jù)傳輸主動向嵌入式服務(wù)器提交信息,從而將信息裝換成實際故障情況轉(zhuǎn)發(fā)至監(jiān)控平臺,并進(jìn)一步進(jìn)行報警及糾錯處理。(2)CAN報文的發(fā)送。在制定完用戶協(xié)議后,需要進(jìn)行CAN報文發(fā)送,該環(huán)節(jié)需要通過用戶協(xié)議由控制器完成。首選需要選取發(fā)送內(nèi)容,命令節(jié)點控制器將設(shè)定好幀格式的內(nèi)容發(fā)送到緩沖器待命;其次需要判斷置位命令寄存器中發(fā)送請求的標(biāo)志位,根據(jù)實際情況進(jìn)行狀態(tài)分析及命令判斷。一般情況CAN 報文的發(fā)送需要在程序中進(jìn)行定時設(shè)定,數(shù)據(jù)的發(fā)送頻率為1 次/10ms,數(shù)據(jù)需要在緩沖區(qū)待命。(3)CAN報文的接收。對于CAN報文的接收環(huán)節(jié),需要運(yùn)用中斷方式,而且能夠?qū)崿F(xiàn)數(shù)據(jù)的接收中斷及全局中斷,其中中斷接收是指數(shù)據(jù)暫時存儲在智能寄存器,通過CAN控制器來完成該操作,實現(xiàn)報文從總線到接收緩沖區(qū)的過度。報文正式接收需要進(jìn)行相關(guān)數(shù)據(jù)的合格檢驗,主要是運(yùn)用接收濾波器進(jìn)行檢測。如果需要承認(rèn)報文接收,則必須滿足標(biāo)識位與濾波器定義位值相等的情況,然后才能將報文存入緩沖區(qū)。CAN中斷程序在判斷中斷情況時,需要對中斷寄存器進(jìn)行讀取,接著進(jìn)行分類,根據(jù)實際情況給出接收中斷、總線錯誤中斷、數(shù)據(jù)超載中斷的結(jié)果。
3.1 嵌入式服務(wù)器硬件設(shè)計。在對嵌入式服務(wù)器進(jìn)行硬件設(shè)計時,需要劃分處理器、存儲器及外圍設(shè)備。針對不用的用途及具體情況,需要合理設(shè)置硬件設(shè)施,并結(jié)合環(huán)境進(jìn)行后續(xù)的配置和調(diào)試工作。通常情況下嵌入式服務(wù)器需要滿足經(jīng)濟(jì)性及實用性,因此可以將核心板及擴(kuò)展板分開設(shè)計,從而降低故障幾率,具體結(jié)構(gòu)設(shè)計如下圖4 所示。
圖4 嵌入式服務(wù)器硬件結(jié)構(gòu)圖
3.2 嵌入式服務(wù)器軟件設(shè)計的技術(shù)創(chuàng)新要求。(1)嵌入式操作系統(tǒng)移植。嵌入式服務(wù)器的系統(tǒng)移植必須滿足可裝卸方便,而且軟件所占空間較小的要求。系統(tǒng)移植需要實時性較強(qiáng),在各種設(shè)備控制中能夠自如應(yīng)用。設(shè)計環(huán)節(jié)需要注意接口的統(tǒng)一性,當(dāng)接入設(shè)備后安裝圖標(biāo)及內(nèi)部圖形界面清晰易懂,而且系統(tǒng)移植過程需要設(shè)計好各種設(shè)備的預(yù)留接口,系統(tǒng)安裝后需要能夠支持TCP/IP 協(xié)議及相關(guān)常見協(xié)議,并且需要提供TCP/UDP/IP/PPP 協(xié)議,支持及統(tǒng)一的MAC訪問層接口。嵌入式操作系統(tǒng)設(shè)計還需要注意,移植后的管理及維護(hù)操作需要盡量簡單,不需要用戶過多進(jìn)行干預(yù),接口的設(shè)計不用向用戶提供操作命令,直接由系統(tǒng)指令從而更便捷地提供服務(wù)。在進(jìn)行嵌入系統(tǒng)設(shè)計時還需注意系統(tǒng)及應(yīng)用軟件應(yīng)固化在計算機(jī)的ROM中,實現(xiàn)代碼固化處理。軟件系統(tǒng)應(yīng)適應(yīng)硬件系統(tǒng),滿足移植性良好的要求,而且結(jié)合新的Linux2.6 內(nèi)核特性,需要針對性的進(jìn)行軟件系統(tǒng)設(shè)計。(2)設(shè)備驅(qū)動程序設(shè)計。自動化設(shè)備的驅(qū)動程序設(shè)計要求應(yīng)滿足驅(qū)動底層硬件設(shè)備的實際運(yùn)行需求,驅(qū)動程序的讀寫環(huán)節(jié)需結(jié)合實際環(huán)境及硬件需求,從而進(jìn)一步實現(xiàn)寄存器信息的提取,待加載驅(qū)動后,指令設(shè)備各項硬件完成各自功能。一般驅(qū)動程序采用的是Linux操作系統(tǒng),該系統(tǒng)下分為字符設(shè)備和塊設(shè)備。在對字符設(shè)備進(jìn)行讀寫時,因其屬于順序的數(shù)據(jù)流設(shè)備,因此讀寫環(huán)節(jié)保證字符連續(xù)從而形成一個數(shù)據(jù)流。針對塊設(shè)備的讀寫需要注意的是,由于其不是順序流模式,而是隨機(jī)的的存取數(shù)據(jù),所以讀寫環(huán)節(jié)是需要按塊的模式進(jìn)行,需要將待讀取數(shù)據(jù)放入緩沖區(qū)后進(jìn)行識別。驅(qū)動程序運(yùn)行需要對硬件設(shè)備形式進(jìn)行區(qū)分,在訪問硬件設(shè)備時如果出現(xiàn)的是字符流形式,則屬于字符設(shè)備。如果訪問硬件時發(fā)現(xiàn)設(shè)備數(shù)據(jù)是無需的狀態(tài),則為塊設(shè)備。經(jīng)常用的Linux 操作系統(tǒng)中涉及的驅(qū)動設(shè)備主要有串口、JTAG、網(wǎng)絡(luò)等。(3)CAN/TCP 網(wǎng)關(guān)程序設(shè)計。網(wǎng)關(guān)程序設(shè)計是最后一步連接各項程序的樞紐,設(shè)備間數(shù)據(jù)的傳輸需要通過網(wǎng)關(guān)程序設(shè)計來進(jìn)行,其中扮演溝通角色的是嵌入式服務(wù)器,負(fù)責(zé)接收工作的是異性協(xié)議網(wǎng)絡(luò)。CAN/TCP 網(wǎng)關(guān)程序設(shè)計中主要涉及的是CAN總線網(wǎng)絡(luò)及Internet 網(wǎng)絡(luò)轉(zhuǎn)換,該轉(zhuǎn)換環(huán)節(jié)主要有兩種形式:第一種是實現(xiàn)CAN協(xié)議轉(zhuǎn)換到TCP 協(xié)議,由于最終的轉(zhuǎn)換格式要求是以太網(wǎng)數(shù)據(jù),因此需要嵌入式服務(wù)器將CAN 接收到的報文轉(zhuǎn)換成以太網(wǎng)數(shù)據(jù)包格式。第二種是實現(xiàn)TCP 協(xié)議轉(zhuǎn)換到CAN協(xié)議,這個環(huán)節(jié)同樣需要嵌入式服務(wù)器處理TCP 發(fā)來的協(xié)議,并在遠(yuǎn)程監(jiān)控平臺的控制命令配合下將數(shù)據(jù)傳輸?shù)紺AN節(jié)點上。
這其中的遠(yuǎn)程監(jiān)控平臺必須滿足現(xiàn)階段新的技術(shù)要求,統(tǒng)一應(yīng)用C/S實現(xiàn)網(wǎng)關(guān)程序設(shè)計,而這其中涉及到的嵌入式網(wǎng)關(guān)需要滿足多臺服務(wù)器端同時對接及控制請求。其次還需要設(shè)置權(quán)限驗證,對需要對接的監(jiān)控端設(shè)置好登錄限制,用戶名及密碼正確才能登錄,連續(xù)錯誤輸入一定次數(shù)則需限制登錄。嵌入式網(wǎng)關(guān)應(yīng)做到最高識別要求,必須比CAN總線基本ID高出6 位,才能和符合IP 要求的終端對接。并且網(wǎng)關(guān)程序的設(shè)計需要滿足多個環(huán)節(jié)的對接及數(shù)據(jù)傳輸要求,必須隨時對CAN 總線波特率、接收路徑及濾波器ID值進(jìn)行修改及完善,以滿足樞紐的中心職責(zé)?,F(xiàn)階段針對自動化設(shè)備遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計,需要保證系統(tǒng)上電后,能夠自動加載mcp2510.ko 模塊,從而進(jìn)一步實現(xiàn)程序的啟動環(huán)節(jié),由于設(shè)備的復(fù)雜性及實際遠(yuǎn)程監(jiān)控系統(tǒng)的環(huán)境要求,需要網(wǎng)關(guān)程序同時滿足較多功能,因此最好使用多線程方式來完成程序的設(shè)計環(huán)節(jié),就是運(yùn)用多個連接對多個監(jiān)控設(shè)置相應(yīng)的線程,并將所有線程連接到主線程。例如要實現(xiàn)手機(jī)的實時監(jiān)控,就應(yīng)滿足手機(jī)接入端口的要求。
網(wǎng)絡(luò)自動化遠(yuǎn)程監(jiān)控系統(tǒng)的現(xiàn)場層主要為智能CAN 節(jié)點與嵌入式服務(wù)器,因此在實際設(shè)計環(huán)節(jié),應(yīng)重點分析實際監(jiān)控環(huán)境,根據(jù)環(huán)境需求設(shè)置相應(yīng)功能。硬件設(shè)備應(yīng)及時更新以便降低維護(hù)成本、提升運(yùn)行效率,軟件設(shè)計應(yīng)及時完善系統(tǒng),以滿足其他對接設(shè)備的版本要求,從而提升監(jiān)控系統(tǒng)的實際應(yīng)用范圍。