基于EPP协议的AVR与PC并行通信系统的设计0_第1页
基于EPP协议的AVR与PC并行通信系统的设计0_第2页
基于EPP协议的AVR与PC并行通信系统的设计0_第3页
基于EPP协议的AVR与PC并行通信系统的设计0_第4页
基于EPP协议的AVR与PC并行通信系统的设计0_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于EPP协议的AVR与PC并行通信系统的设计2 并行通信定义:并行通信是把一个字符的各数位用几条线同时进行传输,传输速度快,信息率高。但它比串行通信所用的电缆多,故常用在传输距离较短(几米至几十米)、数据传输率较高的场合。 实现并行通信的接口就是并行接口。 并行接口可设计为只作为输入/输出接口,也可设计为既作为输入又作为输出的接口。它可以用两种方法实现,一种是利用同一个接口中的两个通路,一个作输入通路,一个作输出通路;另一种使用同一个双向通路,既作为输入又作为输出。 连接设备接口有PS/2,PATA,LPT等 串行通信是指数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只要少数几条线就可以在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通信, 连接设备接口有SATA,USB等并行通信用的就是微机原理介绍的8255芯片,并行是同时传输8位数据,典型设备就是打印机。串行通信是rs232芯片,同时传一位数据,通信双方必须是按一定的传输速度和奇偶校验等。并行通行距离很短,一般不超过2米,串行通信如果是比较稳定可靠是15米左右,有点厂商加了些改进措施可以达到30米,rs232串行通信改进的有rs422、rs485等,常距离稳定可靠比较理想的方法是现场总线技术,串行设备典型的是过去的老鼠标、dodem等,目前常用的开放工具如c、c等都支持对串并口的操作,有问题可以继续探讨。EPP协议 三种并行通信模式EPP协议是IEEE1284中规定的一种双向传送并行接口,它保持了与标准并行口(SPP)的兼容性。表1是SPP和EPP的引脚定义及其功能。并行口引脚号EPP信号数据方向定义lWRITE输出低电平写,高电平读29ADO7双向双向数据地址线lOINTR输入外设中断llWAIT输入握手信号12用户定义输入按不同的外设自定义13用户定义输入按不同的外设自定义14DATASTB输出低电平有效,表示正在进行数据读写15用户定义输入按不同的外设自定义16RESET输出低有效,外设复位17ADDSTB输出低电平有效,表示正在进行地址读写1825GND信号地注:输出,表示由计算机发向外设;输入,表示由外设发向计算机。加“”表示信号低电平有效。 并行通信有SPP、EPP、ECP三种传输模式。SPP(Standard Parallel Port) 即标准并行接口,数据传输要通过软件查询端口状态进行握手。SPP模式下PC可向外设输出8位并行数据;而PC获取数据(输入)则只能通过读状态端口的4个状态位,进行半字节通信,数据传输速率最大不超过250Kb/s。EPP(Enhanced Parallel Port)即增强型并行接口协议,它为PC和外设之间定义了双向通信的标准。IEEE1284标准对EPP协议进行了规范。目前EPP有EPP1.7和EPP1.9这两个标准。EPP接口协议通过硬件自动握手,能达到500Kbps到2Mbps的通信速率。EPP协议适合于PC与打印机、扫描仪及其它需大块数据传输的外设进行高速通信。 ECP(Extended Capabilities Port)即扩展功能接口,也是双向通信协议,并能以ISA总线速度传输数据。ECP有缓冲区,支持DMA传输和数据压缩。ECP较EPP协议复杂。EPP寄存器定义表2378HAD7AD6AD4AD4AD3AD2ADlADO379HWAllrINTR自定义自定义自定义无定义无定义无定义37AH无定义无定义READ ENABLEIRQ ENBALEADDSTBBESTEDATA/write时使用输入寄存器,输出操作时使用输出寄存器。单向状态端口和单向控制端口的寄存器地址分别为379H和37AH,其定义见表2。这三个寄存器是与标准并行口SPP兼容的,但实际上除了这三个寄存器之外,EPP还定义了其它几个寄存器。EPP不需要从主机送来的信号就能执行数据交换。当主机把数据写到数据缓冲区时,总线自动产生数据选通信号。同样,从端口读人数据时也是自动产生数据选通信号来表示系统正准备接收下一批数据。3 CAN独立控制器SJAl0003 寄存器组和引脚定义 PC并口采用25线DB形阴性接口,25个引脚的定义如表1所示。EPP定义了PC的8个寄存器端口,其中继承了SPP的3个寄存器,如表2所示。在BIOS中设置并口工作于EPP方式,寄存器组的基地址(BASE)通常设为0x378。SPP状态端口的第0位(Bit 0)在EPP协议中改变为EPP超时(Time-out)标志位。当ISA总线IOW 或IOR信号有效后的10s内没有有效的nWait信号(如外设没有连接时),则超时。故软件需要查询此位,以免PC死锁(lock up)。 EPP读写周期为了能进行有效的EPP数据通信,必须遵从EPP握手时序。SPP需要软件握手,而EPP握手只需硬件完成,这样提高了通信的速度。EPP读写周期分为读数据周期、写数据周期、读地址周期、写地址周期。EPP读数据周期如图1所示。图1 EPP读数据周期(1) PC程序读取EPP数据端口(BASE+4);(2) 如果PC硬件监测到nWait为低,则置nData Strobe为低,EPP周期开始;(3) PC等待nWait变高(确认);(4) PC从并口引脚读取数据;(5) PC置nData Strobe为高,EPP周期结束。EPP写数据周期如图2所示。图2 EPP写数据周期(1) PC程序写EPP数据端口(BASE+4);(2) PC置nWrite为低;(3) PC硬件把数据输出到DB25并口引脚;(4) 如果PC硬件监测到nWait为低,则置nData Strobe为低,EPP周期开始;(5) PC等待nWait变高(确认);(6) PC置nData Strobe为高,EPP周期结束。EPP读地址周期如图3所示,EPP写地址周期如图4所示。其详细步骤与读写数据周期大致相同,不再赘述。图3 EPP读地址周期图4 EPP写地址周期EPP1.7协议中无论nWait信号是否有效,nData Strobe 或nAddr Strobe都可以启动EPP周期,而在EPP1.9中只有nWait信号为低才可以启动EPP周期。EPP协议规定了四种数据传送周期:写数据周期、读数据周期、写地址周期、读地址周期,图1是EPP写数据周期的时序。Wait是硬件握手信号,ISA读写周期开始后,若Wait为低,则表示可以开始EPP写数据周期,这时Data Strobe(或AddressStrobe)变低,进入EPP写数据周期(时刻3),然后等待Wait变高。当Wait变高时,表示可以结束EPP读写周期,Data Strobe(或Address Strobe)变高,结束EPP写数据周期(时刻5),随后ISA读写周期结束。可见一个数据或地址的传送是在一个ISA周期内完成的,因而可以达到ISA的传送速率。在EPP周期内,若推迟Wait变高,则可以延长EPP周期。使得计算机与外设在速度上能够匹配。为防止系统在没有外设时锁死,EPP控制器设有看门狗,通常在ISA周期开始10s后,若Wait没有响应,控制器会结束IO周期,并产生EPP超时错误,状态寄存器的bit0(超时标志位)置位。AVR简介AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。AVR的单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。AVR的主要特性 高可靠性、功能强、高速度、低功耗和低价位 , 一直是衡量单片机性能的重要指标,也是单片机占领市场、赖以生存的必要条件。早期单片机主要由于工艺及设计水平不高、功耗高和抗干扰性能差等原因,所以采取稳妥方案:即采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。以后的 CMOS单片机虽然采用提高时钟频率和缩小分频系数等措施,但这种状态并未被彻底改观(51以及51兼容)。此间虽有某些精简指令集单片机(RISC)问世,但依然沿袭对时钟分频的作法。 AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,抛弃复杂指令计算机(CISC)追求指令完备的做法;采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中(指令集中占大多数的单周期指令都是如此),取指周期短,又可预取指令,实现流水作业,故可高速执行指令。当然这种速度上的升跃,是以高可靠性为其后盾的。 AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑)。提高了指令执行速度(1Mips/MHz),克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。故AVR单片机在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。 AVR单片机内嵌高质量的Flash程序存储器,擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的EEProm可长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时也更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部 RAM。 AVR单片机的I/O线全部带可设置的上拉电阻、可单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。 AVR单片机片内具备多种独立的时钟分频器,分别供URAT、I2C、SPI使用。其中与8/16位定时器配合的具有多达10 位的预分频器,可通过软件设定分频系数提供多种档次的定时时间。AVR单片机独有的“以定时器/计数器(单)双向计数形成三角波,再与输出比较匹配寄存器配合,生成占空比可变、频率可变、相位可变方波的设计方法(即脉宽调制输出PWM)”更是令人耳目一新。增强性的高速同/异步串口,具有硬件产生校验码、硬件检测和校验侦错、两级接收缓冲、波特率自动调整定位(接收时)、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51/96单片机的串口,加之AVR单片机高速,中断服务时间短,故可实现高波特率通讯。 面向字节的高速硬件串行接口TWI、SPI。TWI与I2C接口兼容,具备ACK信号硬件发送与识别、地址识别、总线仲裁等功能,能实现主/从机的收/发全部4种组合的多机通信。SPI支持主/从机等4种组合的多机通信。 AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。 AVR单片机具有多种省电休眠模式,且可宽电压运行(5-2.7V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。 AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、A/D模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/O端口 )于一身,充分体现了单片机技术的从“片自为战”向“片上系统SoC”过渡的发展方向。 综上所述,AVR单片机博采众长,又具独特技术,不愧为8位机中的佼佼者。 总结,与其它8-bit MCU相比,AVR 8-bit MCU最大的特点是: 哈佛结构,具备1MIPS / MHz的高速运行处理能力; 超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象; 快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发; 作输出时与PIC的HI/LOW相同,可输出40mA(单一输出),作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力; 片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠; 大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等; 大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序AVR与PC的接口电路 AVR单片机有tinyAVR、low power AVR和megaAVR 3个系列的产品。AVR单片机的结构非常适合于采用C语言编程,这样就能快速高效地开发出目标产品。为了对目标代码的大小、性能及功耗进行优化,AVR 单片机采用了RISC体系、大型快速存取寄存器组和快速单周期指令。 以AT90S8535 AVR单片机为例。AT90S8535属于low power AVR,片内有AVR核、8KB FlashRom、512B EEPROM、512B RAM、32I/O、15个内部中断源、1UART、3个8位定时器、1个16位定时器、3PWM、Watchdog、8通道10位ADC、模拟比较器、ISP、SPI,支持2个外部中断。尤其是其片内集成了10位ADC,为数据采集系统的设计带来便利。 AT90S8535与PC并口的连接如图5所示,两者通过2片三态总线收发器74LS245连接。74LS245起到缓冲、隔离的作用。PC并口的第1引脚兼作为上一片74LS245的方向控制脚。DIR为低电平,数据由Bx传向Ax;反之,数据由Ax传向Bx(x=18)。EPP协议基本上是主从协议,这里PC是主控设备,AVR是从设。AT90S8535外接8MHz无源晶体振荡器,复位电路和供电电源。图5 PC并口与AVR的连接ACR特点1. AVR RISC 结构2. AVR 高性能低功耗RISC 结构118 条指令大多数为单指令周期32 个8 位通用工作寄存器工作在8MHz 时具有8MIPS 的性能3. 数据和非易失性程序内存4K/8K字节的在线可编程FLASH 擦除次数1000 次256/512 字节SRAM256/512 字节在线可编程EEPROM 寿命100000 次程序加密位4. 外围Peripheral 特点两个具有比较模式的可预分频Prescale 8 位定时器/计数器一个可预分频具有比较捕捉和两个8/9/10 位PWM功能的16 位定时器/计数器片内模拟比较器可编程的看门狗定时器由片内振荡器生成8 通道10 位ADC全双工UART5. 特别的MCU特点上电复位电路具有记数功能有独立振荡器的实时时钟RTC低功耗空闲省电和掉电模式内外部中断源6. 4MHz 3V 20 条件下的功耗工作模式6.4mA空闲模式1.9mA掉电模式1 A7. I/O 和封装32 个可编程的I/O 脚40 脚PDIP PLCC 和TQFP 封装8. 工作电压2.7V-6.0V AT90LS4434 和AT90LS85354.0V-6.0V AT90S4434 和AT90S85359. 速度0-4MHz AT90LS4434 和AT90LS85350-8MHz AT90S4434 和AT90S8535描述AT90S4434/8535 是一款基于AVR RISC 的低功耗CMOS 的8 位单片机通过在一个时钟周期内执行一条指令AT90S4434/8535 可以取得接近1MIPS/MHz 的性能从而使得设计人员可以在功耗和执行速度之间取得平衡图1 AT90S4434/8535 结构方框图 AVR 核将32 个工作寄存器和丰富的指令集联结在一起所有的工作寄存器都与ALU 算逻单元直接相连允许在一个时钟周期内执行的单条指令同时访问两个独立的寄存器这种结构提高了代码效率使AVR 得到了比普通CISC 单片机高将近10 倍的性能AT90S4434/8535 具有以下特点4K/8K 字节FLASH 256/512 字节EEPROM 256/512字节SRAM 32 个通用I/0 口32 个通用工作寄存器具有比较模式的灵活的定时器/计数器内外中断源可编程的UART 可编程的看门狗定时器SPI 口以及三种可通过软件选择的节电模式工作于空闲模式时CPU 将停止运行而寄存器定时器/计数器看门狗和中断系统继续工作掉电模式时振荡器停止工作所有功能都被禁止而寄存器内容得到保留只有外部中断或硬件复位才可以退出此状态省电模式与掉电模式只有一点差别省电模式下T/C2 继续工作以维持时间基准器件是以ATMEL 的高密度非易失性内存技术生产的片内FLASH 可以通过SPI 接口或通用编程器多次编程通过将增强的RISC 8 位CPU 与FLASH 集成在一个芯片内4434/8535为许多嵌入式控制应用提供了灵活而低成本的方案AT90S8535 具有一整套的编程和系统开发工具宏汇编调试/仿真器在线仿真器和SL-AVR 评估板管脚定义VCC GND 电源A 口PA7PA0A 口是一个8 位双向I/O 口每一个管脚都有内部上拉电阻A 口的输出缓冲器能够吸收20mA 的电流可直接驱动LED 当作为输入时如果外部被拉低由于上拉电阻的存在管脚将输出电流在复位过程中A 口为三态即使此时时钟还未起振A 口还可以用作ADC 的模拟输入口B 口PB7PB0B 口是一个8 位双向I/O 口每一个管脚都有内部上拉电阻B 口的输出缓冲器能够吸收20mA 的电流可直接驱动LED 当作为输入时如果外部被拉低由于上拉电阻的存在管脚将输出电流在复位过程中B 口为三态即使此时时钟还未起振B 口作为特殊功能口的使用方方法见光盘文件C 口PC7PC0C 口是一个8 位双向I/O 口每一个管脚都有内部上拉电阻当作为输入时如果外部被拉低由于上拉电阻的存在管脚将输出电流C 口的两个引脚还可以用作T/C2 的振荡器在复位过程中C 口为三态即使此时时钟还未起振D 口PD7PD0D 口是一个带内部上拉电阻的8 位双向I/O 口输出缓冲器能够吸收20mA 的电流当作为输入时如果外部被拉低由于上拉电阻的存在管脚将输出电流在复位过程中D 口为三态即使此时时钟还未起振D 口作为特殊功能口的使用方方法见光盘文件/RESET 复位输入超过50ns 的低电平将引起系统复位低于50ns 的脉冲不能保证可靠复位XTAL1 振荡器放大器的输入端XTAL2 振荡器放大器的输出端AVCC A/D 转换器的电源应该通过一个低通滤波器与VCC 连接AREF A/D 转换器的参考电源介于AGND 与AVCC 之间AGND 模拟地晶体振荡器XTAL1 和XTAL2 分别是片内振荡器的输入输出端可使用晶体振荡器或是陶瓷振荡器图2 振荡器连接图3 外部时钟驱动配置定时器振荡器晶振可以直接连接到振荡器的引脚PC6 TOSC1 和PC7 TOSC2 而无需外部电容振荡器已经对32768Hz 的晶振作了优化对外加信号的带宽为256KHz快速访问寄存器文件包含32 个8 位可单周期访问的通用寄存器这意味着在一个时钟周期内ALU 可以完成一次如下操作读取寄存器文件中的两个操作数执行操作将结果存回到寄存器文件寄存器文件中的6 个可以组成3 个16 位用于数据寻址的间接寻址寄存器指针以提高地址运算能力其中Z 指针还用于查表功能ALU 支持两个寄存器之间寄存器和常数之间的算术和逻辑操作以及单寄存器的操作除了寄存器操作模式通常的内存访问模式也适用于寄存器文件这是因为AT90S4434/8535为寄存器文件分配了32 个最低的数据空间地址$00 - $1F 允许其象普通内存地址一样访问I/O 内存空间包括64 个地址作为CPU 外设的控制寄存器T/C A/D 转换器以及其他I/O功能I/O 内存可以直接访问也可以作为数据地址$20 - $5F 来访问AVR 采用了HARVARD 结构程序和数据总线分离程序内存通过两段式的管道Pipeline进行访问当CPU 在执行一条指令的同时就去取下一条指令这种预取指的概念使得指令可以在一个时钟完成相对跳转和相对调用指令可以直接访问2K/4K 地址空间多数AVR 指令都为16 位长每个程序内存地址都包含一条16 位或32 位的指令当执行中断和子程序调用时返回地址存储于堆栈中堆栈分布于通用数据SRAM 之中堆栈大小只受SRAM 数量的限制用户应该在复位例程里就初始化SP SP 为可读写的16位堆栈指针256/512 个SRAM 可以通过5 种不同的寻址方式很容易地进行访问AVR 结构的内存空间是线性的中断模块由I/O 空间中的控制寄存器和状态寄存器中的全局中断使能位组成每个中断都具有一个中断向量由中断向量组成的中断向量表位于程序存储区的最前面中断向量地址低的中断具有高的优先级通用工作寄存器文件在线可编程FLASHAT90S4434/8535 具有4K/8K 字节的FLASH 因为所有的指令为16 位宽故尔FLASH 结构为2K 16/4K 16 FLASH 的擦除次数至少为1000 次AT90S4434/8535 的程序计数器PC 为11/12 位宽可以寻址到2048/4096 个字的FLASH程序区SRAM图8 表明了ST90S4434/8535 的数据组织方式图8 SRAM 分布352/608 个数据地址用于寻址寄存器文件I/O 和SRAM 起始的96 个地址为寄存器文件+I/O其后的256/512 个地址用于寻址SRAM数据寻址模式分为5 种直接带偏移量的间接间接预减的间接后加的间接寄存器R26 到R31 为间接寻址的指针寄存器直接寻址范围可达整个数据空间带偏移量的间接寻址模式寻址到Y Z 指针给定地址附近的63 个地址带预减和后加的间接寻址模式要用到X Y Z 指针32 个通用寄存器64 个I/O 寄存器256/512 字节的SRAM 和最大可达64K 的外部SRAM可以被所有的寻址模式访问程序和数据寻址模式AT90S4434/8535 支持强大而有效的寻址模式本节将要介绍各种寻址模式双寄存器直接寻址图10I/O 直接寻址图11数据直接寻址带偏移的数据间接寻址数据间接寻址带预减的数据间接寻址带后加的数据间接寻址使用LPM指令寻址常数间接程序寻址IJMP 和ICALL相对程序寻址RJMP 和RCALL内存访问和指令执行时序这一节介绍指令执行和内存访问时序AVR CPU 由系统时钟驱动此时钟由外部晶体直接产生图20 说明了由HARVARD 结构决定了的并行取指和执行以及快速访问寄存器文件的概念这是一个基本的达到1MIPS/MHz 具有优良的性价比功能/时钟比功能/功耗比的流水线概念图20 并行取指与指令执行图21 演示的是寄存器文件内部时序在一个时钟周期里ALU可以同时对两个寄存器操作数进行操作同时将结果存回到其中的一个寄存器中去图22 片内SRAM 访问周期I/O 内存AVR4434/8535 的所有I/O 和外围都被放置在I/O 空间IN 和OUT 指令用来访问不同的I/O地址以及在32 个通用寄存器之间传输数据地址为$00-$1F 的I/O 寄存器还可用SBI 和CBI 指令进行位寻址而SIBC 和SIBS 则用来检查单个位置位与否当使用IN 和OUT 指令时地址必须在$00-$3F 之间如果要象SRAM 一样访问I/O 寄存器则相应地址要加上$20在本文档里所有I/O 寄存器的SRAM 地址写在括号中为了与后续产品兼容保留未用的未应写0 而保留的I/O 寄存器则不应写一些状态标志位的清除是通过写1 来实现的CBI 和SBI 指令读取已置位的标志位时会回写1 因此会清除这些标志位CBI 和SBI 指令只对$00-$1F 有效看门狗定时器看门狗定时器由片内独立的振荡器驱动在VCC=5V 的条件下典型振荡频率为1MHz 通过调整定时器的预分频因数8 种可以改变看门狗复位时间间隔看门狗复位指令是WDT如果定时时间已经到而且没有执行WDT 指令则看门狗将复位MCU 4434/8535 从复位地址重新开始执行为了防止不小心关闭看门狗需要有一个特定的关闭程序图36 看门狗定时器WDTOE 看门狗关闭使能当WDE 清零时此位必须为1 才能关闭看门狗在置位的4 个时钟后硬件对其清零WDE 看门狗使能WDE 为1 时看门狗使能只有在WDTOE 为1 时WDE 才能清零以下为关闭看门狗的步骤1 在同一个指令内对WDTOE 和WDE 写逻辑1 即使WDE 已经为1并行编程特性计算机并行口EPP协议输出定义EPP协议输出定义如表2所示。1利用单片机串口实现与PC机的并行通信利用单片机串口与PC机串行通信虽然有其自身优点如适合长距离通信,有一定的纠错能力等,但利用单片机串口与PC机并行通讯在短距离(数米范围内)传输过程中有一定优势。首先串行通信时要设置串口数据,如:串口号(Com1、Com2或其他串口)、波特率、数据位数、停止位、校验位等等。而且单片机与PC机的串口数据必须一一对等,否则不能传输。而并传输时,无需上述过程。其次,PC机的串行口电平值为+12V-12V,单片机是TTL电平(0V+5V),两者必须要经过电平转换芯片进行电平间的转换而进行并行传输时,由于双方都是TTL电平,所以PC的并口可以与单片机或其他芯片直接相连;另外,串行传输速度慢,每次只能传送一位,而并行每次可以传送8位,速度上的差异显而易见。而对于单片机,串口(UART)是最常用的端口,尤其对于存在两个或多个串口的单片机来说,充分利用串口进行通信是非常重要的。1.1输出输入接口的扩展单片机串口实现“并行”通信,其原理就是将PC机传过来的并行数据转换成串行数据,送入单片机的串口再由其进行相应处理。实质上就是一个数据串并、并串转换的过程。PC的并口为一个标准的25针插座,包含一个八位二进制数据端口(地址为378H),即第2到第9脚;一个输入控制端口(地址为379H),即第15脚、13脚、12脚、10脚、1脚,其另外低三位无定义;一个输出控制口(地址为37AH)即第1脚、14脚、16脚、17脚,其另外高四位无定义。由此可见后面两个端口都不是完全的8位,图1为所使用的PC机并行口引脚图。1.1.1输出接口的扩展这里使用常用的移位寄存器74LS164与单片机的RXD口构成输出接口电路。如图2所示,其中:QAQH为并行输出的数据,送入PC机并口378H端口(接收数据的8个数据位);单片机串口输出的数据从A输入;内部数据移位依靠时钟CLK信号上升沿(由单片机TXD提供)控制。1.1.2输入接口电路扩展这里使用常用的移位寄存器74LS165与单片机的RXD口构成输入接口电路。如图2所示,其中:AH为并行输入的数据,接PC机并口378H端口(接收数据的8个数据位);单片机串口接收的数据(RXD端口)从QH输入;SH/LD信号用于重新装载数据(通常用在数据完全移出后);SER是用于填充数据移出后的空位的逻辑电平信号(逻辑“1”或“0”);内部数据移位依靠时钟CLK信号(仍由单片机的TXD提供)上升沿控制。1.2其他软硬件准备工作输入输出控制端口的连接,将单片机的P3.4、P3.5口分别与PC并口的第15脚、第16脚相连。这样在进行数据通信时,两者的握手信号传输就解决了:当并口的第16脚置高电平时,用来通知单片机接收PC机已准备就绪的数据单片机收到以后就可以进行相应控制,接收数据;当单片机接收完数据时,会置P3.4为高电平并被379H的第15脚接收,于是PC机准备发送下一个数据单片机向PC机发送数据时,情况与此类似,由P3.4发送信号给PC机,而由P3.5接收PC机发送过来的信号。软件方面,由于是用串口进行“并行”通信,因此就不能将串口的工作方式设置为方式0以外的其他方式。还要注意此时串口的波特率固定为单片机外接晶振频率的1/12。串行数据通RXD输入/输出,TXD用于发送控制输入输出数据移位的时钟脉冲。收发的数据为8位,低位在前。需要说明:一是单片机与PC机并口要共地;二是由于并行通信存在应答信号(图2中由单片机的P3.4、P3.5实现此功能),所以不会出现RXD端口数据混乱的情况。2同步EPP并行通信接口IEEE 1284标准并行接口原为异步器件,数据的输入/输出都是通过并行接口与外设握手来实现的。但是从工程实践的角度,异步设计时序难以控制,出现错误时电路分析比较困难,并且EDA工具对其的支持不如同步设计,因此,本文在遵循IEEE 1284标准的基础上,同步化EPP型并行接口的操作,采用66MHz时钟,以状态机为控制核心,实现并行接口与外设的交互。其结构示意图如图1所示。2. 1主状态机设计由于EPP向下兼容SPP模式、半字节模式、字节模式,所以一个EPP型的并行接口究竟以何种操作模式工作,取决于由主机发起的协商。协商过程首先验证外设是否支持1284标准,在此基础上再向外设请求

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论