当前位置:首页 > 演讲稿 > [基于单片机的USB转ECP模式并口的设计与实现]单片机可以做什么
 

[基于单片机的USB转ECP模式并口的设计与实现]单片机可以做什么

发布时间:2019-02-21 04:09:40 影响了:

  [摘 要]本文研究了基于单片机的USB 转ECP并行口的软硬件的设计方法,重点阐述了并行口ECP模式的软件设计思想,并给出了ECP模式的特点及其协议。利用该系统并行口的ECP模式可以连接其他具有ECP模式的并行口设备,达到了让ECP接口的设备可以和没有并行口的PC机或USB设备进行数据通信的目的。
  [关键词]ECP 模式 ECR 寄存器 前向传输 后向传输
  [中图分类号]TP33[文献标识码]A[文章编号]1007-9416(2010)03-0014-02
  
  1 引言
  并行数据传输接口(简称为并行口或并口)主要是指八位数据并行传输的接口类型,配合必要的握手信号以实现数据的快速、可靠传输的目的。早期的 PC 机并口多采用 SPP 模式,现在的 PC 机并口可以选择 SPP、EPP 和 ECP 模式进行数据传输。SPP 是半双工单向数据传输,传输速率较低;EPP 增强型模式采用半双工双向数据传输,传输速度高达2MB/S,大大提高了并行口的实用性;ECP扩充型模式采用全双工双向数据传输,传输速率比 EPP 高,因此 ECP 模式为并行口提供了另一种高效的数据传输途径,实现了真正意义上的双向传输。另外,ECP 传输可以在一个 ISA 总线周期内完成、可以使用 RLE 数据压缩方法、可以使用 DMA 方式等优点,因此对于更高速的传输来说,可以更快速地传输更大的数据块,且具有较好的灵活性。
  2 ECP模式的协议
  2.1 ECP信号定义
  ECP 协议是一种可以真正实现双向数据传输的协议,并且与标准并行口协议兼容。ECP 传输可以通过标准并行端口 IEEE 1284-A 接口实现。设计人员通过灵活地使用这些信号,可以满足各种不同的要求。表1给出了ECP协议中各引脚的信号定义与描述。
  HostClk 为低电平表示主机有有效数据,该信号的上升沿用于将数据移入设备;Data0-Data7是双向数据总线;PeriphClk为低电平表示在设备端有有效数据,该信号的上升沿用于将数据移入主机;设备设置PeriphReq为低电平表示可以使用后向传输模式;nReverseReq 为低电平表示数据处于后向传输;后向传输时,PeriphAck为高电平表示数据周期而低电平表示命令周期;前向传输时,HostAck为高电平表示数据周期而低电平表示命令周期;IEEE 1284Active为高电平表示主机处于1284传输模式,低电平则终止该模式。
  2.2 ECP模式下的主要寄存器
  根据ECP的引脚信号定义,就可以通过这些引脚来传输相关的握手信号,利用这些信号信息来配置 ECP 模式下的重要寄存器。在 ECP 模式下,CPU主要使用5个寄存器。并口的基地址 BASE 通常是 378H 或 278H。这 5 个寄存器的定义及功能参见表 2。
  在ECP接口的寄存器中,有一个重要的寄存器ECR---扩展控制寄存器。ECR 负责保存ECP的各种重要的配置信息。这个寄存器需要在软件设计中重点配置。(表3)给出了ECR各个位的功能及描述。
  另外,还有一个需要指出的是控制寄存器 PCON,它包括了上位机的HostClk、HostAck、nReverseRequest、IEEE 1284Active信号和中断及传输方向的控制。
  2.3 ECP模式的传输控制时序
  ECP模式的传输时序是软件设计的重要依据。ECP模式提供了两种传输周期时序:数据周期(data cycle)和命令周期(command cycle)。这两种周期可用于两个传输方向:前向数据/命令传输和后向数据/命令传输。
  ECP模式定义前向传输为主机到外设,当HostAck为高,表示进行 data 周期;当HostAck为低,表示进行 command 周期。下图1描述了一个前向传输过程中的data周期和command周期的时序。
  一个完整的ECP模式的前向数据/命令传输的过程如下:①模式协商阶段。主机首先把ECP的一个扩展请求值放到数据总线上,然后将 IEEE 1284 Active 置高、HostAck置低,对ECP模式进行查询。1284 兼容的外设接着将 PeriphClk 置低作为应答,并将nPeriphRequest、Xflag、nAckReverse置为高。如果外设支持模式建立,主机置HostClk为低,然后置 HostClk和HostAck为高,表示已经确认了一个兼容于ECP模式的外设。接着,外设为了作为回应,置nAckReverse、PeriphAck 为低,置Xflag 、PeriphClk 为高,结束模式建立,接口进入ECP配置阶段。②ECP模式配置阶段。主机置 HostAck 为低,外设置 nAckReverse 为高,以响应主机。然后进入前向等待阶段,准备进行数据传输。③前向等待阶段。外设置PeriphAck为低,主机检测到此信号后可开始传输数据。④前向数据/命令传输阶段。主机向ECP数据FIFO或ECP地址FIFO中写入一个字节。在进行数据传输时,主机将HostAck置高,置HostClk为低,表示数据有效。外设通过置 PeriphAck 为高来应答主机。主机置 HostClk为高,外设接收数据并置 PeriphAck为低,完成这次传输。HostAck 为低,所以下一个周期为 command cycle。不断重复上述步骤可以完成多字节数据的前向传输。
  ECP模式定义后向传输为从外设传输到主机,当PeriphAck为高,表示进行 data 周期;当PeriphAck为低,表示进行 command周期。下图2描述了后向传输过程中的command周期和data周期的时序。
  因为在 ECP 模式协商和ECP 模式配置成功后,接口默认是在前向传输下,所以外设要使用后向传输时,必须要经过 ECP 前向传输到后向传输的转换步骤。过程如下:主机置八位数据总线为高阻状态,并设置HostAck为低,在等待最小建立时间后,置nReverseRequest为低。外设置 nAckReverse为低,应答主机,进入后向等待阶段。接下来的ECP后向等待阶段和后向数据/命令传输阶段与前向传输中的这两个阶段相似。
  3 USB转ECP模式并口电路
  单片机 STC11F32XE具有1280字节的RAM,可以作为传输过程中的数据缓存,可以很好地解决上位机速度较快而下位机(单片机)速度较慢的而带来的问题,也可以将其作为 ECP模式下常用的一些寄存器来使用,另外,此单片机的速度快且抗干扰性强,端口驱动能力强,完全可以满足该系统的要求。
  并行口采用的是IEEE 1284-A接口, USB 接口驱动芯片采用Philips 半导体公司的PDIUSBD12,该芯片的数据端口D0-D7接单片机的P0 口,引脚WR_N、RD_N、及A0分别接单片机的P3.6、P3.7、P3.5 引脚。整个硬件电路图如图3所示。
  4 软件设计
  ECP模式下的软件设计主要是通过引脚信号相关的握手线来控制传输信息,通过这些握手信号信息来配置ECR、PCON和PSTAT寄存器,并利用八位数据线来传输数据与地址。ECP的数据传输中需要使用FIFO寄存器,这里的FIFO是单片机内部RAM存储空间,把这这部分空间划分为两个FIFO,一个用于前向ECP写入数据空间,另一个用于后向ECP读取数据空间。当进行前向ECP写数据时,首先将写 FIFO空间复位,随后将数据成批写入写 FIFO中,然后给目标ECP设备一个中断信号,通知它读数据;当进行后向ECP读数据时,首先将读FIFO空间复位,随之将数据成批写入读FIFO中,然后给PC或其他USB设备一个中断信号,通知它读数据,这样就完成了数据的双向通信。对于前向传输,该系统必须要清楚知道 FIFO寄存器中是否有足够的空间容纳待发送的字节;对于后向传输来说,系统要检测是否有等待读取的字节。这就要求系统必须利用某种方式检测FIFO的状态。一般可以通过轮询、中断或DMA方式来检测FIFO的状态。图4和图5分别给出了上位机前向数据传输和后向数据传输的流程图。
  5 结语
  本文对USB到ECP接口的转换电路进行了研究与实现,电路实现上并不复杂,但从实现 ECP 模式的通信角度来看,对协议的充分认识与把握上有一定难度。由于并口 ECP通信协议的复杂性也导致了许多设备并没有充分利用并口的这一功能。当然随着USB不断广泛地应用,并口的使用将越来越少,但对并口的研究仍具有一定意义,本文研究并口的意义不但在于为系统提供对已有设备的支持,更在于对并行接口及协议的理解上。
  
  [参考文献]
  [1] Jan Axelson 著,精英科技译,并行端口大全.北京:中国电力出版社,2001.
  [2] 圣怡,戴一帆,王宪平等著.Windows环境下软硬件接口技术.长沙:国防科技大学出版社,2001.
  [3] 彭昕昀.ECP模式下并口在数据采集中的应用[J].韶关学院学报(自然科学版).2004,24(3):52-56.
  [4] 宋大雷,张东来.[EEEl284标准简介[J].电子计算机与外部设备,2000,24(1):21-24.
  [5] Microsoft Corporation. Extended Capabilities Port: Specifications Revision 1.06July14,1993.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3