徐文杰
【摘要】? ? SAE AS5643協(xié)議具有確定性、高可靠性的特點(diǎn),并已成功應(yīng)用在航空航天等高安全關(guān)鍵領(lǐng)域。文中對(duì)SAE AS5643協(xié)議進(jìn)行了特征分析。提出一種基于AS 5643協(xié)議的1394B總線(xiàn)監(jiān)控設(shè)計(jì)方法,采用FPGA實(shí)現(xiàn)對(duì)總線(xiàn)數(shù)據(jù)的實(shí)時(shí)監(jiān)控,并通過(guò)DMA高效傳輸至CPU模塊中。文中詳細(xì)討論了硬件、邏輯和軟件等設(shè)計(jì)方法與實(shí)現(xiàn),通過(guò)不同的場(chǎng)景的測(cè)試驗(yàn)證。結(jié)果表明,該監(jiān)控設(shè)計(jì)方法滿(mǎn)足基于SAE AS5643協(xié)議的總線(xiàn)監(jiān)控要求。
【關(guān)鍵字】? ? AS5643? ? 總線(xiàn)監(jiān)控? ? 1394B? ? 預(yù)分配通道號(hào)及帶寬
一、概述
基于SAE AS5643[1]協(xié)議的1394B總線(xiàn)通信技術(shù),具有高傳輸帶寬、熱插拔、傳輸距離長(zhǎng)等特點(diǎn)[2],文中首先介紹SAE AS5643的技術(shù)特點(diǎn),其次分析了總線(xiàn)監(jiān)控設(shè)計(jì)的邏輯設(shè)計(jì)及具體工作流程,然后提出了軟件設(shè)計(jì),最后對(duì)設(shè)計(jì)進(jìn)行功能測(cè)試驗(yàn)證,最后給出了監(jiān)控功能的設(shè)計(jì)結(jié)論。
二、AS5643協(xié)議分析
作為一種確定性安全網(wǎng)絡(luò),SAE AS5643采用異步流包[3]進(jìn)行固定幀速率的傳輸方式,通過(guò)靜態(tài)分配通道號(hào)及控制傳輸偏移等技術(shù)手段實(shí)現(xiàn)了確定性傳輸,并通過(guò)增加垂直奇偶校驗(yàn)(VPC)等方式,進(jìn)一步加強(qiáng)數(shù)據(jù)完整性,提高安全性,確保其應(yīng)用在關(guān)鍵安全可靠領(lǐng)域。
2.1固定幀速率
SAE AS5643協(xié)議中,除物理層包數(shù)據(jù)意外,其他總線(xiàn)通信均采用異步流包格式。為了確保通信的確定性,協(xié)議采用一種固定幀速率的方式來(lái)實(shí)現(xiàn)各個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的時(shí)間同步,具體操作為:在每條總線(xiàn)上,CC節(jié)點(diǎn)會(huì)以固定的幀率(如:12.5ms)傳輸STOF包(一種特殊的異步流包),用來(lái)通知總線(xiàn)上的所有節(jié)點(diǎn)一個(gè)新幀周期的起始。依據(jù)STOF包的1394總線(xiàn)的時(shí)間同步,是SAE AS5643協(xié)議通信的基礎(chǔ)。
2.2預(yù)分配通道號(hào)及帶寬
基于SAE AS5643協(xié)議的1394總線(xiàn)采用異步流包在異步周期內(nèi)發(fā)送的等時(shí)包,尋址方式采用通道號(hào)。在機(jī)載航電等應(yīng)用領(lǐng)域,采用預(yù)先靜態(tài)分配通道號(hào)的固定方式進(jìn)行確定性通信。網(wǎng)絡(luò)通信時(shí),不同節(jié)點(diǎn)按照預(yù)先定義的通道號(hào)進(jìn)行包數(shù)據(jù)通信,而接收節(jié)點(diǎn)也會(huì)按照預(yù)先定義的本通道號(hào)進(jìn)行接收,保證確定性。
系統(tǒng)設(shè)計(jì)者在網(wǎng)絡(luò)拓?fù)涔潭ㄖ螅谕ㄟ^(guò)預(yù)分配通道號(hào)和總線(xiàn)帶寬,來(lái)確保所有節(jié)點(diǎn)按照確定的發(fā)送、接收偏移時(shí)刻進(jìn)行包數(shù)據(jù)的分時(shí)傳輸,提高了網(wǎng)絡(luò)可靠性。
2.3垂直奇偶校驗(yàn)(VPC)
垂直奇偶校驗(yàn)是個(gè)無(wú)符號(hào)長(zhǎng)整型數(shù),其計(jì)算方式為:對(duì)包的有效數(shù)據(jù)的每個(gè)32位字按位異或(無(wú)進(jìn)位),其本身除外,最終對(duì)異或的結(jié)果按位取反得到VPC值,示例如下:
1. VPC=ASM頭的消息標(biāo)識(shí);
2. VPC=VPC 異或 ASM頭的安全字;
3. VPC=VPC 異或 ASM頭的節(jié)點(diǎn)標(biāo)識(shí)字;
4. VPC=VPC 異或 ASM頭的優(yōu)先級(jí)/有效數(shù)據(jù)長(zhǎng)度字;
5. VPC=VPC 異或 有效數(shù)據(jù)的健康狀態(tài)字;
6. VPC=VPC 異或 有效數(shù)據(jù)的心跳字;
7. 繼續(xù)與所有的余下的有效數(shù)據(jù)的字 異或;
8. VPC=VPC 異或 包尾的STOF TX偏移量;
9. VPC=VPC 異或 包尾的STOF RX偏移量;
10. VPC=VPC 異或 包尾的STOF DP偏移量;
11. VPC=VPC 按位取反。
三、監(jiān)控設(shè)計(jì)
本文設(shè)計(jì)中,1394總線(xiàn)監(jiān)控設(shè)計(jì),主要考慮故障情景再現(xiàn),及為系統(tǒng)設(shè)計(jì)者提供有利的網(wǎng)絡(luò)規(guī)劃參考依據(jù),主要的設(shè)計(jì)需求[4],包括:1.監(jiān)控整個(gè)網(wǎng)絡(luò)包流量情況,主要包括:異步流包和物理包;2.保證包數(shù)據(jù)的順序完整性;3.標(biāo)記相對(duì)時(shí)間戳;4. DMA監(jiān)控?cái)?shù)據(jù),上報(bào)至CPU模塊;5.特殊包消息的過(guò)濾監(jiān)控等。
3.1硬件設(shè)計(jì)
鑒于上述監(jiān)控需求,設(shè)計(jì)監(jiān)控模塊的硬件原理,如圖1所示。硬件設(shè)計(jì),主要包括:監(jiān)控FPGA、1394鏈路層芯片、1394物理層芯片及1394收發(fā)器等,此外還包括:電源電路、時(shí)鐘電路、復(fù)位電路等基礎(chǔ)電路。
3.2邏輯設(shè)計(jì)
如圖1所示,監(jiān)控FPGA為監(jiān)控模塊中的核心設(shè)計(jì),主要完成基于SAE AS5643協(xié)議的1394總線(xiàn)監(jiān)控功能,其設(shè)計(jì)框圖,如圖2所示。
如圖2所示,監(jiān)控FPGA完成了監(jiān)控設(shè)計(jì)的主要功能,其子功能主要包括:支持DMA傳輸?shù)腜CIe接口功能[5][6]、時(shí)間計(jì)時(shí)器、調(diào)度功能、接收接口功能、DMA輪詢(xún)控制功能、全監(jiān)控包緩存及信息FIFO、特色監(jiān)控包緩存及信息FIFO、控制及狀態(tài)寄存器功能、時(shí)鐘功能、配置SPI讀寫(xiě)控制功能等,下面對(duì)每一個(gè)功能進(jìn)行詳細(xì)描述。
支持DMA傳輸?shù)腜CIe接口功能,主要實(shí)現(xiàn)PCIe接口功能,包括:空間配置等,其主要采用FPGA的IP核實(shí)現(xiàn);時(shí)間計(jì)時(shí)器,主要功能為:在模塊上電時(shí),同時(shí)維護(hù)記錄兩個(gè)時(shí)間計(jì)時(shí)器,分別為:上電計(jì)時(shí)器和STOF計(jì)時(shí)器。在實(shí)際捕獲的包數(shù)據(jù)中,每個(gè)捕獲包消息,均要標(biāo)記上述兩個(gè)時(shí)間戳,方便后續(xù)重現(xiàn)分析;調(diào)度功能,主要作用為:對(duì)捕獲到的包數(shù)據(jù)進(jìn)行過(guò)濾分析,對(duì)特殊監(jiān)控的包消息,特別分發(fā)在特殊監(jiān)控包緩存FIFO和特殊監(jiān)控包信息FIFO中;接收接口功能,主要功能為:上電初始化時(shí),完成對(duì)LLC鏈路層芯片的配置;對(duì)LLC芯片中的包數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控接收;DMA輪詢(xún)控制功能,主要作用為:采用乒乓操作對(duì)接收到的全監(jiān)控包消息和特色監(jiān)控包消息,輪詢(xún)調(diào)度至PCIe接口;全監(jiān)控包緩存及信息FIFO和特色監(jiān)控包緩存及信息FIFO,分別存放兩類(lèi)包消息,便于邏輯設(shè)計(jì)的跨時(shí)鐘數(shù)據(jù)傳輸;控制及狀態(tài)寄存器功能,主要作用為:軟硬件接口實(shí)現(xiàn)。實(shí)現(xiàn)邏輯控制和狀態(tài)上報(bào)等內(nèi)容;時(shí)鐘功能,主要實(shí)現(xiàn)邏輯內(nèi)部的時(shí)鐘資源生成,采用FPGA內(nèi)部的時(shí)鐘IP核實(shí)現(xiàn);配置SPI讀寫(xiě)控制功能,主要實(shí)現(xiàn)FPGA邏輯配置的在線(xiàn)升級(jí)功能。
3.3軟件設(shè)計(jì)
軟件設(shè)計(jì)在監(jiān)控設(shè)計(jì)中相對(duì)比較簡(jiǎn)單,其主要功能包括:1.實(shí)現(xiàn)對(duì)監(jiān)控邏輯的配置,包括:速率配置、DMA基址配置、軟復(fù)位、監(jiān)控特殊消息ID等;2.獲取監(jiān)控設(shè)計(jì)的狀態(tài)信息,包括:計(jì)數(shù)寄存器、中斷狀態(tài)、物理端口狀態(tài)、BIT狀態(tài)等信息,并匯總各種消息之后,上報(bào)CPU模塊本節(jié)點(diǎn)狀態(tài);3.數(shù)據(jù)遷移功能,在監(jiān)控FPGA將監(jiān)控包消息上傳至指定區(qū)間后,軟件將該數(shù)據(jù)搬移至非易失存儲(chǔ)器上。
四、驗(yàn)證測(cè)試
基于SAE AS5643協(xié)議的1394總線(xiàn)監(jiān)控設(shè)計(jì)的驗(yàn)證測(cè)試,除了基本端口及功能的測(cè)試外,還重點(diǎn)在測(cè)試場(chǎng)景的合理模擬,主要考慮如下幾點(diǎn):1.總線(xiàn)復(fù)位之后的物理層包監(jiān)控;2.特殊監(jiān)控包消息的監(jiān)控;3.時(shí)間戳的合理標(biāo)記;4.包順序的完整性。綜合上述考慮,搭建1394總線(xiàn)驗(yàn)證測(cè)試環(huán)境如圖3所示,主要包括:基于VMC的CC節(jié)點(diǎn)、節(jié)點(diǎn)1、節(jié)點(diǎn)2及監(jiān)控卡等。
結(jié)合監(jiān)控測(cè)試場(chǎng)景特點(diǎn),設(shè)置主要測(cè)試項(xiàng)目如表1所示
1 特殊監(jiān)控包消息 設(shè)置不同的特殊監(jiān)控消息ID,查看特殊監(jiān)控包消息是否正確監(jiān)控
2 DMA傳輸 分別設(shè)置特殊監(jiān)控消息和全監(jiān)控消息監(jiān)控,通過(guò)PCIe總線(xiàn)查看DMA輪詢(xún)控制功能及DMA傳輸功能的正確性
3 時(shí)間戳 設(shè)置不同的STOF包周期、上電復(fù)位等情緒下,兩個(gè)計(jì)時(shí)器是否合理工作,體現(xiàn)了包的先后順序
4 包順序的完整性 設(shè)置總線(xiàn)復(fù)位場(chǎng)景,監(jiān)控總線(xiàn)復(fù)位前后,監(jiān)控設(shè)計(jì)是否完整展現(xiàn)總線(xiàn)復(fù)位前及總線(xiàn)復(fù)位后的包消息數(shù)據(jù)的完整性
通過(guò)上述主要用例的功能檢測(cè),結(jié)果表明:本監(jiān)控設(shè)計(jì)適用于不同場(chǎng)景下的包數(shù)據(jù)捕獲,完整保持了消息的順序完整性,再現(xiàn)了總線(xiàn)通信實(shí)情,滿(mǎn)足了基于SAE AS5643協(xié)議的1394總線(xiàn)監(jiān)控要求。
五、結(jié)束語(yǔ)
本文通過(guò)對(duì)基于SAE AS5643協(xié)議的理解和研究,在原有1394B總線(xiàn)通信基礎(chǔ)上,提出了一種總線(xiàn)監(jiān)控設(shè)計(jì)方法,實(shí)現(xiàn)了總線(xiàn)數(shù)據(jù)的全消息監(jiān)控、特殊消息監(jiān)控和DMA上傳等功能,經(jīng)測(cè)試驗(yàn)證,該監(jiān)控模塊具備實(shí)現(xiàn)高流量、DMA高效率傳輸、完整再現(xiàn)順序完整性的數(shù)據(jù)監(jiān)控能力。
參? 考? 文? 獻(xiàn)
[1]SAE-AS 5643:IEEE-1394B interface requirements for military and aerospace vehicle applications[S].2006
[2]李肇慶,朱線(xiàn)峰. IEEE1394接口技術(shù)[M]. 北京:國(guó)防工業(yè)出版社,2004.
[3]王宣明,田澤,魏艷艷,牛少平,徐文進(jìn).SAE AS5643協(xié)議分析及設(shè)計(jì)實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展.第25卷第7期,2015年7月.P213~215.
[4]韓一鵬,田澤,牛少平.一種SAE AS5643三節(jié)點(diǎn)仿真設(shè)備設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展.2016年第26卷第3期. P202~204.
[5]廖寅龍,田澤.FC網(wǎng)絡(luò)通信中PCIe的接口的設(shè)計(jì)與實(shí)現(xiàn)[J].航空計(jì)算技術(shù).2010,40(4),P127~P130.
[6]馬鳴錦,朱劍冰,何紅旗,等.PCI,PCI-X和PCI Express的原理及體現(xiàn)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2007