基于嵌入式和CAN總線的測控系統(tǒng)設(shè)計
隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,Internet把世界上分散的計算機(jī)系統(tǒng)、通信系統(tǒng)實現(xiàn)了互連,形成了共用數(shù)據(jù)網(wǎng)絡(luò),成功的實現(xiàn)了網(wǎng)絡(luò)資源共享。而CAN總線技術(shù)使得控制系統(tǒng)向著分散化、網(wǎng)絡(luò)化、智能化的方向發(fā)展,使控制技術(shù)與計算機(jī)以及網(wǎng)絡(luò)技術(shù)更為緊密的結(jié)合在一起。隨著CAN總線控制網(wǎng)絡(luò)的進(jìn)一步發(fā)展,控制網(wǎng)絡(luò)與因特信息網(wǎng)絡(luò)的結(jié)合,方便了對設(shè)備的遠(yuǎn)程監(jiān)控、診斷和維護(hù)。
2 系統(tǒng)模型概述
本設(shè)計采用在CAN總線控制網(wǎng)絡(luò)和因特網(wǎng)之間加入一個轉(zhuǎn)換接口。這種方式是通過硬件來實現(xiàn)的,即在底層網(wǎng)絡(luò)與中間監(jiān)控層之間加入中繼器、網(wǎng)橋、路由器等專門的硬件設(shè)備,使控制網(wǎng)絡(luò)作為信息網(wǎng)絡(luò)的擴(kuò)展與之緊密集成。硬件設(shè)備可以是一臺專門的計算機(jī),依靠其中運行的軟件完成數(shù)據(jù)包的識別、解釋和轉(zhuǎn)換;對于多個網(wǎng)段的應(yīng)用,它還可以在不同網(wǎng)段之間存儲轉(zhuǎn)發(fā)數(shù)據(jù)包,起到網(wǎng)橋的作用。
轉(zhuǎn)換接口的集成方式功能較強(qiáng),但實時性較差。信息網(wǎng)絡(luò)一般是采用TCP/IP的因特網(wǎng),而TCP/IP沒有考慮數(shù)據(jù)傳輸?shù)膶崟r性,當(dāng)CAN設(shè)備有大量信息上傳或遠(yuǎn)程監(jiān)控操作頻繁時,轉(zhuǎn)換接口都將成為實時通信的瓶頸。但是隨著因特網(wǎng)技術(shù)進(jìn)一步發(fā)展,這個瓶頸問題將逐步得到解決。
3測控系統(tǒng)工作原理及組成
本系統(tǒng)采用C8051F060單片機(jī)作為控制網(wǎng)絡(luò)層的核心控制器,采用三星公司的S3C2410嵌入式微處理器設(shè)計信息網(wǎng)絡(luò),將工業(yè)現(xiàn)場設(shè)備和遠(yuǎn)程服務(wù)器、工作站連為一體,構(gòu)建了體積輕巧、功能強(qiáng)大、方便靈活的企業(yè)網(wǎng)絡(luò)。
3.1系統(tǒng)方案
本系統(tǒng)由信息網(wǎng)絡(luò)層和控制網(wǎng)絡(luò)層兩部分組成。信息網(wǎng)絡(luò)層是基于S3C2410的ARM系統(tǒng),運行著TCP/IP協(xié)議和現(xiàn)場總線CAN協(xié)議;控制網(wǎng)絡(luò)層是基于C8051F060的控制網(wǎng)絡(luò)測控系統(tǒng),它直接與工業(yè)測控設(shè)備聯(lián)系,負(fù)責(zé)測量、調(diào)節(jié)現(xiàn)場參數(shù),將測量結(jié)果通過CAN送給ARM,或是接收ARM下傳的數(shù)據(jù)調(diào)控現(xiàn)場設(shè)備。論文對CAN總線控制網(wǎng)絡(luò)和因特網(wǎng)進(jìn)行了深入研究,提出在提高信息網(wǎng)絡(luò)協(xié)議標(biāo)準(zhǔn)的實時性和兼容性的基礎(chǔ)上,從底層設(shè)備到遠(yuǎn)程監(jiān)控系統(tǒng)都使用統(tǒng)一的協(xié)議標(biāo)準(zhǔn)的設(shè)計方案,以確保信息準(zhǔn)確、快速、完整傳輸。本方案的優(yōu)點是價格低廉、功能強(qiáng)大、方便靈活。整個系統(tǒng)的示意圖如1所示。
3.2信息網(wǎng)絡(luò)部分
信息網(wǎng)絡(luò)要對控制系統(tǒng)的底層控制參數(shù)進(jìn)行決策,因此信息網(wǎng)絡(luò)在控制系統(tǒng)中扮演著重要的角色。一方面它要和遠(yuǎn)程PC通信,另一方面它還要和控制網(wǎng)絡(luò)層的單片機(jī)通信,起著連接PC和工業(yè)現(xiàn)場智能設(shè)備的橋梁作用。
信息網(wǎng)絡(luò)層采用的S3C2410,是韓國三星電子公司最近推出的一款基于ARM920T內(nèi)核的16/32位RISC嵌入式微處理器。該處理器主要面向手持式設(shè)備以及高性價比、低功耗的應(yīng)用。S3C2410內(nèi)部結(jié)構(gòu)較復(fù)雜,提供可擴(kuò)展的功能模塊也較多,如圖2所示。
3.3控制網(wǎng)絡(luò)部分
網(wǎng)絡(luò)測控系統(tǒng)擴(kuò)展CAN總線模塊,要擔(dān)負(fù)至少兩個方面的任務(wù):一是支持現(xiàn)場操作,包括數(shù)據(jù)采集、人-機(jī)對話等;二是與上級節(jié)點進(jìn)行數(shù)據(jù)交互,作為網(wǎng)絡(luò)測控系統(tǒng)的底層設(shè)備,系統(tǒng)結(jié)構(gòu)框圖如圖3所示。
基于CAN總線的分布式測控卡主要由單片機(jī)C8051F060、輸入/輸出電路、電源電路、人-機(jī)接口和通信接口(包括RS-232和CAN總線接口)幾部分組成。測控卡的工作原理如下:C8051F060單片機(jī)是完全集成的混合信號片上系統(tǒng)型MCU,是數(shù)據(jù)采集與實施控制的理想微型控制器。它集成了兩個16位、1Msps的模擬/數(shù)字轉(zhuǎn)換器,且?guī)в蠨MA控制器;集成有兩個12位數(shù)字/模擬轉(zhuǎn)換器,具有可編程數(shù)據(jù)更新方式;集成有控制器局域網(wǎng)(CAN2.0B)控制器,具有32個消息對象,每個消息對象有自己的標(biāo)識掩碼。工業(yè)現(xiàn)場設(shè)備的狀態(tài)參數(shù)通過I/V轉(zhuǎn)換成電壓信號,C8051F060單片機(jī)采集此信號后,通過CAN總線發(fā)送給上級網(wǎng)絡(luò)節(jié)點,同時上級網(wǎng)絡(luò)節(jié)點下傳的命令和參數(shù)經(jīng)DAC和V/I轉(zhuǎn)換電路轉(zhuǎn)換成0~20mA的電流信號,控制現(xiàn)場設(shè)備。人-機(jī)界面提供系統(tǒng)狀態(tài)與操作人員的友好交流平臺,且備用了一路RS-232異步串行通信總線。
4 信息網(wǎng)絡(luò)和控制網(wǎng)絡(luò)之間的通信
CAN與Internet是采用不同通信協(xié)議的兩種異構(gòu)網(wǎng)絡(luò)。首先,CAN通信基于報文,無需為每個節(jié)點設(shè)定一個獨立且唯一的地址。它采用標(biāo)識符來表明報文的內(nèi)容,CAN節(jié)點接受到一個報文時,通過基于標(biāo)識符的濾波機(jī)制來決定處理或拋棄該報文。而Internet上的IP數(shù)據(jù)包傳輸是面向連接的,基于節(jié)點地址來傳送,Internet上的每一個節(jié)點都必須設(shè)定一個唯一點IP地址。其次,CAN與Internet采用不同的沖突仲裁機(jī)制。CAN采用的是無破壞性仲裁機(jī)制,當(dāng)多個節(jié)點同時向總線發(fā)送數(shù)據(jù)造成媒體訪問沖突時,優(yōu)先級較高的報文不受影響地繼續(xù)發(fā)送,而優(yōu)先級較低的報文會自動停止,并等待總線空閑時再嘗試重新發(fā)送。。另外,CAN采用短幀結(jié)構(gòu),其最大長度只有16B。而IP數(shù)據(jù)包的長度遠(yuǎn)遠(yuǎn)超過了CAN數(shù)據(jù)幀的長度,最長可達(dá)16KB。
4.1通信方式
實現(xiàn)異構(gòu)網(wǎng)絡(luò)之間的通信,需要在不同的協(xié)議之間進(jìn)行轉(zhuǎn)換,這可通過網(wǎng)關(guān)來完成。網(wǎng)關(guān)又被稱為網(wǎng)間協(xié)議轉(zhuǎn)換器,用于連接采用不同通信協(xié)議的網(wǎng)絡(luò),實現(xiàn)網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸。當(dāng)一個報文要求從一個網(wǎng)段發(fā)送到另一個網(wǎng)段時,網(wǎng)關(guān)需要完成該報文的接受、翻譯與轉(zhuǎn)發(fā)工作。要實現(xiàn)協(xié)議轉(zhuǎn)換,網(wǎng)關(guān)必須具備它所要連接到不同網(wǎng)絡(luò)的協(xié)議包,由于TCP/IP協(xié)議包需要較大的存儲空間,因此,大多數(shù)情況都是用PC機(jī)來充當(dāng)網(wǎng)關(guān)。但在某些情況下使用PC機(jī)并不方便,需要在MCU/MPU嵌入式系統(tǒng)中實現(xiàn)網(wǎng)關(guān)功能。一種方案使用高檔的32位、64位MCU/MPU,內(nèi)嵌了成熟的實時多任務(wù)操作系統(tǒng),具有完整的TCP/IP協(xié)議包,能夠很好地完成與Internet的連接。這種方案具有足夠快的運行速度,采用精簡的TCP/IP協(xié)議包。嵌入式設(shè)備連接到Internet,互連實現(xiàn)數(shù)據(jù)信息交換或者遠(yuǎn)程訪問和機(jī)器控制,TCP/IP協(xié)議是互連的核心技術(shù)。
4.2軟件實現(xiàn)
由于被測控的幾個量都是緩慢變化的,對測控系統(tǒng)的實時性要求不高。單片機(jī)大部分時間在進(jìn)行參數(shù)測量,每次測量結(jié)束后使用查詢方式將測量結(jié)果保存到數(shù)據(jù)緩沖區(qū)中。由于單片機(jī)的RAM容量有限(C8051F060具有4K的RAM),使用了數(shù)據(jù)緩沖區(qū),以保存一定數(shù)量的測量結(jié)果。緩沖區(qū)使用先進(jìn)先出策略,在保存時先判斷緩沖區(qū)是否填滿,沒滿時緩沖指針加1,數(shù)據(jù)保存進(jìn)下一個單元,填滿時使指針指向緩沖區(qū)的頂部,數(shù)據(jù)保存進(jìn)緩沖區(qū),以前的數(shù)據(jù)丟掉。本系統(tǒng)的設(shè)計重點是CAN通信,因此,在CAN通信時采用了中斷方式。整個測控系統(tǒng)部分的軟件流程圖如圖4。
5 結(jié)束語
計算機(jī)監(jiān)控系統(tǒng)是一個集資源管理、工業(yè)控制于一體的調(diào)度系統(tǒng)在此監(jiān)控系統(tǒng)中,底層控制網(wǎng)絡(luò)采用了CAN總線技術(shù),節(jié)約了設(shè)備投資、提高了測量的精度和系統(tǒng)的可靠性;在信息網(wǎng)絡(luò)層,采用了嵌入式微處理器,既保證了系統(tǒng)的可靠性,實時性,又方便了系統(tǒng)的維護(hù)。這些先進(jìn)技術(shù)的綜合運用,使生產(chǎn)調(diào)度監(jiān)控系統(tǒng)不僅很好地滿足了生產(chǎn)調(diào)度的需要,而且大大提高了生產(chǎn)的效率。
本文作者創(chuàng)新點:
由于分布式控制網(wǎng)絡(luò)采用了面向不同應(yīng)用的協(xié)議標(biāo)準(zhǔn),因此二者集成時需要某種數(shù)據(jù)格式的轉(zhuǎn)化,這就不能保證數(shù)據(jù)的準(zhǔn)確性,本文采用嵌入式MPU和TCP/IP協(xié)議就可以很好的解決這個問題。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論