新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的ARINC429總線接口卡設(shè)計(jì)

基于FPGA的ARINC429總線接口卡設(shè)計(jì)

作者:成都電子科技大學(xué)自動(dòng)化工程學(xué)院 鄭玉 田書林 李力 時(shí)間:2008-07-31 來源:世界電子元器件 收藏

always @(busy,clk_tx,serial_data)

本文引用地址:http://www.butianyuan.cn/article/86480.htm

begin

if (busy)

begin

TTL1<=serial_data&clk_tx;

TTL0<=~serial_data&clk_tx;

end

else begin

TTL1<=0;

TTL0<=0;

end

end

endmodule

  發(fā)送控制邏輯用于協(xié)調(diào)緩存和信號(hào)發(fā)生器之間的數(shù)據(jù)傳遞。在緩存非空、busy無效(信號(hào)發(fā)生器狀態(tài)機(jī)處于TRANS狀態(tài)下busy有效)的條件下,一旦允許轉(zhuǎn)換信號(hào)entx有效,便開啟緩存的讀使能rden,并產(chǎn)生轉(zhuǎn)換數(shù)據(jù)的裝載信號(hào)load,以完成緩存數(shù)據(jù)的自動(dòng)轉(zhuǎn)換和發(fā)送。

接收器

  雙極性的ARINC429 信號(hào)通過解調(diào)電路轉(zhuǎn)換為兩路TTL 信號(hào),TTL1和TTL0。后經(jīng)接收器轉(zhuǎn)換成32位并行數(shù)據(jù)供主機(jī)讀取。接收器結(jié)構(gòu)如圖5所示。為使數(shù)據(jù)接收具有一定的抗干擾能力,本設(shè)計(jì)采用一個(gè)16倍于碼速率的高速時(shí)鐘對(duì)數(shù)據(jù)進(jìn)行檢測(cè)。同步字頭檢測(cè)模塊對(duì)高速時(shí)鐘進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值計(jì)滿64(對(duì)應(yīng)4位字間隔),即產(chǎn)生一個(gè)位接收允許信號(hào)rec_en,該信號(hào)啟動(dòng)位檢測(cè)模塊。位檢測(cè)模塊對(duì)TTL0和TTL1信號(hào)進(jìn)行監(jiān)控,一旦兩路串行數(shù)據(jù)中任一路為高,則標(biāo)志有效數(shù)據(jù)開始發(fā)送。位檢測(cè)模塊對(duì)每一位數(shù)據(jù)進(jìn)行三次檢測(cè),在碼元的前半周期檢測(cè)兩次,后半周期檢測(cè)一次,只有這三次檢測(cè)都符合429信號(hào)標(biāo)準(zhǔn)才能被視為有效數(shù)據(jù),否則報(bào)錯(cuò)并自動(dòng)丟棄。字檢測(cè)模塊將正確檢出的位轉(zhuǎn)換為并行數(shù)據(jù)并做奇偶校驗(yàn)和SDI校驗(yàn),校驗(yàn)正確后數(shù)據(jù)被鎖存,并產(chǎn)生接收完成信號(hào)rec_done向主機(jī)發(fā)出中斷請(qǐng)求。

 

時(shí)鐘發(fā)生器

  時(shí)鐘發(fā)生器對(duì)外部晶振(本設(shè)計(jì)采用的是12.8MHz的時(shí)鐘頻率)分頻產(chǎn)生100kHz和12.5kHz高低速率兩個(gè)發(fā)送時(shí)鐘,以及16倍于發(fā)送時(shí)鐘頻率的接收時(shí)鐘,高低速率可通過控制寄存器中相應(yīng)位來選擇。在本設(shè)計(jì)中遵循同步設(shè)計(jì)原則,不是將分頻時(shí)鐘直接當(dāng)時(shí)鐘用,而是采用了時(shí)鐘使能的方法,將分頻時(shí)鐘作為觸發(fā)器的使能控制。本設(shè)計(jì)的關(guān)鍵部分都采用了狀態(tài)機(jī)的方式,將分頻時(shí)鐘用做狀態(tài)機(jī)狀態(tài)間相互轉(zhuǎn)換的先決條件,從而實(shí)現(xiàn)了在整個(gè)設(shè)計(jì)中只有一個(gè)全局時(shí)鐘,避免了時(shí)鐘“滿天飛”的問題。

USB總線接口通信模塊

  控制邏輯完成以下任務(wù):通過對(duì)USB協(xié)議處理本地端的地址譯碼完成429總線接口的各種操作,如配置控制寄存器、寫數(shù)據(jù)發(fā)送緩存以及讀接收數(shù)據(jù)等。當(dāng)主機(jī)要發(fā)送數(shù)據(jù)時(shí),接口通信模塊將收到的8位數(shù)據(jù)按照429數(shù)字字的編碼格式組裝成32位數(shù)據(jù),并產(chǎn)生控制信號(hào)。將組裝好的32位數(shù)據(jù)寫入發(fā)送器的緩存中,之后根據(jù)總線譯碼,產(chǎn)生自動(dòng)發(fā)送控制信號(hào),通知發(fā)送器進(jìn)行自動(dòng)轉(zhuǎn)換和發(fā)送。同樣地,當(dāng)接收完一個(gè)32位數(shù)據(jù)時(shí),將這個(gè)32位數(shù)拆分成4個(gè)8位寄存器供主機(jī)讀取,它們中的一個(gè)對(duì)應(yīng)標(biāo)志位(LABEL),另外有兩個(gè)對(duì)應(yīng)數(shù)據(jù)區(qū)(DATA),最后一個(gè)包含了數(shù)據(jù)字中剩余部分的信息。

仿真與驗(yàn)證

  本設(shè)計(jì)采用ModelSim SE 6.1b,對(duì)經(jīng)過quartus6.0綜合布局布線后的設(shè)計(jì)進(jìn)行時(shí)序仿真驗(yàn)證。圖6和圖7分別為發(fā)送模塊和接收模塊在ModelSim中的時(shí)序仿真圖。

  圖6中data為要發(fā)送的并行32位ARINC429數(shù)據(jù)0x5a5a5a5a,mclk為全局時(shí)鐘信號(hào),clk_tx和clk_tx_en分別是發(fā)送時(shí)鐘(占空比為50%)和同頻的發(fā)送時(shí)鐘使能信號(hào),aout、bout即上文中發(fā)送器的輸出TTL1、TTL0,busy表示正在進(jìn)行轉(zhuǎn)換。圖7中mclk為全局時(shí)鐘信號(hào),ckl_rx_en是接收時(shí)鐘使能信號(hào),_429ain、_429bin為接收器的輸入TTL1、TTL0,dout為收到的ARINC429數(shù)據(jù)0x75555555,以并行32位數(shù)據(jù)格式存入寄存器中,rec_done為接收完一個(gè)429數(shù)據(jù)發(fā)出的中斷信號(hào)。由時(shí)序仿真結(jié)果可以看出,F(xiàn)PGA可以正確實(shí)現(xiàn)ARINC429數(shù)據(jù)的發(fā)送和接收。

 
 

  在后期板級(jí)調(diào)試中,將自制板卡與現(xiàn)在市場(chǎng)上出售的429總線接口卡進(jìn)行對(duì)接通信的方法來驗(yàn)證,證明了本設(shè)計(jì)的FPGA協(xié)議處理和驅(qū)動(dòng)電路工作無誤,可以正確進(jìn)行429數(shù)據(jù)的收發(fā),完成429總線的數(shù)據(jù)通訊。

結(jié)束語

  本設(shè)計(jì)采用了ALTERA公司的FPGAEP2C5Q208和CYPRESS公司的USB協(xié)議處理CY7C68013以及外圍的調(diào)制解調(diào)電路,實(shí)現(xiàn)了4路收發(fā)的429總線數(shù)據(jù)傳輸接口,并完成了與上位計(jì)算機(jī)的通信。該系統(tǒng)大部分功能都是在同一FPGA芯片內(nèi)部實(shí)現(xiàn)的,發(fā)揮了FPGA的優(yōu)勢(shì),提高了系統(tǒng)的穩(wěn)定性、集成度,并增強(qiáng)了抗干擾能力。利用FPGA的可重配置性,可以實(shí)現(xiàn)更多路ARINC429信號(hào)的接收與發(fā)送,可以大大降低重量、體積及成本,這在機(jī)載總線數(shù)據(jù)處理中具有較大的實(shí)用價(jià)值。
 


上一頁 1 2 下一頁

關(guān)鍵詞: USB接口 ARINC429總線 航空 芯片

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉