![]() |
時鐘發生器
時鐘發生器對外部晶振(本設計采用的是12.8MHz的時鐘頻率)分頻產生100kHz和12.5kHz高低速率兩個發送時鐘,以及16倍于發送時鐘頻率的接收時鐘,高低速率可通過控制寄存器中相應位來選擇。在本設計中遵循同步設計原則,不是將分頻時鐘直接當時鐘用,而是采用了時鐘使能的方法,將分頻時鐘作為觸發器的使能控制。本設計的關鍵部分都采用了狀態機的方式,將分頻時鐘用做狀態機狀態間相互轉換的先決條件,從而實現了在整個設計中只有一個全局時鐘,避免了時鐘“滿天飛”的問題。
USB總線接口通信模塊
USB接口控制邏輯完成以下任務:通過對USB協議處理芯片本地端的地址譯碼完成429總線接口的各種操作,如配置控制寄存器、寫數據發送緩存以及讀接收數據等。當主機要發送數據時,接口通信模塊將收到的8位數據按照429數字字的編碼格式組裝成32位數據,并產生控制信號。將組裝好的32位數據寫入發送器的緩存中,之后根據總線譯碼,產生自動發送控制信號,通知發送器進行自動轉換和發送。同樣地,當接收完一個32位數據時,將這個32位數拆分成4個8位寄存器供主機讀取,它們中的一個對應標志位(LABEL),另外有兩個對應數據區(DATA),最后一個包含了數據字中剩余部分的信息。
仿真與驗證
本設計采用ModelSim SE 6.1b,對經過quartus6.0綜合布局布線后的設計進行時序仿真驗證。圖6和圖7分別為發送模塊和接收模塊在ModelSim中的時序仿真圖。
圖6中data為要發送的并行32位ARINC429數據0x5a5a5a5a,mclk為全局時鐘信號,clk_tx和clk_tx_en分別是發送時鐘(占空比為50%)和同頻的發送時鐘使能信號,aout、bout即上文中發送器的輸出TTL1、TTL0,busy表示正在進行轉換。圖7中mclk為全局時鐘信號,ckl_rx_en是接收時鐘使能信號,_429ain、_429bin為接收器的輸入TTL1、TTL0,dout為收到的ARINC429數據0x75555555,以并行32位數據格式存入寄存器中,rec_done為接收完一個429數據發出的中斷信號。由時序仿真結果可以看出,FPGA可以正確實現ARINC429數據的發送和接收。
![]() |
![]() |
在后期板級調試中,將自制板卡與現在市場上出售的429總線接口卡進行對接通信的方法來驗證,證明了本設計的FPGA協議處理和驅動電路工作無誤,可以正確進行429數據的收發,完成429總線的數據通訊。
結束語
本設計采用了ALTERA公司的FPGA芯片EP2C5Q208和CYPRESS公司的USB協議處理芯片CY7C68013以及外圍的調制解調電路,實現了4路收發的429總線數據傳輸接口,并完成了與上位計算機的通信。該系統大部分功能都是在同一FPGA芯片內部實現的,發揮了FPGA的優勢,提高了系統的穩定性、集成度,并增強了抗干擾能力。利用FPGA的可重配置性,可以實現更多路ARINC429信號的接收與發送,可以大大降低重量、體積及成本,這在機載航空總線數據處理中具有較大的實用價值。








