1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

    <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
    <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
  2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
    現(xiàn)在位置:范文先生網>理工論文>電子通信論文>利用EPP接口協(xié)議實現(xiàn)高速數據通信

    利用EPP接口協(xié)議實現(xiàn)高速數據通信

    時間:2023-02-20 22:38:10 電子通信論文 我要投稿
    • 相關推薦

    利用EPP接口協(xié)議實現(xiàn)高速數據通信

    摘要:如何實現(xiàn)PC與單片機系統(tǒng)間的高速數據通信,是測量控制系統(tǒng)中經常遇到的難題。本文系統(tǒng)地介紹利用EPP接口協(xié)議實現(xiàn)高速數據通信的原理,并從硬件、軟件兩方面給出一個應用EPP接口協(xié)議的設計實例。

        關鍵詞:單片機系統(tǒng) 高速數據通信 EPP

    利用EPP接口協(xié)議實現(xiàn)高速數據通信

    前言

    單片機系統(tǒng)中常常需要具備與PC機通信的功能,便于將單片機中的數據傳送到PC機中用于統(tǒng)計分析處理;有時又需要將PC機中的數據裝入單片機系統(tǒng)中,對單片機程序進行驗證和調試。目前常用的通信方式是串行通信,但傳輸速率太低,以9600bps計算,傳輸1MB至少需要10min(分鐘)以上。并行通信克服了串行通信傳輸速率低的缺點。標準并行口SPP(Standard Parallel Port)方式實現(xiàn)了由PC機向外設的單向傳輸,但實現(xiàn)PC機接收外設發(fā)送的數據則非常麻煩;(范文先生網www.baimashangsha.com收集整理)而增強型并行口EPP(Enhanced Parallel Port)協(xié)議卻很好地解決了這一問題,能夠實現(xiàn)穩(wěn)定的高速數據通信。

    一、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 輸入/輸出 雙向數據總線 10 Ack Interrupt 輸入 下降沿向主機申請中斷 11 Busy nWait 輸入 低電平表示外設準備好傳輸數據,高電平表示數傳輸完成 12 PaperOut/End Spare 輸入 空余線 13 Select Spare 輸入 空余線 14 Autofd nDStrb 輸出 數據選通信號,低電平有效 15 Error/Fault nDStrb 輸入 空余線 16 Initialize Spare 輸出 初始化信號,低電平有效 17 Selected Printer nAStrb 輸出 地址數據選通信號,低電平有效 18~25 Ground Ground GND 地線

    2.EPP接口時序

    EPP利用硬件自動握手實現(xiàn)主機與外設之間的高速雙向數據傳輸,軟件只須對相應端口寄存器進行讀/寫操作。

    (1)EPP寫操作時序如圖1所示。

    CPU實現(xiàn)向外設寫數據的操作步驟如下:

    ①程序對EPP數據寄存器執(zhí)行寫操作;

    ②nWrite置低;

    ③CPU將有效數據送到數據總線上;

    ④nDStrb(nAStrb)變低(只要nWait為低);

    ⑤主機等待nWait變高,確認數據發(fā)送成功;

    ⑥主機等待nWait變高,確認數據發(fā)送成功;

    ⑦EPP寫周期結束。

    (2)EPP讀操作時序如圖2所示。

    CPU實現(xiàn)從外設讀數據的操作步驟如下:

    ①程序對相應EPP端口寄存器執(zhí)行讀操作;

    ②nDStrb(nAStrb)置低(如果nWait為低);

    ③主機等待nWait為高,確認數據發(fā)送成功;

    ④主機從并行口引腳讀取數據;

    ⑤nDStrb(nAStrb)置高;

    ⑥EPP讀操作周期結束。

    3.EPP端口寄存器

    EPP接口除了保留SPP的3個端口寄存器以外,還新增了5個端口寄存器,如表2所列。

    表2 

    地   址 端口名稱 方    向 基地址+0 SPP數據端口 寫 基地址+1 EPP狀態(tài)端口 讀 基地址+2 EPP控制端口 寫 基地址+3 EPP地址端口 讀/寫 基地址+4 EPP地址端口 讀/寫 基地址+5 EPP數據端口 讀/寫 基地口+6 未定義(32位傳輸) 讀/寫 基地址+7 未定義(32位傳輸) 讀/寫

    EPP狀態(tài)端口寄存器

    WAIT INTR USER1 USER2 USER3 × × TMOUT

    WAIT:Wait狀態(tài)位(1有效);

    INTR:中斷請求狀態(tài)位(1有效);

    USER1~USER3:用戶自定義;

    TMOUT:保留(EPP1.7)超時標志位(EPP1.9)。

    EPP控制端口寄存器。

    × × DIR IRQEN ASTRB INIT DSTRB WRITE

    DIR:方向位(1輸入,0輸出);

    IRQEN:中斷使能位(1有效);

    ASTRB:地址選通位(0有效);

    INIT:初始化(1有效);

    DSTRB:數據選通位(0有效);

    WRITE:讀/寫狀態(tài)位(0:寫,1:讀)。

    讀取接口狀態(tài)和控制接口都只須對相應的端口寄存器進行操作。以初始化為例:

    讀操作初始化:outportb(port+2,0x24);

    //port為SPP數據端口地址

    寫操作初始化: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機數據(地址)選通信號變低后,且在10μs時間內,外設未能將nWait置為低,則TMOUT置為1,表示延時。

    (2)EPP1.9標準中,只有當nWait為低時,才能開始一個操作周期;但在EPP1.7中,無論nWait狀態(tài)如何,nAstrb(nDstrb)都會被置低,從而開始一個新的數據(地址)操作周期。

    二、EPP接口傳輸數據的一個實例

    在某單片機系統(tǒng)中,須要將單片機系統(tǒng)中數據存儲器的大量數據傳輸到PC機中進行分析處理。EPP接口(采用EPP1.7標準)硬件電路及軟件流程圖如圖3~圖5所示。

    GAL譯碼電路方程式為/O1=/I1*/I2*/I3*I4*/I5,EPP接口選通地址為2000H。當單片機執(zhí)行如下指令:

    MOV DPTR,#2000H

    MOVX @DPTR,A

    就將寄存器A中的數據鎖存到數據總線上,便于PC機利用EPP接口進行讀操作。

    C語言例程:

    #define SPPDATA 0x0378 //定義各寄存器地址

    #define SPPSTAT 0x0379

    #define SPPCNTL 0x037A

    #define EPPADDR 0x037B

    #define EPPDATA 0x037C

    #include<stdio.h>

    FILE *fp;

    Int data;

    Long i;

    int k;

    fp=fopen(filename,"wb"); //打開要存儲數據的文件

    outportb(SPPCNTL,0x24);

    //向控制端口發(fā)00100100代碼,初始化為讀操作模式for(i=0;i<524288;i++)

    {

    while(!((inportb(SPPSTAT))&0x80))

    //查詢是否發(fā)送完畢

    {}

    data=inportb(EPPDATA); //讀數據

    fputc(data,fp); //將數據存入文件

    }

    fclose(fp); //關閉文件

    單片機匯編語言程序為:

    FLAG1 BIT P1.7 ;標志位

    FLAG2 BIT P3.4

    STADD EQU 0000H ;要傳輸數據段的起始地址

    NUM EQU FFFFH ;要傳輸數據端的字節(jié)個數

    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)間高速傳輸的實例。EPP接口協(xié)議解決雙向高速數據傳輸的難題,在智能測量、自動控制、數據傳輸等領域必將得到廣泛的應用。


    【利用EPP接口協(xié)議實現(xiàn)高速數據通信】相關文章:

    增強并口EPP與DSP接口的設計增強并口EPP與DSP接口的設計08-06

    利用FPGA實現(xiàn)MMC2107與SDRAM接口設計08-06

    USB接口的高速數據采集卡的設計與實現(xiàn)08-06

    用68HC908GP32單片機實現(xiàn)EPP增強并口的接口技術08-06

    DSP與慢速設備接口的實現(xiàn)08-06

    基于uPSD323X的EPP增強并口的接口技術08-06

    通過SPI接口協(xié)議實現(xiàn)DSP與其它設備的通信08-06

    高速PCI總線接口卡的開發(fā)08-06

    嵌入式設備鼠標接口的設計與實現(xiàn)08-06

    国产福利萌白酱精品tv一区_日韩亚洲中字无码一区二区三区_亚洲欧洲高清无码在线_全黄无码免费一级毛片
    1. <code id="ya7qu"><span id="ya7qu"><label id="ya7qu"></label></span></code>

      <b id="ya7qu"><bdo id="ya7qu"></bdo></b>
      <wbr id="ya7qu"><optgroup id="ya7qu"><strike id="ya7qu"></strike></optgroup></wbr>
    2. <u id="ya7qu"><bdo id="ya7qu"></bdo></u>
      日本日本乱码伦视频免费 | 正在播放国产乱子伦最新视频 | 午夜福利色佬网站 | 中文成人无字幕乱码精品区 | 尤物亚洲入口一区 | 亚洲综合中文字线观看看 |