本地控制器網(wǎng)絡(luò)(CAN)由于低成本和高可靠性,已經(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í)控制信息,以實(shí)現(xiàn)分布式控制和監(jiān)測(cè)。
1 硬件平臺(tái)設(shè)計(jì)
嵌入式處理器可編程邏輯電路設(shè)計(jì)方面最大的挑戰(zhàn)之一就是為適合速度要求非常廣泛的應(yīng)用。在低端,系統(tǒng)要求可能少于10MIPS;在高端,系統(tǒng)可能要求好幾百 MIPS。不同系統(tǒng)需要的范圍不同。完全滿足范圍需要的解決方案需要提供可編程設(shè)備配置、操作以及精通嵌入式處理器的用戶。網(wǎng)關(guān)系統(tǒng)的設(shè)計(jì)建立在 Altera Excalibur[3]嵌入式處理器基礎(chǔ)上,它可以提供最佳的解決方案,擁有較優(yōu)的適應(yīng)性和強(qiáng)大的性能?;诤诵牟糠諷OPC[4]的ARM系統(tǒng)設(shè)計(jì)結(jié)構(gòu)如圖1所示??刂破骶W(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)平臺(tái)上運(yùn)行。該Soft CAN控制器具備CAN 2.0B[1]規(guī)范的所有協(xié)議功能,包括錯(cuò)誤處理能力、填充位產(chǎn)生、循環(huán)冗余碼校驗(yàn)(CRC)、主動(dòng)/被動(dòng)錯(cuò)誤幀和擴(kuò)展幀技術(shù)支持。Soft CAN控制器也能支持如下應(yīng)用發(fā)展:信息過濾、信息封裝、信息發(fā)送緩沖、信息接收緩沖以及發(fā)送、接收和錯(cuò)誤事件的中斷觸發(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)證平臺(tái)設(shè)計(jì)如圖3所示。
Soft CAN控制器的綜合模擬/驗(yàn)證輸出波形(如圖4)說明了其控制器工作狀態(tài)正確。
從圖4所示的驗(yàn)證輸出結(jié)果,可以得出以下結(jié)論:
?。?)Soft CAN控制器#1狀態(tài):
“00000000000000000000000000001000” ——>Soft CAN控制器正在控制CAN數(shù)據(jù)線信號(hào)。
?。?)Soft CAN 控制器#2狀態(tài):
“00000000000000000000000000001000” ——> Soft CAN控制器正在控制CAN數(shù)據(jù)線信號(hào)。
(3)Soft CAN 控制器#1 TX緩沖器:標(biāo)識(shí) -“11101101000”,數(shù)據(jù)-“10011001100110011001100110011001”。
?。?)Soft CAN 控制器#1 TX緩沖器:標(biāo)識(shí)- NA,數(shù)據(jù)-NA。
2 軟件設(shè)計(jì)
軟件設(shè)計(jì)包括實(shí)時(shí)操作系統(tǒng)[5]移植、異常處理支持、設(shè)備驅(qū)動(dòng)程序開發(fā)和文件系統(tǒng)開發(fā)等。
2.1 實(shí)時(shí)操作系統(tǒng)移植
eCos被成功地移植到網(wǎng)關(guān)系統(tǒng)硬件平臺(tái),為應(yīng)用系統(tǒng)的開發(fā)提供實(shí)時(shí)服務(wù)。由于eCos的分層結(jié)構(gòu)使得其移植靈活并容易,所有結(jié)構(gòu)和平臺(tái)的絕對(duì)代碼都在硬件抽象層(HAL)實(shí)現(xiàn)。
2.1.1 系統(tǒng)啟動(dòng)模式
本系統(tǒng)移植提供四種啟動(dòng)模式。
(1)ROM啟動(dòng)模式。在ROM啟動(dòng)模式中,應(yīng)用程序儲(chǔ)存在EPXA1開發(fā)板的閃存中,并從那里啟動(dòng)。
?。?)ROM-RAM啟動(dòng)模式。在ROM-RAM啟動(dòng)模式中,應(yīng)用程序存儲(chǔ)在閃存中。啟動(dòng)程序?qū)⑾葟拈W存中運(yùn)行,并且初始化系統(tǒng)。在系統(tǒng)初始化后,eCos應(yīng)用程序?qū)?huì)從閃存中自動(dòng)復(fù)制到SDRAM中,接著在SDRAM中以更高的速度運(yùn)行。
?。?)RAM啟動(dòng)模式。在RAM啟動(dòng)模式中,eCos應(yīng)用程序會(huì)通過EPXA1板上的調(diào)試器(例如RedBoot加載到其板的SDRAM內(nèi)存中)啟動(dòng)。這主要是為了調(diào)試。
2.1.2 線程管理
EPXA1 eCos移植完全支持多線程編程模式。除了任務(wù)同步支持外,它還提供了一系列可選擇的調(diào)度算法。
2.1.3 系統(tǒng)定時(shí)支持
系統(tǒng)的定時(shí)基準(zhǔn)由Altera EPXA1平臺(tái)上的系統(tǒng)定時(shí)器提供,定時(shí)器頻率為150MHz。系統(tǒng)的脈沖周期為10毫秒。在EPXA1 上移植的eCos控制通過內(nèi)核使用的時(shí)鐘或計(jì)時(shí)設(shè)備進(jìn)行暫停、延時(shí)和調(diào)度服務(wù),供系統(tǒng)內(nèi)核使用。
2.2 異常處理
所有的異常,包括FIQ和IRQ中斷[7],都跳轉(zhuǎn)到矢量0地址,每個(gè)中斷矢量占4字節(jié)。這里僅有一個(gè)指令空間,它須立即跳轉(zhuǎn)到內(nèi)存中更高地址的代碼。中斷源必須進(jìn)行解碼。由于每一個(gè)矢量服務(wù)例程都對(duì)應(yīng)一個(gè)不同的CPU模式的入口,所以需要對(duì)每一個(gè)異常有一個(gè)不同的VSR,它知道怎樣從中斷控制器完全正確地保存CPU狀態(tài)。這個(gè)異常處理機(jī)制包含一個(gè)分離的中斷處理方案。在這個(gè)方案中,中斷處理劃分為兩部分。第一部分稱之為中斷服務(wù)程序或ISR;第二部分是延遲服務(wù)程序或DSR。這種劃分明確地顧及 到了DSRs與正在執(zhí)行的中斷同時(shí)運(yùn)行,因此允許當(dāng)正在執(zhí)行低級(jí)別的中斷時(shí)其他內(nèi)在具有更高優(yōu)先級(jí)別的中斷發(fā)生及接受處理。
2.3 設(shè)備驅(qū)動(dòng)程序開發(fā)
2.3.1 閃存設(shè)備驅(qū)動(dòng)程序
本項(xiàng)目開發(fā)了基于Intel 28F320C閃存的驅(qū)動(dòng)程序。Boot-loader用它來儲(chǔ)存映像、配置信息和閃存內(nèi)的數(shù)據(jù)。這個(gè)設(shè)備驅(qū)動(dòng)程序提供廣泛的操作支持。
?。?)閃存查詢:可從閃存中重新獲得廠商和零件號(hào)碼代碼。
?。?)閃存區(qū)塊擦除:擦掉閃存中的模塊。
?。?)閃存編程緩沖:允許在閃存中寫入一緩沖的數(shù)據(jù)。
(4)閃存區(qū)段上鎖/開啟:允許閃存中的內(nèi)容受到保護(hù)。
2.3.2 以太網(wǎng)接口設(shè)備驅(qū)動(dòng)程序
以太網(wǎng)設(shè)備驅(qū)動(dòng)程序支持以太網(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ū)動(dòng)程序
此設(shè)備驅(qū)動(dòng)程序提供了對(duì)控制器區(qū)域網(wǎng)絡(luò)通信的支持,以實(shí)現(xiàn)發(fā)送、接收及中斷處理功能。圖5為驅(qū)動(dòng)程序流程圖。
2.4 嵌入式文件系統(tǒng)開發(fā)
為了使信息保存與交換更加高效,本項(xiàng)目開發(fā)了基于閃存和RAM的文件系統(tǒng)。該文件系統(tǒng)提供廣泛的文件操作支持:文件新建、文件刪除、文件復(fù)制、文件重命名和文件移動(dòng),還有目錄支持。文件系統(tǒng)可以交叉操作,文件可以在基于文件系統(tǒng)的閃存和RAM之間實(shí)現(xiàn)復(fù)制或移動(dòng)。
2.5 調(diào)試支持
一般地,硬件模擬方法需要花費(fèi)大量的資金。為了實(shí)現(xiàn)低成本設(shè)計(jì),釆用了基于軟件的調(diào)試方法。這個(gè)基于軟件的EPXA1平臺(tái)調(diào)試工具已經(jīng)集成到該網(wǎng)關(guān)平臺(tái)中,在系統(tǒng)開發(fā)中提供調(diào)試功能。這個(gè)調(diào)試器可以使用串行端口或以太網(wǎng)信道實(shí)現(xiàn)與主機(jī)間的通信。這個(gè)軟件調(diào)試器提供一般的調(diào)試功能,諸如:?jiǎn)尾竭\(yùn)行、變量訪問、處理器寄存器恢復(fù)、資源等級(jí)調(diào)試和斷點(diǎn)支持。
3 系統(tǒng)集成
3.1 網(wǎng)絡(luò)實(shí)時(shí)焊接控制系統(tǒng)應(yīng)用
此應(yīng)用提供了一個(gè)分布式的網(wǎng)絡(luò)解決方案,以監(jiān)控一個(gè)分布式的實(shí)時(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ī)動(dòng)態(tài)生成需要的網(wǎng)頁(yè),即監(jiān)控和配置。
3.2 系統(tǒng)驗(yàn)證以及結(jié)論
該網(wǎng)關(guān)系統(tǒng)的實(shí)時(shí)性能可通過使用儀器運(yùn)行相關(guān)任務(wù)進(jìn)行評(píng)測(cè)。對(duì)該整套實(shí)驗(yàn)操作所收集到的數(shù)據(jù)進(jìn)行分析,得出平均值、最大值以及最小值;再計(jì)算出樣品方差;測(cè)量出獲得實(shí)時(shí)時(shí)鐘計(jì)時(shí)數(shù)值所需的時(shí)間,再減去其他時(shí)間。所得到的數(shù)據(jù)說明??。
為了確保監(jiān)控系統(tǒng)的網(wǎng)頁(yè)不會(huì)丟失任何控制器區(qū)域網(wǎng)信息,已采取了如下結(jié)構(gòu)的接收計(jì)時(shí)測(cè)量方法:網(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é)拍。因而一個(gè)滿荷的控制器網(wǎng)絡(luò)中,控制器區(qū)域網(wǎng)絡(luò)信息幀之間的空閑時(shí)間可以用式(1)計(jì)算:
從eCos的實(shí)時(shí)特性所顯示的結(jié)果,可以得到中斷反應(yīng)時(shí)間為5.31微秒。所以可以從式(2)得到計(jì)時(shí)結(jié)果。
通過以上驗(yàn)證得知,網(wǎng)絡(luò)監(jiān)控系統(tǒng)網(wǎng)頁(yè)能夠監(jiān)控SMD定位焊接控制網(wǎng)絡(luò),即使網(wǎng)絡(luò)總線滿荷時(shí)也不會(huì)丟失任何一個(gè)實(shí)時(shí)的監(jiān)控信息。