當前位置:首頁 > 工業(yè)控制 > 工業(yè)控制
[導讀]摘要:如何實現(xiàn)PC與單片機系統(tǒng)間的高速數(shù)據(jù)通信,是測量控制系統(tǒng)中經常遇到的難題。本文系統(tǒng)地介紹利用EPP接口協(xié)議實現(xiàn)高速數(shù)據(jù)通信的原理,并從硬件、軟件兩方面給出一個應用EPP接口協(xié)議的設計實例。 關鍵詞:單片

摘要:如何實現(xiàn)PC與單片機系統(tǒng)間的高速數(shù)據(jù)通信,是測量控制系統(tǒng)中經常遇到的難題。本文系統(tǒng)地介紹利用EPP接口協(xié)議實現(xiàn)高速數(shù)據(jù)通信的原理,并從硬件、軟件兩方面給出一個應用EPP接口協(xié)議的設計實例。 關鍵詞:單片機系統(tǒng) 高速數(shù)據(jù)通信 EPP 前言 單片機系統(tǒng)中常常需要具備與PC機通信的功能,便于將單片機中的數(shù)據(jù)傳送到PC機中用于統(tǒng)計分析處理;有時又需要將PC機中的數(shù)據(jù)裝入單片機系統(tǒng)中,對單片機程序進行驗證和調試。目前常用的通信方式是串行通信,但傳輸速率太低,以9600bps計算,傳輸1MB至少需要10min(分鐘)以上。并行通信克服了串行通信傳輸速率低的缺點。標準并行口SPP(Standard Parallel Port)方式實現(xiàn)了由PC機向外設的單向傳輸,但實現(xiàn)PC機接收外設發(fā)送的數(shù)據(jù)則非常麻煩;


而增強型并行口EPP(Enhanced Parallel Port)協(xié)議卻很好地解決了這一問題,能夠實現(xiàn)穩(wěn)定的高速數(shù)據(jù)通信。 一、EPP接口協(xié)議介紹 EPP協(xié)議最初是由Intel、Xircom、Zenith三家公司聯(lián)合提出的,于1994年在IEEE1284標準中發(fā)布。EPP協(xié)議有兩個標準:EPP1.7和EPP1.9。與傳統(tǒng)并行口Centronics標準利用軟件實現(xiàn)握手不同,EPP接口協(xié)議通過硬件自動握手,能達到 500KB/s~2MB/s的通信速率。 1.EPP引腳定義 EPP引腳定義如表1所列。 表1 EPP接口引腳定義 引腳號 SPP信號 EPP信號方 向說 明 1 Strobe nWrite 輸出指示主機是向外設寫(低電平)還是從外設讀(高電平) 2~9 Data0~7 Data07 輸入/輸出雙向數(shù)據(jù)總線 10 Ack Interrupt 輸入下降沿向主機申請中斷 11 Busy nWait 輸入低電平表示外設準備好傳輸數(shù)據(jù),高電平表示數(shù)傳輸完成 12 PaperOut/End Spare 輸入空余線 13 Select Spare 輸入空余線 14 Autofd nDStrb 輸出數(shù)據(jù)選通信號,低電平有效 15 Error/Fault nDStrb 輸入空余線 16 Initialize Spare 輸出初始化信號,低電平有效 17 Selected Printer nAStrb 輸出地址數(shù)據(jù)選通信號,低電平有效 18~25 Ground Ground GND 地線 2.EPP接口時序 EPP利用硬件自動握手實現(xiàn)主機與外設之間的高速雙向數(shù)據(jù)傳輸,軟件只須對相應端口寄存器進行讀/寫操作。 (1)EPP寫操作時序如圖1所示。 CPU實現(xiàn)向外設寫數(shù)據(jù)的操作步驟如下: ①程序對EPP數(shù)據(jù)寄存器執(zhí)行寫操作; ②nWrite置低;


③CPU將有效數(shù)據(jù)送到數(shù)據(jù)總線上; ④nDStrb(nAStrb)變低(只要nWait為低); ⑤主機等待nWait變高,確認數(shù)據(jù)發(fā)送成功; ⑥主機等待nWait變高,確認數(shù)據(jù)發(fā)送成功; ⑦EPP寫周期結束。 (2)EPP讀操作時序如圖2所示。 CPU實現(xiàn)從外設讀數(shù)據(jù)的操作步驟如下: ①程序對相應EPP端口寄存器執(zhí)行讀操作; ②nDStrb(nAStrb)置低(如果nWait為低); ③主機等待nWait為高,確認數(shù)據(jù)發(fā)送成功; ④主機從并行口引腳讀取數(shù)據(jù); ⑤nDStrb(nAStrb)置高; ⑥EPP讀操作周期結束。 3.EPP端口寄存器 EPP接口除了保留SPP的3個端口寄存器以外,還新增了5個端口寄存器,如表2所列。 表2 地 址端口名稱方 向 基地址+0 SPP數(shù)據(jù)端口寫 基地址+1 EPP狀態(tài)端口讀 基地址+2 EPP控制端口寫 基地址+3 EPP地址端口讀/寫 基地址+4 EPP地址端口讀/寫 基地址+5 EPP數(shù)據(jù)端口讀/寫 基地口+6 未定義(32位傳輸)讀/寫 基地址+7 未定義(32位傳輸)讀/寫 EPP狀態(tài)端口寄存器 WAIT INTR USER1 USER2 USER3 %26;#215; %26;#215; TMOUT WAIT:Wait狀態(tài)位(1有效); INTR:中斷請求狀態(tài)位(1有效); USER1~USER3:用戶自定義; TMOUT:保留(EPP1.7)超時標志位(EPP1.9)。 EPP控制端口寄存器。 %26;#215; %26;#215; DIR IRQEN ASTRB INIT DSTRB WRITE DIR:方向位(1輸入,0輸出); IRQEN:中斷使能位(1有效); ASTRB:地址選通位(0有效); INIT:初始化(1有效); DSTRB:數(shù)據(jù)選通位(0有效); WRITE:讀/寫狀態(tài)位(0:寫,1:讀)。 讀取接口狀態(tài)和控制接口都只須對相應的端口寄存器進行操作。以初始化為例: 讀操作初始化:outportb(port+2,0x24); //port為SPP數(shù)據(jù)端口地址 寫操作初始化:outportb(port+2,0x04); //port+2為EPP控制端口地址 4.EPP1.7和EPP1.9 EPP接口最先有EPP1.7標準定義,由于硬件廠商的原因,EPP現(xiàn)有兩個標準:EPP1.7和EPP1.9,可以在BIOS/外圍設備/并行口(BIOS/Peripheral Setup/Parallel Port Mode)方式中進行設置。兩者有如下不同點: (1)EPP狀態(tài)端口寄存器的最低位bit0,在EPP1.9中定義為TMOUT。在EPP操作時序中,如果PC機數(shù)據(jù)(地址)選通信號變低后,且在 10μs時間內,外設未能將nWait置為低,則TMOUT置為1,表示延時。 (2)EPP1.9標準中,只有當nWait為低時,才能開始一個操作周期;但在EPP1.7中,無論nWait狀態(tài)如何,nAstrb(nDstrb) 都會被置低,從而開始一個新的數(shù)據(jù)(地址)操作周期。


二、EPP接口傳輸數(shù)據(jù)的一個實例 在某單片機系統(tǒng)中,須要將單片機系統(tǒng)中數(shù)據(jù)存儲器的大量數(shù)據(jù)傳輸?shù)絇C機中進行分析處理。EPP接口(采用EPP1.7標準)硬件電路及軟件流程圖如圖3~圖5所示。 GAL譯碼電路方程式為/O1=/I1*/I2*/I3*I4*/I5,EPP接口選通地址為2000H。當單片機執(zhí)行如下指令: MOV DPTR,#2000H MOVX @DPTR,A 就將寄存器A中的數(shù)據(jù)鎖存到數(shù)據(jù)總線上,便于PC機利用EPP接口進行讀操作。 C語言例程: #define SPPDATA 0x0378 //定義各寄存器地址 #define SPPSTAT 0x0379 #define SPPCNTL 0x037A #define EPPADDR 0x037B #define EPPDATA 0x037C #include FILE *fp; Int data; Long i; int k; fp=fopen(filename,"wb"); //打開要存儲數(shù)據(jù)的文件 outportb(SPPCNTL,0x24); //向控制端口發(fā)00100100代碼,初始化為讀操作模式for(i=0;i<524288;i++) { while(!((inportb(SPPSTAT))%26;amp;0x80)) //查詢是否發(fā)送完畢 {} data=inportb(EPPDATA); //讀數(shù)據(jù) fputc(data,fp); //將數(shù)據(jù)存入文件 } fclose(fp); //關閉文件 單片機匯編語言程序為: FLAG1 BIT P1.7 ;標志位 FLAG2 BIT P3.4 STADD EQU 0000H ;要傳輸數(shù)據(jù)段的起始地址 NUM EQU FFFFH ;要傳輸數(shù)據(jù)端的字節(jié)個數(shù) COMMUN:MOV DPTR,#STADD COMM1:MOVX A,@DPTR PUSH DPH PUSH DPL MOV DPTR,#EPP_CE MOVX @DPTR,A POP DPL POP DPH SETB FLAG1 ;將P1.7置高 CLR FLAG2 ;將P3.4置低 JB FLAG1,$;查詢P1.7為低,即nDStrb為低,表示PC讀操作已完成 SETB FLAG2 ;將P3.4置高 SETB FLAG1 ;將P1.7置高 INC DPTR CJNE NUM,COMM1 ;循環(huán)NUM次 RET 實際應用該接口電路,能實現(xiàn)1MB/s的傳輸速率,并且性能穩(wěn)定可靠。 如果應用EPP1.9標準,硬件電路不用變動,軟件中可以省略對nWait進行判斷的環(huán)節(jié),速率能接近2MB/s。


結束語 本文系統(tǒng)介紹了EPP接口的原理,并且給出了一個利用EPP接口實現(xiàn)PC與單片機系統(tǒng)間高速傳輸?shù)膶嵗PP接口協(xié)議解決雙向高速數(shù)據(jù)傳輸?shù)碾y題,在智能測量、自動控制、數(shù)據(jù)傳輸?shù)阮I域必將得到廣泛的應用。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉