王晨博,孟 博,張 楠
(中航工業(yè)西安航空計算技術(shù)研究所,陜西 西安 710068)
基于TTP總線的網(wǎng)絡(luò)由TTP節(jié)點和雙通道的TTP總線組成。典型的TTP架構(gòu)如圖1所示,稱作一個集群,集群的主體是TTP節(jié)點。取決于系統(tǒng)架構(gòu)和系統(tǒng)需求,集群上各節(jié)點的通信可以基于單通道(通道0或者通道1)或者冗余通道(通道0和通道1)建立[1]。
圖1 典型TTP架構(gòu)
TTP采用總線型架構(gòu),基于時分復(fù)用(TDMA)的通信調(diào)度策略,總線上各個節(jié)點按照預(yù)先定義的消息描述表(MEDL),基于全局時間基進(jìn)行數(shù)據(jù)傳輸?shù)恼{(diào)度。TTP控制器是時間觸發(fā)體系的核心,其提供全局時間基觸發(fā)TTP服務(wù)的執(zhí)行、數(shù)據(jù)幀發(fā)送與接收操作等,并通過CNI實現(xiàn)主機(jī)與控制器之間的數(shù)據(jù)交換[2]。TTP協(xié)議定義了兩類服務(wù):通信服務(wù)和安全性服務(wù),這兩類服務(wù)確保了節(jié)點之間可靠的數(shù)據(jù)交換。
通信服務(wù)確保單節(jié)點的故障可以被發(fā)現(xiàn)并且容忍,TTP總線可以在不降低服務(wù)質(zhì)量的情況下繼續(xù)執(zhí)行。通信服務(wù)包括集群啟動、節(jié)點間重整合、確認(rèn)服務(wù)、時鐘同步以及集群模式更改的處理。
節(jié)點控制器基于接收到的幀進(jìn)行整合,若集群通信沒有進(jìn)行,節(jié)點發(fā)起一個冷啟動操作[3]。
整合是一個節(jié)點達(dá)到與集群通信同步的過程。節(jié)點采用接收到的幀的控制器狀態(tài)(c-state),并初始化自身的c-state,從而達(dá)到同步。整合過程何時結(jié)束和節(jié)點何時可以獲得一個時隙取決于下述條件:
(1) 節(jié)點的發(fā)送時隙標(biāo)記在配置字中;
(2) 主機(jī)生命標(biāo)記正確的更新;
(3) 基于冷啟動幀進(jìn)行整合時,當(dāng)主機(jī)生命標(biāo)記無效時,如果這是節(jié)點的第一個發(fā)送時隙并且當(dāng)前集群模式是啟動模式時,節(jié)點也允許發(fā)送幀;
(4) 基于非冷啟動幀整合時,如果整合計數(shù)條件滿足,表示當(dāng)最小數(shù)目的正確幀被接收時整合已經(jīng)結(jié)束。
確認(rèn)服務(wù)處理關(guān)于發(fā)送節(jié)點發(fā)送幀的正確性的信息收集過程。發(fā)送節(jié)點從最多兩個有效后繼節(jié)點發(fā)送的幀當(dāng)中獲取確認(rèn)信息。發(fā)送節(jié)點通過檢查接收到的幀的c-state中成員矢量是否與確認(rèn)算法定義的情景一致判斷確認(rèn)失敗還是成功。c-state是狀態(tài)變量的集合,狀態(tài)變量包括全局時間、集群位置和成員關(guān)系狀態(tài),cstate長度為12個字節(jié)。每一個控制器在TDMA周期中的每個時隙中更新本地的c-state。
TTP總線提出了一種分布式的高精度時鐘同步算法。通過多個授時節(jié)點同時發(fā)出授時幀對網(wǎng)絡(luò)進(jìn)行同步,避免了傳統(tǒng)的集中式時鐘同步技術(shù)中的授時端單節(jié)點故障問題;通過達(dá)到亞微秒的高精度同步過程,提高傳輸過程中幀到達(dá)的“準(zhǔn)點率”,提高了系統(tǒng)通信的效率。TTP總線全局時間的基本參數(shù)包括:macrotick,microtick和precision。
TTP總線時鐘同步操作按照下述3個階段進(jìn)行:
(1) 控制器計算每一個接收到的幀的實際到達(dá)時間,并根據(jù)預(yù)計的接收時間計算偏差;
(2) 控制器基于記錄的偏移值,根據(jù)分布式時鐘同步算法計算出一個修正期限;
(3) 控制器使用修正期限修正自身的時鐘。
安全性服務(wù)確保任一故障節(jié)點的故障靜默,防止分布式失效。安全性服務(wù)包含成員關(guān)系和派系檢測算法等服務(wù)。
節(jié)點成員關(guān)系服務(wù)確保所有活躍的節(jié)點在一個TDMA周期的延遲時間內(nèi)調(diào)整其對每個節(jié)點操作狀態(tài)的視圖,節(jié)點控制器維護(hù)一個成員關(guān)系向量。成員關(guān)系向量共64位,每一位代表一個節(jié)點的狀態(tài)。
控制器基于接收到的幀時隙狀態(tài)信息對其他節(jié)點的操作狀態(tài)“表決”。時隙狀態(tài)值不是“correct”時,控制器在本地c-state中復(fù)位相應(yīng)的發(fā)送節(jié)點的成員關(guān)系向量標(biāo)記位。基于表決結(jié)果,各節(jié)點控制器在分配的時隙的PRP階段更新時隙狀態(tài)統(tǒng)計信息。
派系被定義為基于一個一致的c-state整合的節(jié)點集。TTP控制器通過使用時隙狀態(tài)統(tǒng)計表和派系檢測算法解決派系問題,避免系統(tǒng)的非一致性錯誤,對于集群派系的問題在每個時隙的PSP階段進(jìn)行。
每個控制器在一個TDMA周期中計算一次自身是否在占多數(shù)的派系中,通過檢查在TDMA周期中,當(dāng)前控制器對于各時隙的判斷中agreed slot是否比failed slot多來進(jìn)行判斷。如果不滿足,表示節(jié)點檢測到自身與大多數(shù)節(jié)點不一致??刂破魃蠄笈上靛e誤信息,并停止操作。
TTP節(jié)點基本硬件組成包括FPGA電路、存儲器電路、復(fù)位電路、時鐘電路和電源電路,其原理框圖如圖2所示。
圖2 TTP節(jié)點原理
TTP節(jié)點以FPGA電路為核心,采用兩個收發(fā)控制器作為冗余的TTP總線通信物理層接口,同時為了防止電氣損壞,使用隔離變壓器進(jìn)行電源隔離。TTP節(jié)點采用5 V供電,通過電源管理電路將輸入電壓轉(zhuǎn)為模塊所需的其他電壓。
FPGA的PCI核使用PCI總線輸入的時鐘。節(jié)點上通過晶振產(chǎn)生10 MHz和16 MHz時鐘,分別提供給FPGA中的功能電路使用[4]。
TTP節(jié)點邏輯設(shè)計主要包括PCI核、控制器、監(jiān)護(hù)等部分。其中PCI核實現(xiàn)PCI總線Agent功能,控制器實現(xiàn)TTP狀態(tài)機(jī)和協(xié)議。
結(jié)合TTP節(jié)點設(shè)計需求,對其功能進(jìn)行測試驗證,搭建測試驗證平臺。測試驗證平臺包括TTP通信平臺、監(jiān)控節(jié)點、故障注入節(jié)點、PC機(jī)和示波器組成。TTP通信平臺包含4塊TTP節(jié)點。測試項目主要包括TTP總線同步測試、TDMA測試、基本通信測試和故障注入測試[5]。
經(jīng)測試驗證,TTP節(jié)點的功能性能均滿足技術(shù)指標(biāo)要求。
本文從通過對時間觸發(fā)總線技術(shù)的理解和研究,設(shè)計實現(xiàn)了一種符合SAE AS6003規(guī)范要求的TTP節(jié)點,并給出了該模塊的試驗測試方法。試驗測試和工程應(yīng)用結(jié)果表明,該模塊各項指標(biāo)均滿足設(shè)計要求,符合協(xié)議標(biāo)準(zhǔn)。