国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于PCMCIA的ARINC429通信卡設(shè)計(jì)

2010-06-13 11:32:54
微處理機(jī) 2010年3期
關(guān)鍵詞:接收數(shù)據(jù)發(fā)送數(shù)據(jù)數(shù)據(jù)線(xiàn)

呂 浩

(中國(guó)航空計(jì)算技術(shù)研究所,西安710068)

1 引言

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

2 設(shè)計(jì)思路

2.1 通信卡總體結(jié)構(gòu)設(shè)計(jì)

通信板卡功能的實(shí)現(xiàn)核心是FPGA內(nèi)部電路的設(shè)計(jì),圖1就是FPGA內(nèi)部設(shè)計(jì)圖梗概。設(shè)計(jì)采用PCMACIA接口的16根數(shù)據(jù)線(xiàn)與16根地址線(xiàn),可用存儲(chǔ)空間達(dá)64KB,但使用的只是其中一小部分。PCMCIA規(guī)范規(guī)定16位PC卡有兩種模式,MEMORY ONLY模式和I/O AND MEMORY模式,MEMORY ONLY模式只適用于純粹做存儲(chǔ)卡的PC卡設(shè)備。設(shè)計(jì)采用I/O AND MEMORY模式,但采用的只是MEMORY操作,這相當(dāng)于在MEMORY空間里實(shí)現(xiàn)了一個(gè)設(shè)備,這個(gè)設(shè)備用來(lái)完成PCMCIA主機(jī)和ARINC429芯片的通信。

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

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

圖1 通信卡總體結(jié)構(gòu)框圖

2.2 PCMCIA 接口設(shè)計(jì)

2.2.1 PCMCIA/JEIDA 規(guī)范

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

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

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

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

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

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

(6)支持多功能卡

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

2.2.2 卡信息結(jié)構(gòu)和配置寄存器的設(shè)計(jì)

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

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

CISTPL-DEVICE:5V設(shè)備信息 TUPLE,包含卡設(shè)備的信息。因?yàn)橛玫亩际谴鎯?chǔ)器操作,實(shí)現(xiàn)接口功能,設(shè)備速度是200NS,設(shè)備大小是兩個(gè)512字節(jié)的塊,共1M空間。序號(hào)是17H;CISTPL-CONFIG:給出了ATTRIBUTE MEMORY空間里配置寄存器的基地址0200H,給出了最后一個(gè)ENTRY TUPLE的序號(hào)是01H,以及配置寄存器的個(gè)數(shù)是1,就是配置選項(xiàng)寄存器,序號(hào)是1AH;CISTPL-CFTABLEENTRY:配置入口TUPLE明確了每一個(gè)需要的功能,不同的功能被不同的ENTRY TUPLE區(qū)分,它被自己的配置入口序號(hào)所標(biāo)記。在設(shè)計(jì)中選擇I/O AND MEMORY接口,使用的是MEMORY映射I/O方式實(shí)現(xiàn);中斷方式是脈沖中斷;使用的common memory空間從0300H開(kāi)始,1K大小,TUPLE序號(hào)是1BH;CISTPL-VERS-1:這是卡制造商信息TUPLE,用 PCMCIA2.1/JEIDA4.2 版本,序號(hào)是15H;CISTPL-END:鏈結(jié)束TUPLE,序號(hào)是FFH。

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

表1 配置選項(xiàng)寄存器

由主機(jī)寫(xiě)入該寄存器的內(nèi)容,實(shí)現(xiàn)第7位寫(xiě)1,卡被復(fù)位,第6位寫(xiě)1是電平中斷模式,0是脈沖中斷模式,后6位寫(xiě)入CIS結(jié)構(gòu)中entry tuple的序號(hào),實(shí)現(xiàn)該入口對(duì)應(yīng)的配置功能。只實(shí)現(xiàn)了一個(gè)entry tuple,是設(shè)置了一個(gè)common memory設(shè)備(也是存儲(chǔ)空間):基地址0300的1KB空間。

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

2.3 ARINC429 通信設(shè)計(jì)

2.3.1 DEI1016接收數(shù)據(jù)時(shí)控制信號(hào)的實(shí)現(xiàn)

采用 DEI1016[3]和 BD429[4]來(lái)實(shí)現(xiàn) ARINC429數(shù)據(jù)的收發(fā)。HOST向DEI1016發(fā)送數(shù)據(jù)時(shí),由于內(nèi)部自帶 FIFO,可直接發(fā)送,但要區(qū)分發(fā)送的是WORD1 還是 WORD2,還是控制寄存器數(shù)據(jù)[5]。HOST從DEI1016接收數(shù)據(jù)時(shí),用有限狀態(tài)機(jī)來(lái)實(shí)現(xiàn)讀取控制信號(hào)時(shí)序,這一過(guò)程完成一個(gè)32位字的接收,即一次DR1或DR2有效,兩次OE1或OE2為低,兩次16位字的接收,實(shí)現(xiàn)過(guò)程如圖2。其中OE1#/OE2#:讀出接收通道的數(shù)據(jù);DR1#/DR2#:該通道接收到了數(shù)據(jù);SEL:字選擇信號(hào)。

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

2.3.2 FPGA內(nèi)部接收FIFO設(shè)計(jì)

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

當(dāng)FIFO從DEI1016接收數(shù)據(jù)時(shí),將FIFO的寫(xiě)時(shí)鐘信號(hào)和ARINC429接口的通道1或2的讀信號(hào)連接在一起,用ARINC429的讀信號(hào)做FIFO的寫(xiě)時(shí)鐘,而將FIFO的寫(xiě)允許信號(hào)始終置為有效‘1’,當(dāng)oe1/oe2的上升沿來(lái)臨時(shí),就對(duì)FIFO進(jìn)行寫(xiě)操作。當(dāng)PCMCIA接口從FIFO接收數(shù)據(jù)時(shí),因?yàn)橹鳈C(jī)讀信號(hào)是低有效的,所以用PCMCIA接口的讀信號(hào)下降沿做FIFO的讀時(shí)鐘信號(hào),而將讀允許信號(hào)始終置為允許‘1’。

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

2.3.3 寄存器設(shè)計(jì)

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

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

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

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

同樣可以通過(guò) common memory中的 FIFOEMPTY信號(hào)控制主機(jī)從接收FIFO中取數(shù)據(jù);還可以寫(xiě)DEI1016的復(fù)位信號(hào)。

2.4 存儲(chǔ)空間設(shè)計(jì)概括

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

在FPGA內(nèi)部實(shí)現(xiàn)可利用的存儲(chǔ)區(qū)域概括起來(lái)如下:

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

3 結(jié)束語(yǔ)

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

[1]趙鑫.VHDL與數(shù)字電路設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005.

[2]PCMCIA/JEIDA,Release 7.0,1999,PC Card Standard[S].JAPAN:PCMCIA/JEIDA,1999.

[3]DEI1016/DEI1016A/DEI1016B ARINC 429 Transceiver[EB/OL].USA:Device Engineering Inc,2004[2008].http://www.icpdf.com.

[4]BD429 ARINC 429 TRANSCEIVER[EB/OL].USA:Device Engineering Inc,2004[2008].http://www.icpdf.com.

[5]賓辰宗.基于MCF5206的ARINC429通信板卡的設(shè)計(jì)實(shí)現(xiàn)[DB/OL].2005[2008].http://www.lunwentianxia.com.

[6]陳曦.PCMCIA 接口 IP設(shè)計(jì)[DB/OL].2004(2004)[2008].http://www.systemandchip.com.

猜你喜歡
接收數(shù)據(jù)發(fā)送數(shù)據(jù)數(shù)據(jù)線(xiàn)
數(shù)據(jù)線(xiàn)長(zhǎng)短影響充電速度
移動(dòng)自組網(wǎng)中MAC層協(xié)議研究
沖激噪聲背景下基于幅度預(yù)處理的測(cè)向新方法*
低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
基于馬爾科夫鏈的LoRaWAN網(wǎng)絡(luò)節(jié)點(diǎn)性能分析
帶標(biāo)記方式的CRDSA++協(xié)議性能分析*
陣元缺損下的波達(dá)方向估計(jì)算法
使用IPSec安全傳輸數(shù)據(jù)
單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
數(shù)據(jù)線(xiàn)接口超聲波焊接設(shè)備設(shè)計(jì)
焊接(2016年7期)2016-02-27 13:05:07
富平县| 恩施市| 曲松县| 青海省| 北海市| 仪征市| 西乡县| 兴国县| 玛纳斯县| 若尔盖县| 达拉特旗| 南丹县| 定边县| 杭锦后旗| 舞阳县| 蓝山县| 湘西| 姚安县| 澄城县| 凤冈县| 天门市| 黑龙江省| 潍坊市| 岱山县| 沛县| 彩票| 榆社县| 万源市| 沂水县| 宣化县| 余干县| 镇原县| 铁岭市| 万山特区| 石城县| 绥德县| 青龙| 顺平县| 海城市| 伊春市| 临海市|