1 引言WWW_PLCJS@_COM%-PLC-技.术_网
并口是PC机与外设进行交互的重要部件,在数据通信、设备控制等方面有着广泛的应用。并行通信有SPP、EPP、ECP三种传输模式。打印机、扫描仪、数码相机等均可通过EPP/ECP方式与PC进行通信,高速地传输数据。AVR系列单片机是ATMEL公司生产的增强RISC结构、内含FlashROM存储器的8位单片机。AVR单片机与PC机之间采用EPP协议进行并行通讯,极大地提高通信的数据量、速度和效率。
WWcW_PLCJS_COM-PLC-技.术_网
2 EPP协议
WW.W_PLCJS_COM-PLC-技.术_网
2.1 三种并行通信模式WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
并行通信有SPP、EPP、ECP三种传输模式。SPP(Standard Parallel Port) 即标准并行接口,数据传输要通过软件查询端口状态进行握手。SPP模式下PC可向外设输出8位并行数据;而PC获取数据(输入)则只能通过读状态端口的4个状态位,进行半字节通信,数据传输速率最大不超过250Kb/s。WWcW_PLCJS_COM-PLC-技.术_网
EPP(Enhanced Parallel Port)即增强型并行接口协议,它为PC和外设之间定义了双向通信的标准。IEEE1284标准对EPP协议进行了规范。目前EPP有EPP1.7和EPP1.9这两个标准。EPP接口协议通过硬件自动握手,能达到500Kbps到2Mbps的通信速率。EPP协议适合于PC与打印机、扫描仪及其它需大块数据传输的外设进行高速通信。WW.W_PLC※JS_C,OM-PL,C-技.术_网
WWW_PLCJS@_COM%-PLC-技.术_网
ECP(Extended Capabilities Port)即扩展功能接口,也是双向通信协议,并能以ISA总线速度传输数据。ECP有缓冲区,支持DMA传输和数据压缩。ECP较EPP协议复杂。WWW_PLCJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
2.2 EPP寄存器组和引脚定义WWW_PL※CJS_COM-PLC-技.术_网
PC并口采用25线DB形阴性接口,25个引脚的定义如表1所示。——可——编——程——控-制-器-技——术——门——户
EPP定义了PC的8个寄存器端口,其中继承了SPP的3个寄存器,如表2所示。在BIOS中设置并口工作于EPP方式,寄存器组的基地址(BASE)通常设为0x378。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
SPP状态端口的第0位(Bit 0)在EPP协议中改变为EPP超时(Time-out)标志位。当ISA总线IOW 或IOR信号有效后的10μs内没有有效的nWait信号(如外设没有连接时),则超时。故软件需要查询此位,以免PC死锁(lock up)。WWW_PL※CJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
2.3 EPP读写周期plcjs.技.术_网
为了能进行有效的EPP数据通信,必须遵从EPP握手时序。SPP需要软件握手,而EPP握手只需硬件完成,这样提高了通信的速度。EPP读写周期分为读数据周期、写数据周期、读地址周期、写地址周期。WWW_PLC※JS_COM-PmLC-技.术_网
P.L.C.技.术.网——可编程控制器技术门户
EPP读数据周期如图1所示。WWW_PLC※JS_COM-PmLC-技.术_网
plcjs.技.术_网
——可——编——程——控-制-器-技——术——门——户
图1 EPP读数据周期WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PL※CJS_COM-PLC-技.术_网
(1) PC程序读取EPP数据端口(BASE+4);WWW_PLC※JS_COM-PmLC-技.术_网
(2) 如果PC硬件监测到nWait为低,则置nData Strobe为低,EPP周期开始;WW.W_PLCJS_COM-PLC-技.术_网
(3) PC等待nWait变高(确认);WWW_P※LCJS_COM-PLC-)技.术_网
(4) PC从并口引脚读取数据;WWW_PLCJS@_COM%-PLC-技.术_网
(5) PC置nData Strobe为高,EPP周期结束。P.L.C.技.术.网——可编程控制器技术门户
WWW_PL※CJS_COM-PLC-技.术_网
EPP写数据周期如图2所示。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
P.L.C.技.术.网——可编程控制器技术门户
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
图2 EPP写数据周期——可——编——程——控-制-器-技——术——门——户
WWW.PLCJS.COM——可编程控制器技术门户
(1) PC程序写EPP数据端口(BASE+4);W1WW_P4LCJS_COM-PLC-技.术_网
(2) PC置nWrite为低;WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
(3) PC硬件把数据输出到DB25并口引脚;WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
(4) 如果PC硬件监测到nWait为低,则置nData Strobe为低,EPP周期开始;plcjs.技.术_网
(5) PC等待nWait变高(确认);WW.W_PLC※JS_C,OM-PL,C-技.术_网
(6) PC置nData Strobe为高,EPP周期结束。WWW.PLCJS.COM——可编程控制器技术门户
WWW_PLCJS_COM-PLC-技.术_网
EPP读地址周期如图3所示,EPP写地址周期如图4所示。其详细步骤与读写数据周期大致相同,不再赘述。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
WWcW_PLCJS_COM-PLC-技.术_网
WWW_P※LCJS_CO※M-PLC-技-.术_网
图3 EPP读地址周期WWW.PLCJS.COM——可编程控制器技术门户
plcjs.技.术_网
WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
图4 EPP写地址周期W1WW_P4LCJS_COM-PLC-技.术_网
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
EPP1.7协议中无论nWait信号是否有效,nData Strobe 或nAddr Strobe都可以启动EPP周期,而在EPP1.9中只有nWait信号为低才可以启动EPP周期。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
3 AVR与PC的接口电路
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
AVR单片机有tinyAVR、low power AVR和megaAVR 3个系列的产品。AVR单片机的结构非常适合于采用C语言编程,这样就能快速高效地开发出目标产品。为了对目标代码的大小、性能及功耗进行优化,AVR 单片机采用了RISC体系、大型快速存取寄存器组和快速单周期指令。WWW_PLCJS_COM-PLC-技.术_网