<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è) > 嵌入式系統 > 設計應用 > 在EPP模式下利用并口實(shí)現與DSP高速數據通信

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

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

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

本文引用地址:http://dyxdggzs.com/article/2812.htm

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

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

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

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

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

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

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

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

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

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

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

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

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

在訪(fǎng)問(wèn)EPP寄存器之前,軟件必須寫(xiě)零到控制寄存器的0,1,3位;寫(xiě)數據時(shí)將指針ptr中的number個(gè)數據通過(guò)數據端口寫(xiě)入輸出FIFO存儲器中,然后引起ADSP21060中斷;讀數據時(shí)通過(guò)數據端口從輸入FIFO存儲器讀number然后將數據讀到指針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í)現方案。該電路能夠完成ADSP21060和計算機并口的高速數據傳輸,且占用ADSP21060和計算機的時(shí)間非常少。另外,文中編制的子程序對于其它與PC機間進(jìn)行高速數據通信的電路有參考價(jià)值。經(jīng)調試證明此方案是可行的?!?/font>

參考文獻

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

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

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



關(guān)鍵詞:

評論


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