何小亞 李成文 解文濤 高楊 湛文韜 楊濤
摘要:交叉通道數(shù)據(jù)鏈路是機載容錯計算機系統(tǒng)中很重要的數(shù)據(jù)交換方式,其可靠性和傳輸速率影響整個系統(tǒng)的容錯性能。該文在核心處理機應(yīng)用背景下,從編碼方式,同步機制,差錯控制和數(shù)據(jù)傳輸?shù)冉嵌冗M(jìn)行分析對比,并設(shè)計出基于FPGA和MAX3491驅(qū)動器的一種高可靠性的高速交叉通道數(shù)據(jù)鏈路(CCDL)。
關(guān)鍵詞:交叉通道數(shù)據(jù)鏈路;機載容錯計算機;FPGA;MAX3491
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)03-0004-02
核心處理機采用容錯系統(tǒng)結(jié)構(gòu),雙通道熱備份方式,每個通道具有獨立的相同的數(shù)據(jù)處理模塊,兩通道之間通過實時通信實現(xiàn)任務(wù)同步的熱跟隨處理模式[1]。
目前廣泛用于容錯系統(tǒng)實時通信方案的實現(xiàn)方式和優(yōu)缺點如下[2-4]:
1)網(wǎng)絡(luò)技術(shù)方式,優(yōu)點是技術(shù)比較成熟,但占用系統(tǒng)資源,硬件集成難度大,傳輸速率也比較慢。
2)雙端口RAM方式[5],優(yōu)點是能將控制邏輯與存儲器集成在一片大規(guī)模集成電路內(nèi),實現(xiàn)真正的雙端口異步操作。缺點是硬件布線開銷較大,且每個RAM芯片只能連接兩個CPU。
3)總線方式,優(yōu)點是接口比較統(tǒng)一且易于實現(xiàn),但數(shù)據(jù)傳輸速率就比較慢。
由于32位的數(shù)據(jù)線和32位的地址線在機箱母板上實現(xiàn)起來過于密集,軟硬件復(fù)雜度都太大,故不選用雙端口RAM方式。網(wǎng)絡(luò)通訊方式占用系統(tǒng)資源,硬件開銷大,傳輸速率也比較慢,也不能采用。相對而言總線技術(shù)較為合適本系統(tǒng),只要設(shè)法提高傳輸速率就可以滿足系統(tǒng)要求。如圖1所示[1],核心處理分機由兩個VME總線將數(shù)據(jù)處理模塊等各功能模塊組成兩套獨立的工作單元,兩個工作單元之間通過各自的數(shù)據(jù)處理模塊引出CCDL信號線采用RS422串行總線通過母板與對方交叉互聯(lián)。
數(shù)據(jù)處理模塊內(nèi)部的CCDL邏輯電路是完成數(shù)據(jù)發(fā)送和接收的功能載體,是整個CCDL鏈路的核心,下面從編碼方式選擇、同步機制、差錯控制和數(shù)據(jù)傳輸原理等方面對CCDL電路設(shè)計方案進(jìn)行對比研究,最后給出設(shè)計結(jié)果。
1 編碼方式
CCDL采用MAX3491驅(qū)動器以差分串行方式傳輸數(shù)據(jù),串行數(shù)據(jù)位需要進(jìn)行編碼才能正確傳輸。不歸零編碼是將二進(jìn)制數(shù)字0、1分別用兩種電平來表示,方法簡單容易實現(xiàn),編碼效率也非常高,缺點是會產(chǎn)生直流分量的積累,使信號失真。采用電荷泵鎖相環(huán)(CPPLL)里的鑒頻鑒相器(PFD)完成時鐘數(shù)據(jù)恢復(fù)電路在沒有數(shù)據(jù)跳變的時候不發(fā)生錯誤的比較,并提供正確的時鐘輸出。
2 同步機制
在串行數(shù)據(jù)傳輸中,發(fā)送方和接收方依據(jù)各自的時鐘周期來確定發(fā)出和接收數(shù)據(jù)的每一位時間的長短。這就需要收發(fā)雙方進(jìn)行同步來保障二者有一致的時鐘周期。目前主流同步方法有位同步、幀同步、字符同步。
字符同步方式控制簡單,可靠性高且實現(xiàn)成本低,故在此采用字符同步方式。將數(shù)據(jù)字符定義為1位起始位、16位數(shù)據(jù)位、1位校驗位和1位停止位。起始位用低電平表示,停止位用高電平表示。由于字符之間的間隔不確定,為了正確判別每個字符的到來,線路平時保持高電平,一旦出現(xiàn)了一位低電平,就表示數(shù)據(jù)傳輸開始了(這位稱為起始位),接著傳數(shù)據(jù)位和校驗位待傳輸完畢后,再加上1位的高電平(即停止位)表示數(shù)據(jù)傳輸結(jié)束。
3 差錯控制
CCDL 可靠性至關(guān)重要,因此設(shè)計中除了要盡量避免錯誤出現(xiàn),還要考慮差錯控制問題。在CCDL電路設(shè)計中,采用如下措施避免錯誤出現(xiàn):
1)雙通道數(shù)據(jù)處理模塊盡可能近放置(兩個數(shù)據(jù)模塊調(diào)整放在中間)和遠(yuǎn)離干擾源(如遠(yuǎn)離電源模塊和音頻告警模塊)以減少干擾;
2)CCDL串行數(shù)據(jù)以RS422差分方式傳輸,差分線等長并行走線而且用地包;
3)邏輯設(shè)計中計數(shù)器編碼使用采用格雷碼[7]代替普通的二進(jìn)制編碼,格雷碼計數(shù)器輸出每次只有一位數(shù)據(jù)產(chǎn)生變化,可以消除競爭冒險產(chǎn)生的條件,避免邏輯設(shè)計中毛刺的產(chǎn)生;
4)另外邏輯設(shè)計中盡可能用D觸發(fā)器輸出,這樣可以減少由于信號延時不一致而可能產(chǎn)生的邏輯毛刺。
以上雖然采取了一些措施來避免錯誤,但是無法消除錯誤,這需要一套機制來實現(xiàn)差錯控制。目前差錯控制方法有三中取二[8和檢、糾錯碼。三中取二傳輸效率太低。常用的檢錯碼主要是循環(huán)冗余編碼和奇偶校驗碼。循環(huán)冗余編碼需要較多的附加信息效率低。因此選擇奇偶校驗碼進(jìn)行檢錯,檢測出來錯誤后使用拉回式重傳機制糾正錯誤。
4 數(shù)據(jù)傳輸原理
數(shù)據(jù)傳輸工作過程是系統(tǒng)上電復(fù)位后,CCDL的收發(fā)中斷處于禁止?fàn)顟B(tài),由應(yīng)用軟件來使能中斷。系統(tǒng)收到發(fā)送中斷后查詢發(fā)送FIFO是否空,如果空就往發(fā)送FIFO寫數(shù)據(jù)。寫完后CCDL就進(jìn)行數(shù)據(jù)發(fā)送。系統(tǒng)在中斷服務(wù)程序中從接收FIFO中讀數(shù)據(jù)。接收方每接收到一個字符都要進(jìn)行奇偶校驗檢查,一旦檢測到校驗錯誤就給發(fā)送方發(fā)回錯誤數(shù)據(jù)編碼然后進(jìn)行拉回重發(fā)。接收邏輯收到數(shù)據(jù)后先解析包頭,把數(shù)據(jù)長度寄存器中用于數(shù)據(jù)傳輸檢查,數(shù)據(jù)接收完后向系統(tǒng)發(fā)出中斷請求。
5 硬件設(shè)計
數(shù)據(jù)處理模塊的CCDL邏輯電路需要完成數(shù)據(jù)的發(fā)送和接收的功能,主要由FPGA和MAX3491驅(qū)動器組成。
CCDL電路設(shè)計0.5KB發(fā)送FIFO和1KB接收FIFO,為了支持拉回重發(fā)糾錯機制和雙通道同時交換數(shù)據(jù)的需要,增加1路2B發(fā)送FIFO和2B接收FIFO用于傳輸錯誤數(shù)據(jù)編號。
根據(jù)熱跟隨處理模式,數(shù)據(jù)處理模塊所有對外接口應(yīng)該完全一致。但兩個數(shù)據(jù)處理模塊內(nèi)部實現(xiàn)可以采用異構(gòu)方式提高系統(tǒng)可靠性,也可采用同構(gòu)方式來降低成,本系統(tǒng)的兩塊數(shù)據(jù)處理模塊內(nèi)部結(jié)構(gòu)完全相同,其數(shù)據(jù)傳輸?shù)墓ぷ髁鞒桃餐耆嗤唧w如圖1所示。
6 結(jié)束語
本文詳細(xì)介紹了一種基于FPGA和MAX3491驅(qū)動器的一種高可靠性的高速交叉通道數(shù)據(jù)鏈路(CCDL)的設(shè)計思路和設(shè)計結(jié)果,這種實現(xiàn)方式簡單可靠,且具有可擴展性,在其他容錯系統(tǒng)中有廣泛的應(yīng)用,現(xiàn)在很多工業(yè)系統(tǒng)都是采用余度容錯技術(shù)來提高系統(tǒng)的可靠性。對于其他要求可靠性高的余度容錯處理系統(tǒng)中,該CCDL實現(xiàn)方式同樣有著良好的應(yīng)用前景。
參考文獻(xiàn):
[1] 牛文生.機載計算機技術(shù)[M].航空工業(yè)出版社,2013.
[2] 潘計輝,張盛兵,張小林,等.三余度機載計算機設(shè)計與實現(xiàn)[J].西北工業(yè)大學(xué)學(xué)報,2013(5):708-802.
[3] 芶冬榮,劉海清.雙機容錯計算機系統(tǒng)的設(shè)計與實現(xiàn)[J]. 計算機工程,2008(15):255-258.
[4] 閆穩(wěn).機載供電系統(tǒng)雙余度控制器的容錯控制[J]. 航空計算技術(shù),2010(40):86-88.
[5] SDRAM Device Operation,Samsung Inc,1998.
[6] 江力,吳海紅,等.通信原理[M].北京:清華大學(xué)出版社,2007:63-70.
[7]吳曉建,謝明,邱香,等.格雷碼性質(zhì)研究[J],機電工程技術(shù),2010(9):80-82.
[8]柳孔明,黃俊.無人機多余度航空電子系統(tǒng)研究與應(yīng)用[J].計算機測量與控制,2012(5):1340-1343.