AT89C5131在接口设计中的应用
AT89C5131的USB2.0全速从接口的结构如图3所示,其包括USB D+/D-的接口缓冲,数字锁相环,串行接口引擎(SIE)和通用功能接口(UFI)。其中数字锁相环以单片机的时钟为输入,产生了USB接口其他部分所需的48MHz时钟。串行接口引擎完成USB通信物理层NRZI码的编码与解码,CRC生成以及校验与纠错。通用功能接口包含了一个双端口的数据存储器,其一端与串行接口引擎链接,另一端通过数据总线与单片机相连接,使单片机可以通过特殊功能寄存器完成对USB2.0从接口的控制与通信。
1 系统硬件设计
基于AT89C5131的通信和控制模块主要完成以下功能:在通信方面,通过USB实现与计算机的通信,接收计算机对设备的控制命令和计算机发送的数据,并将设备的工作状态发送给计算机,同时将计算机传来的控制命令和数据通过SPI接口传送到其他设备模块,并收集其他设备模块的状态信息;在控制方面,AT89C5131负责收集设备控制显示面板的控制命令,更新设备显示状态等。由于采用USB通信系统,AT89C5131除了能够根据控制面板控制设备的运行,也能根据计算机的命令控制设备的运行,实现了对设备的双重控制。该系统中AT89C5131的外围连接如图1所示。
![]() |
1.1 AT89C5131的键盘端口特性及键盘设计
AT89C5131拥有一个允许与8×n矩阵键盘连接的键盘接口,其输入均具有高或低电平可编程中断能力。键盘接口与C51内核的通信通过3个特殊功能寄存器实现,分别是键盘电平选择寄存器(KBLS)、键盘中断使能寄存器(KBE)和键盘标志寄存器(KBF)。
AT89C5131的键盘输入被设计为分享同一个中断向量的8个独立的中断源,寄存器IEN1中的中断使能位KBD允许键盘中断全局的使能及不使能,根据KBLS每一位的值,每一个键盘输入都有检测出可编程电平的能力,然后键盘检测就被反应到KBF中,而通过软件使用KBE可以屏蔽中断标志KBF.正是这样的结构使得键盘排列可以从1×n延伸至8×n的矩阵,同时还使得P1输入用于其他用途。
在该设计中,将4个键盘端口(P1.O,P1.2,P1.3,P1.4)及2个外部中断端口(P3.2,P3.3)与控制面板上的6个按键相连;实现系统的内外、启停、暂停继续控制及参数组的选择等功能。这6个端口都采用低电平触发产生中断。
1.2 USB各端口的特性及USB通信设计
AT89C5131的USB2.0全速从接口包含了7个终端点,其中0号终端点被配置成为默认的控制终端点。其他1~6号终端点都可以通过特殊寄存器配置为控制(Control),突发(Bulk),中断(Interrupt)和周期性(Isochronous)模式。由于每一个终端点都由一组独立的寄存器对该终端点进行控制、状态识别和数据的存取,则如果将这些寄存器直接映射到51单片机的特殊功能寄存器地址空间显然是容纳不下的。因此,这7个终端点的7组寄存器在单片机的地址空间中其实使用的是同一组寄存器的地址,而通过一个特殊功能寄存器(UEPNUM)来选择当前该组寄存器实际选择的是哪个终端点的寄存器组,这样就大大节省了所占用的地址空间,为集成其他特殊外设提供了可能。
在该设计中,PC机将数据通过USB传给AT89C5131,传输完一次后AT89C5131向PC机回传数据传输正确与否的标志,PC机可以根据收到的标志进行相应的操作。PC机向AT89C5131传输的数据主要是参数和控制命令两种类型。为将其区分开来,使用USB的端口4和端口6接收这两种数据。其中,端口4用来接收控制命令;端口6用来接收参数。相应地,控制命令的回传使用端口5;参数的回传使用端口3.为简单起见,端口3~端口6均被配置为批量类型;端口3、端口5为IN端口;端口4、端口6为OUT端口。
1.3 SPI端口特性及SPI通信设计
SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为:控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR.外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从
- 基于DSP Builder的VGA接口设计(04-10)
- dsPIC33F系列DSC的 SD存储卡接口设计(01-05)
- MCU+DSP嵌入式平台的i机接口与引导设计 (06-25)
- 基于DSP/ARM双核系统的通信接口设计(01-28)
- 基于DSP与SJA1000的CAN总线系统设计方案(07-15)
- 基于DSP的USB接口设计与实现(07-22)