• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Zynq平臺的TTP/C總線控制器容錯算法設(shè)計

      2016-03-20 09:14:40陳飛張?zhí)旌?/span>
      關(guān)鍵詞:發(fā)送數(shù)據(jù)時間段列表

      陳飛,張?zhí)旌?/p>

      (南京航空航天大學(xué)江蘇省航空動力系統(tǒng)重點實驗室,南京210016)

      Zynq平臺的TTP/C總線控制器容錯算法設(shè)計

      陳飛,張?zhí)旌?/p>

      (南京航空航天大學(xué)江蘇省航空動力系統(tǒng)重點實驗室,南京210016)

      在自主設(shè)計的TTP/C總線控制器中,充分利用Zynq芯片的可編程邏輯單元和程序處理單元,設(shè)計了一種基于成員關(guān)系協(xié)議(GMP)的容錯算法,以快速檢測與隔離總線集群中的故障節(jié)點。試驗表明,所設(shè)計的容錯算法能有效檢測并隔離總線集群中的故障節(jié)點。

      容錯算法;Zynq;TTP/C;GMP

      引 言

      目前,實時嵌入式系統(tǒng)中采用的串行通信協(xié)議普遍都是基于事件觸發(fā)的。大量研究表明:對高可靠性系統(tǒng)而言,時間觸發(fā)架構(gòu)(TTA)具有更大的優(yōu)勢[1]。1993年,在TTA架構(gòu)的基礎(chǔ)上,TTP/C(Time-Triggered Protocol/ Automotive Class C,時間觸發(fā)協(xié)議C類標準)被首次提出,其是一種用于互聯(lián)電子模塊的、分布式容錯實時系統(tǒng)的通信協(xié)議,最大的特點是具有嚴格的時間確定性和高度的通信可靠性,主要面向?qū)ο笫呛娇蘸教鞈?yīng)用[2]。

      容錯能力是總線技術(shù)的基本要求,尤其是節(jié)點發(fā)生故障時,須快速探測并隔離故障節(jié)點,防止其影響總線上其他正常節(jié)點的信息發(fā)送[3]。在故障模式下,集群中的每個正常節(jié)點都必須對其他節(jié)點的運行狀態(tài)有相同的判斷,以便采取和其他正常節(jié)點協(xié)調(diào)的容錯行動,這就是集群的一致性。GMP是TTA架構(gòu)下的一種分布式多機容錯策略,它的主要作用是通過快速探測和隔離故障節(jié)點來維持整個集群的一致性。GMP中規(guī)定:每個節(jié)點內(nèi)部都有一個實時更新的成員列表,用來表征節(jié)點對集群運行狀態(tài)的認知,GMP成功實現(xiàn)的基礎(chǔ)就是成員列表。

      為保證TTP/C集群各個節(jié)點之間工作狀態(tài)的一致性,本文設(shè)計了一種基于GMP策略的容錯算法,以此檢測集群中各節(jié)點的工作狀態(tài),實現(xiàn)快速檢測和隔離故障節(jié)點的目的,保證TTP/C總線集群的通信可靠性。

      1 容錯算法的原理

      TTP/C是一種集成的時間觸發(fā)協(xié)議,采用靜態(tài)時分多路復(fù)用(TDMA)策略控制節(jié)點對傳輸介質(zhì)的訪問,每一個節(jié)點都只能在指定的時間段內(nèi)發(fā)送數(shù)據(jù)。在每個TDMA周期內(nèi),各個節(jié)點在預(yù)先設(shè)定的時間段內(nèi)以已知的延時在總線上廣播,多個不同長度的時間段構(gòu)成一個TDMA周期,多個等長的TDMA周期構(gòu)成一個集群周期。

      節(jié)點傳輸?shù)臄?shù)據(jù)幀有兩種類型:初始化幀和正常幀。正常幀不包含成員列表,但其CRC校驗碼是結(jié)合發(fā)送節(jié)點成員列表計算得到的,因此接收節(jié)點需要用自身的成員列表來對接收到的正常幀進行CRC解碼,以此判斷兩個節(jié)點的成員列表是否相同。由于所采用的TTP/C總線控制器并未實現(xiàn)正常幀的發(fā)送,因此本文的容錯算法針對初始化幀設(shè)計,各節(jié)點的成員列表直接包含在數(shù)據(jù)幀中,容錯原理與正常幀的相同,但實現(xiàn)簡單,無需進行多次CRC解碼。

      1.1 故障假設(shè)

      TTP/C協(xié)議的故障假設(shè)如下[2]:①節(jié)點的故障類型分為接收故障和發(fā)送故障,暫不考慮非對稱故障;②節(jié)點只能在指定時間段內(nèi)發(fā)送消息,并且在每個TDMA周期內(nèi),只能發(fā)送一次消息;③在每個TDMA周期內(nèi)最多一個節(jié)點發(fā)生故障;④傳輸通道不能自發(fā)產(chǎn)生正確消息。

      TTP/C協(xié)議通過派系避免算法(CA)和隱式確認算法(IA)的交互實現(xiàn)容錯GMP策略。

      1.2 派系避免算法

      除了成員列表外,節(jié)點內(nèi)部還定義了兩個計數(shù)器,確認計數(shù)器AC和失敗計數(shù)器FC。兩個計數(shù)器在運行中遵循累加原則:①當前節(jié)點發(fā)送數(shù)據(jù)后,本地AC+1,并將自身添加到本地成員列表中;②若節(jié)點判定當前時間段接收的數(shù)據(jù)幀錯誤,那么FC+1,并在本地成員列表中刪除對應(yīng)接收節(jié)點;③若節(jié)點判斷當前時間段接收的數(shù)據(jù)幀正確,則本地AC+1,并在本地成員列表中增加對應(yīng)節(jié)點;④若節(jié)點判斷當前時間段為空,則本地AC和FC維持原值不變,但與當前時間段對應(yīng)的節(jié)點將從本地成員列表刪除。

      每一個節(jié)點發(fā)送數(shù)據(jù)前都會執(zhí)行派系避免算法,判斷本地AC是否大于FC,如果為真,節(jié)點將數(shù)據(jù)發(fā)出并清零兩個計數(shù)器;否則節(jié)點進入凍結(jié)狀態(tài),不發(fā)送數(shù)據(jù)。

      1.3 隱式確認算法

      所謂隱式確認是指接收節(jié)點無需專門的應(yīng)答幀來通知發(fā)送節(jié)點數(shù)據(jù)幀的發(fā)送正確與否,這既滿足了故障假設(shè)②,又節(jié)省了帶寬。隱式確認算法引入了第1確認節(jié)點和第2確認節(jié)點的概念。當節(jié)點發(fā)送數(shù)據(jù)后累加確認計數(shù)器,需等待確認節(jié)點確定自身發(fā)送數(shù)據(jù)是否正確。如果在下一次發(fā)送時仍未確認自身發(fā)送數(shù)據(jù)是否正確,則認為發(fā)生了發(fā)送故障,進入凍結(jié)狀態(tài)。

      當節(jié)點A發(fā)送數(shù)據(jù)后,等待下一節(jié)點B在預(yù)期時間內(nèi)發(fā)送正確數(shù)據(jù)。如果A和B的成員列表在不考慮是否包含A的情形下其他各項均相同,則B是A的第1成功節(jié)點,否則A認為B節(jié)點故障,將其從成員列表刪除。在B是A的第1確認節(jié)點情形下,如果B的成員列表包含A,則A被確認,AC+1,隱式確認算法結(jié)束。否則A和B中必有一個發(fā)生了故障,需等待第2確認節(jié)點。

      在A找到其第1確認節(jié)點B,但又不能確認的情況下,需等待第2確認節(jié)點C,節(jié)點C的數(shù)據(jù)幀是在預(yù)期時間內(nèi)正確接收的,其成員列表包含且只包含A和B中的一個,而且與A成員列表中除A、B外其他各項均相同[4-5]。如果C的成員列表中包含A,則A被確認,在A的成員列表中刪除B并累加AC;否則A被C否認,B是正確的,A進入凍結(jié)狀態(tài),隱式確認算法結(jié)束。

      2 容錯算法的實現(xiàn)

      本文利用Zynq的程序處理單元實現(xiàn)基于GMP策略的容錯算法,而TTP/C總線的其他模塊在可編程邏輯單元實現(xiàn),主要包括集群啟動模塊、時鐘同步模塊、數(shù)據(jù)收發(fā)模塊和BG模塊??偩€控制器原理如圖1所示。

      圖1 總線控制器原理

      在正常運行時,時鐘同步模塊負責將本地時鐘與全局時鐘進行同步,BG模塊負責限制發(fā)送時間在指定時間段內(nèi),數(shù)據(jù)收發(fā)模塊負責數(shù)據(jù)幀的發(fā)送和接收,包括CRC解碼也在此部分實現(xiàn)。CPU0作為主機處理器負責運行應(yīng)用程序,CPU1為協(xié)議處理器。當發(fā)送時間到后,時間觸發(fā)器向協(xié)議處理器發(fā)送一個中斷信號,協(xié)議處理器將應(yīng)用程序中要發(fā)送的數(shù)據(jù)送入冗余總線收發(fā)器發(fā)送。非發(fā)送時間BG模塊控制485驅(qū)動,使得冗余總線收發(fā)器只能接收數(shù)據(jù)幀。當冗余總線收發(fā)器接收到一個數(shù)據(jù)幀并進行CRC校驗之后,向協(xié)議處理器發(fā)送一個中斷信號,協(xié)議處理器立即讀取接收到的數(shù)據(jù)幀和CRC校驗結(jié)果。容錯算法在協(xié)議處理器中實現(xiàn),交叉在發(fā)送程序和接收程序中。

      2.1 空幀檢測算法

      TTP/C總線協(xié)議并未指明如何實現(xiàn)空幀的檢查,但協(xié)議中的容錯原理明確指明了出現(xiàn)空幀時如何累加兩個計數(shù)器,因此本文設(shè)計了一種空幀檢測算法,該算法實現(xiàn)簡單,無需時刻讀取節(jié)點的本地時間以確認當前時間段是否接收到數(shù)據(jù)幀??諑瑱z測算法的原理如圖2所示。

      每次執(zhí)行接收程序時,節(jié)點依據(jù)本地時間獲得當前接收數(shù)據(jù)幀所處TDMA周期內(nèi)時間段的編號node_rec (TTP/C協(xié)議規(guī)定每個TDMA周期可以包含4~64個時間段,在這里規(guī)定每個TDMA周期開始的時間段編號為1,并以此類推),并與上一接收數(shù)據(jù)幀的時間段編號node_rec_ old比較。如果node_rec大于node_rec_old,說明當前比較的兩個數(shù)據(jù)幀處在同一TDMA周期內(nèi),只需比較兩者是否差1,就可檢測是否有空幀現(xiàn)象;如果node_rec小于node_rec_old,說明當前比較的兩個數(shù)據(jù)幀處在兩個TDMA周期內(nèi),此時為檢測空幀現(xiàn)象,需將node_rec加上TDMA周期內(nèi)時間段的個數(shù)MAX再做檢測,檢測方式與處在同一TDMA周期內(nèi)的情形相同。注意:空幀檢測程序執(zhí)行完畢后需更新node_rec_old。

      圖2 空幀檢測算法流程圖

      需特別注意,兩次接收程序中間可能需要執(zhí)行發(fā)送程序,發(fā)送程序中首先利用自身節(jié)點所處時間段編號Node_ Info和node_rec_old判斷是否出現(xiàn)空幀,判斷方式與接收程序類似,之后需將node_rec_old更新成Node_Info,以便下一時刻執(zhí)行接收程序時,空幀檢測算法能夠有效執(zhí)行。

      2.2 容錯算法的實現(xiàn)

      容錯算法由派系避免、隱式確認和空幀檢查3部分組成,交叉在發(fā)送程序和接收程序中實現(xiàn)。發(fā)送程序中容錯算法流程圖如圖3所示。

      圖3 發(fā)送程序中容錯算法流程圖

      在發(fā)送程序中,先執(zhí)行空幀檢測算法,再以此判斷AC與FC、隱式確認結(jié)果,如果兩次判斷都通過,則說明節(jié)點正常,否則節(jié)點故障進入凍結(jié)狀態(tài)。

      在接收程序中,節(jié)點首先判斷是否需要進行隱式確認。如果不需要進行隱式確認,說明本身發(fā)送正確,只需依據(jù)接收方的成員列表判斷對方是否正確;如果需要進行隱式確認,則需判斷要等待哪一個確認節(jié)點,并依據(jù)隱式確認原理進行判斷,同時累加AC和FC,流程如圖4所示。

      具體代碼如下:

      3 試驗結(jié)果與分析

      試驗集群包含4個節(jié)點,每個TDMA周期分配4個時間段,并通過串口將本地成員列表和接收到的其他節(jié)點成員列表一起發(fā)送給串口助手進行顯示,以此判斷節(jié)點當前是否處在正常工作狀態(tài)以及集群中的故障節(jié)點是哪一個。串口通信協(xié)議如下所示:

      0 1 2 3~7 7 8 9 0x55 0x AA本地成員列表節(jié)點1~4的成員列表count fault校驗

      圖4 接收程序中容錯算法流程圖

      count表示一個TDMA周期內(nèi)發(fā)送節(jié)點接收到的數(shù)據(jù)幀的個數(shù),fault為1,表示檢測到當前TDMA周期內(nèi)存在節(jié)點未發(fā)送數(shù)據(jù)。成員列表采用一個8位無符號整形數(shù)表示,低4位從第0位開始分別表示1~4號節(jié)點的狀態(tài),1表示節(jié)點正常,0表示節(jié)點故障,高4位暫時未啟用,默認為1。

      圖5所示是1號節(jié)點發(fā)送給串口助手的成員列表信息,由于1號節(jié)點不能接收到自身發(fā)送的數(shù)據(jù)幀,因此所有串口助手接收的數(shù)據(jù)中第3個數(shù)據(jù)(1號節(jié)點成員列表)為零,但是可以從第2個數(shù)據(jù)看到本地成員列表。圖中方框區(qū)域是節(jié)點檢測到集群故障后發(fā)送的第一組信息。由于1號節(jié)點只能在其他節(jié)點發(fā)送數(shù)據(jù)幀之后更新其各節(jié)點的成員列表,這會導(dǎo)致串口助手中顯式的各節(jié)點成員列表存在滯后,才會出現(xiàn)圖5中存在3個節(jié)點的成員列表不同的現(xiàn)象,但這并不會影響容錯算法的有效性,最終3個正常節(jié)點的成員列表一致,有效判斷出故障的編號,并且故障節(jié)點進入凍結(jié)狀態(tài),不再發(fā)送數(shù)據(jù)幀。如2號節(jié)點故障后,其余3個節(jié)點的成員列表變?yōu)镕D,第1位數(shù)據(jù)變?yōu)?,對應(yīng)的是2號節(jié)點故障,此時2號節(jié)點進入凍結(jié)狀態(tài),1號節(jié)點不再接收到2號節(jié)點發(fā)送的數(shù)據(jù)幀,count等于2,fault等于1。

      圖5 節(jié)點發(fā)生接收故障時容錯算法效果圖

      結(jié) 語

      本文基于Zynq平臺在自主設(shè)計的TTP/C總線控制器上實現(xiàn)了一種基于GMP策略的容錯算法,并實現(xiàn)了協(xié)議中未指明的空幀檢測算法。試驗驗證表明所設(shè)計的容錯算法可以有效檢測并隔離集群中的故障節(jié)點,保證集群的正常運行。

      [1]魏婷,張喜民,陳益,等.一種基于TTP/C協(xié)議的容錯策略研究[J].航空計算技術(shù),2008,38(3):90-93.

      [2]Time-Triggered Protocol TTP/C High-Level Specification Document Protocol Version 1.1.Specification edition 1.4.3, 2003.

      [3]楊福宇.TTP/C組籍算法存在的問題[J].單片機與嵌入式系統(tǒng)應(yīng)用,2014(10):1-4.

      [4]劉雙與,郭麗娟,張激,等.TTP/C協(xié)議的一致性機制研究[J].計算機工程,2006,32(5):119-121.

      [5]劉冬冬,張?zhí)旌?陳建,等.TTP/C協(xié)議的關(guān)鍵特性研究[J].計算機測量與控制,2012,20(10):69-72.

      陳飛(碩士研究生),主要從事航空發(fā)動機控制系統(tǒng)設(shè)計與仿真;張?zhí)旌?教授),研究方向為嵌入式控制系統(tǒng)、系統(tǒng)控制與仿真。

      Fault Tolerant Algorithm for TTP/C Bus Controller Based on Zynq

      Chen Fei,Zhang Tianhong
      (Jiangsu Province Key Laboratory of Aerospace Power System,Nanjing University of Aeronautics and Astronautics,Nanjing 210016,China)

      The fault tolerant algorithm is the basis of the TTP/C bus,which is a kind of time-triggered data bus with the characteristics of strict time certainty and high reliability.A fault tolerant algorithm based on group member protocol is realized on the self-designed TTP/C bus controller for the rapid detection and isolation of the fault nodes in the TTP/C cluster.The experiment results show that the designed fault tolerant algorithm can effectively detect and isolate the fault nodes in the cluster.

      fault tolerant algorithm;Zynq;TTP/C;GMP

      V233.7

      :A

      薛士然

      2016-05-11)

      猜你喜歡
      發(fā)送數(shù)據(jù)時間段列表
      巧用列表來推理
      移動自組網(wǎng)中MAC層協(xié)議研究
      學(xué)習運用列表法
      夏天曬太陽防病要注意時間段
      擴列吧
      基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點性能分析
      帶標記方式的CRDSA++協(xié)議性能分析*
      發(fā)朋友圈沒人看是一種怎樣的體驗
      意林(2017年8期)2017-05-02 17:40:37
      使用IPSec安全傳輸數(shù)據(jù)
      不同時間段顱骨修補對腦血流動力學(xué)變化的影響
      广昌县| 武安市| 固镇县| 延津县| 呼玛县| 科尔| 青冈县| 泗水县| 承德市| 正定县| 鄂州市| 五家渠市| 贵阳市| 尤溪县| 甘洛县| 焉耆| 调兵山市| 淮阳县| 象州县| 蒙自县| 通州区| 鹿泉市| 进贤县| 隆安县| 咸宁市| 习水县| 裕民县| 永平县| 渭南市| 大理市| 黑水县| 沈丘县| 成都市| 西平县| 封丘县| 黔西县| 温泉县| 淅川县| 大同县| 宜春市| 饶平县|