色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > EPA通信協(xié)議在μC/OS-II嵌入式系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

          EPA通信協(xié)議在μC/OS-II嵌入式系統(tǒng)中的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2010-03-11 來源:網(wǎng)絡(luò) 收藏

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

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

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

          SockErr=1;

          else SockErr=0;

          (3)時(shí)鐘同步服務(wù)的采用IEEE 1588精確時(shí)鐘同步,該用于分布式系統(tǒng)中的設(shè)備通過以太網(wǎng)的亞微秒級時(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ò)延遲和棧延遲),進(jìn)一步校正偏差。為了進(jìn)一步減少協(xié)議棧帶來的延遲,可以讓時(shí)間同步服務(wù)盡量接近物理層,這里通過修改TCP/IP庫文件實(shí)現(xiàn)。

          (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)先級的數(shù)據(jù)隊(duì)列報(bào)文發(fā)送等。

          4.2 在μ中的實(shí)現(xiàn)

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

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

          (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)先級任務(wù)被執(zhí)行,立即發(fā)送周期性報(bào)文,發(fā)送完畢即掛起等待下一次激活。

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

          (4)功能塊調(diào)度任務(wù):在組態(tài)的功能塊調(diào)度時(shí)間到達(dá)時(shí)被激活,或者在控制回路中上一個(gè)功能塊執(zhí)行之后被激活,立刻執(zhí)行后掛起。由于首先要確保EPA網(wǎng)絡(luò)的確定性,所以此任務(wù)的優(yōu)先級低于前兩個(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ā)送信號量,使任務(wù)進(jìn)入就緒狀態(tài),中斷退出即可以執(zhí)行就緒的高優(yōu)先級任務(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)先級可以低于時(shí)間調(diào)度任務(wù),設(shè)為每2秒執(zhí)行一次。

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

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

          5. 測試

          為了測試的實(shí)現(xiàn),使用通信卡的RS-232串口與某型電動執(zhí)行器的異步串行通信接口相連,形成一個(gè)EPA現(xiàn)場設(shè)備。EPA通信卡接收來自EPA網(wǎng)絡(luò)的閥位指令并通過串行口傳送給電動執(zhí)行器,電動執(zhí)行器接到閥位指令后向網(wǎng)板發(fā)出應(yīng)答幀,雙方各自一收一發(fā)完成一個(gè)周期的通信。通信中網(wǎng)板是主節(jié)點(diǎn),電動執(zhí)行器為從節(jié)點(diǎn),每周期通信均是由通信卡發(fā)起,電動執(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á)到了毫秒級,基本上實(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專用通信芯片,在芯片級實(shí)現(xiàn),預(yù)計(jì)EPA芯片很快會面世。相信在眾多研究機(jī)構(gòu)與廠商的共同努力下,EPA的推廣應(yīng)用將會取得豐碩的成果。

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

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          tcp/ip相關(guān)文章:tcp/ip是什么



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉