當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 1. 引言《用于工業(yè)測量與控制系統(tǒng)的EPA系統(tǒng)結(jié)構(gòu)與通信規(guī)范》(以下簡稱EPA)是基于工業(yè)以太網(wǎng)的實(shí)時(shí)通信規(guī)范,它有效地解決了以太網(wǎng)通信的確定性通信問題,進(jìn)而可以應(yīng)用于多

 1. 引言

《用于工業(yè)測量與控制系統(tǒng)的EPA系統(tǒng)結(jié)構(gòu)與通信規(guī)范》(以下簡稱EPA)是基于工業(yè)以太網(wǎng)的實(shí)時(shí)通信規(guī)范,它有效地解決了以太網(wǎng)通信的確定性通信問題,進(jìn)而可以應(yīng)用于多種工業(yè)領(lǐng)域,構(gòu)成各種工業(yè)測量與控制系統(tǒng)。該規(guī)范將收錄在制定中的實(shí)時(shí)以太網(wǎng)國際標(biāo)準(zhǔn)IEC61784-2中,成為我國首例具有自主知識(shí)產(chǎn)權(quán)的現(xiàn)場總線標(biāo)準(zhǔn);開發(fā)和實(shí)現(xiàn)EPA通信協(xié)議是應(yīng)用EPA系統(tǒng)的基礎(chǔ)和前提。

μC/OS-II是一種占先機(jī)制的實(shí)時(shí)多任務(wù)嵌入式操作系統(tǒng),具有源碼公開、可移植、可固化、可裁剪等特點(diǎn),已經(jīng)得到廣泛的應(yīng)用。相對于同為源碼公開的μClinux,它具有內(nèi)核小、實(shí)時(shí)性高等特點(diǎn),更適合于控制應(yīng)用。μC/OS-II作為EPA通信協(xié)議的實(shí)現(xiàn)平臺(tái),能夠較大的提高系統(tǒng)資源利用率,利用優(yōu)先級(jí)劃分獲得較好的實(shí)時(shí)響應(yīng)性能,其任務(wù)間多種通信方法有助于實(shí)現(xiàn)各實(shí)體協(xié)議狀態(tài)機(jī)。

2. EPA通信協(xié)議與模型

EPA系統(tǒng)采用ISO/OSI開放系統(tǒng)互連模型(ISO 7498)的第一、二、三、四和七層,并增加用戶層。系統(tǒng)中除了采用普通以太網(wǎng)協(xié)議組件外,有些層增加了部分實(shí)體,以適應(yīng)EPA通信的需求:

增加的用戶層包含EPA功能塊應(yīng)用進(jìn)程與非實(shí)時(shí)應(yīng)用進(jìn)程。應(yīng)用層增加了由EPA系統(tǒng)管理實(shí)體、EPA應(yīng)用訪問實(shí)體和EPA套接字映射實(shí)體組成的EPA協(xié)議,三個(gè)實(shí)體分別實(shí)現(xiàn)EPA設(shè)備管理、應(yīng)用通信服務(wù)、應(yīng)用層與UDP/IP軟件實(shí)體之間的映射接口和報(bào)文優(yōu)先發(fā)送管理、報(bào)文封裝、響應(yīng)信息返回、鏈路狀況監(jiān)視等功能。在MAC層和IP層之間增加EPA通信調(diào)度管理實(shí)體,對EPA設(shè)備向網(wǎng)絡(luò)上發(fā)送的報(bào)文進(jìn)行調(diào)度管理。調(diào)度策略采用分時(shí)發(fā)送機(jī)制,將報(bào)文分為周期報(bào)文和非周期報(bào)文,按預(yù)先組態(tài)的調(diào)度方案,在相應(yīng)的時(shí)間段內(nèi)發(fā)送,以避免碰撞。各設(shè)備網(wǎng)絡(luò)時(shí)間由時(shí)間同步組件維護(hù)其一致性。EPA管理信息庫為各層協(xié)議實(shí)體提供操作所需信息,包括設(shè)備描述對象,鏈接對象等。

按照EPA通信協(xié)議,每個(gè)EPA設(shè)備由至少一個(gè)功能塊實(shí)例、EPA應(yīng)用訪問實(shí)體、EPA系統(tǒng)管理實(shí)體、EPA套接字映射實(shí)體、EPA鏈接對象、通信調(diào)度管理實(shí)體以及UDP/IP協(xié)議等幾個(gè)部分組成。各個(gè)實(shí)體和對象通過互相調(diào)用,協(xié)同完成設(shè)備間通信過程如圖1示:

3. 實(shí)現(xiàn)平臺(tái)

本文實(shí)現(xiàn)EPA通信協(xié)議的硬件結(jié)構(gòu)如圖2所示,通信卡CPU為RABBIT2000微處理器,它是Rabbit半導(dǎo)體公司所生產(chǎn)的8位微處理器,工作主頻22.1MHZ,工作電壓5V,具有40個(gè)通用I/O引腳。內(nèi)建日歷、時(shí)鐘、看門狗、定時(shí)器、多級(jí)中斷、雙DMA通道,數(shù)據(jù)存儲(chǔ)為128K靜態(tài)存儲(chǔ)器和 256K 動(dòng)態(tài)存儲(chǔ)器,可外擴(kuò)4~8MB FLASH,對于通信協(xié)議棧和小型控制應(yīng)用,其存儲(chǔ)空間是足夠的。

由zworld公司提供的基于Dynamic C的軟件開發(fā)平臺(tái)集編程、編譯、鏈接、調(diào)試、下載于一體,提供完善的TCP/IP協(xié)議棧,支持全功能RS232/485通信,配備了各種I/O驅(qū)動(dòng)函數(shù)庫;文件管理系統(tǒng)可在FLASH或SRAM上建立數(shù)據(jù)文件,便于存儲(chǔ)系統(tǒng)或用戶數(shù)據(jù);開源的協(xié)議庫不但縮短了軟件開發(fā)周期,而且便于修改以更好的實(shí)現(xiàn)EPA通信協(xié)議。

通信卡通過以太網(wǎng)模塊接口與EPA網(wǎng)絡(luò)相連,通過串口RS-232與電動(dòng)執(zhí)行器連接形成一個(gè)底層IO設(shè)備,掛接在EPA網(wǎng)絡(luò)上進(jìn)行測試。

RABBIT2000支持協(xié)作式(使用costate)和占先式(移植μC/OS-II)多任務(wù)模式,選擇占先式模式基于以下兩點(diǎn)考慮:

(1)對于EPA設(shè)備來說,系統(tǒng)實(shí)時(shí)性是一個(gè)很重要的指標(biāo),表現(xiàn)在經(jīng)過組態(tài)后功能塊模塊的執(zhí)行時(shí)間精度、通信調(diào)度發(fā)送周期性報(bào)文的時(shí)間精度,以及時(shí)鐘同步的精度,而且這幾個(gè)參數(shù)在很大程度上影響了網(wǎng)絡(luò)帶寬利用率。μC/OS-II具有任務(wù)執(zhí)行時(shí)間的可確定性,可以很好的滿足系統(tǒng)的實(shí)時(shí)性要求。

(2)EPA設(shè)備可以直接在通信卡的接口上進(jìn)一步開發(fā)實(shí)現(xiàn),同時(shí)需要增加用戶層任務(wù)進(jìn)程,而RABBIT2000是8位微處理器,資源比較有限,因此基于任務(wù)可擴(kuò)展性考慮,也應(yīng)該采用占先式任務(wù)調(diào)度方式。

4. 軟件設(shè)計(jì)與實(shí)現(xiàn)

4.1 通信協(xié)議的模塊化設(shè)計(jì)

從數(shù)據(jù)處理角度上看,EPA設(shè)備通信是對控制過程所需要數(shù)據(jù)進(jìn)行處理和通過EPA網(wǎng)絡(luò)傳輸?shù)倪^程,發(fā)送方從上到下各層依次對應(yīng)用進(jìn)程或者管理服務(wù)數(shù)據(jù)進(jìn)行處理和封裝,接收方則進(jìn)行解包和處理,將服務(wù)數(shù)據(jù)交給應(yīng)用進(jìn)程。因此,協(xié)議軟件設(shè)計(jì)主要是系統(tǒng)各模塊對服務(wù)數(shù)據(jù)的處理程序的設(shè)計(jì)。EPA通信卡的功能主要包含系統(tǒng)管理、應(yīng)用服務(wù)、時(shí)鐘同步、實(shí)時(shí)調(diào)度等。需要編寫的功能模塊有EPA服務(wù)棧模塊、套接字映射模塊、時(shí)間同步模塊、通信調(diào)度模塊。

(1)EPA服務(wù)棧模塊:系統(tǒng)管理服務(wù)包括設(shè)備查詢、設(shè)備聲明等服務(wù),應(yīng)用訪問服務(wù)包括域操作服務(wù)、事件操作服務(wù)、變量操作服務(wù),各種服務(wù)對相應(yīng)的服務(wù)報(bào)文進(jìn)行處理。 以域下載服務(wù)為例說明服務(wù)棧的實(shí)現(xiàn)流程如圖3示。

(2)EPA套接字映射模塊:對服務(wù)棧數(shù)據(jù)進(jìn)行封裝,并作為與UDP層之間的數(shù)據(jù)接口,其接口函數(shù)包括創(chuàng)建與關(guān)閉EPA套接字函數(shù)、發(fā)送應(yīng)用服務(wù)報(bào)文與響應(yīng)報(bào)文函數(shù),發(fā)送系統(tǒng)管理報(bào)文與響應(yīng)報(bào)文函數(shù),從UDP層接收應(yīng)用服務(wù)與系統(tǒng)管理報(bào)文函數(shù)等。EPA套接字開UDP套接字的實(shí)現(xiàn)語句如下:

if(!udp_open(&gEPA_AP_Sock, EPA_AP_PORT, -1, EPA_AP_PORT, NULL))

SockErr=1;

else SockErr=0;

(3)時(shí)鐘同步服務(wù)的實(shí)現(xiàn)采用IEEE 1588精確時(shí)鐘同步協(xié)議,該協(xié)議用于分布式系統(tǒng)中的設(shè)備通過以太網(wǎng)的亞微秒級(jí)時(shí)鐘同步。設(shè)備與主時(shí)鐘通過交換同步報(bào)文而實(shí)現(xiàn)同步,同步報(bào)文分為同步信息(Sync)、附加信息(Follow_Up)、延時(shí)請求(Delay_Req)、延時(shí)響應(yīng)(Delay_Rsp)四種報(bào)文。同步過程分兩個(gè)階段,第一階段通過Sync和Follow_Up報(bào)文測量時(shí)間偏差,第二個(gè)階段通過Delay_Req和Delay_Rsp測量延遲(網(wǎng)絡(luò)延遲和協(xié)議棧延遲),進(jìn)一步校正偏差。為了進(jìn)一步減少協(xié)議棧帶來的延遲,可以讓時(shí)間同步服務(wù)盡量接近物理層,這里通過修改TCP/IP庫文件實(shí)現(xiàn)。[!--empirenews.page--]

(4)實(shí)時(shí)調(diào)度的實(shí)現(xiàn),包括時(shí)間中斷調(diào)度函數(shù)——判斷是否到達(dá)本設(shè)備的周期報(bào)文發(fā)送時(shí)間或非周期報(bào)文發(fā)送開始時(shí)間,以及報(bào)文發(fā)送函數(shù)——實(shí)現(xiàn)對幾個(gè)優(yōu)先級(jí)的數(shù)據(jù)隊(duì)列報(bào)文發(fā)送等。

4.2 在μC/OS-II中的實(shí)現(xiàn)

在完成各個(gè)模塊的編寫之后,通信協(xié)議在μC/OS-II系統(tǒng)中的實(shí)現(xiàn)主要是根據(jù)應(yīng)用要求進(jìn)行任務(wù)的創(chuàng)建、劃分以及任務(wù)間通信與調(diào)度的設(shè)計(jì)。因?yàn)?mu;C/OS-II在RABBIT2000中的移植已經(jīng)由Dynamic開發(fā)平臺(tái)實(shí)現(xiàn),這里不再詳細(xì)介紹。模塊與任務(wù)之間非一一對應(yīng)關(guān)系,因?yàn)槟K是基于功能進(jìn)行劃分,而任務(wù)是基于時(shí)間優(yōu)先級(jí)進(jìn)行劃分。劃分任務(wù)優(yōu)先級(jí)就是確定任務(wù)實(shí)時(shí)性要求的過程。實(shí)時(shí)性要求越高的,則任務(wù)優(yōu)先級(jí)越高,其對應(yīng)的優(yōu)先級(jí)號(hào)越低。μC/OS-II共支持最多56個(gè)用戶任務(wù),對于本系統(tǒng)來說是綽綽有余的。按照優(yōu)先級(jí)由高到低次序的任務(wù)劃分與調(diào)度方案如下:

(1)設(shè)備管理任務(wù):完成設(shè)備的上電與初始化組態(tài),之后根據(jù)設(shè)備狀態(tài)機(jī),在設(shè)備為正常可操作狀態(tài)下被掛起,直到設(shè)備狀態(tài)被其他事件改變后由信號(hào)量激活。

(2)周期性報(bào)文發(fā)送任務(wù):由時(shí)間調(diào)度任務(wù)在宏周期內(nèi)本設(shè)備周期性報(bào)文發(fā)送時(shí)間到達(dá)時(shí)產(chǎn)生中斷激活而進(jìn)入就緒狀態(tài),在中斷退出后成為最高優(yōu)先級(jí)任務(wù)被執(zhí)行,立即發(fā)送周期性報(bào)文,發(fā)送完畢即掛起等待下一次激活。

(3)非周期性報(bào)文發(fā)送任務(wù):與任務(wù)(2)相似,在非周期報(bào)文發(fā)送時(shí)間到被激活,通過調(diào)度算法發(fā)送非周期性報(bào)文。以上兩個(gè)任務(wù)由于不會(huì)在同一時(shí)間段執(zhí)行,因此實(shí)際運(yùn)行時(shí)的優(yōu)先級(jí)是等同的。

(4)功能塊調(diào)度任務(wù):在組態(tài)的功能塊調(diào)度時(shí)間到達(dá)時(shí)被激活,或者在控制回路中上一個(gè)功能塊執(zhí)行之后被激活,立刻執(zhí)行后掛起。由于首先要確保EPA網(wǎng)絡(luò)通信的確定性,所以此任務(wù)的優(yōu)先級(jí)低于前兩個(gè)任務(wù)。

(5)時(shí)間調(diào)度任務(wù):通過對網(wǎng)絡(luò)時(shí)間的判斷,在到達(dá)以上三個(gè)任務(wù)的執(zhí)行時(shí)間時(shí)進(jìn)入時(shí)間中斷函數(shù),給相應(yīng)的任務(wù)發(fā)送信號(hào)量,使任務(wù)進(jìn)入就緒狀態(tài),中斷退出即可以執(zhí)行就緒的高優(yōu)先級(jí)任務(wù)。根據(jù)時(shí)間精度的要求設(shè)置內(nèi)核調(diào)用OSTimeTick的頻率,可以通過#define OS_TICKS_PER_SEC 256,實(shí)現(xiàn)每秒256次的Tick頻率。

(6)普通報(bào)文接收任務(wù):套接字映射實(shí)體偵聽來自EPA網(wǎng)絡(luò)的報(bào)文并根據(jù)需要調(diào)用相應(yīng)的應(yīng)用層服務(wù)處理報(bào)文,設(shè)為每100ms執(zhí)行一次。

(7)時(shí)鐘同步任務(wù):獨(dú)立接收與發(fā)送時(shí)間同步報(bào)文,以確保設(shè)備時(shí)間與網(wǎng)絡(luò)時(shí)間的同步。由于主時(shí)鐘發(fā)送Sync報(bào)文周期為2秒一次,所以其優(yōu)先級(jí)可以低于時(shí)間調(diào)度任務(wù),設(shè)為每2秒執(zhí)行一次。

(8)串口通信任務(wù):與電動(dòng)執(zhí)行器進(jìn)行周期性的串口通信,根據(jù)電動(dòng)執(zhí)行器的物理特性,通信頻率設(shè)為每秒2次,其通信方法在后文中介紹。

各任務(wù)之間采用全局變量或者消息機(jī)制進(jìn)行通信,以完成任務(wù)狀態(tài)機(jī)的變化。任務(wù)堆棧則根據(jù)各任務(wù)的實(shí)際需要分配,這里不再詳述。

5. 測試

為了測試通信協(xié)議的實(shí)現(xiàn),使用通信卡的RS-232串口與某型電動(dòng)執(zhí)行器的異步串行通信接口相連,形成一個(gè)EPA現(xiàn)場設(shè)備。EPA通信卡接收來自EPA網(wǎng)絡(luò)的閥位指令并通過串行口傳送給電動(dòng)執(zhí)行器,電動(dòng)執(zhí)行器接到閥位指令后向網(wǎng)板發(fā)出應(yīng)答幀,雙方各自一收一發(fā)完成一個(gè)周期的通信。通信中網(wǎng)板是主節(jié)點(diǎn),電動(dòng)執(zhí)行器為從節(jié)點(diǎn),每周期通信均是由通信卡發(fā)起,電動(dòng)執(zhí)行器響應(yīng)。

通過EPA網(wǎng)橋?qū)⒃撛O(shè)備加入EPA網(wǎng)絡(luò)進(jìn)行測試,經(jīng)過專家組的驗(yàn)收,該實(shí)驗(yàn)系統(tǒng)成功通過了一致性測試、互可操作性測試等服務(wù)測試,時(shí)鐘同步精度也達(dá)到了毫秒級(jí),基本上實(shí)現(xiàn)了EPA通信卡的功能。

6. 結(jié)束語

系統(tǒng)實(shí)時(shí)性要求越高,對硬件的要求也越高,如果要求時(shí)鐘同步精度和通信調(diào)度發(fā)送報(bào)文的時(shí)間精度達(dá)到實(shí)際應(yīng)用的水平,并且進(jìn)一步提高EPA設(shè)備通信的可靠性,則需要采用硬件實(shí)現(xiàn)的方法,即開發(fā)EPA專用通信芯片,在芯片級(jí)實(shí)現(xiàn)通信協(xié)議,預(yù)計(jì)EPA芯片很快會(huì)面世。相信在眾多研究機(jī)構(gòu)與廠商的共同努力下,EPA的推廣應(yīng)用將會(huì)取得豐碩的成果。

本文作者創(chuàng)新點(diǎn):針對EPA通信協(xié)議提出了一種新的實(shí)現(xiàn)方法,此方法基于μC/OS-II嵌入式操作系統(tǒng),用多任務(wù)的方式實(shí)現(xiàn)了各個(gè)協(xié)議實(shí)體及其調(diào)度。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉