新闻中心

EEPW首页>嵌入式系统>设计应用> 基于AT89C5131的接口设计

基于AT89C5131的接口设计

作者: 时间:2015-05-03 来源:网络 收藏

  1.3 SPI端口特性及SPI通信设计

本文引用地址://m.amcfsurvey.com/article/273498.htm

的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端口处于无效状态;通过MOSI端口向DSP传输参数及控制命令;DSP通过软件设置P1.1(SS)端口的状态表明数据是否正确接收,即若正确接收,则置P1.1为1,否则置P1.1为0;通过检测P1.1的值来决定是否重传数据。

  2 系统实现

  要使得上述设计在工程应用中得以实现,在硬件设计的基础上。还需对接口进行软件设计。AT89C5131的软件设计主要是USB固件程序的设计,包括系统的初始化,USB接口、接口和SPI接口数据的收发以及控制面板按键的功能实现几个方面。软件设计采用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的通信,该设计已经在工程实际中得到应用。经过实践检验,证明其合理且操作灵活,具有一定的实用意义。在设计过程中,深切体会到硬件设计与软件设计的极大不同。编译正确且逻辑没有问题的程序源代码,将其烧写至芯片后,硬件电路并不一定能完全地实现所要求的功能,所以必须经过反复的修改程序、烧写、调试,直至正确实现功能。

51单片机相关文章:51单片机教程


存储器相关文章:存储器原理



上一页 1 2 下一页

关键词:AT89C5131UART

评论


相关推荐

技术专区

关闭