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