日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]利用EPP接口協(xié)議實現(xiàn)高速數(shù)據(jù)通信

  摘要:如何實現(xiàn)PC與單片機系統(tǒng)間的高速數(shù)據(jù)通信,是測量控制系統(tǒng)中經(jī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)中,對單片機程序進行驗證和調(diào)試。目前常用的通信方式是串行通信,但傳輸速率太低,以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 × × 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:數(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時間內(nèi),外設未能將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<stdio.h>

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))&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ù)膶嵗?。EPP接口協(xié)議解決雙向高速數(shù)據(jù)傳輸?shù)碾y題,在智能測量、自動控制、數(shù)據(jù)傳輸?shù)阮I域必將得到廣泛的應用。

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

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據(jù)LED驅動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉