新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 增強(qiáng)并口EPP與DSP接口的設(shè)計(jì)

增強(qiáng)并口EPP與DSP接口的設(shè)計(jì)

作者: 時(shí)間:2004-12-05 來(lái)源:網(wǎng)絡(luò) 收藏
摘要:提出用計(jì)算機(jī)的協(xié)議與A2181的IDMA口進(jìn)行快速通信的方法。該的核心是可編程邏輯器件EPLD,只需要修改EPLD的邏輯就可以滿(mǎn)足各種不同的要求,因此具有很強(qiáng)的通用性。

關(guān)鍵詞:并行口() A2181 EPLD

利用計(jì)算機(jī)進(jìn)行數(shù)據(jù)采集與控制一直都是研究的熱點(diǎn)。大部分?jǐn)?shù)據(jù)采集與控制系統(tǒng)都是做成插卡的形式;然而,對(duì)于日益普及應(yīng)用的筆記本電腦而言,由于沒(méi)有提供擴(kuò)展插槽,不能夠直接做成插卡的形式,因此就需要充分利用筆記本提供的外圍,例如、串口等來(lái)實(shí)現(xiàn)。由于串口速度的限制,對(duì)于速度比較高的數(shù)據(jù)采集與控制系統(tǒng),往往采用計(jì)算機(jī)的。這幾年在國(guó)內(nèi)已經(jīng)有很多大在做利用型并行口()與外界進(jìn)行通信這方面的工作,但大部分都是與一些簡(jiǎn)單外圍電路的通信與控制(例如FIFO、A/D轉(zhuǎn)換器),很少有人涉及到與的通信。我們所與ADSP2181的,為和外圍復(fù)雜電路進(jìn)行通信提供了一種途徑。

一、EPP并口

最常見(jiàn)的計(jì)算機(jī)并口模式是SPP模式(標(biāo)準(zhǔn)并行口)。該模式數(shù)據(jù)傳輸是單向的,如果要完成數(shù)據(jù)的輸入就不得利用狀態(tài)線(xiàn)。故讀入一個(gè)數(shù)據(jù)就需要進(jìn)行好幾次的I/O讀周期,因此傳輸速度就不可能做到很高,僅能做到150KB/s。其外圍設(shè)計(jì)電路并不比EPP簡(jiǎn)單,因此SPP在數(shù)據(jù)采集與控制系統(tǒng)中很少應(yīng)用。

1992年,intel、Xicom與Zenith公司共同制定了EPP1.7標(biāo)準(zhǔn),并在隨后的時(shí)間里對(duì)該增值修訂與完善。對(duì)于EPP標(biāo)準(zhǔn)而言,現(xiàn)在主要有EPP1.7與EPP1.9兩種標(biāo)準(zhǔn);對(duì)于用戶(hù)而言,它們?cè)诰唧w的應(yīng)用中并沒(méi)有什么不匹配的地方。

EPP協(xié)議與標(biāo)準(zhǔn)并行口兼容而且能夠完成雙向數(shù)據(jù)傳輸?shù)膮f(xié)議。它提供了四種數(shù)據(jù)傳送周期:數(shù)據(jù)讀周期、數(shù)據(jù)寫(xiě)周期、地址讀周期、地址寫(xiě)周期。數(shù)據(jù)周期一般用于主機(jī)與外設(shè)之間進(jìn)行數(shù)據(jù)傳送;地址周期一般用于傳送地址、通道、命令和控制等信息。在實(shí)際操作中,兩者并沒(méi)有太大的區(qū)別。幾乎可以把地址周期看到另外一種的數(shù)據(jù)周期。僅有的區(qū)別將在后面說(shuō)明。

表1給出了EPP協(xié)議中各引腳的信號(hào)的定義與描述。

表1 EPP中各引腳的定義與描述

EPP信號(hào)名EPP信號(hào)方向EPP信號(hào)描述對(duì)應(yīng)并口引腳
Nwrite輸出低電平寫(xiě),高電平讀1
Ndatastb輸出低有效,進(jìn)行數(shù)據(jù)讀寫(xiě)14
Naddstb輸出低有效,進(jìn)行地址讀寫(xiě)17
Ninit輸出低有效,得置外設(shè)16
Intr輸入外設(shè)斷,外設(shè)對(duì)機(jī)產(chǎn)生中斷請(qǐng)求10
Nwait輸入低有效,外設(shè)響應(yīng)信號(hào)11
AD[0..7]雙向雙向數(shù)據(jù)/地址總線(xiàn)2~9
用戶(hù)定義輸入用戶(hù)可靈活定義12
用戶(hù)定義輸入用戶(hù)可靈活定義13
用戶(hù)定義輸入用戶(hù)可靈活定義15

圖1是EPP數(shù)據(jù)讀周期的時(shí)序圖。讀操作是在一個(gè)I/O周期內(nèi)完成的。這就是說(shuō)用EPP傳輸數(shù)據(jù),可以達(dá)到500KB~2MB/s的傳輸速率。由于Nwait是互鎖形式的握手信號(hào),故數(shù)據(jù)的傳輸以接口的最慢的設(shè)備來(lái)進(jìn)行,可以是主機(jī),也可以是外設(shè)。因此設(shè)計(jì)外圍電路就比較靈活。

EPP模式是在BIOS里進(jìn)行設(shè)置的。需要設(shè)置的主要是基地址以及中斷號(hào)?;刂纷詈迷O(shè)置成378H或278H,而不要設(shè)置成3BCH,因?yàn)?BFH后面的端口可能為其它設(shè)備所占用。EPP共有8個(gè)I/O地址端口(假如基地址為378H);378H為SPP的數(shù)據(jù)口;379H為SPP的狀態(tài)口;37AH為控制口;37BH為地址讀寫(xiě)口;37HC為數(shù)據(jù)讀寫(xiě)口;37DH~37FH可以由用戶(hù)定義,主要用作16bit與32bit I/O數(shù)據(jù)讀寫(xiě)輔助口。通過(guò)對(duì)端口基地址+4的I/O讀寫(xiě)就可以產(chǎn)生EPP的數(shù)據(jù)讀寫(xiě)周期,對(duì)基地址+3的I/O讀寫(xiě)就可以產(chǎn)生EPP的地址讀寫(xiě)周期。奪址讀寫(xiě)周期與數(shù)據(jù)讀寫(xiě)周期的主要區(qū)別就是數(shù)據(jù)讀寫(xiě)可以做32bit與16bit的I/O讀寫(xiě),而地址讀寫(xiě)周期只能夠做8bit的I/O讀寫(xiě)(主要因?yàn)樗鼪](méi)有輔助的端口)。在C語(yǔ)言里面,可以用端口讀寫(xiě)函數(shù)outportb()、inportb()、outport()、inport()來(lái)實(shí)現(xiàn)EPP的讀寫(xiě)操作,相應(yīng)的控制信號(hào)由計(jì)算機(jī)自動(dòng)產(chǎn)生。

二、ADSP2181的IDMA接口

ADSP2181是AD公司制造的ADSP21XX定點(diǎn)DSP系列的一種。它的指令周期為30ns,足以滿(mǎn)足信號(hào)的實(shí)時(shí)處理。它內(nèi)部有16MB的程序存儲(chǔ)區(qū)(PM)與16MB的數(shù)據(jù)存儲(chǔ)區(qū)(DM)。外圍接口可以通過(guò)IDMA與I/O的方式對(duì)存儲(chǔ)區(qū)進(jìn)行訪(fǎng)問(wèn)。其IDMA操作的最大優(yōu)點(diǎn)IDMA的讀寫(xiě)操作并不影響ADSP2181程序的運(yùn)行。但是需要注意的是ADSP2181與外設(shè)不能夠同時(shí)對(duì)同一個(gè)存儲(chǔ)區(qū)進(jìn)行讀寫(xiě),否則,會(huì)引起數(shù)據(jù)紊亂。

IDMA端口主要有以下幾個(gè)信號(hào)線(xiàn):nIRD(輸入、讀選通)、nIWR(輸入、寫(xiě)選通)、nIS(輸入、IDMA選通)、IAL(輸入、地址鎖存使能)、IDA0~15(地址/數(shù)據(jù)復(fù)用線(xiàn))、nIACK(輸出、DSP響應(yīng)信號(hào))。

IDAM讀寫(xiě)的初始地址與存儲(chǔ)區(qū)的類(lèi)型由ADSP2181內(nèi)部專(zhuān)門(mén)的寄存器來(lái)控制。每進(jìn)行一次讀寫(xiě),則該初始地址就自動(dòng)加1。該寄存器呵以由ADSP2181來(lái)設(shè)置,也可以由外設(shè)電路通過(guò)IDMA操作來(lái)完成。

IDMA讀周期的時(shí)序圖如圖2所示。IDMA寫(xiě)周期的時(shí)序圖如圖3所示。需要注意的是在IDMA讀周期中,nIWR為高電平,IAL為低電平,在IDMA寫(xiě)周期時(shí)序中,nIRD為高電平,IAL為低電平。

三、接口電路以及整體設(shè)計(jì)的考慮

圖4是我們?cè)O(shè)計(jì)的接口電路框圖。并口控制線(xiàn)包括Ndatastb、Naddstb、Ninit;DSP控制線(xiàn)包括nIS、nWRITE、nREAD、IAL。

其中可編程邏輯器件是該電路的核心器件。由于并口只能進(jìn)行8bit的讀寫(xiě)操作,而ADSP2181是16bit的總線(xiàn),因此若要進(jìn)行通信,必須設(shè)計(jì)好組合邏輯。如果采用分立元件,則電路比較復(fù)雜,調(diào)試起來(lái)比較麻煩,并且電路固定好以后,不可能進(jìn)行其它方式的通信;而采用可編程邏輯器件EPLD,只需要修改器件的邏輯與更改外部引腳的定義就可以實(shí)現(xiàn)其它傳輸協(xié)議,如ECP或者其它并口的通信,并且調(diào)試起來(lái)也比較方便。

我們所選用的可編程邏輯器件是Altera公司的EPM7128S系列。它有2500個(gè)可用門(mén),128個(gè)宏單元、2個(gè)全局時(shí)鐘,可以完成EPP與ECP電路的邏輯設(shè)計(jì)。同時(shí)支持在線(xiàn)編程,可以很方便地對(duì)程序進(jìn)行下載。該器件用MAXPLUS II系列的軟件進(jìn)行編程,這種軟件支持圖形、語(yǔ)言等多種設(shè)計(jì)文件。

由于采用可編程器件,因此電路還可以采用ECP協(xié)議。ECP協(xié)議支持DMA的傳輸方式。最主要的是在進(jìn)行大批量的數(shù)據(jù)傳輸?shù)臅r(shí)候可以節(jié)省很多系統(tǒng)資源;但在傳輸速度上并沒(méi)有大的提高。該協(xié)議設(shè)計(jì)起來(lái)比EPP協(xié)議復(fù)雜很多,需要開(kāi)發(fā)相應(yīng)的硬件驅(qū)動(dòng)程序。因此在我們?cè)O(shè)計(jì)的電路中,仍然采用EPP協(xié)議來(lái)實(shí)現(xiàn)。

四、EPP并口傳輸速度的測(cè)試

讀寫(xiě)程序是用VxD編寫(xiě)的。VxD(Virtual Device Driver)是用來(lái)擴(kuò)展Windows操作系統(tǒng)功能的程序,也是一個(gè)管理硬件設(shè)備或者已安裝軟件等系統(tǒng)資源的32位可執(zhí)行程序,并可以使得幾個(gè)應(yīng)用程序同時(shí)使用這些資源。Windows通過(guò)使用VxD允許基于Windows的應(yīng)用程序?qū)崿F(xiàn)多任務(wù)。VxD在與Windows的連接工作中處理樹(shù)熊怕,并在不影響其它應(yīng)用程序執(zhí)行的情況下為特定的應(yīng)用程序執(zhí)行I/O操作。由于設(shè)備接收工作中處理中斷,并在影響其它應(yīng)用程序執(zhí)行的情況下為特定的應(yīng)用程序執(zhí)行I/O操作。

測(cè)試結(jié)果如表2所列。

表2 各種方式讀速率的比較

 方式1(字節(jié)讀寫(xiě))方式二(字讀寫(xiě))方式三(雙字讀寫(xiě))方式四(字讀寫(xiě))
平均速率/(KB/s)8509501050800

方式一:VxD編程中以字節(jié)來(lái)讀;

方式二:VxD編程中以字來(lái)讀;

方式三:VxD編程中以雙字來(lái)讀;

方式四:用C語(yǔ)言的inport()函數(shù)進(jìn)行讀寫(xiě)。

由于我們只關(guān)心從DSP中讀的速率,從表2中看出可以做到1050KB/s的速率,基本滿(mǎn)足我們要求。對(duì)于用C語(yǔ)言來(lái)編寫(xiě)并口操作的程序可以通過(guò)嵌套匯編來(lái)提高傳輸速度。

總結(jié)

采用EPP協(xié)議設(shè)計(jì)計(jì)算機(jī)與外設(shè)的通信是一種新穎的設(shè)計(jì)方法。在設(shè)計(jì)電路時(shí)采用可編程器件來(lái)設(shè)計(jì)控制邏輯將是電子設(shè)計(jì)的一個(gè)趨勢(shì),將使電路的擴(kuò)充性與靈活性得到很大的提高。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉