其中,最主要的兩根握手線是/DSTRB和WAIT,計算機中相應(yīng)的I/O控制芯片會根據(jù)/DSTRB和/WAIT的電平轉(zhuǎn)換情況自動執(zhí)行或終止對并行口數(shù)據(jù)的讀寫操作,時序關(guān)系如圖1所示。圖中未給出的EPP協(xié)議數(shù)據(jù)讀周期與EPP協(xié)議地址寫周期可以由此圖推出。
2.2 采用增強型并口時的系統(tǒng)設(shè)計
采用增強型并口(EPP)時,高速分組無線網(wǎng)網(wǎng)絡(luò)節(jié)點的結(jié)構(gòu)如圖2所示。
其中,接收模塊向計算機發(fā)送接收到的數(shù)據(jù),而發(fā)射模塊從計算機接收待發(fā)送的數(shù)據(jù);同時,利用INTR、/DSTRB、/WAIT握手線實現(xiàn)收/發(fā)模塊與計算機間的通信流控。從時序圖可以看出,當(dāng)/DSTRB與/WAIT均為低時可以對數(shù)據(jù)進行讀寫,而/WAIT變?yōu)楦邥r則認為一個I/O周期結(jié)束。所以,在外設(shè)認為一次數(shù)據(jù)傳輸結(jié)束時,即可將/WAIT置為高;相應(yīng)地,計算機內(nèi)的I/O控制芯片會置/DSTRB為高。外設(shè)可通過INTR使計算機進入中斷處理程序,開始數(shù)據(jù)的發(fā)送或接收。計算機通過增強型并口及外部接口電路分別與接收模塊、發(fā)射模塊進行通信,相應(yīng)的通信流程見圖3。
2.3 硬件實現(xiàn)方法
為充分利用各模塊資源和降低系統(tǒng)復(fù)雜性,根據(jù)收發(fā)模塊的實際情況,用FPGA[3](具體為Altera公司的FLEX10K100)和DSP實際與計算機增強型并口的通信功能。在接收模塊,首先要去除物理層的幀同步碼才能將后續(xù)數(shù)據(jù)上傳。四組巴克碼串聯(lián)為幀同步碼[5]能(共48位),并用巴克碼的不同組合方式代表不同的傳輸速率,對幀同步碼的處理和其他處理(如信道估計等)用DSP實現(xiàn)。通過FPGA解調(diào)后的數(shù)據(jù)夫妻送入DSP[4](具體為AD公司的AD2181)中,利用DSP的可編程I/O管腳實現(xiàn)通信的握手功能。發(fā)射模塊的接口完全由FPGA實現(xiàn),包括中斷請求、并口數(shù)據(jù)的讀取、握手信號的產(chǎn)生、以及時序控制等。發(fā)射模塊用單片機來完成控制。當(dāng)控制單元檢測至終端請求發(fā)送數(shù)據(jù)時,控制單元首先將幀同步碼送入FPGA進行擴頻、編碼、調(diào)制并送入電臺,之后給終端(計算機)發(fā)出發(fā)送數(shù)據(jù)的中斷請求,啟動數(shù)據(jù)的發(fā)送過程。
2.4 計算機對并口的操作
因為在EPP模式下,由I/O控制器對所有的握手線進行處理,不需要CPU干預(yù),所以計算機上的通信程序較簡單,EPP協(xié)議的用戶編程接口是協(xié)議定義的幾個I/O地址。當(dāng)并口基礎(chǔ)址為378H時,EPP的地址寄存器為37BH,數(shù)據(jù)寄存器為37CH,對這兩個寄存器的讀寫就可產(chǎn)生地址和數(shù)據(jù)的讀寫周期。
通過試驗發(fā)現(xiàn),在主頻為400MHz的奔騰計算機上,沒有/WAIT信號的情況下,一個EPP I/O周期最長為2μs;而在接口電路設(shè)計合適的情況下,/WAIT信號在輸入數(shù)據(jù)100ns后升高,即數(shù)據(jù)穩(wěn)定時間為100ns,可以保證數(shù)據(jù)傳輸?shù)姆(wěn)定可靠。即使再縮小數(shù)據(jù)穩(wěn)定時間,數(shù)據(jù)傳輸仍能正常進行。從試驗結(jié)果看,數(shù)據(jù)速率可達21Mbyte/s。
通常情況下,計算機并口為標準并口(SPP)模式,可以在BIOS中設(shè)置為增強型并口,也可以向I/O控制器中的控制寄存器(ECR)寫入控制字來完成EPP模式的設(shè)置。ECR的I/O端口地址為77AH。首先,向ECR端口發(fā)IN指令,存儲讀回的數(shù)據(jù);然后,向ECR端口發(fā)OUT指令,寫入相應(yīng)的狀態(tài)字,所有傳輸完成后,把原存儲的狀態(tài)字寫回。





