<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è) > 嵌入式系統 > 設計應用 > 基于PCMCIA 的ARINC429 通信卡設計

基于PCMCIA 的ARINC429 通信卡設計

作者: 時(shí)間:2011-10-09 來(lái)源:網(wǎng)絡(luò ) 收藏

  1 引言

   總線(xiàn)是廣泛應用在航空電子系統中的一種通訊總線(xiàn)。/JEIDA接口是一種廣泛應用在數碼電子產(chǎn)品和便攜式計算機上的PC 卡接口規范。在航空通信系統中使用便攜式計算機進(jìn)行通信調試,應用FPGA 來(lái)實(shí)現 規范接口并完成通信,使板卡具有體積小、性能高、可靠性好的特點(diǎn)。板卡在航空領(lǐng)域應用,方便了現場(chǎng)調試。

  2 設計思路

  2. 1 總體結構設計

  通信板卡功能的實(shí)現核心是FPGA 內部電路的設計,圖1 就是FPGA 內部設計圖梗概。設計采用PCMACIA 接口的16 根數據線(xiàn)與16 根地址線(xiàn),可用存儲空間達64KB,但使用的只是其中一小部分。

   規范規定16 位PC 卡有兩種模式,MEMORYONLY 模式和I /O AND memory 模式,MEMORYONLY 模式只適用于純粹做存儲卡的PC 卡設備。設計采用I /O AND MEMORY 模式,但采用的只是MEMORY 操作,這相當于在MEMORY 空間里實(shí)現了一個(gè)設備,這個(gè)設備用來(lái)完成PCMCIA 主機和 芯片的通信。

  FPGA 內部要實(shí)現與HOST 主機連接的PCMCIA接口邏輯。PCMCIA 規范將卡的存儲空間分為ATTRIBUTE MEMORY 和COMMON MEMORY 兩部分,ATTRIBUTE MEMORY 主要用來(lái)實(shí)現卡的配置,在這里邊實(shí)現了卡信息結構,以及配置寄存器,而在COMMON MEMORY 實(shí)現了用于與DEI1016 通信的設備。

  在 FPGA 內部實(shí)現邏輯時(shí),PCMCIA 接口部分相當于主設備,而內部的寄存器、 設備都是從設備,在FPGA 內部必須實(shí)現對寄存器讀寫(xiě),對ARINC429 通信控制信號的時(shí)序,對ARINC429 接口的讀寫(xiě)時(shí)序的實(shí)現是個(gè)重點(diǎn)。為了實(shí)現從DEI1016芯片接收數據,在FPGA 內部實(shí)現了一個(gè)64* 16bit的FIFO,待FIFO 半滿(mǎn)時(shí)向PCMCIA 主機發(fā)出中斷信號,主機從FIFO 中讀走數據。由于從接受ARINC429 接口接收數據的時(shí)序比較復雜,采用狀態(tài)機來(lái)實(shí)現。向DEI1016 發(fā)送數據時(shí),由于DEI1016 內部有一個(gè)8* 32bit 的FIFO,PCMCIA 的數據線(xiàn)和ARINC429 的數據線(xiàn)都是16 位的,可以直接發(fā)送,一些控制信號可以通過(guò)寄存器操作或MEMORY 地址操作實(shí)現。

通信卡總體結構框圖

圖1 總體結構框圖

  2. 2 PCMCIA 接口設計

  2. 2. 1 PCMCIA/JEIDA 規范

  PCMCIA/JEIDA 是由個(gè)人電腦存儲卡國際組織和日本電氣工業(yè)協(xié)會(huì )提出并推廣的一個(gè)便攜式卡接口規范。其特性如下:

  ( 1) 16 /32 位數據線(xiàn)

  ( 2) 20MB /S( 132MB /S) 速率,寬度周期100NS

  ( 3) 支持8 位/16 位DMA 操作

  ( 4) 兼容PCMCIA2. 1 /JEIDA4. 2 以及更早的版本,兼容32 位卡插槽

  ( 5) 硬件探測卡電壓需求可以是5V,3. 3V,或更低

  ( 6) 支持多功能卡

  ( 7) 利用卡信息結構的擴展能力,可以確定卡功能和數據格式

  2. 2. 2 卡信息結構和配置寄存器的設計

  卡信息結構,簡(jiǎn)稱(chēng)CIS,是在卡的ATTRIBUTEMEMORY 空間里實(shí)現對卡進(jìn)行配置的結構,相當于一個(gè)ROM 結構,主機通過(guò)讀它來(lái)對卡進(jìn)行配置,它必須從ATTRIBUTE MEMEORY 空間的00H 地址開(kāi)始。它由很多的TUPLE 組成,每個(gè)TUPLE 有一定的結構,由若干字節組成,這些字節信息只存在于偶數字節地址空間,每個(gè)TUPLE 都固定的含有一個(gè)TUPLE 特有的序號和相對于下一個(gè)TUPLE 的偏移量,以及TUPLE 體,表明了一定的配置信息,或者功能說(shuō)明。這些TUPLE 連成鏈,用結束TUPLE( 序號FFH) 表明鏈的結束。16 位PC 卡的TUPLE 最多257 個(gè)字節: 一個(gè)字節的TUPLE 號+ 一個(gè)字節的TUPLE 鏈域+ FFH 的TUPLE 體。一個(gè)鏈最多有256 個(gè)TUPLE。

  必須要實(shí)現的TUPLE 有:

  CISTPL - DEVICE: 5V 設備信息TUPLE,包含卡設備的信息。因為用的都是存儲器操作,實(shí)現接口功能,設備速度是200NS,設備大小是兩個(gè)512 字節的塊,共1M 空間。序號是17H; CISTPL - CONFIG:

  給出了ATTRIBUTE MEMORY 空間里配置寄存器的基地址0200H,給出了最后一個(gè)ENTRY TUPLE的序號是01H,以及配置寄存器的個(gè)數是1,就是配置選項寄存器,序號是1AH; CISTPL - CFTABLE -ENTRY: 配置入口TUPLE 明確了每一個(gè)需要的功能,不同的功能被不同的ENTRY TUPLE 區分,它被自己的配置入口序號所標記。在設計中選擇I /OAND MEMORY 接口,使用的是MEMORY 映射I /O方式實(shí)現; 中斷方式是脈沖中斷; 使用的commonmemory 空間從0300H 開(kāi)始,1K 大小,TUPLE 序號是1BH; CISTPL - VERS - 1: 這是卡制造商信息TUPLE,用PCMCIA2. 1 /JEIDA4. 2 版本,序號是15H; CISTPL - END: 鏈結束TUPLE,序號是FFH。

  在卡的ATTRIBUTE MEMORY 空間里可有一個(gè)配置寄存器組,這些配置寄存器都是可讀可寫(xiě)的,為了簡(jiǎn)化設計,一些可選寄存器都沒(méi)有實(shí)現,只實(shí)現了必備的配置選項寄存器COR。這個(gè)配置選項寄存器的地址是在CIS 結構中給出的,在0200H 地址單元。一個(gè)8 位的寄存器。結構如下:

表1 配置選項寄存器


  由主機寫(xiě)入該寄存器的內容,實(shí)現第7 位寫(xiě)1,卡被復位,第6 位寫(xiě)1 是電平中斷模式,0是脈沖中斷模式,后6 位寫(xiě)入CIS 結構中entry tuple 的序號,實(shí)現該入口對應的配置功能。只實(shí)現了一個(gè)entrytuple,是設置了一個(gè)common memory 設備( 也是存儲空間) : 基地址0300 的1KB 空間。

  在接口模塊的MEMORY 讀寫(xiě)操作中,配置空間的CIS 是只讀的,COR 是可讀可寫(xiě)的。16 位PC卡的讀寫(xiě)操作屬于異步時(shí)序,沒(méi)有同步時(shí)鐘。

  2. 3 ARINC429 通信設計

  2. 3. 1 DEI1016 接收數據時(shí)控制信號的實(shí)現

  采用DEI1016和BD429來(lái)實(shí)現ARINC429數據的收發(fā)。HOST 向DEI1016 發(fā)送數據時(shí),由于內部自帶FIFO,可直接發(fā)送,但要區分發(fā)送的是WORD1 還是WORD2,還是控制寄存器數據。

  HOST 從DEI1016 接收數據時(shí),用有限狀態(tài)機來(lái)實(shí)現讀取控制信號時(shí)序,這一過(guò)程完成一個(gè)32 位字的接收,即一次DR1 或DR2 有效,兩次OE1 或OE2 為低,兩次16 位字的接收,實(shí)現過(guò)程如圖2。其中OE1# /OE2#: 讀出接收通道的數據; DR1# /DR2#: 該通道接收到了數據; SEL: 字選擇信號。

讀取控制信號狀態(tài)機

圖2 讀取控制信號狀態(tài)機

  2. 3. 2 FPGA 內部接收FIFO 設計

  當從DEI1016 接收數據時(shí),在FPGA 內部實(shí)現了一個(gè)64* 16bit 的FIFO,該FIFO 從DEI1016 接收數據并緩存,PCMCIA 接口接收數據時(shí)只與FIFO進(jìn)行通信。

  當FIFO 從DEI1016 接收數據時(shí),將FIFO 的寫(xiě)時(shí)鐘信號和ARINC429 接口的通道1 或2 的讀信號連接在一起,用ARINC429 的讀信號做FIFO 的寫(xiě)時(shí)鐘,而將FIFO 的寫(xiě)允許信號始終置為有效‘1’,當oe1 /oe2 的上升沿來(lái)臨時(shí),就對FIFO 進(jìn)行寫(xiě)操作。

  當PCMCIA 接口從FIFO 接收數據時(shí),因為主機讀信號是低有效的,所以用PCMCIA 接口的讀信號下降沿做FIFO 的讀時(shí)鐘信號,而將讀允許信號始終置為允許‘1’。

  給FIFO 的發(fā)送端口固定的地址是0300H,主機從FIFO 中接收數據相當于對0300H 地址進(jìn)行讀操作。另外用FIFO 的半滿(mǎn)信號做中斷信號,即當FIFO 中存在32 個(gè)字時(shí)。FIFO 的接收數據線(xiàn)與DEI1016 的16 根數據線(xiàn)相連,發(fā)送數據線(xiàn)與PCMCIA接口的16 位數據線(xiàn)相連。

  2. 3. 3 寄存器設計

  為了便于對一些信號的控制以及上層軟件訪(fǎng)問(wèn)的便利,在PCMCIA 規范規定的common memory 空間里實(shí)現了一個(gè)狀態(tài)寄存器( SR) 和一個(gè)控制寄存器( CR) ,將一些控制和狀態(tài)信號裝入寄存器中固定的某位,以便上層軟件的控制訪(fǎng)問(wèn)。

  在common memory 的0308H 地址單元實(shí)現了一個(gè)狀態(tài)寄存器,它是只讀寄存器。第0 位是TXR信號量,為1 表示DEI1016 內部的FIFO 是空的,可以裝入數據; 第1 位是FPGA 內部FIFO 空信號,為高表示空; 第3 位是FPGA 內部FIFO 滿(mǎn)信號,為低表示滿(mǎn)。

  在common memory 的0310H 地址單元實(shí)現了一個(gè)控制寄存器,它是可讀可寫(xiě)寄存器。第0 位是ENTX 信號,是DEI1016 發(fā)送數據允許信號,為1 表示允許發(fā)送; 第1 位是DEI1016 復位信號MR,低有效。

  上層軟件在控制向DEI1016 的發(fā)送緩沖區( FIFO) 寫(xiě)數據時(shí),應先讀出SR 的TXR 位,FIFO 為空時(shí)即TXR 為1 時(shí)才能讓主機向FIFO 中寫(xiě)入數據。而用CR 的ENTX 位控制DEI1016 是否能發(fā)送數據時(shí)也應該先判斷TXR,TXR 為高時(shí),即發(fā)送FIFO 為空時(shí),DEI1016 是不能發(fā)送數據的,只有為低時(shí)才能發(fā)送; 當TXR 為低時(shí),也不能強行拉低ENTX,即發(fā)送FIFO 中有數據時(shí),不能強行禁止發(fā)送,因為這樣破壞了原有數據的完整性。

  同樣可以通過(guò)common memory 中的FIFO -EMPTY 信號控制主機從接收FIFO 中取數據; 還可以寫(xiě)DEI1016 的復位信號。

  2. 4 存儲空間設計概括

  卡剛插入筆記本卡插槽的時(shí)候,主機主動(dòng)讀CIS 內容,然后可以寫(xiě)COR,進(jìn)行配置。對DEI1016操作之前,要先寫(xiě)控制寄存器里的MR 信號,使DEI1016 復位后,再寫(xiě)入DEI1016 的控制寄存器,然后才可以進(jìn)行數據的收發(fā)操作。接收數據就是響應中斷信號( FIFO 的半滿(mǎn)信號) ,從FIFO 中讀取數據,直到判斷出FIFO - EMPRY 信號有效。發(fā)送數據時(shí),要先判斷SR 里邊的TXR 信號,當DEI1016 里的FIFO 為空時(shí),再向FIFO 里發(fā)送數據,發(fā)送總字數不定,但不能超過(guò)DEI1016 內部FIFO 的容量8*32bit,發(fā)送之前拉低ENTX,且每次是先發(fā)送字一,再發(fā)送字二,字一,字二必須成對發(fā)送,發(fā)送完后拉高ENTX,允許DEI1016 發(fā)送數據。

  在FPGA 內部實(shí)現可利用的存儲區域概括起來(lái)如下:

表2 存儲區域使用表

存儲區域使用表

  3 結束語(yǔ)

  介紹了應用FPGA 完成PCMCIA 接口的ARINC429 的設計方案和其中的難點(diǎn),通過(guò)本次設計也為其它應用FPGA 完成PCMCIA 接口的PC卡的設計提供了可借鑒方案。除了上述之外,上層應用程序和板卡的配合也是值得注意的。




關(guān)鍵詞: PCMCIA ARINC429 通信卡

評論


相關(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>