基于以太網(wǎng)的控制器網(wǎng)絡(luò)的嵌入式網(wǎng)關(guān)開發(fā)
本地控制器網(wǎng)絡(luò)(CAN)[2]由于低成本和高可靠性,已經(jīng)在工業(yè)分布式控制系統(tǒng)中廣泛使用。以太網(wǎng)的低成本和易配置特性也使得其在計(jì)算機(jī)通信網(wǎng)絡(luò)中廣泛應(yīng)用。本文介紹了基于以太網(wǎng)和控制器區(qū)域網(wǎng)總線通信系統(tǒng)的集成通信網(wǎng)關(guān)系統(tǒng)的開發(fā)。系統(tǒng)開發(fā)的目的是在以太網(wǎng)和控制器區(qū)域網(wǎng)總線之間交換實(shí)時控制信息,以實(shí)現(xiàn)分布式控制和監(jiān)測。
1 硬件平臺設(shè)計(jì)
嵌入式處理器可編程邏輯電路設(shè)計(jì)方面最大的挑戰(zhàn)之一就是為適合速度要求非常廣泛的應(yīng)用。在低端,系統(tǒng)要求可能少于10MIPS;在高端,系統(tǒng)可能要求好幾百M(fèi)IPS。不同系統(tǒng)需要的范圍不同。完全滿足范圍需要的解決方案需要提供可編程設(shè)備配置、操作以及精通嵌入式處理器的用戶。網(wǎng)關(guān)系統(tǒng)的設(shè)計(jì)建立在Altera Excalibur[3]嵌入式處理器基礎(chǔ)上,它可以提供最佳的解決方案,擁有較優(yōu)的適應(yīng)性和強(qiáng)大的性能。基于核心部分SOPC[4]的ARM系統(tǒng)設(shè)計(jì)結(jié)構(gòu)如圖 1所示。控制器網(wǎng)關(guān)結(jié)構(gòu)如圖2所示。
1.1 軟核CAN控制器設(shè)計(jì)
使用AMBA總線接口的Soft CAN控制器是為了進(jìn)行控制器網(wǎng)絡(luò)通信設(shè)計(jì)開發(fā)的,它能在網(wǎng)關(guān)系統(tǒng)平臺上運(yùn)行。該Soft CAN控制器具備CAN 2.0B[1]規(guī)范的所有協(xié)議功能,包括錯誤處理能力、填充位產(chǎn)生、循環(huán)冗余碼校驗(yàn)(CRC)、主動/被動錯誤幀和擴(kuò)展幀技術(shù)支持。Soft CAN控制器也能支持如下應(yīng)用發(fā)展:信息過濾、信息封裝、信息發(fā)送緩沖、信息接收緩沖以及發(fā)送、接收和錯誤事件的中斷觸發(fā)。Soft CAN控制器提供AMBA兼容接口以實(shí)現(xiàn)數(shù)據(jù)高速傳輸,也提供中斷支持實(shí)現(xiàn)系統(tǒng)快速響應(yīng)。
1.2 Soft CAN控制器模擬驗(yàn)證
Soft CAN控制器模擬驗(yàn)證平臺設(shè)計(jì)如圖3所示。
Soft CAN控制器的綜合模擬/驗(yàn)證輸出波形(如圖4)說明了其控制器工作狀態(tài)正確。
從圖4所示的驗(yàn)證輸出結(jié)果,可以得出以下結(jié)論:
(1)Soft CAN控制器#1狀態(tài):
“00000000000000000000000000001000” -->Soft CAN控制器正在控制CAN數(shù)據(jù)線信號。
(2)Soft CAN 控制器#2狀態(tài):
“00000000000000000000000000001000” --> Soft CAN控制器正在控制CAN數(shù)據(jù)線信號。
(3)Soft CAN 控制器#1 TX緩沖器:標(biāo)識 -“11101101000”,數(shù)據(jù)-“10011001100110011001100110011001”。
(4)Soft CAN 控制器#1 TX緩沖器:標(biāo)識- NA,數(shù)據(jù)-NA。
2 軟件設(shè)計(jì)
軟件設(shè)計(jì)包括實(shí)時操作系統(tǒng)[5]移植、異常處理支持、設(shè)備驅(qū)動程序開發(fā)和文件系統(tǒng)開發(fā)等。
2.1 實(shí)時操作系統(tǒng)移植
eCos被成功地移植到網(wǎng)關(guān)系統(tǒng)硬件平臺,為應(yīng)用系統(tǒng)的開發(fā)提供實(shí)時服務(wù)。由于eCos的分層結(jié)構(gòu)使得其移植靈活并容易,所有結(jié)構(gòu)和平臺的絕對代碼都在硬件抽象層(HAL)實(shí)現(xiàn)。
2.1.1 系統(tǒng)啟動模式
本系統(tǒng)移植提供四種啟動模式。
(1)ROM啟動模式。在ROM啟動模式中,應(yīng)用程序儲存在EPXA1開發(fā)板的閃存中,并從那里啟動。
(2)ROM-RAM啟動模式。在ROM-RAM啟動模式中,應(yīng)用程序存儲在閃存中。啟動程序?qū)⑾葟拈W存中運(yùn)行,并且初始化系統(tǒng)。在系統(tǒng)初始化后,eCos應(yīng)用程序?qū)拈W存中自動復(fù)制到SDRAM中,接著在SDRAM中以更高的速度運(yùn)行。
(3)RAM啟動模式。在RAM啟動模式中,eCos應(yīng)用程序會通過EPXA1板上的調(diào)試器(例如RedBoot加載到其板的SDRAM內(nèi)存中)啟動。這主要是為了調(diào)試。
2.1.2 線程管理
EPXA1 eCos移植完全支持多線程編程模式。除了任務(wù)同步支持外,它還提供了一系列可選擇的調(diào)度算法。
2.1.3 系統(tǒng)定時支持
系統(tǒng)的定時基準(zhǔn)由Altera EPXA1平臺上的系統(tǒng)定時器提供,定時器頻率為150MHz。系統(tǒng)的脈沖周期為10毫秒。在EPXA1 上移植的eCos控制通過內(nèi)核使用的時鐘或計(jì)時設(shè)備進(jìn)行暫停、延時和調(diào)度服務(wù),供系統(tǒng)內(nèi)核使用。
2.2 異常處理
所有的異常,包括FIQ和IRQ中斷[7],都跳轉(zhuǎn)到矢量0地址,每個中斷矢量占4字節(jié)。這里僅有一個指令空間,它須立即跳轉(zhuǎn)到內(nèi)存中更高地址的代碼。中斷源必須進(jìn)行解碼。由于每一個矢量服務(wù)例程都對應(yīng)一個不同的CPU模式的入口,所以需要對每一個異常有一個不同的VSR,它知道怎樣從中斷控制器完全正確地保存CPU狀態(tài)。這個異常處理機(jī)制包含一個分離的中斷處理方案。在這個方案中,中斷處理劃分為兩部分。第一部分稱之為中斷服務(wù)程序或ISR;第二部分是延遲服務(wù)程序或DSR。這種劃分明確地顧及到了DSRs與正在執(zhí)行的中斷同時運(yùn)行,因此允許當(dāng)正在執(zhí)行低級別的中斷時其他內(nèi)在具有更高優(yōu)先級別的中斷發(fā)生及接受處理。
2.3 設(shè)備驅(qū)動程序開發(fā)
2.3.1 閃存設(shè)備驅(qū)動程序
本項(xiàng)目開發(fā)了基于Intel 28F320C閃存的驅(qū)動程序。Boot-loader用它來儲存映像、配置信息和閃存內(nèi)的數(shù)據(jù)。這個設(shè)備驅(qū)動程序提供廣泛的操作支持。
(1)閃存查詢:可從閃存中重新獲得廠商和零件號碼代碼。
(2)閃存區(qū)塊擦除:擦掉閃存中的模塊。
(3)閃存編程緩沖:允許在閃存中寫入一緩沖的數(shù)據(jù)。
(4)閃存區(qū)段上鎖/開啟:允許閃存中的內(nèi)容受到保護(hù)。
2.3.2 以太網(wǎng)接口設(shè)備驅(qū)動程序
以太網(wǎng)設(shè)備驅(qū)動程序支持以太網(wǎng)控制器SMC91C111,它可以提供雙重速度10/100Mbps的通信支持。以太網(wǎng)設(shè)備Lan91C111提供所有發(fā)送、接收與事件中斷等必要的功能,以支持與BSD TCP/IP 堆棧的集成實(shí)現(xiàn)TCP/IP網(wǎng)絡(luò)協(xié)議。
2.3.3 Soft CAN控制器設(shè)備驅(qū)動程序
此設(shè)備驅(qū)動程序提供了對控制器區(qū)域網(wǎng)絡(luò)通信的支持,以實(shí)現(xiàn)發(fā)送、接收及中斷處理功能。圖5為驅(qū)動程序流程圖。
2.4 嵌入式文件系統(tǒng)開發(fā)
為了使信息保存與交換更加高效,本項(xiàng)目開發(fā)了基于閃存和RAM的文件系統(tǒng)。該文件系統(tǒng)提供廣泛的文件操作支持:文件新建、文件刪除、文件復(fù)制、文件重命名和文件移動,還有目錄支持。文件系統(tǒng)可以交叉操作,文件可以在基于文件系統(tǒng)的閃存和RAM之間實(shí)現(xiàn)復(fù)制或移動。
2.5 調(diào)試支持
一般地,硬件模擬方法需要花費(fèi)大量的資金。為了實(shí)現(xiàn)低成本設(shè)計(jì),釆用了基于軟件的調(diào)試方法。這個基于軟件的EPXA1平臺調(diào)試工具已經(jīng)集成到該網(wǎng)關(guān)平臺中,在系統(tǒng)開發(fā)中提供調(diào)試功能。這個調(diào)試器可以使用串行端口或以太網(wǎng)信道實(shí)現(xiàn)與主機(jī)間的通信。這個軟件調(diào)試器提供一般的調(diào)試功能,諸如:單步運(yùn)行、變量訪問、處理器寄存器恢復(fù)、資源等級調(diào)試和斷點(diǎn)支持。
3 系統(tǒng)集成
3.1 網(wǎng)絡(luò)實(shí)時焊接控制系統(tǒng)應(yīng)用
此應(yīng)用提供了一個分布式的網(wǎng)絡(luò)解決方案,以監(jiān)控一個分布式的實(shí)時焊接控制網(wǎng)絡(luò)。用戶可以通過因特網(wǎng)監(jiān)控SMD[8]定位焊接控制網(wǎng)絡(luò)。SMD定位焊接系統(tǒng)如圖6所示。
該應(yīng)用系統(tǒng)基于嵌入式網(wǎng)絡(luò)服務(wù)器的支持,為遠(yuǎn)程計(jì)算機(jī)動態(tài)生成需要的網(wǎng)頁,即監(jiān)控和配置。
3.2 系統(tǒng)驗(yàn)證以及結(jié)論
該網(wǎng)關(guān)系統(tǒng)的實(shí)時性能可通過使用儀器運(yùn)行相關(guān)任務(wù)進(jìn)行評測。對該整套實(shí)驗(yàn)操作所收集到的數(shù)據(jù)進(jìn)行分析,得出平均值、最大值以及最小值;再計(jì)算出樣品方差;測量出獲得實(shí)時時鐘計(jì)時數(shù)值所需的時間,再減去其他時間。所得到的數(shù)據(jù)說明,網(wǎng)關(guān)系統(tǒng)可以滿足網(wǎng)關(guān)系統(tǒng)計(jì)數(shù)需求的實(shí)時性能。
為了確保監(jiān)控系統(tǒng)的網(wǎng)頁不會丟失任何控制器區(qū)域網(wǎng)信息,已采取了如下結(jié)構(gòu)的接收計(jì)時測量方法:網(wǎng)絡(luò)監(jiān)控系統(tǒng)的控制器網(wǎng)絡(luò)通信速度為125Kbps,系統(tǒng)運(yùn)行頻率為75MHz,控制器區(qū)域網(wǎng)絡(luò)標(biāo)準(zhǔn)限制了最小間幀間隔為3位節(jié)拍。因而一個滿荷的控制器網(wǎng)絡(luò)中,控制器區(qū)域網(wǎng)絡(luò)信息幀之間的空閑時間可以用式(1)計(jì)算:
從eCos的實(shí)時特性所顯示的結(jié)果,可以得到中斷反應(yīng)時間為5.31微秒。所以可以從式(2)得到計(jì)時結(jié)果。
通過以上驗(yàn)證得知,網(wǎng)絡(luò)監(jiān)控系統(tǒng)網(wǎng)頁能夠監(jiān)控SMD定位焊接控制網(wǎng)絡(luò),即使網(wǎng)絡(luò)總線滿荷時也不會丟失任何一個實(shí)時的監(jiān)控信息。
參考文獻(xiàn)
[1] ROBERT BOSCH GmbH.控制器網(wǎng)絡(luò)標(biāo)準(zhǔn)2.0[P],1991.
[2] AUDSLEY N,BURNS A,RICHARDSON M et al.控制器網(wǎng)絡(luò)的實(shí)時性能分析.IEEE 實(shí)時系統(tǒng)會刊(RTSS′94),1994,259-263.
[3] Altera Corp.EPXA1開發(fā)系統(tǒng)用戶手冊,2003.
[4] CHAUHAN P,CLARKE E M,LU Y et al.基于IP內(nèi)核片上系統(tǒng)設(shè)計(jì).第12屆國際ASIC/SOC會刊,1999,27-31.
[5] LI Y,POTKONJAK M,WOLF W.嵌入式實(shí)時操作系統(tǒng).國際計(jì)算機(jī)設(shè)計(jì)會刊,1997.
[6] MASSA A J.基于eCos的嵌入式軟件開發(fā).Upper Saddle River,New Jersey,ISBN:0-13-035473-2.
[7] SEAL D.ARM結(jié)構(gòu)參考手冊(第二版).Addison-Wesley Professional 2nd edition,ISBN:0201737191,2000.
[8] WU J,SMITH J S,LUCAS J.定位焊接系統(tǒng)設(shè)計(jì).IEE國際測量工程會刊,1996.
[9] LI Q,YAO C.嵌入式系統(tǒng)實(shí)時系統(tǒng).CMP Books,ISBN:1578201241,2003.