基于CPLD的計算機并口EPP模式通訊實(shí)現

發(fā)布時(shí)間:2010-11-28 12:31    發(fā)布者:designer
關(guān)鍵詞: CPLD , EPP , 并口 , 計算機
計算機的并行接口一開(kāi)始是作為打印機接口而設計的。隨著(zhù)計算機周邊設備的不斷擴展,人們對提高計算機外設的數據采集速度的要求也越來(lái)越高。傳統的異步串行通訊方式雖然具有數據傳輸距離較遠的優(yōu)勢,但是由于數據傳輸速度慢,會(huì )造成傳輸速率的瓶頸問(wèn)題。所以在一些需要高速數據傳輸的場(chǎng)合,使用并行接口一直是一種比較理想的解決方法。

1、并口EPP模式介紹

1.1并行接口的種類(lèi)

最初的PC機并口由8個(gè)單向輸出,5個(gè)位輸入和4位雙向(控制)線(xiàn)組成(SPP),如今為了適應擴展外圍設備的需要,并口已經(jīng)發(fā)展出了多種工作模式?偣灿袠藴什⑿薪涌冢⊿PP)、簡(jiǎn)單雙向接口(PS/2)、增強型并行接口(EPP)和擴展功能接口(ECP)模式和多模式接口(ECP+EPP)這幾種。EPP工作模式作為一個(gè)提供高性能并口連接的方法,仍與SPP兼容。EPP工作模式的優(yōu)點(diǎn)概括如下:

1)8位數據線(xiàn)由原來(lái)SPP的單向改成了雙向,簡(jiǎn)化了外圍電路的設計;

2)在一個(gè)ISA的周期可以完成一次數據的傳輸,大大加快了數據傳輸速率;

3)只需要對計算機發(fā)送一條簡(jiǎn)單軟件指令,接口硬件就可以自動(dòng)生成握手聯(lián)絡(luò )信號;

4)接口數據線(xiàn)可以分別定義為數據和地址,通過(guò)綜合使用nAstrb和nDstrb兩條控制線(xiàn)可以快速的實(shí)現數據向不同的設備傳輸;

5)相對ECP的工作模式,EPP具有操作簡(jiǎn)單、易于實(shí)現的特點(diǎn);

1.2 EPP的硬件接口

EPP接口通常是25芯的D-sub接口,符合IEEE1284標準。其中數據選通和地址選通信號為低電平有效, 且兩者不可能同時(shí)為低, 等待信號(nWait) 為握手信號,主要是考慮PC比外設快, 外設通過(guò)發(fā)送等待信號與PC并口協(xié)調工作?臻e信號線(xiàn)(Spare)可以由外設根據需要來(lái)決定其狀態(tài),由PC直接讀取并口狀態(tài)寄存器的相應位來(lái)獲得Spare的狀態(tài)信息。

1.3 EPP寄存器說(shuō)明

在PC機中,標準并行接口使用了3個(gè)8位的端口寄存器。PC就是通過(guò)對這些寄存器,也就是通常所說(shuō)的數據、狀態(tài)、控制寄存器的讀寫(xiě)訪(fǎng)問(wèn)并口信號的,這3個(gè)寄存器的地址分別是基地址、基地址+1、基地址+2。如今,EPP將在基地址+3到基地址+7的范圍內,添加5個(gè)寄存器。所以EPP一共使用了8個(gè)寄存器,表1列出了這些寄存器及其功能。

表1 EPP的8個(gè)寄存器及他們的功能





為了能夠在EPP模式下讀寫(xiě)一個(gè)數據字節,你需要將數據讀取或者寫(xiě)入EPP數據寄存器(基地址+4),而不是讀寫(xiě)基地址。同樣的,地址的讀寫(xiě)也是通過(guò)讀取或者寫(xiě)入EPP的地址寄存器(基地址+3)來(lái)實(shí)現的。EPP的基地址通常是378h和278h。

1.4 EPP工作模式的時(shí)序分析

在EPP和ECP模式中,簡(jiǎn)單的端口讀寫(xiě)操作就會(huì )自動(dòng)產(chǎn)生握手聯(lián)絡(luò )信號,這簡(jiǎn)化了很多軟件上的設計。圖1是一個(gè)EPP地址寫(xiě)入周期的時(shí)序圖。如圖所示,對EPP數據寄存器的寫(xiě)操作將導致接口啟動(dòng)一個(gè)完整的數據寫(xiě)入周期。接口的硬件把待寫(xiě)入數據置于D0"D7,然后接口自動(dòng)觸發(fā)握手聯(lián)絡(luò )信號,并檢測外設的應答。讀取一個(gè)字節的過(guò)程與此類(lèi)似。同樣的,對EPP地址寄存器進(jìn)行讀寫(xiě)操作將引發(fā)一個(gè)完整的數據讀寫(xiě)周期。所以,仔細研究EPP工作狀態(tài)的時(shí)序是非常重要的。





圖1 EPP地址寫(xiě)入周期的時(shí)序圖

2、基于WDM的并口驅動(dòng)程序的實(shí)現

在設計PC機外圍產(chǎn)品時(shí),不僅需要考慮PC接口定義,與接口相關(guān)的寄存器定義,數據傳輸協(xié)議,還要根據上位機采用的操作系統來(lái)編寫(xiě)合適的通訊程序,以便上位機對數據進(jìn)行管理和監控。早期的Windows98以及更低版本的操作系統,可以直接訪(fǎng)問(wèn)并口硬件資源,比如使用C語(yǔ)言中的inp()和outp()函數來(lái)編寫(xiě)簡(jiǎn)單的通訊程序。但Windows2000/XP的操作系統采用了一些保護措施,阻止對端口的直接訪(fǎng)問(wèn)。這樣做雖然提高了系統運行的可靠性,但也增加了軟件上實(shí)現通訊的難度。

2.1 WDM驅動(dòng)程序的種類(lèi)和結構

WDM(Win32 Driver Model),即Windows驅動(dòng)程序模型,是Microsoft力推的全新驅動(dòng)程序模式,可以用來(lái)開(kāi)發(fā)Windows 98和Windows 2000設備驅動(dòng)程序。圖2顯示了在Win2000/XP系統中應用程序調用一個(gè)硬件操作的基本過(guò)程,從中可以看到WDM在整個(gè)驅動(dòng)體系結構中的位置何作用。





圖2 Win2000的驅動(dòng)體系結構

如圖所示,WDM的驅動(dòng)程序是分層的,一般按照層次分為高層、中間和底層三類(lèi)。顧名思義,高層驅動(dòng)程序依賴(lài)于中間和底層驅動(dòng)程序完成工作,而中間驅動(dòng)程序又依賴(lài)于底層驅動(dòng)程序來(lái)完成工作。其中各層驅動(dòng)程序的詳細介紹請參閱參考文獻。





圖3 并行口EPP模式驅動(dòng)程序接口框圖

2.2 并口EPP模式驅動(dòng)程序的功能實(shí)現


WDM驅動(dòng)程序開(kāi)發(fā)工具通常用NuMega DriverStudio。因為它可以集成到VC++ 開(kāi)發(fā)環(huán)境中,這樣就可以像生成其他工程一樣生成驅動(dòng)程序框架,省去了大量的編寫(xiě)代碼的時(shí)間.

2.3 EPP模式的基本操作

首先定義類(lèi)KIoRange的一個(gè)實(shí)例,以對應EPP











下面就可以用類(lèi)KIoRange的成員函數來(lái)訪(fǎng)問(wèn)EPP的寄存器:

3、并口EPP模式外圍電路硬件設計實(shí)例

由上文可知,并口EPP模式下的數據傳輸速度可以達到μs級,所以使用一般的單片機來(lái)控制外設與EPP的通訊顯然不能滿(mǎn)足高速的要求。早期,工程師使用大量的邏輯分立元件來(lái)設計EPP的外圍電路,但是當計算機的主頻越來(lái)越高,EPP 模式在高速數據傳輸中可靠性明顯下降, 因此本文采用大規?删幊踢壿嬈骷, 充分利用其高速和大容量特性設計接口電路, 不僅可大大提高其可靠性, 且易于系統擴展和升級, 可廣泛用于數據采集、D/A 轉換以及數字控制。

筆者采用Xilinx公司的XC95144芯片作為EPP接口模塊的控制單元,并且通過(guò)XC95144實(shí)現了計算機并口與外部存儲器SRAM的數據交換。在某些外設需要數據存儲和與PC機進(jìn)行數據交換的應用場(chǎng)合得到了成功的應用。該EPP接口模塊的總體框架如圖4所示。





圖4 EPP接口模塊邏輯框圖

如圖4所示,CPLD內部由各個(gè)負責不同功能的子模塊組成,其作用與早期的分立元件一樣,所有子模塊用Verilog設計實(shí)現,并且通過(guò)了仿真驗證。采用ECS將所有的子模塊組織起來(lái),集成在一塊CPLD內。這樣做大大提高了整個(gè)系統運行的可靠性,同時(shí)也為系統擴展其他功能提供條件。

由于SRAM相對DRAM具有存儲速度塊,無(wú)需定時(shí)刷新,控制信號簡(jiǎn)單的優(yōu)點(diǎn),所以被廣泛的用于需要高速數據處理的小型設備中。圖4中的SRAM采用ISSI的IS61C6416,存儲容量是64K×16位。地址線(xiàn)和數據線(xiàn)都是16條,但是EPP每次只能傳送一個(gè)字節的數據,所以CPLD內部需要配置4個(gè)8位的數據寄存器,分別保存SRAM的地址和數據總線(xiàn)上的數據。

圖4中的總線(xiàn)74LS245是一個(gè)總線(xiàn)收發(fā)器,由nWrite信號控制并口數據的傳輸方向。74LS138子模塊是一個(gè)3-8譯碼器,通過(guò)EPP的地址線(xiàn)向138寫(xiě)入數據,使能不同的觸發(fā)信號(CK)來(lái)鎖存SRAM的地址或者數據總線(xiàn)上的高/低8位數據。該模塊的Verilog核心源碼如下:





由此可知,如果希望向SRAM的地址低8位寫(xiě)入數據,PC只需執行outp(0x378+3, 0x00),outp(0x378h+4,地址低8位值) 兩條指令,在執行后一條指令的同時(shí),ck_al選通信號將并口的數值鎖存到SRAM地址低8位鎖存器中。在ck_dh信號觸發(fā)的同時(shí)將由nWE_cre模塊使能一個(gè)nWE信號,將數據寫(xiě)入SRAM。

4、總結

采用增強型并口(EPP)模式,可以極大地擴展并口通訊的容量和速度。編寫(xiě)針對并口的WDM驅動(dòng)程序,既可以保證系統運行的可靠性,也可以增加驅動(dòng)程序的可移植性。使用CPLD設計并口EPP接口模塊,可以最大限度的體現EPP高速傳輸的特性,而且由于將所有的功能模塊集成在一塊芯片中,提高了系統的可靠性,特別是XC95144具有的ISP(在線(xiàn)可編程)技術(shù)使復雜的接口電路可根據具體的應用加以修正,大大增強了接口電路的靈活性和可擴展性。本文設計的EPP接口模塊已被成功的運用到某款單片機仿真器產(chǎn)品中,實(shí)驗證明這種設計是可行的。
本文地址:http://selenalain.com/thread-42365-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页