EPP接口技術管理論文

時間:2022-06-26 05:05:00

導語:EPP接口技術管理論文一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

EPP接口技術管理論文

摘要:系統介紹epp增強并口接口協議,簡要介紹ST公司uPSD323X系列器件的特點及其開發環境PSDsoftEXPRESS;從硬件電路和軟件編程兩個方面,詳細介紹使用uPSD323X系列器件實現EPP增強并口接口的設計方法。

關鍵詞:EPP增強并口uPSD323XPSDsoftEXPRESS

引言

在IBM公司推出PC機時,并行端口已經是PC機的一部分。并口設計之初,是為能代替速度較慢的串行端口驅動當時的高性能點陣式打印機。并口可以同時傳輸8位數據,而串口只能一位一位地傳輸,傳輸速度慢。隨著技術的進步和對傳輸速度要求的提高,最初的標準并行端口即SPP模式的并行端口的速度已不能滿足要求。1994年3月,IEEE1284委員會頒布了IEEE1284標準.IEEE1284標準提供的在主機和外設之間的并口傳輸速度,相對于最初的并行端口快了50~100倍。IEEE1284標準定義了5種數據傳輸模式,分別是兼容模式、半字節模式、字節模式、EPP模式和ECP模式。其中EPP模式、ECP模式為雙向傳輸模式。EPP模式比ECP模式更簡潔、靈活、可靠,在工業界得到了更多的實際應用。本文介紹的一種基于uPSD323X的EPP增強并口的設計核心是,使用uPSD323X內部的CPLD實現EPP接口。

1EPP接口協議介紹

EPP(EnhancedParallelPort,增強并行端口)協議最初是由Intel、Xirocm、Zenith三家公司聯合提出的,于1994年在IEEE1284標準中。EPP協議有兩個標準:EPP1.7和EPP1.9。EPP接口控制信號由硬件自動產品,整個數據傳輸可以在一個ISAI/O周期完成,通信速率能達到500KB/s~2MB/s。

EPP引腳定義如表1所列。

表1EPP接口引腳定義

對應并口引腳EPP信號方向說明

1nWrit輸出指示主機是向外設寫(低電平)還是從外設讀(高電平)

2~9Data0~7輸入/輸出雙向數據總線

10Interrupt輸入下降沿向主機申請中斷

11nWait輸入低電平表示外設準備好傳輸數據,高電平表示數據傳輸完成

12Spare輸入空余線

13Spare輸入空余線

14nDStrb輸出數據選通信號,低電平有效

15Spare輸入空余線

16Ninit輸出初始化信號,低電平有效

17nAStrb輸出地址數據選通信號,低電平有效

18~25GroundGND地線

1.1EPP接口時序

EPP協議定義了4種并口周期:數據寫周期、數據讀周期、地址寫周期和地址讀周期。數據周期用于計算機與外設間傳送數據;地址周期用于傳送地址、通道、命令、控制和狀態等輔助信息。圖1是EPP數據寫的時序圖。圖1中,nIOW信號實際上在進行EPP數據寫時并不會產生,只不過是表示所有的操作都發生在一個I/O周期內。在t1時刻,計算機檢測nWait信號,如果nWait為低,表明外設已經準備好,可以啟動一個EPP周期了。在t2時刻,計算機把nWrite信號置為低,表明是寫周期,同時驅動數據線。在t3時刻,計算機把nDataStrobe信號置為低電平,表明是數據周期。當外設在檢測到nDataStrobe為低后讀取數據并做相應的數據處理,且在t4時刻把nWait置為高,表明已經讀取數據,計算機可以結束該EPP周期。在t5和t6時刻,計算機把nDataStrobe和nWrite置為高。這樣,一個完整的EPP數據寫周期就完成了。如果就圖1中的nDataStrobe信號換為nAddStrobe信號,就是EPP地址寫周期。

圖2是EPP地址讀周期。與EPP寫周期類似,不同的是nWtrite信號置為高,表明是讀周期,并且數據線由外設驅動。

從EPP讀、寫周期可以看出,EPP模式的數據傳輸過程是一個信號互鎖的過程。以EPP寫周期為例子,當檢測到nWait為低后,nDataStrobe控制信號就會變低,nWait狀態信號會由于nDataStrobe控制信號的變低為而高。當計算機檢測到

nWait狀態信號變高后,nDataStrobe控制信號就會變高,一個完整的EPP寫周期結束。因此,EPP數據的傳輸以接口最慢的設備來進行,可以是主機,也可以是外設。

1.2EPP增強并口的定義

EPP增強并口模式使用與標準并口(SPP,StandardParalledPort)模式相同的基地址,定義了8個I/O地址。基地址+0是SPP數據口,基地址+1是SPP狀態口,基地址+2是SPP控制口。這3個口實際上就是SPP模式下的數據、狀態和控制口,保證了EPP模式和SPP模式的軟硬件兼容性。

基地址+3是EPP地址口。這個I/O口中寫數據將產生一個連鎖的EPP地址寫周期,從這個I/O口中讀數據將產生一個連鎖的EPP地址讀周期。在不同的EPP應用系統中,EPP地址口可以根據實際需要設計為設備選擇、通道選擇、控制寄存器、狀態信息等。給EPP應用系統提供了極大的靈活性。

基地址+4是EPP數據口。向這個I/O口中寫數據將產生一個連鎖的EPP數據寫周期,從這個I/O口讀數據將產生一個連鎖的EPP數據寫周期。基地址+5~+7與基地址+4一起提供對EPP數據口的雙字操作能力。EPP允許主機在此個時鐘周期內寫1個32位雙字,EPP電路再把32位雙字拆為個字節依次從EPP數據口中送出去。也可以用其所長6位字方式進行數據傳送。

由于EPP通過硬件自動握手,對EPP地址口和EPP數據口的讀寫操作都自動產生控制信號而無需軟件生成。

2uPSD323X及其開發環境PSDsoftEXPRESS

ST公司的uPSD323X是帶8032內核的Flash可編程系統器件,將于8032MCU、地址鎖存器、Flash、SRAM、PLD等集成在一個芯片內。其主要特點如下:具有在線編程能力和超強的保密功能;2片Flash保存器,1片是128K或者256K的主Flash存儲器,另一片是32K的從Flash存儲器;片內8K的SDRAM;可編程的地址解碼電路(DPLD),使存儲器地址可以映射到8032尋址范圍內的任何空間;帶有16位宏單元的3000門可編程邏輯電路(CPLD),可以實現EPP接口等及一些不太復雜的接口和控制功能;2個異步串口、I2C接口、USB接口、5通道脈沖寬度調節器、50個I/O引腳等。由于uPSD323X采用的是8032內核,因此可以完全得到KeilC51編程器的PSDsoftEXPRESS是ST公司針對PSD系列產品(包括uPSD)開發的基于Windows平臺的一套軟件開發環境。經過不斷升級,目前最新版是PSDsoftEXPRESS7.9。它提供非常容易的點擊設計窗口環境用戶不需要自己編程,也不需要了解HDL語言,只有點擊鼠標即可完成對地址鎖存器、Flash、可編程邏輯電路等外設的所有配置和寫入。它支持所有PSD器件的開發,使用PSDsoftEXPRESS工具對uPSD323X系列器件的可編程邏輯電路的操作簡單、直觀。PSDsoftEXPRESS工具可以在ST網站(/psd)免費下載。

3用uPSD323X實現EPP接口設計

3.1硬件接口

EPP增強并口的速度最高可達到500KB/s~2MB/s,這對外設的接口設計提供了一個很高的要求,如果外設響應太慢,系統的整體性能將大大下降。用戶可編程邏輯器件,系統的整體性能將大大降低。用戶可編程邏輯器件,如FPGA(FieldProgrammableGatesArray,現場可編程門陣列)和CPLD(ComplexProgrammableLogicDevice,復雜可編程邏輯器件),可以實現EPP增強并口的接口設計,這種實現方案可以達到并口中的速度極限,并且保密性好。ST公司的uPSD323X內部集成了可編程邏輯電路(CPLD),因此使用uPSD323X可以很好地實現EPP增強并口的接口設計。

EPP接口(EPP1.7)外設硬件接口原理如圖3所示。在本設計中,uPSD323X通過中斷的方式接收PC機并口的數據,并且當外設準備好數據上傳到PC機時,PC機采用的也是中斷方式接收外設的數據。

在上述硬件電路的基于上實現EPP并口通信還需做兩部分的工作:一部分工作是在PSDsoftEXPRESS工具中完成對CPLD的數據的鎖存;另一部分工作是在KEILC51環境下編寫中斷服務程序,實現EPP數據的讀取和發送。

圖3

3.2對CPLD的編程及其實現數據鎖存的過程

在PSDsoftEXPRESS工具中,將PA端口(EPPD0~EPPD7)配置成帶有時鐘上升沿觸發的寄存器類型(PTclockedregister)的輸入宏,PB0(nWait)配置成上升沿觸發的D類型寄存器(D-typeregister)的輸出宏,PB3(nWrite)、PB4(nDstrb)、PB2(nAstrb)配置成CPLD邏輯輸入(logicinput)口。NDstrb信號和nAstrb信號各自取反再相與后的值作為輸入宏單元和輸出宏單元的時鐘。上述對PA、PB端口的配置用方程式表示如下:

PORTAEQUATIONS:

=======================

!EPPD7_LD_0=nAstrb&nDstrb;

EPPD0.LD=EPPD3_LD_0.FB;

!EPPD3_LD_0=nAstrb&nDstrb;

EPPD1.LD=EPPD3_LD_0.FB;

!nWait_C_0=nAstrb&nDstrb;

EPPD2.LD=EPPD3_LD_0.FB;

EPPD3.LD=EPPD3_LD_0.FB;

EPPD4.LD=FPPD7_LD_0.FB;

EPPD5.LD=EPPD7_LD_0.FB;

EPPD6.LD=EPPD7_LD_0.FB;

EPPD7.LD=EPPD7_LD_0.FB;

PORTBEQUATIONS:

=======================

nWait.D:=1;

nWait.PR=0;

nWait.C=nWait_C_0.FB;

nWait.OE=1;

nDstrb.LE=1;

nAstrb.LE=1;

EPP數據的鎖存過程如下:以計算機向外設傳輸數據(即EPP數據寫周期)為例子,計算機首先檢測nWait信號,如果nWait為低計算機把nWrite信號置為低,表明是寫周期,同時將數據放到數據總線上,然后置低nDstrb信號。此時,nDstrb信號會出現一個上升沿,此上升沿會將PA端口的數據鎖存到輸入宏;同時,此上升沿使nWait信號變高,表示外設正忙阻計算機發數年。當計算機檢測到nWait信號為高后就會將數據握手信號nDstrb變高,EPP數據寫周期結束。上述EPP數據的鎖存和nWait握手信號的產生都由硬件產生,因此數據傳輸速度快。整個數據傳輸過程可以在一個I/O周期內完成,鎖存到輸入宏的數據的讀取和nWait信號的清除則在外部中斷0服務程序軟件完成。

3.3中斷服務程序的功能描述及流程

由硬件原理圖可以看出,EPP并口的nDstrb和nAstrb信號線分別連到uPSD323X的外部中斷定和外部中斷1引腳。當發生EPP數據讀寫時,nDstrb信號就會產生一個下降沿,引起外中斷定中斷。當發生EPP地址讀寫時,nAstrb信號就會產生一個下降沿,引起外中斷1中斷。外部中斷0和外部中斷1的中斷服務程序的功能是相同的,只不過前者接收或發送的是數據而后者是地址、命令等。以外部中斷0的中斷服務程序為例,詳細介紹數據正向傳輸(計算機向外設發送數據)和反向傳輸(外設向計算機傳送數據)時中斷服務程序的功能。外部中斷0中斷服務程序流程如圖4所示。

(1)數據正向傳輸

當發生EPP數據寫周期時,即數據正向傳輸時,計算機首先檢測nWait信號。如果nWait為低,表示外設已準備好接收數據。計算機把nWrite信號置為低,表明是寫周期,同時將數據放到數據總線上,然后置低nDstrb。NDstrb信號就會產生一個下降沿,此下降沿一方面將PA端口的數據鎖存到輸入宏并使nWait信號變高,表示外設正忙另一方面引起外部中斷0中斷,在外部中斷0的中斷服務程序中讀取輸入宏鎖存的數據,然后將nWait信號清零通知計算機現在外設已經準備好可以再次接收數據了。

(2)數據反向傳輸

外設準備好數據需要上傳到計算機時,uPSD323X就會將數據放到PA端口,同時置低Intr信號線,向計算機申請一個中斷,計算機中由一個硬件驅動程序來處理并口的硬件中斷。驅動程序在并口中斷服務程序中,通過讀取EPP數據口獲得外設上傳的數據。由于EPP接口的握手信號由硬件產生,當計算機讀取EPP數據口時同樣會檢測nWait信號。如果nWait為低,計算機把nWrite信號置高,表明是讀周期,然后置低nDstrb,nDstrb信號就會產生一個下降沿。此下降沿使nWait信號變高,同時引起uPSD323X外部中斷定中斷。在外部中斷0的中斷服務程序中,為確保計算機將PA端口的數據取走,需不斷檢測nDstrb是否為高。當nDstrb為高時,表示計算機已將PA端口聽數據讀走,然后中斷服務程序將nWait置低,EPP數據讀周期結束。

結語

本文系統地介紹了EPP增強并口協議,并給出使用ST公司的uPSD323X系列器件實現EPP增強并口的接口方法。此方案不需要外接門電路,保密性好,成本低。