EPA通信協議在μC/OS-II的設計
1. 引言
本文引用地址:http://www.104case.com/article/201610/305668.htm《用于工業測量與控制系統的EPA系統結構與通信規范》(以下簡稱EPA)是基于工業以太網的實時通信規范,它有效地解決了以太網通信的確定性通信問題,進而可以應用于多種工業領域,構成各種工業測量與控制系統。該規范將收錄在制定中的實時以太網國際標準IEC61784-2中,成為我國首例具有自主知識產權的現場總線標準;開發和實現EPA通信協議是應用EPA系統的基礎和前提。
μC/OS-II是一種占先機制的實時多任務嵌入式操作系統,具有源碼公開、可移植、可固化、可裁剪等特點,已經得到廣泛的應用。相對于同為源碼公開的μClinux,它具有內核小、實時性高等特點,更適合于控制應用。μC/OS-II作為EPA通信協議的實現平臺,能夠較大的提高系統資源利用率,利用優先級劃分獲得較好的實時響應性能,其任務間多種通信方法有助于實現各實體協議狀態機。
2. EPA通信協議與模型
EPA系統采用ISO/OSI開放系統互連模型(ISO 7498)的第一、二、三、四和七層,并增加用戶層。系統中除了采用普通以太網協議組件外,有些層增加了部分實體,以適應EPA通信的需求:
增加的用戶層包含EPA功能塊應用進程與非實時應用進程。應用層增加了由EPA系統管理實體、EPA應用訪問實體和EPA套接字映射實體組成的EPA協議,三個實體分別實現EPA設備管理、應用通信服務、應用層與UDP/IP軟件實體之間的映射接口和報文優先發送管理、報文封裝、響應信息返回、鏈路狀況監視等功能。在MAC層和IP層之間增加EPA通信調度管理實體,對EPA設備向網絡上發送的報文進行調度管理。調度策略采用分時發送機制,將報文分為周期報文和非周期報文,按預先組態的調度方案,在相應的時間段內發送,以避免碰撞。各設備網絡時間由時間同步組件維護其一致性。EPA管理信息庫為各層協議實體提供操作所需信息,包括設備描述對象,鏈接對象等。
按照EPA通信協議,每個EPA設備由至少一個功能塊實例、EPA應用訪問實體、EPA系統管理實體、EPA套接字映射實體、EPA鏈接對象、通信調度管理實體以及UDP/IP協議等幾個部分組成。各個實體和對象通過互相調用,協同完成設備間通信過程如圖1示:

3. 實現平臺
本文實現EPA通信協議的硬件結構如圖2所示,通信卡CPU為RABBIT2000微處理器,它是Rabbit半導體公司所生產的8位微處理器,工作主頻22.1MHZ,工作電壓5V,具有40個通用I/O引腳。內建日歷、時鐘、看門狗、定時器、多級中斷、雙DMA通道,數據存儲為128K靜態存儲器和 256K 動態存儲器,可外擴4~8MB FLASH,對于通信協議棧和小型控制應用,其存儲空間是足夠的。

由zworld公司提供的基于Dynamic C的軟件開發平臺集編程、編譯、鏈接、調試、下載于一體,提供完善的TCP/IP協議棧,支持全功能RS232/485通信,配備了各種I/O驅動函數庫;文件管理系統可在FLASH或SRAM上建立數據文件,便于存儲系統或用戶數據;開源的協議庫不但縮短了軟件開發周期,而且便于修改以更好的實現EPA通信協議。
通信卡通過以太網模塊接口與EPA網絡相連,通過串口RS-232與電動執行器連接形成一個底層IO設備,掛接在EPA網絡上進行測試。
RABBIT2000支持協作式(使用costate)和占先式(移植μC/OS-II)多任務模式,選擇占先式模式基于以下兩點考慮:
(1)對于EPA設備來說,系統實時性是一個很重要的指標,表現在經過組態后功能塊模塊的執行時間精度、通信調度發送周期性報文的時間精度,以及時鐘同步的精度,而且這幾個參數在很大程度上影響了網絡帶寬利用率。μC/OS-II具有任務執行時間的可確定性,可以很好的滿足系統的實時性要求。
(2)EPA設備可以直接在通信卡的接口上進一步開發實現,同時需要增加用戶層任務進程,而RABBIT2000是8位微處理器,資源比較有限,因此基于任務可擴展性考慮,也應該采用占先式任務調度方式。
4. 軟件設計與實現
4.1 通信協議的模塊化設計
從數據處理角度上看,EPA設備通信是對控制過程所需要數據進行處理和通過EPA網絡傳輸的過程,發送方從上到下各層依次對應用進程或者管理服務數據進行處理和封裝,接收方則進行解包和處理,將服務數據交給應用進程。因此,協議軟件設計主要是系統各模塊對服務數據的處理程序的設計。EPA通信卡的功能主要包含系統管理、應用服務、時鐘同步、實時調度等。需要編寫的功能模塊有EPA服務棧模塊、套接字映射模塊、時間同步模塊、通信調度模塊。
(1)EPA服務棧模塊:系統管理服務包括設備查詢、設備聲明等服務,應用訪問服務包括域操作服務、事件操作服務、變量操作服務,各種服務對相應的服務報文進行處理。 以域下載服務為例說明服務棧的實現流程如圖3示。

(2)EPA套接字映射模塊:對服務棧數據進行封裝,并作為與UDP層之間的數據接口,其接口函數包括創建與關閉EPA套接字函數、發送應用服務報文與響應報文函數,發送系統管理報文與響應報文函數,從UDP層接收應用服務與系統管理報文函數等。EPA套接字開UDP套接字的實現語句如下:
if(!udp_open(gEPA_AP_Sock, EPA_AP_PORT, -1, EPA_AP_PORT, NULL))
SockErr=1;
else SockErr=0;
(3)時鐘同步服務的實現采用IEEE 1588精確時鐘同步協議,該協議用于分布式系統中的設備通過以太網的亞微秒級時鐘同步。設備與主時鐘通過交換同步報文而實現同步,同步報文分為同步信息(Sync)、附加信息(Follow_Up)、延時請求(Delay_Req)、延時響應(Delay_Rsp)四種報文。同步過程分兩個階段,第一階段通過Sync和Follow_Up報文測量時間偏差,第二個階段通過Delay_Req和Delay_Rsp測量延遲(網絡延遲和協議棧延遲),進一步校正偏差。為了進一步減少協議棧帶來的延遲,可以讓時間同步服務盡量接近物理層,這里通過修改TCP/IP庫文件實現。
評論