<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于FPGA的ARINC429總線(xiàn)接口卡設計

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

always @(busy,clk_tx,serial_data)

本文引用地址:http://dyxdggzs.com/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é)調緩存和信號發(fā)生器之間的數據傳遞。在緩存非空、busy無(wú)效(信號發(fā)生器狀態(tài)機處于TRANS狀態(tài)下busy有效)的條件下,一旦允許轉換信號entx有效,便開(kāi)啟緩存的讀使能rden,并產(chǎn)生轉換數據的裝載信號load,以完成緩存數據的自動(dòng)轉換和發(fā)送。

接收器

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

 

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

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

USB總線(xiàn)接口通信模塊

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

仿真與驗證

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

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

 
 

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

結束語(yǔ)

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>