中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 關(guān) 閉

        新聞中心

        EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 利用EPP接口協(xié)議實(shí)現(xiàn)高速數(shù)據(jù)通信

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

        作者: 時(shí)間:2004-12-07 來(lái)源:網(wǎng)絡(luò) 收藏
        摘要:如何實(shí)現(xiàn)PC與單片機(jī)系統(tǒng)間的,是測(cè)量控制系統(tǒng)中經(jīng)常遇到的難題。本文系統(tǒng)地介紹利用實(shí)現(xiàn)的原理,并從硬件、軟件兩方面給出一個(gè)應(yīng)用的設(shè)計(jì)實(shí)例。

        關(guān)鍵詞:單片機(jī)系統(tǒng)

        前言

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

        一、EPP介紹

        EPP協(xié)議最初是由Intel、Xircom、Zenith三家公司聯(lián)合提出的,于1994年在IEEE1284標(biāo)準(zhǔn)中發(fā)布。EPP協(xié)議有兩個(gè)標(biāo)準(zhǔn):EPP1.7和EPP1.9。與傳統(tǒng)并行口Centronics標(biāo)準(zhǔn)利用軟件實(shí)現(xiàn)握手不同,EPP接口協(xié)議通過(guò)硬件自動(dòng)握手,能達(dá)到500KB/s~2MB/s的通信速率。

        1.EPP引腳定義

        EPP引腳定義如表1所列。

        表1 EPP接口引腳定義

        引腳號(hào)SPP信號(hào)EPP信號(hào)方 向說(shuō) 明
        1StrobenWrite輸出指示主機(jī)是向外設(shè)寫(低電平)還是從外設(shè)讀(高電平)
        2~9Data0~7Data07輸入/輸出雙向數(shù)據(jù)總線
        10AckInterrupt輸入下降沿向主機(jī)申請(qǐng)中斷
        11BusynWait輸入低電平表示外設(shè)準(zhǔn)備好傳輸數(shù)據(jù),高電平表示數(shù)傳輸完成
        12PaperOut/EndSpare輸入空余線
        13SelectSpare輸入空余線
        14AutofdnDStrb輸出數(shù)據(jù)選通信號(hào),低電平有效
        15Error/FaultnDStrb輸入空余線
        16InitializeSpare輸出初始化信號(hào),低電平有效
        17Selected PrinternAStrb輸出地址數(shù)據(jù)選通信號(hào),低電平有效
        18~25GroundGroundGND地線

        2.EPP接口時(shí)序

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

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

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

        ①程序?qū)PP數(shù)據(jù)寄存器執(zhí)行寫操作;

        ②nWrite置低;

        ③CPU將有效數(shù)據(jù)送到數(shù)據(jù)總線上;

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

        ⑤主機(jī)等待nWait變高,確認(rèn)數(shù)據(jù)發(fā)送成功;

        ⑥主機(jī)等待nWait變高,確認(rèn)數(shù)據(jù)發(fā)送成功;

        ⑦EPP寫周期結(jié)束。

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

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

        ①程序?qū)ο鄳?yīng)EPP端口寄存器執(zhí)行讀操作;

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

        ③主機(jī)等待nWait為高,確認(rèn)數(shù)據(jù)發(fā)送成功;

        ④主機(jī)從并行口引腳讀取數(shù)據(jù);

        ⑤nDStrb(nAStrb)置高;

        ⑥EPP讀操作周期結(jié)束。

        3.EPP端口寄存器

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

        表2

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

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

        WAITINTRUSER1USER2USER3TMOUT

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

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

        USER1~USER3:用戶自定義;

        TMOUT:保留(EPP1.7)超時(shí)標(biāo)志位(EPP1.9)。

        EPP控制端口寄存器。

        DIRIRQENASTRBINITDSTRBWRITE

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

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

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

        INIT:初始化(1有效);

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

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

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

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

        //port為SPP數(shù)據(jù)端口地址

        寫操作初始化:outportb(port+2,0x04);

        //port+2為EPP控制端口地址

        4.EPP1.7和EPP1.9

        EPP接口最先有EPP1.7標(biāo)準(zhǔn)定義,由于硬件廠商的原因,EPP現(xiàn)有兩個(gè)標(biāo)準(zhǔn):EPP1.7和EPP1.9,可以在BIOS/外圍設(shè)備/并行口(BIOS/Peripheral Setup/Parallel Port Mode)方式中進(jìn)行設(shè)置。兩者有如下不同點(diǎn):

        (1)EPP狀態(tài)端口寄存器的最低位bit0,在EPP1.9中定義為TMOUT。在EPP操作時(shí)序中,如果PC機(jī)數(shù)據(jù)(地址)選通信號(hào)變低后,且在10μs時(shí)間內(nèi),外設(shè)未能將nWait置為低,則TMOUT置為1,表示延時(shí)。

        (2)EPP1.9標(biāo)準(zhǔn)中,只有當(dāng)nWait為低時(shí),才能開(kāi)始一個(gè)操作周期;但在EPP1.7中,無(wú)論nWait狀態(tài)如何,nAstrb(nDstrb)都會(huì)被置低,從而開(kāi)始一個(gè)新的數(shù)據(jù)(地址)操作周期。

        二、EPP接口傳輸數(shù)據(jù)的一個(gè)實(shí)例

        在某單片機(jī)系統(tǒng)中,須要將單片機(jī)系統(tǒng)中數(shù)據(jù)存儲(chǔ)器的大量數(shù)據(jù)傳輸?shù)絇C機(jī)中進(jìn)行分析處理。EPP接口(采用EPP1.7標(biāo)準(zhǔn))硬件電路及軟件流程圖如圖3~圖5所示。

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

        MOV DPTR,#2000H

        MOVX @DPTR,A

        就將寄存器A中的數(shù)據(jù)鎖存到數(shù)據(jù)總線上,便于PC機(jī)利用EPP接口進(jìn)行讀操作。

        C語(yǔ)言例程:

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

        #define SPPSTAT 0x0379

        #define SPPCNTL 0x037A

        #define EPPADDR 0x037B

        #define EPPDATA 0x037C

        #includestdio.h>

        FILE *fp;

        Int data;

        Long i;

        int k;

        fp=fopen(filename,"wb"); //打開(kāi)要存儲(chǔ)數(shù)據(jù)的文件

        outportb(SPPCNTL,0x24);

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

        {

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

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

        {}

        data=inportb(EPPDATA); //讀數(shù)據(jù)

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

        }

        fclose(fp); //關(guān)閉文件

        單片機(jī)匯編語(yǔ)言程序?yàn)椋?/P>

        FLAG1 BIT P1.7 ;標(biāo)志位

        FLAG2 BIT P3.4

        STADD EQU 0000H ;要傳輸數(shù)據(jù)段的起始地址

        NUM EQU FFFFH ;要傳輸數(shù)據(jù)端的字節(jié)個(gè)數(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

        實(shí)際應(yīng)用該接口電路,能實(shí)現(xiàn)1MB/s的傳輸速率,并且性能穩(wěn)定可靠。

        如果應(yīng)用EPP1.9標(biāo)準(zhǔn),硬件電路不用變動(dòng),軟件中可以省略對(duì)nWait進(jìn)行判斷的環(huán)節(jié),速率能接近2MB/s。

        結(jié)束語(yǔ)

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



        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉