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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 在EPP模式下利用并口實(shí)現(xiàn)與DSP高速數(shù)據(jù)通信

          在EPP模式下利用并口實(shí)現(xiàn)與DSP高速數(shù)據(jù)通信

          作者:北京理工大學(xué) 牛綱 時(shí)間:2001-06-19 來(lái)源: 收藏

          隨著技術(shù)的進(jìn)步和大量外設(shè)的增加,不僅要求計(jì)算機(jī)并行口可以連接打印機(jī),而且可以連接到其他外設(shè),并要求能夠雙向傳輸數(shù)據(jù),對(duì)高速外設(shè)還要求高速數(shù)據(jù)傳輸,如DSP。在科技飛速發(fā)展的今天,DSP的處理能力和速度也快速提高,廣泛應(yīng)用在科學(xué)研究、軍事及通信等電子領(lǐng)域。在這些應(yīng)用中免不了要和PC機(jī)進(jìn)行高速數(shù)據(jù)傳輸。計(jì)算機(jī)并口傳統(tǒng)的傳輸模式為SPP(標(biāo)準(zhǔn)并口),數(shù)據(jù)傳輸方向是從計(jì)算機(jī)到外圍設(shè)備,只能輸出數(shù)據(jù),不能輸入數(shù)據(jù)。這就限制了并行口高速數(shù)據(jù)通信的應(yīng)用。于是我們?cè)?/font>EPP模式下設(shè)計(jì)了一種實(shí)現(xiàn)DSPPC機(jī)之間進(jìn)行高速數(shù)據(jù)傳輸?shù)姆桨浮?/font>

          本文引用地址:http://www.ex-cimer.com/article/2812.htm

          EPP協(xié)議是一種與標(biāo)準(zhǔn)并行口兼容且能完成雙向數(shù)據(jù)傳輸?shù)膮f(xié)議。該協(xié)議定義的并行口更像一個(gè)開(kāi)放的總線,給用戶提供了強(qiáng)大的功能和靈活的設(shè)計(jì)手段。

          它有四個(gè)數(shù)據(jù)傳輸周期:數(shù)據(jù)寫(xiě)周期;數(shù)據(jù)讀周期;地址寫(xiě)周期;地址讀周期。數(shù)據(jù)周期用于主機(jī)與外設(shè)之間的傳輸數(shù)據(jù),地址周期一般用于傳輸?shù)刂贰⑼ǖ?、命令和控制信息。這些周期也可以看成為兩種不同的數(shù)據(jù)周期。

          EPP模式最主要的特征之一是整個(gè)數(shù)據(jù)傳輸過(guò)程發(fā)生在一個(gè)ISA I/O周期內(nèi)。也就是說(shuō),用EPP協(xié)議來(lái)傳輸數(shù)據(jù),系統(tǒng)可以獲得500K-2M字節(jié)/秒的傳輸率,即并口的外圍設(shè)備有接近ISA總線插板的性能。利用聯(lián)鎖形式的握手信號(hào),數(shù)據(jù)的傳輸由接口中最慢的設(shè)備來(lái)決定,既可以是主機(jī),也可以是外設(shè)。這種速度適應(yīng)性對(duì)主機(jī)和外設(shè)來(lái)說(shuō)都是透明的。所有的并行口傳輸方法都利用了聯(lián)鎖握手信號(hào)。用這種方法,外圍設(shè)備可以控制其本身操作所需的建立時(shí)間。同時(shí)由于EPP模式傳輸數(shù)據(jù)的過(guò)程簡(jiǎn)單易實(shí)現(xiàn),所以我們決定采用雙向并口的EPP傳輸模式來(lái)實(shí)現(xiàn)高速數(shù)據(jù)傳輸。

          當(dāng)并口向ADI公司的DSP芯片ADSP21060傳輸數(shù)據(jù)時(shí),通過(guò)數(shù)據(jù)鎖存器鎖住一個(gè)字節(jié)的數(shù)據(jù),然后給ADSP21060一個(gè)中斷信號(hào),使其讀取數(shù)據(jù);同樣,當(dāng)ADSP21060向并口傳輸數(shù)據(jù)時(shí),先讓鎖存器鎖住數(shù)據(jù),再給并口一個(gè)中斷,使其讀取數(shù)據(jù),這樣就完成了數(shù)據(jù)的雙向通信??墒?,用這種方法,無(wú)論數(shù)據(jù)向哪一個(gè)方向傳輸,只能傳一個(gè)字節(jié)就引起一次中斷,再使PC機(jī)或ADSP21060讀取,然后再傳下一個(gè)字節(jié),這就占用了CPU的大量時(shí)間,降低了CPU的工作效率。為此我們利用兩個(gè)FIFO來(lái)提高CPU的工作效率。

          EPP模式下基于FIFO實(shí)現(xiàn)高速數(shù)據(jù)通信的原理框圖見(jiàn)圖1。

          它的通信過(guò)程是:當(dāng)并口向ADSP21060傳輸數(shù)據(jù)時(shí),并口首先將輸出FIFO復(fù)位,然后,將要傳輸?shù)臄?shù)據(jù)成批寫(xiě)到此FIFO中再給ADSP21060一個(gè)中斷信號(hào),通知它從輸出FIFO讀取數(shù)據(jù);

          當(dāng)ADSP21060向并口傳輸數(shù)據(jù)時(shí),首先將輸入FIFO復(fù)位,然后,將要傳輸?shù)臄?shù)據(jù)成批寫(xiě)到此FIFO中再給計(jì)算機(jī)并口一個(gè)中斷信號(hào),通知它從輸入FIFO讀取數(shù)據(jù),這樣就完成了數(shù)據(jù)的雙向通信。

          這種設(shè)計(jì)具有塊傳輸數(shù)據(jù)的優(yōu)點(diǎn),同時(shí)在傳輸大量數(shù)據(jù)時(shí),占用并口和ADSP21060的時(shí)間非常少。

          在此電路設(shè)計(jì)中,有兩個(gè)問(wèn)題值得注意:

          1nWait信號(hào)需要通過(guò) nDstrbnAstrb的邏輯關(guān)系來(lái)產(chǎn)生。其邏輯關(guān)系為:nWait= notnDstrb and nAstrb)。

          2)由于EPPSPP兼容,在EPP模式下,需要將并口命令字中nWrite、nDstrbnAstrb對(duì)應(yīng)的位設(shè)置為無(wú)效。

          我們所選用的電可編程邏輯器件(EPLD)Altera公司的EPM7128,關(guān)于它的詳細(xì)介紹請(qǐng)參考Altera公司的器件手冊(cè),在這里僅給出AHDL語(yǔ)言寫(xiě)的控制程序如下:

          FIFO存儲(chǔ)器清零子程序,給FIFO 送一個(gè)清零脈沖:void fifo_rst(void);設(shè)置命令字子程序:void command(void); 寫(xiě)數(shù)據(jù)到FIFO子程序:void data_out(void);從FIFO讀數(shù)據(jù)子程序:void data_in(void);

          在訪問(wèn)EPP寄存器之前,軟件必須寫(xiě)零到控制寄存器的0,1,3位;寫(xiě)數(shù)據(jù)時(shí)將指針ptr中的number個(gè)數(shù)據(jù)通過(guò)數(shù)據(jù)端口寫(xiě)入輸出FIFO存儲(chǔ)器中,然后引起ADSP21060中斷;讀數(shù)據(jù)時(shí)通過(guò)數(shù)據(jù)端口從輸入FIFO存儲(chǔ)器讀number然后將數(shù)據(jù)讀到指針ptr中。

          #define BASE_ADDR 0X378

          #define ADDR_PORT 3

          #define DATA_PORT 4

          #define CONTROL_PORT 2

          #define CONTROL_ININT 2

          #define SET_BIT(x,b) ((x)|=(1<<(b)))

          #define CLEAR_BIT(x,b) ((x)&=~(1<<(b)))

           

          void fifo_rst()

          {char control;

          control=inportb(BASE_ADDR +CONTROL_PORT);

          CLEAR_BIT(control, CONTROL_ININT);

          outportb (BASE_ADDR+ CONTROL_PORT,control);

          SET_BIT(control,CONTROL_ININT);

          outportb (BASE_ADDR+ CONTROL_PORT,control);}

          void command(void)

          {int com;

          com=0;

          control=inportb(BASE_ADDR +CONTROL_PORT);

          control=control & oxf4;

          outportb(BASE_ADDR+ CONTROL_PORT,control);}

          void data_out(int number,char *ptr)

          {int I;

          fifo_rst();

          for(I=0;I

          outportb(BASE_ADDR +ADDR_PORT,0);}

          void data_in(int number,char *ptr)

          {int I;

          for(I=0;I

          本文給出了一種采用EPP模式下的FIFO和ADSP21060進(jìn)行高速數(shù)據(jù)通信的實(shí)現(xiàn)方案。該電路能夠完成ADSP21060和計(jì)算機(jī)并口的高速數(shù)據(jù)傳輸,且占用ADSP21060和計(jì)算機(jī)的時(shí)間非常少。另外,文中編制的子程序?qū)τ谄渌cPC機(jī)間進(jìn)行高速數(shù)據(jù)通信的電路有參考價(jià)值。經(jīng)調(diào)試證明此方案是可行的?!?/font>

          參考文獻(xiàn)

          [1] 黃永平 宮克存 金玉善,微機(jī)并行口EPP工作模式的探討.長(zhǎng)春郵電學(xué)院學(xué)報(bào),2000.

          [2] 吳楠 梁再信,增強(qiáng)型并行口EPP協(xié)議及其在CAN監(jiān)控節(jié)點(diǎn)中的應(yīng)用.電子技術(shù)應(yīng)用,2000.

          [3] MAX 7000 programmable Logic Device Family Data Sheet.



          關(guān)鍵詞:

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(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); })();