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