您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

ECP协议及在SX52BD与PC机间通信的实现

时间:2007-1-20栏目:电子通信论文

摘要:介绍一种快速的并行协议——ECP协议在高速单片机与PC机间通信的应用。高速单片机采用SX52BD,并用虚拟外设实现。

    关键词:ECP协议 互锁握手 虚拟外设

引言

扩展能力端口模式ECP(Extented Capability Port)是一种IEEE 1284标准的工作模式之一。它能实现双向数据传输,具有DMA传输、数据RLE压缩、双向寻址等功能。它要求主机外设双方的硬件都必须实现状态机的功能,即自动产生各种控制信号。ECP模式是唯一定义了寄存器实现的IEEE 1284传输协议。在计算机端操作ECP并行协议,仅需对相应的寄存器进行读写就会触发硬件完成各种时序。ECP模式的数据传输率可以达到2~4MB/s。
(范文先生网www.fwsir.com收集整理)
    SX52BD是SX系列产品,是采用CMOS工艺制造的、可配置的通信控制器。它是一种高速单片机,指令大都是单周期的,其工作频率可达到50MHz。由于其特有速度,设备可实现虚拟外设(软件代替硬件的功能)。本文讲述的通信就是基于此完成的。

1 ECP协议

ECP传输通过标准并行端口实现。其DB25接口的引脚定义如下:

1—HostClk; 2~9—双向D1~D8;

10—PeriphClk; 11—PeriphAck;

12—nAckReverse; 13—Xflag;

14—HostAck; 15—nPeriphRequest;

16—nReverseRequest; 17—IEEE1284Active;

18~25—各信号地。

ECP模式分以下8个操作阶段。
ECP协议及在SX52BD与PC机间通信的实现
    ①模式商议阶段。主机把ECP的能力请求值放到数据总线上,然后置IEEE 1284 Active为高,HostAck为低。外设应该置PeriphClk为低,nPeriphRequest为高,Xflag为高,nAckReverse为高。主机置HostClk为低,然后置HostClk和HostAck为高,表示已经确认了一个兼容于ECP模式的外设。接着,外设置nAckReverse为低,PeriphAck为低,Xflag为高,PeriphClk为高。接口进入设置阶段。

②ECP设置阶段。主机置HostAck为低,外设置nAckReverse为高,响应主机。接口进入正向空闲阶段,可以开始传输数据。

③正向空闲阶段。外设置PeriphAck为低,主机检测到此信号可开始传输数据。

④ECP正向传输阶段。主机将数据放到数据总线上,置HostClk为低。外设置PeriphAck为高,应答。主机置HostClk为高,外设接收数据并置PeriphAck为低,完成这次传输。

这种握手方式即互锁握手(interlocked handshake)。互锁握手是指每一个控制信号的跳变都由接口对方相互应答。使用这种方式,外设可以控制传输的时间以满足它进行操作的需要。

⑤ECP正向到反向转换阶段。在正向空闲阶段,主机置8位数据总线为高阻状态,并设置HostAck为低。为等待最小建立时间后,置nReverseRequest为低。外设置nAckReverse为低应答,进入反应空闲阶段。

看上去相当复杂,但PC端操作却很简单,仅需对后面介绍的寄存器读写即可。单片机端略微复杂,但也只需对I/O口置位、复位、读取,编程并不难。
ECP协议及在SX52BD与PC机间通信的实现
2 SX52BD单片机简介

[1] [2] 下一页

下页更精彩:1 2 3 4 下一页