1553B總線(xiàn)遠程端點(diǎn)數據鏈路層協(xié)議的FPGA實(shí)現
0 引 言
用于車(chē)輛、艦船、飛機等機動(dòng)平臺上的電子設備越來(lái)越多,并且越來(lái)越復雜。將電子設備加以有效的綜合,使之達到資源和功能共享已成為必然趨勢。電子綜合的支撐技術(shù)是聯(lián)網(wǎng)技術(shù),而機動(dòng)平臺上的聯(lián)網(wǎng)技術(shù)不同于一般的局域網(wǎng)技術(shù),它特別強調網(wǎng)絡(luò )的可靠性和實(shí)時(shí)性。1553B總線(xiàn)是在20世紀70年代末為適應飛機的發(fā)展,由美國提出的飛機內部的電子系統聯(lián)網(wǎng)標準;其后由于它的高可靠性和靈活性而在其他機動(dòng)平臺上得到了廣泛應用。國內上世紀80年代中期已開(kāi)始接觸這類(lèi)技術(shù),目前它的研究與應用范圍正在迅速擴大。
1553B總線(xiàn)標準由美國軍方制定。支持該標準的協(xié)議芯片有DDC公司的BU一6517X,BU一615XX系列;HOLT公司的HI一61XX系列;UTMC公司的BCRTM等。這些芯片都集成了BC,RT,BM的功能,但是這些芯片都由美國公司生產(chǎn),價(jià)格非常昂貴。為了能低成本地使用這種可靠性非常好的數據總線(xiàn),采用FPGA設計并實(shí)現遠程端點(diǎn)的數據鏈路層協(xié)議,通過(guò)外接一個(gè)總線(xiàn)收發(fā)器完成1553B遠程端點(diǎn)協(xié)議芯片功能。
在電子設計領(lǐng)域,可編程邏輯器件的廣泛應用為數字系統的設計帶來(lái)極大的靈活性,1片FPGA芯片可代替上百個(gè)IC電路。Altera公司開(kāi)發(fā)的Cyclone系列FPGA芯片價(jià)格便宜,功能強大,而且配套的開(kāi)發(fā)軟件QuartusⅡ更是集成了時(shí)序仿真、編譯、綜合、優(yōu)化等功能,這為實(shí)現1553B總線(xiàn)遠程節點(diǎn)通信協(xié)議提供了有利條件。文中所實(shí)現的1553B總線(xiàn)遠程端點(diǎn)數據鏈路層協(xié)議采用VerilogHDL語(yǔ)言編寫(xiě);采用ModelSim仿真;采用QuartusⅡ編譯、綜合、優(yōu)化,并在A(yíng)1tera的EPlC6系列FPGA上實(shí)現。
1 1553B總線(xiàn)及其接口功能
1553B的全稱(chēng)是:飛機內部時(shí)分制指令/響應式多路傳輸數據總線(xiàn)。它對物理層,如:傳輸介質(zhì)、屏蔽條件、耦合方式、阻抗匹配以及輸入輸入兼容性等都做了嚴格規范。1553B總線(xiàn)是以串行數據脈沖的形式進(jìn)行傳輸的,其數據用雙相曼徹斯特碼的形式來(lái)表示,其傳輸速率為1 Mb/s。1553B數據總線(xiàn)上連接有3種類(lèi)型的節點(diǎn):
(1)總線(xiàn)控制器(BC):控制總線(xiàn)上的數據傳輸;
(2)遠程終端(RT):響應BC命令,執行相關(guān)操作;
(3)總線(xiàn)監視器(BM):有選擇地接收數據總線(xiàn)上的信息并保存。
飛機上的每個(gè)子系統可以通過(guò)1553B總線(xiàn)連接到任何一個(gè)系統中并與其通信。
在總線(xiàn)上傳輸字有3種類(lèi)型:命令字、狀態(tài)字和數據字。每種字的字長(cháng)為20位,有效信息位為16位,每個(gè)字的前三位為同步字頭,最后一位為奇偶校驗位。有效信息(16位)及奇偶校驗位在總線(xiàn)上以曼徹斯特碼的形式進(jìn)行編碼,每位占的時(shí)間為1μs。同步字頭占3位,或先正后負(命令字、狀態(tài)字)或先負后正(數據字),正、負電平各占1.5μs,即占同步頭位場(chǎng)的50%。
由于系統類(lèi)型的不同,可辨別出命令字和狀態(tài)字,命令字由總線(xiàn)控制器發(fā)出,而狀態(tài)字由遠程終端RT發(fā)出。
作為1553B總線(xiàn)的遠程端點(diǎn),應完成以下功能:
(1)將總線(xiàn)上的串行信息流轉換成微控制器可以處理的并行信息或者與之相反;
(2)接收或者發(fā)送信息時(shí),能夠識別或生成標準的1553B信息字;
(3)完成與微控制器之間的信息交換,包括1553B信息地址的分配、命令字的譯碼或返回狀態(tài)字、發(fā)送數據字等。
1553B遠程端點(diǎn)數據鏈路層協(xié)議需要完成上述的1553B遠程端點(diǎn)的大部分功能,包括同步頭添加與檢測,曼徹斯特碼編解碼,命令字譯碼與接收數據字,狀態(tài)字反饋與收發(fā)數據字,數據緩沖以及與微控制器之間的接口等。整個(gè)數據鏈路層協(xié)議內部采用寄存器控制的方式進(jìn)行操作,上層微控制器通過(guò)讀寫(xiě)實(shí)現程序的寄存器,以完成對協(xié)議的控制,而內部操作也是根據相關(guān)寄存器的狀態(tài)來(lái)進(jìn)行的,因此設計時(shí),首先定義相關(guān)寄存器,根據數據線(xiàn)的寬度,所有寄存器都定義為16位。
(1)控制寄存器:它完成內部時(shí)鐘、總線(xiàn)端口選擇、節點(diǎn)狀態(tài)設定、狀態(tài)字保留位、節點(diǎn)ID以及全局復位等狀態(tài)的設置和操作。
(2)錯誤寄存器(ER):當通信協(xié)議中出現了奇偶校驗錯誤,數據不連續錯誤,接收數據個(gè)數錯誤,接收FIFO錯誤,發(fā)送FIFO錯誤時(shí)就會(huì )置位其相關(guān)位,上層微控制器通過(guò)讀取ER就知道錯誤的類(lèi)型。
(3)狀態(tài)寄存器(SR):SR中反映了當前數據鏈路層協(xié)議的狀態(tài),包括接收數據狀態(tài)、接收FIFO長(cháng)度、發(fā)送FIFO長(cháng)度、接收錯誤狀態(tài)、中斷信號狀態(tài)nINT和nINTD。
(4)接收命令字寄存器(RCR):RCR用于保存當前接收到的命令字。
(5)發(fā)送矢量字寄存器(SVWR):該寄存器用于存放總線(xiàn)控制器要求的矢量字,這個(gè)矢量字由微控制器寫(xiě)入。
(6)接收同步字寄存器(SYNDR):用于存放接收到的帶數據字同步命令中的數據字。
評論