基于USB的ARINC429總線接口模塊設計
發布時間:2008/8/16 0:00:00 訪問次數:772
引言
arinc429總線由美國航天無線電設備公司所資助,是廣泛應用于當前航空電子設備中的一種數據總線傳輸標準。
與傳統的航空電子設備間的模擬傳輸相比,arinc429總線具有抗干擾能力強、傳輸精度高、傳輸線路少以及成本低等優點。arinc數據總線協議規定一個數據由32位組成,采用雙極性歸零碼,以12.5kb/s或100kb/s碼速率傳輸。本設計利用usb即插即用、fpga可靈活配置等特點,設計了基于usb總線的arinc429總線接口模塊。
接口模塊總體設計結構
接口模塊總體設計包括硬件設計和軟件設計兩部分。硬件設計由usb接口芯片,fpga和調制/解調電路三部分組成。硬件設計整體框圖如圖1所示。usb接口芯片采用cypress公司的usb2.0接口芯片cy68013,主要完成pc機和fpga之間的數據傳輸,起到接口模塊的橋梁作用。fpga采用altera公司的cycloneⅱ系列ep2c5q208,主要負責將32位429數據字按照arinc429數據總線協議串行輸出,當檢測到arinc429總線上的數據時,將數據組裝成32位429數據字發送給pc機。調制/解調電路主要負責將fpga輸出的lvttl電平調制為滿足arinc429總線電氣特性的電平(即高電平為+10v,低電平為-10v,0v為自身時鐘脈沖),并將輸入的arinc429電平解調為fpga可接收的lvttl電平。
軟件設計主要包括usb-arinc儀器驅動程序,usb設備驅動程序以及底層usb固件程序的設計。軟件設計整體框圖如圖2所示。usb-arinc儀器驅動程序主要將應用程序與驅動程序之間的通信協議以及接口模塊的硬件控制進行再次封裝,并為應用程序提供接口,即api函數。usb設備驅動程序主要負責pc機與接口模塊之間的數據傳輸。usb固件程序主要負責發送接口模塊的控制命令,32位429總線數據字以及接收到32位429數據字后的中斷處理。
接口模塊硬件設計
接口模塊硬件部分由usb接口芯片,fpga和調制/解調電路三部分組成。下面以一路429設備為例來介紹接口模塊的發送和接收部分的硬件設計。
發送部分硬件設計
發送部分硬件設計框圖如圖3所示。發送部分主要負責將arinc429數據字按照設置的發送模式傳輸給arinc429總線。
usb接口芯片cy68013負責接收pc機傳來的32位429數據字,并傳輸給pc機所指定的429總線設備。由于要傳輸給多路429總線設備,所以pc機還必須給每一個429數據字加上一個設備通道號。圖3中接口芯片內的buffer用來存儲要發送的429數據字。當8051處理器檢測到buffer中有數據后,先將設備通道號寫給fpga中發送控制模塊,然后再將429數據字寫到fpga的ram中。
由于在測試arinc429電子設備中,時常要求多路arinc429總線同時傳輸數據。為了實現接口模塊多路arinc429總線同時工作,本設計采用了一個全局start/stop信號。當pc機傳下start信號后,fpga中各路的發送控制模塊開始將ram中數據取出并傳輸給移位寄存器。移位寄存器再將并行輸入的32位429數據字串行輸出給外圍的發送調制電路。fpga中時鐘控制模塊用來控制發送arinc429數據字的速率。
因為fpga輸出信號是lvttl電平,并不滿足arinc429數據總線的電氣特性,所以必須加上發送調制電路對fpga輸出的lvttl a和lvttl b兩路信號進行調制,以滿足arinc429數據總線的電氣特性。
接收部分硬件設計
接收部分硬件設計框圖如圖4所示。接收部分主要作用是檢測arinc429總線上是否有數據,并當有數據時將并行的32位429數據字組裝成并行的4個字節數據發送給pc機。
首先,pc機設置接收部分的傳輸速率,即設置fpga中時鐘控制模塊輸出的讀控制時鐘信號r_clk,它以16倍于傳輸速率進行采樣。當lvttl a和lvttl b任一路為高電平,即為有效數據的開始。在fpga中,同步字頭接收模塊負責這部分工作。當有效數據開始后,接收32個串行輸入數據,并將數據發送給接收數據檢測模塊,同時data_en信號有效。接收數據檢測模塊檢測到data_en信號,鎖存32位429數據字。在對數據進行奇校驗無誤后,向usb接口芯片發送一個中斷信號。
當usb接口芯片響應中斷信號后,先判斷是哪一路arinc429總線數據,并將此路總線的通道號寫入芯片的buffer中。usb接口芯片再發送讀信號讀取fpga中寄存器的429數據字,共4個字節。本設計采用雙緩沖buffer方式來存儲接收到的429數據字。這種設計方式能有效提高接口模塊傳輸數據的穩定性和準確性。
接收解調電路主要負責將arinc429總線輸入的電平解調為fpga可接收的lvttl電平。
接口模塊軟件設計
接口模塊軟件由usb-arinc429儀器驅動程序、usb驅動程序和usb固件程序等三部分組成。usb-arinc429儀器驅動程序主要將應用程序與驅動程序之間的通訊協議以及應用程序與硬件之間的數據傳輸命令進行封裝。儀器驅動程序在visual c++6.0下開發,可以提供給應用程序顯式或隱式調用。在本文中不詳細介紹儀器驅動程序的開發過程。下面將介紹usb固件程序及驅
引言
arinc429總線由美國航天無線電設備公司所資助,是廣泛應用于當前航空電子設備中的一種數據總線傳輸標準。
與傳統的航空電子設備間的模擬傳輸相比,arinc429總線具有抗干擾能力強、傳輸精度高、傳輸線路少以及成本低等優點。arinc數據總線協議規定一個數據由32位組成,采用雙極性歸零碼,以12.5kb/s或100kb/s碼速率傳輸。本設計利用usb即插即用、fpga可靈活配置等特點,設計了基于usb總線的arinc429總線接口模塊。
接口模塊總體設計結構
接口模塊總體設計包括硬件設計和軟件設計兩部分。硬件設計由usb接口芯片,fpga和調制/解調電路三部分組成。硬件設計整體框圖如圖1所示。usb接口芯片采用cypress公司的usb2.0接口芯片cy68013,主要完成pc機和fpga之間的數據傳輸,起到接口模塊的橋梁作用。fpga采用altera公司的cycloneⅱ系列ep2c5q208,主要負責將32位429數據字按照arinc429數據總線協議串行輸出,當檢測到arinc429總線上的數據時,將數據組裝成32位429數據字發送給pc機。調制/解調電路主要負責將fpga輸出的lvttl電平調制為滿足arinc429總線電氣特性的電平(即高電平為+10v,低電平為-10v,0v為自身時鐘脈沖),并將輸入的arinc429電平解調為fpga可接收的lvttl電平。
軟件設計主要包括usb-arinc儀器驅動程序,usb設備驅動程序以及底層usb固件程序的設計。軟件設計整體框圖如圖2所示。usb-arinc儀器驅動程序主要將應用程序與驅動程序之間的通信協議以及接口模塊的硬件控制進行再次封裝,并為應用程序提供接口,即api函數。usb設備驅動程序主要負責pc機與接口模塊之間的數據傳輸。usb固件程序主要負責發送接口模塊的控制命令,32位429總線數據字以及接收到32位429數據字后的中斷處理。
接口模塊硬件設計
接口模塊硬件部分由usb接口芯片,fpga和調制/解調電路三部分組成。下面以一路429設備為例來介紹接口模塊的發送和接收部分的硬件設計。
發送部分硬件設計
發送部分硬件設計框圖如圖3所示。發送部分主要負責將arinc429數據字按照設置的發送模式傳輸給arinc429總線。
usb接口芯片cy68013負責接收pc機傳來的32位429數據字,并傳輸給pc機所指定的429總線設備。由于要傳輸給多路429總線設備,所以pc機還必須給每一個429數據字加上一個設備通道號。圖3中接口芯片內的buffer用來存儲要發送的429數據字。當8051處理器檢測到buffer中有數據后,先將設備通道號寫給fpga中發送控制模塊,然后再將429數據字寫到fpga的ram中。
由于在測試arinc429電子設備中,時常要求多路arinc429總線同時傳輸數據。為了實現接口模塊多路arinc429總線同時工作,本設計采用了一個全局start/stop信號。當pc機傳下start信號后,fpga中各路的發送控制模塊開始將ram中數據取出并傳輸給移位寄存器。移位寄存器再將并行輸入的32位429數據字串行輸出給外圍的發送調制電路。fpga中時鐘控制模塊用來控制發送arinc429數據字的速率。
因為fpga輸出信號是lvttl電平,并不滿足arinc429數據總線的電氣特性,所以必須加上發送調制電路對fpga輸出的lvttl a和lvttl b兩路信號進行調制,以滿足arinc429數據總線的電氣特性。
接收部分硬件設計
接收部分硬件設計框圖如圖4所示。接收部分主要作用是檢測arinc429總線上是否有數據,并當有數據時將并行的32位429數據字組裝成并行的4個字節數據發送給pc機。
首先,pc機設置接收部分的傳輸速率,即設置fpga中時鐘控制模塊輸出的讀控制時鐘信號r_clk,它以16倍于傳輸速率進行采樣。當lvttl a和lvttl b任一路為高電平,即為有效數據的開始。在fpga中,同步字頭接收模塊負責這部分工作。當有效數據開始后,接收32個串行輸入數據,并將數據發送給接收數據檢測模塊,同時data_en信號有效。接收數據檢測模塊檢測到data_en信號,鎖存32位429數據字。在對數據進行奇校驗無誤后,向usb接口芯片發送一個中斷信號。
當usb接口芯片響應中斷信號后,先判斷是哪一路arinc429總線數據,并將此路總線的通道號寫入芯片的buffer中。usb接口芯片再發送讀信號讀取fpga中寄存器的429數據字,共4個字節。本設計采用雙緩沖buffer方式來存儲接收到的429數據字。這種設計方式能有效提高接口模塊傳輸數據的穩定性和準確性。
接收解調電路主要負責將arinc429總線輸入的電平解調為fpga可接收的lvttl電平。
接口模塊軟件設計
接口模塊軟件由usb-arinc429儀器驅動程序、usb驅動程序和usb固件程序等三部分組成。usb-arinc429儀器驅動程序主要將應用程序與驅動程序之間的通訊協議以及應用程序與硬件之間的數據傳輸命令進行封裝。儀器驅動程序在visual c++6.0下開發,可以提供給應用程序顯式或隱式調用。在本文中不詳細介紹儀器驅動程序的開發過程。下面將介紹usb固件程序及驅