新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > SPI接口基础上的各种串行通信工作方式配置及驱动编程

SPI接口基础上的各种串行通信工作方式配置及驱动编程

作者:时间:2012-10-10来源:网络收藏

  图2中,笔者设计的基本协议如下:SPI的工作模式是主机用PCA定时器进行数据连续发、收,从机用串行中断进行数据连续收、发。建立收发数据包,每个数据包8个字节,主从机均建立一个8个字节的发送数据缓冲区(spi send buf[8])和一个8个字节的接收数据缓冲区(spi_re cv_buf[8]),并建立一个完整数据包接收完毕标志(spi_recv_flag)。当用户需要发送数据时,随时可以将发送数据包填入发送缓冲区,当需要接收数据时,随时测试接收标志是否置传,这样从接收数据缓冲区中得到对方发来的数据包。按照上述协议,设置好以后,用户的数据收发只要面对本协议设置的通信缓冲区,而无需关注如何工作。从而满足数据双向传输、随机收发的要求。基本协议构造示意图如图3所示。

  注意:笔者主机显示设备为LCD12864,从机显示设备为8个数码管,为缩短篇幅,其显示驱动程序未列出。从程序中可以看出,在发送一个字节的同时,接收一个字节,这是SPI与其他方式本质的不同。此外,笔者在接近1 MHz的极限速率下作了测试,数据传输稳定。

  3 高级协议的设计和实现

  基本协议较简单,可以保证通信双方能够可靠地进行数据传输,但上述协议的实现依赖于从机中断方式。而SPI中断与UART串行中断共用,当从机串行口用于其他通信时,就要避免通信中断的相互干扰。复杂电子系统通信配置图如图4所示。

  图4中的单片机串口只是数据发送,而无需接收数据,也只需单向数据传输。采用查询方式,不占用中断,串行4号中断用于SPI通信。因此,可以用SPI基本协议完成单片机双机通信功能。若电子系统与上位机之间有信息交互的要求,并且收发数据皆为随机,此时系统通信的配置模式如图4所示。

数字通信相关文章:数字通信原理


通信相关文章:通信原理




评论


相关推荐

技术专区

关闭