文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.08.044
中文引用格式: 牛少平,史嘉濤,索高華,等. 一種1394總線分析邏輯電路的設計與實現(xiàn)[J].電子技術(shù)應用,2016,42(8):175-178.
英文引用格式: Niu Shaoping,Shi Jiatao,Suo Gaohua,et al. Design and implementation of a 1394 bus analysis logic circuit[J].Application of Electronic Technique,2016,42(8):175-178.
0 引言
IEEE 1394總線標準是一種具有高速、靈活和擴展性好的數(shù)據(jù)傳輸標準,是目前有效的數(shù)據(jù)傳輸方式之一,廣泛應用于視頻傳輸、工業(yè)控制中,也越來越多地應用在航空領(lǐng)域總線系統(tǒng)中。為確保新一代航空1394總線系統(tǒng)和設備功能的正確性、穩(wěn)定性,需要一個完善的總線測試環(huán)境對系統(tǒng)進行充分測試。
本文結(jié)合航空1394系統(tǒng)應用研制中遇到的各種情況,從總線系統(tǒng)的相關(guān)需求入手,根據(jù)總線設備研制規(guī)范,提出了一種航空1394總線分析邏輯電路。該邏輯電路可內(nèi)嵌于1394總線分析設備硬件中,能進行1394總線數(shù)據(jù)和狀態(tài)的監(jiān)控、分析與存儲,支持發(fā)起多種總線行為和發(fā)送總線消息數(shù)據(jù),可以為航空領(lǐng)域1394總線系統(tǒng)的研制和測試提供有效支持。
1 設計與實現(xiàn)
1.1 硬件結(jié)構(gòu)
本文提出的1394總線分析邏輯電路內(nèi)嵌于如圖1所示1394總線分析設備中。其中,外圍硬件主要通過專用芯片實現(xiàn)1394物理層、鏈路層功能、數(shù)據(jù)存儲功能以及主機接口功能;邏輯電路作為整個設備的功能核心,主要實現(xiàn)總線信息的監(jiān)控以及解析功能。
圖1 1394總線分析設備結(jié)構(gòu)
1.2 邏輯電路
作為1394總線分析設備的功能核心,分析邏輯電路主要由下面幾個功能模塊組成,其功能結(jié)構(gòu)如圖2所示。
圖2 邏輯功能結(jié)構(gòu)
(1)主機接口控制模塊:實現(xiàn)了邏輯電路與硬件部分主機接口芯片之間的交互功能,包括響應主機發(fā)起的命令、解析命令信息,以及將讀取數(shù)據(jù)進行封包發(fā)送等功能。
(2)存儲接口控制模塊:一方面實現(xiàn)對片外存儲器進行數(shù)據(jù)讀寫的接口功能,將內(nèi)部提供的數(shù)據(jù)寫入片外存儲器或從片外存儲器讀取數(shù)據(jù);另一方面完成數(shù)據(jù)信息寫入、讀出操作的調(diào)度控制,其工作模式可通過寄存器控制模塊中相應的功能寄存器進行配置更改。
(3)鏈路層接口控制模塊[1]:LLC-DM模塊實現(xiàn)通過鏈路層數(shù)據(jù)接口進行消息數(shù)據(jù)收發(fā)的功能;LLC-MC模塊實現(xiàn)鏈路層控制寄存器的訪問配置功能。主要完成鏈路層工作模式配置或獲取鏈路層狀態(tài)信息等。
(4)寄存器控制模塊:實現(xiàn)用于邏輯功能控制的控制寄存器、用于標識總線狀態(tài)的狀態(tài)寄存器,以及收發(fā)消息的計數(shù)寄存器等。初始化、啟動使能、發(fā)送幀周期等控制及參數(shù)信息均經(jīng)由主機訪問并操作相關(guān)控制寄存器位實現(xiàn)。
(5)其他模塊:包括基于異步FIFO的接收緩沖模塊、基于DPRAM的發(fā)送數(shù)據(jù)存儲模塊,以及不同時鐘域模塊之間的信號同步模塊。
1.3 關(guān)鍵設計
1.3.1 存儲結(jié)構(gòu)及存取調(diào)度機制
在消息數(shù)據(jù)和狀態(tài)信息的存儲控制方面,采用了如下優(yōu)化設計:
首先,存儲結(jié)構(gòu)。這里將數(shù)據(jù)信息與狀分析信息進行分區(qū)存儲,存儲結(jié)構(gòu)如圖3所示。數(shù)據(jù)區(qū)域按每條消息數(shù)據(jù)占用2 KB空間劃分,分析信息區(qū)域按每條消息占用8 B空間劃分,數(shù)據(jù)消息與分析信息一一對應。采用這種數(shù)據(jù)存儲結(jié)構(gòu),可讓存取操作時的尋址更加規(guī)律準確,降低誤操作的概率。
圖3 消息數(shù)據(jù)存儲結(jié)構(gòu)
其次,存取調(diào)度機制。存儲操作時先存數(shù)據(jù)信息,后存狀態(tài)信息;讀取操作時先讀狀態(tài)信息,后讀數(shù)據(jù)信息。存儲調(diào)度流程是因為狀態(tài)信息是完整分析一條數(shù)據(jù)信息后才產(chǎn)生的。讀取調(diào)度流程是便于軟件從狀態(tài)信息開始進行解析。
1.3.2 數(shù)據(jù)獲取機制
上層主機獲取存儲器中的數(shù)據(jù)信息時,一般采用直接尋址讀取的方式,而采用這種方式在獲取大量數(shù)據(jù)時往往需要發(fā)起多次多操作,很大程度上影響獲取數(shù)據(jù)的效率。針對本文設計中的存儲結(jié)構(gòu),這里采用一種新的數(shù)據(jù)獲取機制,如圖4所示。
圖4 數(shù)據(jù)獲取機制
主機以消息條目為輸入,對邏輯內(nèi)部消息讀取控制寄存器發(fā)起一次寫操作,讀取控制寄存器根據(jù)指定條目信息直接調(diào)度讀取該條信息完整數(shù)據(jù)并反饋輸出給主機。采用這種機制,主機只需發(fā)起一次操作,便可讀取一條消息的數(shù)據(jù),這樣一方面可提高數(shù)據(jù)獲取效率,另一方面提高應用軟件的同步解析效率。
1.3.3 鏈路模式自動配置
1394總線狀態(tài)分析需要鏈路工作在正確的模式下,系統(tǒng)上電后,收發(fā)消息數(shù)據(jù)時,鏈路的工作模式就需要進行配置或調(diào)整,采用主機直接配置無疑會影響效率,甚至有可能影響正常的總線行為。
針對這種問題,本文在邏輯電路的LLC-MC模塊中實現(xiàn)鏈路工作模式的自動配置機制。如圖5所示,系統(tǒng)上電后,LLC-MC模塊檢測等待鏈路初始化完成后進行默認的接收模式配置。當主機啟動發(fā)送任務時,根據(jù)鏈路狀態(tài)適時配置鏈路切換到發(fā)送模式,等待發(fā)送完成后再迅速配置切換回接收模式。
圖5 鏈路自動配置過程
2 仿真與測試
本文首先對1394總線分析邏輯電路功能進行了虛擬仿真驗證。
如圖6所示,鏈路層數(shù)據(jù)接口llc_dm負責完成消息數(shù)據(jù)的接收,每接收一條消息,消息記錄計數(shù)器rec_cnt_reg計數(shù)遞增1,S400速率消息計數(shù)器計數(shù)遞增1,標識著邏輯電路接收了一條速率為S400的消息數(shù)據(jù);llc_dm接口接收完一條消息數(shù)據(jù)后,存儲器接口DDR2將接收消息數(shù)據(jù)寫入片外存儲器暫存;最后由主機通過USB接口[2,3]進行數(shù)據(jù)請求,每請求一次,邏輯通過DDR2接口取出一條消息數(shù)據(jù)交給USB回傳給主機。
圖6 邏輯功能驗證結(jié)果
其次,通過嵌入該邏輯電路的1394總線分析設備進行了實踐測試。
如圖7所示,總線分析設備在連接到1394總線系統(tǒng)時,總線復位行為引起了各總線節(jié)點設備的響應,分析設備監(jiān)控到了多次的總線復位行為(Bus Reset)以及各節(jié)點發(fā)出的S100的物理層自標識消息(PhySelfD0)。
圖7 1394總線分析設備實測結(jié)果
由于本文提出的1394總線分析邏輯電路主要針對航空1394總線系統(tǒng)的開發(fā),因而與國內(nèi)外現(xiàn)有通用1394總線設備相比,其具有更好的適用性、更高的效率以及較低的成本。
3 結(jié)論
通過試驗表明,本文所述1394總線分析邏輯電路支持1394總線上不同速率、不同類型的消息數(shù)據(jù)收發(fā),有效完成總線行為監(jiān)控和數(shù)據(jù)分析,同時可內(nèi)嵌用于多種1394總線仿真設備或用于總線異常分析的測試設備,具有良好的航空系統(tǒng)設備適用性,對于當今航空1394總線系統(tǒng)的研制與開發(fā)具有重要的應用價值。
參考文獻
[1] 劉光遠,張濤,鄭偉波.基于FPGA的數(shù)據(jù)采集系統(tǒng)IEEE1394接口設計[J].儀表技術(shù)與傳感器,2009(12):46-48.
[2] Cypress.EZ-USB FX2 Technical reference manual[EB/OL].(2001)[2016].http://www.cypress.com.
[3] 許永和.EZ-USB FX2系列單片機USB外圍設備設計與應用[M].北京:北京航空航天大學出版社,2002.