淺談增強并行口EPP的便攜式數據采集系統應用
利用傳統的標準并行口(SPP)或RS232進(jìn)行數據傳輸,其速度和靈活性受到很大限制。簡(jiǎn)并行過(guò)程(Simplified Parallel Process)是基于CMMI以及軟件工程和項目管理知識而創(chuàng )作的一種軟件過(guò)程改進(jìn)方法和規范,它由眾多的過(guò)程規范和文檔模板組成。SPP主要用于指導國內IT企業(yè)持續地改進(jìn)其軟件過(guò)程能力。通??蛇x擇Nibble(4bits)或Byte(8bits)的方式進(jìn)行輸入數據,還有一種Bi-directiONal的雙向傳輸方式,這種方式需硬件支持。SPP硬件是由8條數據線(xiàn),4條控制線(xiàn)和5條狀態(tài)線(xiàn)所組成,它們分別對應三個(gè)不同的寄存器來(lái)進(jìn)行數據的讀寫(xiě)操作。而增強型并行端口EPP(Enhanced Parallel Port)不但與SPP兼容,而且其最高傳輸速率可達ISA總線(xiàn)的能力(2MHz)。由于便攜式計算機日益普及,基于EPP協(xié)議開(kāi)發(fā)的便攜式微機采集系統將會(huì )是一個(gè)發(fā)展趨勢。
本文引用地址:http://dyxdggzs.com/article/149863.htm通常,低速的數據采集系統可不需要板上的數據緩存區。數據采集通常有兩種解釋?zhuān)阂环N是指盤(pán)點(diǎn)機、掌上電腦等終端電腦設備;另外一種是指網(wǎng)絡(luò )數據采集用的軟件。數據采集系統包括了:可視化的報表定義、審核關(guān)系的定義、報表的審批和發(fā)布、數據填報、數據預處理、數據評審、綜合查詢(xún)統計等功能模塊。其管腳功能如圖1所示。它不但提供了存儲空間作為數據的緩沖,而且還在EPP并行總線(xiàn)和A/D轉換器之間充當一彈性的存儲器,因而無(wú)需考慮相互間的同步與協(xié)調。FIFO的優(yōu)點(diǎn)在于讀寫(xiě)時(shí)序要求簡(jiǎn)單,內部帶有讀寫(xiě)的環(huán)形指針,在對芯片操作時(shí)不需額外的地址信息。隨著(zhù)FIFO芯片存儲量的不斷增加和價(jià)格的不斷下降,它將成為傳統數據存儲器件RAM、SRAM等的有力替代者。方案中的A/D轉換器采用了Analog Device 公司的AD1671,最大采集速率可達1.25MHz、12Bit無(wú)漏碼轉換輸出。
1 EPP協(xié)議簡(jiǎn)介
EPP協(xié)議與標準并行口協(xié)議兼容且能完成數據的雙向傳輸,它提供了四種數據傳送周期:數據寫(xiě)周期;數據讀周期;地址寫(xiě)周期;地址讀周期。雖然用于域名是EPP最初的動(dòng)因,但協(xié)議設計的目標是可應用于任何訂單和執行體系。EPP協(xié)議基于XML(結構化文本)格式,底層網(wǎng)絡(luò )傳輸是不固定的,雖 EPP泡沫然目前指定的唯一方法是通過(guò)TCP,但該協(xié)議的靈活性設計,同樣允許其使用如BEEP、SMTP、SOAP或其他方式傳輸。該協(xié)議由IETF的provreg工作組于2004年定稿,2009年8月,IETF認定了EPP的充分標準地位。
在設計中我們把數據周期用于便攜機與采集板之間的數據傳輸,地址周期用于地址的傳送與選通。表1列出了DB25插座在EPP協(xié)議中的各腳定義。
表1 EPP信號定義
EPP信號 | 方向 | DB25對應腳 | 描述 |
nWrite | out | 1 | 低電平寫(xiě),高電平讀 |
nDataSTB | out | 14 | 低有效,數據讀寫(xiě) |
nAddrSTB | out | 17 | 低有效,地址讀寫(xiě) |
AD[8:1] | Bi | 2~9 | 雙向數據/地址線(xiàn) |
GND | 18~25 | 地線(xiàn) | |
nReset | out | 16 | 低有效,外設復位 |
NINTR | in | 10 | 外設中斷,對主機產(chǎn)生 |
一個(gè)中斷請求 | |||
nWait | in | 11 | 握手信號,低表示可以開(kāi)始一個(gè) |
讀寫(xiě)周期,高表示可以 | |||
結束一個(gè)讀寫(xiě)周期 | |||
Userdfn | in | 12/13/15 | 根據不同外設靈活定義 |
圖2是一個(gè)數據寫(xiě)周期的例子。
(1) 程序執行一個(gè)I/O寫(xiě)周期,寫(xiě)數據到Port4(EPP數據寄存器)。
(2)nWrite變低,數據送到串行口上。
(3)由于nWait為低,表示可以開(kāi)始一個(gè)數據寫(xiě)周期,nDataSTB變低。
(4)等待外設的握手信號(等待nWait變高)。
(5)nDataSTB變高,EPP周期結束。
(6)ISA的I/O周期結束。
(7)nWait變低,表示可以開(kāi)始下一個(gè)數據寫(xiě)周期。
可以看到,整個(gè)數據傳送過(guò)程發(fā)生在一個(gè)ISA I/O周期內,所以用EPP協(xié)議傳送數據,系統可以獲得接近ISA總線(xiàn)的傳輸率(500k~2M byte/s)。
2 AD1671控制及采集系統工作原理
圖3是AD1671的AD轉換時(shí)序圖
AD1671在Encode信號上升沿開(kāi)始A/D轉換,Dav信號在本次轉換完成前一定時(shí)間變低,直到Dav出現上升沿表示本次轉換結束。為防止數字噪聲耦合帶來(lái)的誤差,Encode信號應在Dav信號變低后50ns內變低。系統中通過(guò)8254計數器對晶振進(jìn)行分頻來(lái)給AD1671提供Encode信號,以滿(mǎn)足其工作時(shí)序的需要。系統原理圖如圖4所示。系統初始化時(shí),向8254的Clock0寫(xiě)入計數值,由此可以靈活改變采樣間隔,同時(shí)寫(xiě)入Clock1的計數值用來(lái)控制采樣的個(gè)數。晶振采用5MHz有源四腳晶振,D觸發(fā)器實(shí)現觸發(fā)功能,系統工作原理如下:
系統初始化完成后,經(jīng)地址譯碼器產(chǎn)生Add2信號,使D觸發(fā)器狀態(tài)翻轉,由低變到高,8254計數使能端Gate0、Gate1變高,8254開(kāi)始方式2的計數。當Clock0的計數時(shí)間到時(shí),發(fā)出一個(gè)寬度為一時(shí)鐘周期的負脈沖,經(jīng)反向送入Encode,啟動(dòng)AD1671進(jìn)行A/D轉換。一次轉換結束,利用Dav信號將轉換的數據寫(xiě)入IDT7202,同時(shí)Clock1計數一次。當Clock1計數時(shí)間到后,發(fā)出一個(gè)脈沖,用來(lái)實(shí)現對D觸發(fā)器的清零,使Gate0、Gate1變低,停止AD1671轉換,完成一次系統的采集工作。
3 FIFO與EPP的接口電路
圖5是EPP與IDT7202的接口電路
此電路是基于EPP1.9設計的。nDataSTB與nAddSTB組合產(chǎn)生nWait回送信號,實(shí)現連鎖握手。方案中分別用數據讀周期、地址讀周期對1#FIFO、2#FIFO進(jìn)行讀取。EPP模式設定后,對FIFO存儲器的讀取非常簡(jiǎn)單。通過(guò)產(chǎn)生一個(gè)單I/O讀指令到基址+4,EPP控制器就會(huì )產(chǎn)生所需的選通信號,用EPP數據讀周期傳送數據。對基址+3的I/O操作,可產(chǎn)生地址周期信號。
C語(yǔ)言指令如下:
讀一個(gè)字節數據:Data=Inportb(Base_Addr+4);
讀一個(gè)字節地址: Data=Inportb(Base_Addr+3);
實(shí)際應用中FIFO的存取時(shí)間達到ns 級,EPP的速度也接近ISA總線(xiàn)的速率。上述接口電路屬于高頻,電路設計要注意消除干擾。FIFO的讀寫(xiě)信源應盡量靠近FIFO,沒(méi)用到的數據輸入端應接地或VCC等。
評論