<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于PCMCIA 的ARINC429 通信卡設計

          基于PCMCIA 的ARINC429 通信卡設計

          作者: 時間:2011-10-09 來源:網(wǎng)絡 收藏

            1 引言

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

            2 設計思路

            2. 1 總體結構設計

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

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

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

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

          通信卡總體結構框圖

          圖1 總體結構框圖

            2. 2 PCMCIA 接口設計

            2. 2. 1 PCMCIA/JEIDA 規(guī)范

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

            ( 1) 16 /32 位數(shù)據(jù)線

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

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

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

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

            ( 6) 支持多功能卡

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

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

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

            必須要實現(xiàn)的TUPLE 有:

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

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

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

          表1 配置選項寄存器


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

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

            2. 3 ARINC429 通信設計

            2. 3. 1 DEI1016 接收數(shù)據(jù)時控制信號的實現(xiàn)

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

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

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

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

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

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

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

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

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

            2. 3. 3 寄存器設計

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

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

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

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

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

            2. 4 存儲空間設計概括

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

            在FPGA 內部實現(xiàn)可利用的存儲區(qū)域概括起來如下:

          表2 存儲區(qū)域使用表

          存儲區(qū)域使用表

            3 結束語

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




          關鍵詞: PCMCIA ARINC429 通信卡

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();