基于CPLD的計(jì)算機(jī)并口EPP模式設(shè)計(jì)
出處:金陵科技學(xué)院學(xué)報(bào) 發(fā)布于:2011-06-08 08:37:48
隨著人們生活節(jié)奏的加快,越來越多的場(chǎng)合需要使用電子手段動(dòng)態(tài)發(fā)布信息,對(duì)計(jì)算機(jī)外設(shè)的數(shù)據(jù)采集速度的要求也越來越高。傳統(tǒng)的異步串行通訊方式雖然具有數(shù)據(jù)傳輸距離較遠(yuǎn)的優(yōu)勢(shì),但是由于數(shù)據(jù)傳輸速度慢,會(huì)造成傳輸速率的瓶頸問題。所以在一些需要高速數(shù)據(jù)傳輸?shù)膱?chǎng)合,使用并行接口一直是一種比較理想的解決方法。
CPLD主要是由可編程邏輯宏單元(MC,Macro Cell)圍繞中心的可編程互連矩陣單元組成。其中MC結(jié)構(gòu)較復(fù)雜,并具有復(fù)雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長(zhǎng)度的金屬線進(jìn)行各邏輯塊的互連,所以設(shè)計(jì)的邏輯電路具有時(shí)間可預(yù)測(cè)性,避免了分段式互連結(jié)構(gòu)時(shí)序不完全預(yù)測(cè)的缺點(diǎn)。它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對(duì)設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、保密性強(qiáng)、價(jià)格大眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)之中。
1、并口EPP模式介紹
1.1并行接口的種類
初的PC機(jī)并口由8個(gè)單向輸出,5個(gè)位輸入和4位雙向(控制)線組成,如今為了適應(yīng)擴(kuò)展外圍設(shè)備的需要,并口已經(jīng)發(fā)展出了多種工作模式??偣灿袠?biāo)準(zhǔn)并行接口、簡(jiǎn)單雙向接口、增強(qiáng)型并行接口及多模式接口這幾種。EPP工作模式作為一個(gè)提供高性能并口連接的方法,仍與SPP兼容。EPP工作模式優(yōu)點(diǎn):
?、?8位數(shù)據(jù)線由原來SPP的單向改成了雙向,簡(jiǎn)化了外圍電路的設(shè)計(jì);
?、?在一個(gè)ISA的周期可以完成數(shù)據(jù)的傳輸,加快了數(shù)據(jù)傳輸速率;
?、?只需要對(duì)計(jì)算機(jī)發(fā)送一條簡(jiǎn)單軟件指令,接口硬件就可以自動(dòng)生成握手聯(lián)絡(luò)信號(hào);
?、?接口數(shù)據(jù)線可以分別定義為數(shù)據(jù)和地址,通過綜合使用nAstrb和nDstrb兩條控制線可以快速的實(shí)現(xiàn)數(shù)據(jù)向不同的設(shè)備傳輸;
?、?相對(duì)ECP的工作模式,EPP操作簡(jiǎn)單、易于實(shí)現(xiàn)。
1.2 EPP的硬件接口
EPP接口通常是25芯的D-sub接口,符合IEEE1284標(biāo)準(zhǔn)。其中數(shù)據(jù)選通和地址選通信號(hào)為低電平有效, 且兩者不可能同時(shí)為低,主要是考慮PC比外設(shè)快, 外設(shè)通過發(fā)送等待信號(hào)與PC并口協(xié)調(diào)工作??臻e信號(hào)線(Spare)可以由外設(shè)根據(jù)需要來決定其狀態(tài),由PC直接讀取并口狀態(tài)寄存器的相應(yīng)位來獲得Spare的狀態(tài)信息。
1.3 EPP寄存器說明
在PC機(jī)中,標(biāo)準(zhǔn)并行接口使用了3個(gè)8位的端口寄存器。PC就是通過對(duì)這些寄存器的讀寫訪問并口信號(hào)的,這3個(gè)寄存器的地址分別是基地址、基地址+1、基地址+2。目前,EPP將在基地址+3到基地址+7的范圍內(nèi),添加5個(gè)寄存器。因此EPP一共使用了8個(gè)寄存器,如表1所示。
表1 EPP的8個(gè)寄存器及他們的功能

為了能夠在EPP模式下讀寫一個(gè)數(shù)據(jù)字節(jié),你需要將數(shù)據(jù)讀取或者寫入EPP數(shù)據(jù)寄存器(基地址+4),而不是讀寫基地址。EPP的基地址通常是378h和278h。
1.4 EPP工作模式的時(shí)序分析
在EPP和ECP模式中,簡(jiǎn)單的端口讀寫操作就會(huì)自動(dòng)產(chǎn)生握手聯(lián)絡(luò)信號(hào)。圖1是一個(gè)EPP地址寫入周期的時(shí)序圖。如圖所示,對(duì)EPP數(shù)據(jù)寄存器的寫操作將導(dǎo)致接口啟動(dòng)一個(gè)完整的數(shù)據(jù)寫入周期。接口的硬件把待寫入數(shù)據(jù)置于D0~D7,然后接口自動(dòng)觸發(fā)握手聯(lián)絡(luò)信號(hào),并檢測(cè)外設(shè)的應(yīng)答。讀取一個(gè)字節(jié)的過程與此類似。對(duì)EPP地址寄存器進(jìn)行讀寫操作將引發(fā)一個(gè)完整的數(shù)據(jù)讀寫周期。

圖1 EPP地址寫入周期的時(shí)序圖
2、基于WDM的并口驅(qū)動(dòng)程序的實(shí)現(xiàn)
在設(shè)計(jì)PC機(jī)外圍產(chǎn)品時(shí),不僅需要考慮PC接口定義,與接口相關(guān)的寄存器定義,數(shù)據(jù)傳輸協(xié)議,還要根據(jù)上位機(jī)采用的操作系統(tǒng)來編寫合適的通訊程序,以便上位機(jī)對(duì)數(shù)據(jù)進(jìn)行管理和監(jiān)控。
2.1 WDM驅(qū)動(dòng)程序的種類和結(jié)構(gòu)
WDM(Win32 Driver Model),即Windows驅(qū)動(dòng)程序模型,是Microsoft力推的全新驅(qū)動(dòng)程序模式,可以用來開發(fā)Windows 98和Windows 2000設(shè)備驅(qū)動(dòng)程序。圖2顯示了在Win2000/XP系統(tǒng)中應(yīng)用程序調(diào)用一個(gè)硬件操作的基本過程,從中可以看到WDM在整個(gè)驅(qū)動(dòng)體系結(jié)構(gòu)中的位置何作用。

圖2 Win2000的驅(qū)動(dòng)體系結(jié)構(gòu)
如圖3所示,WDM的驅(qū)動(dòng)程序是分層的,一般按照層次分為高層、中間和底層三類。顧名思義,高層驅(qū)動(dòng)程序依賴于中間和底層驅(qū)動(dòng)程序完成工作,而中間驅(qū)動(dòng)程序又依賴于底層驅(qū)動(dòng)程序來完成工作。

圖3 并行口EPP模式驅(qū)動(dòng)程序接口框圖
2.2 并口EPP模式驅(qū)動(dòng)程序的功能實(shí)現(xiàn)
WDM驅(qū)動(dòng)程序開發(fā)工具通常用NuMega DriverStudio。它可以集成到VC++ 開發(fā)環(huán)境中,這樣就可以像生成其他工程一樣生成驅(qū)動(dòng)程序框架,省去了大量的編寫代碼的時(shí)間。
2.3 EPP模式的基本操作
首先定義類KIoRange的一個(gè)實(shí)例,以對(duì)應(yīng)EPP


下面就可以用類KIoRange的成員函數(shù)來訪問EPP的寄存器。
3、并口EPP模式外圍電路硬件設(shè)計(jì)實(shí)例
由上文可知,并口EPP模式下的數(shù)據(jù)傳輸速度可以達(dá)到μs級(jí),所以使用一般的單片機(jī)來控制外設(shè)與EPP的通訊顯然不能滿足高速的要求。本文采用大規(guī)??删幊踢壿嬈骷浞掷闷涓咚俸痛笕萘刻匦栽O(shè)計(jì)接口電路,可廣泛用于數(shù)據(jù)采集、D/A 轉(zhuǎn)換以及數(shù)字控制。
本設(shè)計(jì)采用Xilinx公司的XC95144芯片作為EPP接口模塊的控制單元,并且通過XC95144實(shí)現(xiàn)了計(jì)算機(jī)并口與外部存儲(chǔ)器SRAM的數(shù)據(jù)交換。該EPP接口模塊的總體框架如圖4所示。

如圖4所示,CPLD內(nèi)部由各個(gè)負(fù)責(zé)不同功能的子模塊組成,其作用與早期的分立元件一樣,所有子模塊用Verilog設(shè)計(jì)實(shí)現(xiàn)。采用ECS將所有的子模塊組織起來,集成在一塊CPLD內(nèi)。
圖4中的總線74LS245是一個(gè)總線收發(fā)器,由nWrite信號(hào)控制并口數(shù)據(jù)的傳輸方向。74LS138子模塊是一個(gè)3-8譯碼器,通過EPP的地址線向138寫入數(shù)據(jù),使能不同的觸發(fā)信號(hào)(CK)來鎖存SRAM的地址或者數(shù)據(jù)總線上的高/低8位數(shù)據(jù)。該模塊的Verilog源碼如下:

如果要向SRAM的地址低8位寫入數(shù)據(jù),PC只需執(zhí)行outp(0x378+3, 0x00),outp(0x378h+4,地址低8位值) 兩條指令,在執(zhí)行后一條指令的同時(shí),ck_al選通信號(hào)將并口的數(shù)值鎖存到SRAM地址低8位鎖存器中。在ck_dh信號(hào)觸發(fā)的同時(shí)將由nWE_cre模塊使能一個(gè)nWE信號(hào),將數(shù)據(jù)寫入SRAM。
4、結(jié)束語
采用增強(qiáng)型并口(EPP)模式,極大地?cái)U(kuò)展了并口通訊的容量和速度。使用CPLD設(shè)計(jì)并口EPP接口模塊,體現(xiàn)了EPP高速傳輸?shù)奶匦?,將所有的功能模塊集成在一塊芯片中,提高了系統(tǒng)的可靠性。本文設(shè)計(jì)的EPP接口模塊已被成功的運(yùn)用到某款單片機(jī)仿真器產(chǎn)品中,實(shí)驗(yàn)證明這種設(shè)計(jì)是可行的。
參考文獻(xiàn):
[1]. CPLD datasheet http://m.58mhw.cn/datasheet/CPLD_1136600.html.
[2]. XC95144 datasheet http://m.58mhw.cn/datasheet/XC95144_727462.html.
[3]. ECS datasheet http://m.58mhw.cn/datasheet/ECS_2043506.html.
[4]. 74LS245 datasheet http://m.58mhw.cn/datasheet/74LS245_1054125.html.
[5]. 74LS138 datasheet http://m.58mhw.cn/datasheet/74LS138_1054480.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 掌握 DSP:原理剖析與應(yīng)用實(shí)踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實(shí)時(shí)執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應(yīng)用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號(hào)完整性2022/9/26 16:45:38









