AT89C5131在接口设计中的应用

发布者:智慧启迪最新更新时间:2014-10-31 来源: 21ic关键字:AT89C5131  串行接口  可编程 手机看文章 扫描二维码
随时随地手机看文章

  AT89C5131是一个基于52内核的单片机。在存储器方面,其内部集成了32KB的Flash存储器用于代码的存储,1KB的EEPROM存储器用于用户数据的存储,用户可以使用片上的Bootloader或Flash API通过USB接口或者其他接口(如UART和I2C总线)对Flash存储器和EEPROM存储器进行ISP或者IAP编程。 此外AT89C5131还集成了10位的ADC、I2C总线接口和PCA模块等丰富的外设。

  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和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

  AT89C5131的SPI模块允许在McU和其他外围设备之间实现全双工、同步、串行通信,它能以配置为主或者从两种操作模式提供可编程极性和相位串行时钟,同时还提供8个可编程的主机时钟率。SPI模块包括4个端点(MOSI,MISO,SCK,SS),MOSI和MISO都是用来传输数据的,且每次只能传输1个字节的数据。不同的是,MOSI将数据由主机输出从机输入,而MISO正好相反。SCK信号用以使通过MOSI和MI-SO的数据输人/输出设备同步,它可以由主机驱动产生8个时钟周期,用以完成一个字节在串行通道上的交换。SS用于从机的选择,低有效。SPI模块的配置和初始化可以通过寄存器SPCON完成,而数据的交换则需要使用寄存器SPSTA和SPDAT两个寄存器,在软件编写过程中,SPI能否正常工作主要取决于对上述3个寄存器的操作。

  在该设计中,SPI被配置为主机模式;SS端口处于无效状态;AT89C5131通过MOSI端口向DSP传输参数及控制命令;DSP通过软件设置P1.1(SS)端口的状态表明数据是否正确接收,即若正确接收,则置P1.1为1,否则置P1.1为0;AT89C5131通过检测P1.1的值来决定是否重传数据。

  2 系统实现

  要使得上述设计在工程应用中得以实现,在硬件设计的基础上。还需对接口进行软件设计。AT89C5131的软件设计主要是USB固件程序的设计,软件设计采用C语言编程,最后软件通过FLIP下载到AT89C5131芯片中。这里所采用的编译环境为KeilμVision 3软件设计平台。在具体的工程实现过程中,也遇到了一些问题,但经过反复的修改及调试,这些问题都得到了很好的解决,其中主要有以下几个方面:

  按键功能实现控制面板按键的功能是通过电平触发中断实现的。在设计之初,手动按下一次按键总会触发多次中断,对应的LED显示总会很快的跳变,不能满足按一次按键就显示一个状态的要求,于是笔者就在按键功能实现的程序中添加了等待函数,即每发生完一次中断,就等待一段时间,经过调试,上面的问题没有再出现。

  USB通信系统系统要求USB能够快速、高效地实现通信,对于速度问题可以通过Ping-pong模式得以解决。系统还要求USB实现双向通信,为使其接收和发送数据互不干扰,所以选用了几个端口实现不同数据的传输。

  SPI端口通信 SPI端口工程实现的关键是速度和工作模式的匹配。在设计之初,AT89C5131的SPI工作于从机模式,其数据传输受到DSP的控制,由于其传输速度远远低于DSP中SPI端口的处理速度,所以每通过AT89C5131的SPI传输一组数据时,DSP总需要通过软件控制等待很长一段时间,既便如此也不能保证数据得到正确接收。于是,后来就将AT89C5131的SPI工作模式修改为主机模式,由AT89C5131主动控制数据的传输。然而实现双向通信的关键是对SS信号的控制,在上述工作模式下,SS必须无效,Slave才能较可靠地向发送寄存器写数。

  3 结 语

  AT89C5131宜于构成低成本的USB控制和通信系统,能实现计算机与设备的通信,并可灵活选择多种通信协议。文中介绍基于AT89C5131的接口设计,主要是实现PC机与MCU以及MCU与DSP的通信,该设计已经在工程实际中得到应用。经过实践检验,证明其合理且操作灵活,具有一定的实用意义。在设计过程中,深切体会到硬件设计与软件设计的极大不同。编译正确且逻辑没有问题的程序源代码,将其烧写至芯片后,硬件电路并不一定能完全地实现所要求的功能,所以必须经过反复的修改程序、烧写、调试,直至正确实现功能

关键字:AT89C5131  串行接口  可编程 引用地址:AT89C5131在接口设计中的应用

上一篇:基于双单片机的波特率变换器设计
下一篇:小型无线射频识别系统的设计

推荐阅读最新更新时间:2024-03-16 13:44

可编程程序控制器的通讯技术
  富士NB系列可编程程序控制器的通讯接口标准为:RS485/ RS422;采用8针RJ45模块型插座;其不能直接与RS232接口连接,必须先经过转换。RJ45各针脚的布置如下:   RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。 RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。RS485和RS422电路原理基本相同,都是以差动方式发送和接受,不需要数字地线。RS422通过两对双绞线可以全双工工作收发互不影响,而
[嵌入式]
基于STM32和CPLD可编程逻辑器件的等精度测频技术
在电子工程、资源勘探、仪器仪表等相关应用中,频率测量是电子测量技术中最基本最常见的测量之一,频率计也是工程技术人员必不可少的测量工具。但是,传统的频率测量方法在实际应用中有较大的局限性,基于传统测频原理的频率计的测量精度将随被测信号频率的变化而变化,传统的直接测频法其测量精度将随被测信号频率的降低而降低,测周法的测量精度将随被测信号频率的升高而降低。本文中提出一种基于ARM与CPLD宽频带的数字频率计的设计,以微控器STM32作为核心控制芯片,利用CPLD可编程逻辑器件,实现闸门测量技术的等精度测频。 本设计的技术指标: 测频范围:1Hz~200MHz,分辨率为0.1Hz,测频相对误差百万分之一。 周期测量:信号测量范围与精度要求
[单片机]
基于STM32和CPLD<font color='red'>可编程</font>逻辑器件的等精度测频技术
可编程顺序控制器CIPH9804及其应用
    摘要: CIPH9804是一种可编程顺序控制芯片,它具有八路时序信号输出端,每路时序信号均可由键盘设备为0~65535秒的有效输出。文中介绍了它的功能和使用方法,给出了它的实际应用电路以及CIPH9804在交通指挥灯顺序控制系统中的实际应用电路。     关键词: CIPH9804 可编程 顺序控制 顺序控制是指能使生产机械或生产过程按规定的时序而顺序动作,或在现场输入信号作用下按预定规律而顺序动作的自动控制装置。简言之,按时序或事序的自动控制称为顺序控制。在现场化的工厂里,如运输、加工、检验、包装等许多工序都要求顺序控制。即使在一个复杂的大型计算机控制系统中,通常也需要在某些环节采用顺序控制,如某些
[传感技术]
AD9833型高精度可编程波形发生器及其应用
1 引言 AD9833是ADI公司生产的一款低功耗,可编程波形发生器,能够产生正弦波、三角波、方波输出。波形发生器广泛应用于各种测量、激励和时域响应领域,AD9833无需外接元件,输出频率和相位都可通过软件编程,易于调节,频率寄存器是28位的,主频时钟为25MHz时,精度为0.1Hz,主频时钟为1MHz时,精度可以达到0.004Hz。 可以通过3个串行接口将数据写入AD9833,这3个串口的最高工作频率可以达到40MHz,易于与DSP和各种主流微控制器兼容。AD9833的工作电压范围为2.3V-5.5V。 AD9833还具有休眠功能,可使没被使用的部分休眠,减少该部分的电流损耗,例如,若利用AD9833输出作为时钟源,就可
[工业控制]
基于PLC可编程控制器的楼梯照明自动化电路设计
采用PLC可编程控制器对楼梯照明进行自动化管理,是较理想化的楼梯公共照明方式。它有以下两个特点: 1、上楼或下楼只需按一下按钮,则楼梯各层照明灯可依次点亮,熄灭,每层照明时间10s,也可根据具体情况重新设定时间,可大大节约电能。 2、同一时刻有几户人家上楼或下楼时,楼梯照明灯仍能依次点亮,熄灭,所需电费将平均分摊,先结束使用照明的用户其电度表随之停止计量电费,负担合理。
[工业控制]
用D/A转换器实现高精度可编程增益放大器
实际应用中,常常需要一个增益可软件编程的放大器(PGA),用来将不同幅度的模拟输入信号放大到某个特定范围,便于A/D转换器进行采样,或者将给定信号放大一个由软件设定的增益后输出。但可供选用的现成的可编程增益放大器并不多见,需要采用其它方法来实现,通常有两种方法:1)运放+模拟开关+电阻网络;2)运放+数字电位器。其中,前一种方法利用模拟开关切换电阻反馈网络,从而改变放大电路的闭环增益。此种方法所需元器件较多,电路庞大,而且精度受到限制。第二种方案采用固态数字电位器来控制放大电路的增益,线路较为简单。但现有的数字电位器分辨率有限,常见的有32、64抽头,少数可达1024抽头,因而构成的放大器精度有限,无法满足10位甚至12位数
[模拟电子]
使用AT89C51实现的微型可编程控制器的讲解
  可编程控制器也即PLC,在自动化行业,可编程控制器占据着重要地位。对于可编程控制器,小编在往期文章中对它的理论知识有所介绍。为增进大家对可编程控制器的认识,本文将对基于AT89C51的微型可编程控制器予以讲解。如果你对可编程控制器具有兴趣,不妨继续往下阅读哦。   用单片机构成的PLC,实际上就是一个单片机测控系统。用这样一个程序控制的计算机系统去执行继电控制的梯形图程序,由于继电控制梯形图中各被控电器之间是并行关系,而计算机程序控制中,各被控电器之间在时间上是串行关系,二者显然不协调。若简单地像一般单片机测控系统一样,对梯形图各程序行依次实时采集输入端子状态,进行处理后实时输出,是达不到控制目的的。为此,必须采用一次性采
[单片机]
使用AT89C51实现的微型<font color='red'>可编程</font>控制器的讲解
可编程高精度测温集成电路LM76
    摘要: 高精度、12位信号输出集成电路LM76是由数字温度传感器和双线温度窗口比较器组成的,它具有功耗小、量程宽、串行总线接口等优点。文中介绍了该电路的工作特性、引脚功能及工作原理,最后给出了LM76用于API设计的典型应用电路。     关键词: 数字温度传感器  窗口比较器  超限警报  可编程  LM76 1 概述     LM76是一个由数字温度传感器、I2C串行总线接口和温度窗口比较器组成的集成电路。在70℃~100℃和-10℃~+45℃的温度范围内,其窗口比较器的串行总线接口的精度为±1℃。在25℃时,LM76CHM的精度可达±0.5℃。它的开漏中断输出(INT)在温度超过可
[半导体设计/制造]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved