位置:51电子网 » 技术资料 » 测试测量

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

发布时间:2008/5/27 0:00:00 访问次数:625

扩展能力端口模式ecp(extented capability port)是一种ieee 1284标准的工作模式之一。它能实现双向数据传输,具有dma传输、数据rle压缩、双向寻址等功能。它要求主机外设双方的硬件都必须实现状态机的功能,即自动产生各种控制信号。ecp模式是唯一定义了寄存器实现的ieee 1284传输协议。在计算机端操作ecp并行协议,仅需对相应的寄存器进行读写就会触发硬件完成各种时序。ecp模式的数据传输率可以达到2~4mb/s。

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的能力请求值放到数据总线上,然后置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口置位、复位、读取,编程并不难。

2 sx52bd单片机简介

sx52bd片内程序存储器容量为4096字节,数据存储器容量为262×8位。sx52bd具有5个8位i/o端口a、b、c、d、e,2个带8位预定标器的16位定时器,1个带预定标器通用8位定时器,1个模拟比较器,1个brownout检测器及看门狗定时器,1个内部rc振荡器。端口a、b、c为双向i/o口;端口b可作为唤配置、比较器、定时器1的输入;端口c可作为定时器2的输入;端口d、e仅做输入用。

sx52bd有3种不同的寻址方式:间接寻址、直接寻址、半直接寻址。对寄存器寻址模式的选取依赖于指令中5位“fr”的值。

*间接模式:fr=00h

*直接模式:(fr bit 4=0)fr=01h~0fh

*半直接模式:(fr bit 4=1)fr=10h~1fh

由于sx52bd运行速度可达50mhz,由指令运行产生时序完全可达到ecp协议的时序时间要求,并且它的i/o口驱动能力满足pc机要求。因此,不用使用任何额外的硬件电路产生时序,这就是虚拟外设的概念。

3 ecp通信在sx52bd与pc机间的实现

由于采用了虚拟外设,因此硬件电路结构极其简单:将sx52bd单片机的25个双向i/o口接入pc机即可。

ecp通信的实现由软件完成。主机设置好bios后,可通过操作寄存器直接产生硬件所需时序。寄存器定义如表1。

名 称

地址偏移

读 写

大 小

功 能

ecpafifo

0x000

w-r/w

大小

地址寄存器

dsr

0x001

r

字节

状态寄存器

dcr

0x002

r/w

字节

控制寄存器

ecpdfifo

0x400

r/w

双字节

数据寄存器

ecr

0x402

r/w

字节

扩展控制寄存器

表1 寄存器定义(基址0x378)

名 称 地址偏移 读 写 大 小 功

扩展能力端口模式ecp(extented capability port)是一种ieee 1284标准的工作模式之一。它能实现双向数据传输,具有dma传输、数据rle压缩、双向寻址等功能。它要求主机外设双方的硬件都必须实现状态机的功能,即自动产生各种控制信号。ecp模式是唯一定义了寄存器实现的ieee 1284传输协议。在计算机端操作ecp并行协议,仅需对相应的寄存器进行读写就会触发硬件完成各种时序。ecp模式的数据传输率可以达到2~4mb/s。

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的能力请求值放到数据总线上,然后置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口置位、复位、读取,编程并不难。

2 sx52bd单片机简介

sx52bd片内程序存储器容量为4096字节,数据存储器容量为262×8位。sx52bd具有5个8位i/o端口a、b、c、d、e,2个带8位预定标器的16位定时器,1个带预定标器通用8位定时器,1个模拟比较器,1个brownout检测器及看门狗定时器,1个内部rc振荡器。端口a、b、c为双向i/o口;端口b可作为唤配置、比较器、定时器1的输入;端口c可作为定时器2的输入;端口d、e仅做输入用。

sx52bd有3种不同的寻址方式:间接寻址、直接寻址、半直接寻址。对寄存器寻址模式的选取依赖于指令中5位“fr”的值。

*间接模式:fr=00h

*直接模式:(fr bit 4=0)fr=01h~0fh

*半直接模式:(fr bit 4=1)fr=10h~1fh

由于sx52bd运行速度可达50mhz,由指令运行产生时序完全可达到ecp协议的时序时间要求,并且它的i/o口驱动能力满足pc机要求。因此,不用使用任何额外的硬件电路产生时序,这就是虚拟外设的概念。

3 ecp通信在sx52bd与pc机间的实现

由于采用了虚拟外设,因此硬件电路结构极其简单:将sx52bd单片机的25个双向i/o口接入pc机即可。

ecp通信的实现由软件完成。主机设置好bios后,可通过操作寄存器直接产生硬件所需时序。寄存器定义如表1。

名 称

地址偏移

读 写

大 小

功 能

ecpafifo

0x000

w-r/w

大小

地址寄存器

dsr

0x001

r

字节

状态寄存器

dcr

0x002

r/w

字节

控制寄存器

ecpdfifo

0x400

r/w

双字节

数据寄存器

ecr

0x402

r/w

字节

扩展控制寄存器

表1 寄存器定义(基址0x378)

名 称 地址偏移 读 写 大 小 功

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!