一、計算機并口操作模式概述 1.SPP模式 SPP(Standard Parallel Port)模式即標準并口模式,是為打印輸出而設計的。數據由計算機單向輸出,不能用數據線(xiàn)進(jìn)行數據輸入,要做數據輸入只能利用狀態(tài)線(xiàn)。并口狀態(tài)線(xiàn)只有5根,所以每個(gè)字節要分兩次輸入,再拼裝為一個(gè)完整的字節。SPP模式速度較低,對硬件的要求不高,適用于低速的應用場(chǎng)合,如打印機、軟件狗等。 2.PS/2模式 IBM公司引進(jìn)了PS/2設計后開(kāi)始支持并口的雙向數據傳輸。PS/2模式和SPP模式兼容。它沒(méi)有改變標準并口的信號定義,也沒(méi)有改變并口接插件的引腳定義,而是通過(guò)一個(gè)方向控制位來(lái)設置并口的數據方向:如果設置為輸出,PS/2模式就和SPP模式完全相同;如果設置為輸入,則從并口數據線(xiàn)上每次可以讀取一個(gè)字節的數據。同時(shí),PS/2模式的總線(xiàn)控制功能提高了并口的速度。 無(wú)論是SPP模式還是PS/2模式,數據通信信度都不高。原因在于并口本身的I/O速度不高(只有100~400KB/s)。另一方面,每次數據傳輸都要通過(guò)I/O操作進(jìn)行軟件數據交換。通常情況下,一次互鎖數據交換的數據傳輸至少需要5次I/O操作,才能保證進(jìn)序的完整性。這兩方面因素使SPP模式和PS/2模式只能用于速度較低的應用領(lǐng)域。 3.EPP模式 EPP(Enhanced Parallel Port)增強并口模式支持并口和外設間的雙向數據交換,速度能夠達到1~2MB/s。增強并口通過(guò)精密的邏輯界面和明確定義的電氣參數保證了數據傳輸的速度和準確性。 4.ECP模式 ECP(Extended Capabilities Port)模式,即擴展功能和模式,其性能更高。ECP模式有16個(gè)字節的FIFO,并且支持DMA功能。在不降低系統性能的前提下減輕計算機CPU的負擔,提高了應用系統的整體性能。更為重要的是,ECP模式把其他幾種并口模式都納入了ECP模式的定義中。ECP模式定義了ECR擴展控制寄存器,可以把并口的操作模式設置為SPP,PS/2,EPP或者ECP,從而構成一個(gè)完整的并口系統。 SPP模式、PS/2模式和EPP模式都是主從式結構,數據傳輸雙方是一種不對等的關(guān)系。數據傳輸只能由計算機來(lái)啟動(dòng),外設不能啟動(dòng)數據傳輸。如果外設要進(jìn)行數據傳輸,它只能向計算機提出中斷申請,然后由計算機啟動(dòng)數據傳輸。ECP模式則不是主從式結構,數據傳輸的雙方都可以啟動(dòng)數據傳輸。ECP模式可以用于計算機之間的互聯(lián),而EPP模式則不能。 雖然ECP并口模式的性能比EPP高,但是ECP模式不太容易實(shí)現,大部分的設計者都采用了EPP模式來(lái)設計自己的應用系統。EPP模式比ECP模式更簡(jiǎn)潔,靈活,可靠,在工業(yè)界得到了更多的實(shí)際應用。 二、EPP增強并口的實(shí)現方案 1.EPP增益并口時(shí)序 EPP協(xié)議定義了4種并口周期:數據寫(xiě)周期、數據讀周期、地址寫(xiě)周期和地址讀周期。數據周期用于計算機和外設間傳送數據;地址周期用于傳送地址、通道、命令、控制和狀態(tài)等輔助信息。圖1是EPP數據寫(xiě)的時(shí)序圖,圖中的nIOW信號實(shí)際上在進(jìn)行EPP數據寫(xiě)時(shí)并不會(huì )產(chǎn)生,只不過(guò)是表示所有的操作都發(fā)生在一個(gè)I/O周期內。在t1時(shí)刻,計算機檢測nWAIT信號,如果nWAIT為低,則表明外設已經(jīng)準備好,可以啟動(dòng)一個(gè)EPP周期了。在t2時(shí)刻,計算機把nWRITE信號置為低,表明是寫(xiě)周期,同時(shí)驅動(dòng)數據線(xiàn)。在t3時(shí)刻,計算機把nDataStrobe信號置為低,表明是數據周期。外設在檢測到nDataStrobe為低后讀取數據并做相應的數據處理。在t4時(shí)刻把nWAIT置為高,表明已經(jīng)讀取數據,計算機可以結束該EPP周期。在t5和t6時(shí)刻,計算機把nDataStrobe和nWRITE置為高。這樣,一個(gè)完整的EPP數據寫(xiě)周期就完成了。圖1中的nDataStrobe信號如果換為nAddStrobe信號,就是EPP地址寫(xiě)周期。圖2是EPP地址讀周期。與EPP寫(xiě)周期類(lèi)似,只不過(guò)是由外設來(lái)驅動(dòng)數據線(xiàn)。 EPP時(shí)序還包括初始化、中斷申請等,可以查閱參考文獻1獲得詳細的時(shí)序圖及時(shí)序說(shuō)明。 2.EPP增益并口的邏輯界面 EPP增強并口模式使用與標準并口模式相同的基地址,定義了8個(gè)I/O地址;刂+0是SPP數據口,基地址+1是SPP狀態(tài)口,基地址+2是SPP控制口。這3個(gè)口實(shí)際上就是SPP模式下的數據、狀態(tài)和控制口,這樣保證了EPP模式和SPP模式的軟硬件兼容性。 基地址+3是EPP地址口,向這個(gè)I/O口中寫(xiě)數據將產(chǎn)生一個(gè)連鎖的EPP地址寫(xiě)周期,從這個(gè)I/O口中讀數據將產(chǎn)生一個(gè)連鎖的EPP地址讀周期。在不同的EPP應用系統中,EPP地址口可以根據實(shí)際需要設計為設備選擇、通道選擇、控制寄存器、狀態(tài)信息等,給EPP應用系統提供了極大的靈活性。 基地址+4是EPP數據口,向這個(gè)I/O口中寫(xiě)數據將產(chǎn)生一個(gè)連鎖的EPP數據寫(xiě)周期,從這個(gè)I/O口讀數據將產(chǎn)生一個(gè)連鎖的EPP數據讀周期。 基地址+5~+7與基地址+4一起提供地EPP數據口的雙字操作能力。EPP允許主機在1個(gè)時(shí)鐘周期內寫(xiě)1個(gè)32位雙字,EPP電路再把32位雙字拆為4個(gè)字節依次從EPP數據口中送出去。也可以用16位字方式進(jìn)行數據傳送。 3.EPP增強并口外設的硬件實(shí)現方案 EPP增強并口的速度可以達到1~2MB/s,這對外設的接口設計提出了一個(gè)很高的要求。如果外設響應太慢,則系統的整體性能將大大下降。EPP接口設計方案是整個(gè)EPP應用系統整體性能的關(guān)鍵。 (1)門(mén)電路實(shí)現 這種實(shí)現方案可以實(shí)現基本的接口,但是無(wú)法對地址周期作出具體的處理。門(mén)電路實(shí)現方案的最大缺點(diǎn)是缺乏基本的靈活性,并且沒(méi)有任何的保密措施。設計方案的任何改動(dòng)都要重新設計整個(gè)接口系統。因此,不推薦使用這種實(shí)現方案。 (2)可編程邏輯器件實(shí)現 用戶(hù)可編程邏輯器件如FPGA和CPLD可以實(shí)現EPP增強并口的接口設計。這種實(shí)現方案可以達到并口的速度極限,并且提供了很大的靈活性。FPGA容量大、功耗低、寄存器資源豐富,可以把EPP應用系統的其他復雜接口和控制都做在一個(gè)芯片中。缺點(diǎn)是每次使用前FPGA都需要配置,并且FPGA抗干擾能力差,在惡劣的環(huán)境中容易丟失配置信息。CPLD容量較小,功耗較大,寄存器資源匱乏,可以實(shí)現EPP接口及一些不太復雜的接口和控制功能。CPLD用EEPROM或者FLASH來(lái)保存配置信息,掉電不丟失?删幊踢壿嬈骷荅PP應用系統優(yōu)先選用的實(shí)現方案。 (3)DSP實(shí)現 DSP的指令周期短,CPU運行速度快,也可以用來(lái)實(shí)現EPP增強并口的接口設計。但是DSP本身是用來(lái)做運算的,接口控制指令的運行效率不高,接口速度不如可編程邏輯器件實(shí)現方案的速度。如果EPP應用系統要求有比較強的運算能力,用DSP來(lái)實(shí)現整個(gè)應用系統的接口和運算功能是一個(gè)比較合適的選擇。 (4)單片機實(shí)現 用單片機來(lái)實(shí)現EPP接口似乎有些不可思議,因為單片機的速度比較慢,并且指令的執行是串行的,不能像CPLD或者FPGA那樣把一個(gè)大任務(wù)分成幾個(gè)獨立的小任務(wù)并行處理。作者原來(lái)一直用可編程邏輯器件實(shí)現EPP接口設計,認為單片機不可能實(shí)現EPP接口設計。在了解了Motorola公司的68HC908GP32(簡(jiǎn)稱(chēng)GP32)單片機卓越的超頻性能后才用GP32單片機實(shí)現EPP接口設計。實(shí)踐表明,GP32單片機可以很好地完成EPP接口任務(wù),性能完全能夠滿(mǎn)足計算機和外設雙方的要求。GP32單片機豐富的外高和高效率的I/O指令系統彌補了速度慢的不足。如果考慮一個(gè)EPP應用系統的整體功能,用單片機來(lái)實(shí)現接口和控制功能是性?xún)r(jià)比最高的實(shí)現方案。 三、用68HC908GP32單片機實(shí)現EPP接口設計 1.68HC908GP32單片機功能概述 68HC908GP32是Motorola公司1999年推出的68HC08系列單片機。GP32采用68HC08CPU,其性能是68HC05CPU的5~10倍。GP32有32KB的FLASH閃速存儲器,具有在線(xiàn)編程能力和超強的保密功能;有512字節的RAM、增強型串行通信口SCI、串行外設接口SPI;有兩個(gè)16位雙通道定時(shí)器接口,每個(gè)通道可以選擇為輸入捕獲、輸出比較或PWM,其定時(shí)時(shí)鐘可為內部總線(xiàn)的1,2,4,8,16,32和64分頻;有8路8位A/D轉換器、8位鍵盤(pán)喚醒口、29根通用I/O引腳。系統保護特性為:計算機工作正常(COP)復位、低壓檢測復位、非法指令檢測復位及非法地址檢測復位。 2.GP32的時(shí)鐘發(fā)生模塊 GP32有時(shí)鐘發(fā)生模塊,利用32kHz晶振和片內PLL(鎖相環(huán))電路可以產(chǎn)生高達19.5MHz的工作頻率。一般的單片機不能超頻運行,否則會(huì )因為讀代碼錯誤、代碼運行錯誤、芯片發(fā)熱等因素導致芯片不能正常運行,頻繁死機,甚至會(huì )燒毀芯片。GP32的CPU正常情況工作在8MHz頻率下,但是在2.4倍額定頻率下還能夠穩定運行。作者做過(guò)一個(gè)實(shí)驗,GP32工作在19.5MHz下,在實(shí)驗室環(huán)境中穩定運行了90h,在電力系統動(dòng)態(tài)模擬實(shí)驗室的直流發(fā)電機電刷附近穩定運行了90min,運行過(guò)程中沒(méi)有出現過(guò)意外的死機現象。實(shí)驗表明,GP32單片機是可以長(cháng)期超頻工作的。 3.用GP32單片機實(shí)現EPP增強并口的接口設計 EPP增強并口定義了8根數據線(xiàn)、2根狀態(tài)線(xiàn)和3根控制線(xiàn)。用GP32的雙向I/O線(xiàn)可以直接和EPP的信號線(xiàn)相連,GP32單片機有足夠的驅動(dòng)能力來(lái)驅動(dòng)并口信號。 軟件設計是用GP32單片機實(shí)現EPP接口設計的關(guān)鍵。為了保證通信速度,必須對GP32單片機的指令進(jìn)行優(yōu)化,選擇那些執行速度快的指令;同時(shí)采用合理的數據流控制方法,既要保證通信的快速性,又要保證通信數據的正確性。例如,以數據包的方式傳送大批量的數據,并以數據包為單位處理數據。 在19.5MHz的工作頻率下,GP32實(shí)現的EPP增強并口可以達到400KB/s的通信速度。如果降低GP32的工作頻率,則通信速度成比例地降低,但是最低不能低于100B/s,否則會(huì )因外設響應太慢而導致通信失敗。 四、用GP32單片機實(shí)現的數據采集板 GP32單片機有8路8位的AD轉換器,可以勝任一些要求低采樣速度、低分辨率的應用場(chǎng)合。作者設計了一個(gè)采用GP32單片機實(shí)現的數據采集系統,電路圖如圖3所示。U1是GP32單片機,JAD是模擬信號輸入接口,PARAPORT是并口,C1,C2,C3,X1,RB是Rs一起構成了GP32單片機鎖相環(huán)電路。 通過(guò)計算機可以設置A/D轉換的通道、啟動(dòng)條件,能夠啟動(dòng)或者停止A/D采樣。GP32有512字節的片內RAM,其中的384字節設定為A/D轉換的緩沖器,其余的RAM用做堆棧和變量。如果A/D轉換緩沖器已經(jīng)滿(mǎn)256字節,則GP32單片機向計算機發(fā)送一個(gè)中斷,計算機用EPP并口協(xié)議讀取A/D轉換的數據。 計算機中由一個(gè)硬件驅動(dòng)程序來(lái)處理并口的硬件中斷。驅動(dòng)程序在并口中斷服務(wù)程序中通過(guò)EPP并口讀取A/D轉換的結果,并且向RING3的應用程序發(fā)送消息通知應用程序讀取數據。應用程序對數據做進(jìn)一步的分析和處理,如圖形顯示、數據文件的存取等。 |