当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]SPI总线在XF-S4240与MCS51通信中的应用

  SPI 总线技术是Motorola公司推出的一种同步串行接口。它可以使MCU与各种外围设备以串行方式进行通信以交换信息,并且硬件连接较少,编程方便。 SPI接口已经是一种标准外设接口,目前已有很多MCU及外设都带有SPI接口。MCS51虽然也有带SPI接口的单片机——AT89S8252,但价格相对较高。在开发基于RFID的自助语音导游系统中,由于RFID读卡模块带有SCI接口,XF-S4240语音合成模块带有SCI及SPI接口,如采用不带有SPI接口的AT89C51单片机,必然存在扩展接口的问题。

     本文介绍的C51软件模拟实现SPI通信接口的方法,编程简单,有效降低了系统的成本。该方法已在项目开发中得到了验证。

  1 语音模块XF-S4240

  XF-S4240中文语音合成模块是中科大讯飞信息科技有限公司面向高端应用推出的嵌入式中文语音合成模块,可支持任意的中文文本、英文字母的语音合成。该模块可以通过异步串口(UART)、SPI接口及I2C总线3种方式接收待合成的文本,直接合成为语音输出。

  XF-S4240语音模块封装成16引脚形式,其13~16脚就是SPI通信接口。

  其命令格式由帧头、数据长度区及数据区3部分组成。如要合成“欢迎您参观莫高窟。”,只需对模块发送格式为GB2312的文本代码:

  


 

  其中0xFD为帧头,0x00为数据区长度的高字节,0x14为数据区长度的低字节(注意:长度字节为合成代码字节长+2),0x01为语音合成命令,0x00为GB2312的命令码。0xBB、0xB6为“欢”的GB2312码,0xD3、0xAD为“迎”的G132312码……0xA1、 0xA3为“。”的GB2312码。

  2 XF-S4240的SPl通信方式

  2.1 XF-S4240的SPI通信说明

  XF-S4240模块的SPI接口是4线全双工同步串行通信接口。模块在SPI通信中设置为Slave身份,SPI通信所需的时钟信号由上位机提供,即上位机作为SPI通信中的Master身份,传输数据的位数为8位。

  图 1是SPI通信的时序。SPI通信属于同步串行通信。在与模块的通信中,上位机将提供SCK同步时钟信号。在SCK的上升沿,模块和上位机同时锁存1位数据,每传输8位数据完成1字节数据的传输。使用SSEL选择使能信号,是为了方便用户在SPI通信接口上挂接多个XF-S4240板卡(或其他SPI接口的设备)。在与选定的XF-S4240板卡通信时,要将此设备的SSEL置为低电平,否则无法正常通信。

  

 

  在本项目中,单片机是主设备,语音模块是从设备。主模式的显著特征是:不论是发送还是接收,始终有SPI-CLK信号,SPISTE信号不是必需的。因为SPI串口只能有1片主机,因而不存在主机选择问题,而且主模式下,同步时钟SPICLK应由主机提供。

  2.2 SPI通信的工作原理

  要模拟SPI接口的工作过程,必须先了解SPI通信的工作原理。

  在主机发送数据时,直接将要发送的数据写到主机的数据发送寄存器SPIDAT。这个写操作就自动地启动了主机的发送过程,即在同步时钟SPICLK的节拍下将SPIDAT的内容按位送到引脚SPISIMO上。经过8位时钟周期完成1字节的发送。当SPIDAT的内容移送完毕时,硬件将置一个中断标志 SPIINT FLAG,通知主机这个数据块发送完毕。

  对于从机,在同步时钟SPICLK的作用下,将引脚SPISI-MO上的数据按位接收到移位寄存器SPIDAT。当一个完整的数据块接收完毕后,将置一个中断标志SPIINT FLAG,通知从机这个数据块接收完毕;同时将这个数据块的内容复制到从机的SPI数据接收寄存器SPIRXBUF中,并进行右对齐。SPI通信中主机和从机的连接如图2所示。

  

[!--empirenews.page--]

 

  3 软件模拟SPI接口的实现

  3.1 XF-S4240语音模块与单片机的连接

  本设计中,AT89C51的SCI接口已被RFID读卡模块WM-01TA占用,由于AT89C51不带有SPI接口,需要用I/O口模拟实现SPI接口来实现与XF-S4240的通信。为了保持电路与AT89S8252电路的一致性,在AT89C51的P1口(其中的P1.4~P1.7)上扩展了SPI接口。

  SS(P1.4):从使能输入脚,低电平有效。

  MOSI(P1.5):主数据输出或从数据输入脚。

  MISO(P1.6):主数据输入或从数据输出脚。

  SCK(P1.7):主时钟输出或从时钟输入脚。

  CS(P1.1):片选。

  RST(P1.0):语音模块复位。

  XF-S4240与单片机的连接如图3所示。

  

 

  3.2 虚拟SPI通信的软件模拟流程及验证

  虚拟与SPI流程如图4所示。

  

 

  虚拟SPI通信程序及验证如下:

  

[!--empirenews.page--]

 

  利用此SPI通信子程序,实现了需要的语音合成功能。

  

 

  结语

  SPI接口现已广泛应用于各种数字电路中,能够与很多种微处理器及外设相连。在没有设置SPI专用接口的场合,采用虚拟SPI的方法是一种简便易行的解决方案。实践证明,虚拟SPI时序技术实现的通信具有简单、稳定、易用的特点,对于提高系统的性价比有现实意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

互联网内容的主要介质在过去的几十年中完成了从文字到图片再到视频的转变。在不断变化中,一以贯之的是人们对体验更好,更真实、更丰富网络生活的追求。如今,视频和游戏内容都在向着更高刷新率与分辨率的方向发展,终端设备也在积极普及...

关键字: 元宇宙 Wi-Fi 7 通信

此前,印度政府曾在推特上公布“国家宽带使命”计划,并表示将于今年10月1日在印度正式推出5G服务,引发了不少网友的关注。然而,近日CNMO了解到,此条推文现已被删除。业内人士表示,印度可能尚未准备好从10月1日开始推出5...

关键字: 印度 5G 通信

北京2022年10月8日 /美通社/ -- 日前,全球领先的IT基础设施提供商浪潮信息加入龙蜥社区并成为理事单位,致力于携手社区生态伙伴,共同推动开源操作系统的全产业链协同创新和产业化应用。 龙蜥社区成立于2020...

关键字: 开源 操作系统 通信 大数据

(全球TMT2022年10月8日讯)IT基础设施提供商浪潮信息加入龙蜥社区并成为理事单位,致力于携手社区生态伙伴,共同推动开源操作系统的全产业链协同创新和产业化应用。 龙蜥社区成立于2020年9月,是国内...

关键字: 操作系统 开源 通信 装机量

(全球TMT2022年9月30日讯)Tata Communications在印度浦那推出了专用私有5G"全球卓越中心"(CoE),为企业加速"工业4.0"应用和能力。这家新的CoE是一个敏捷、安全的室内设施,用来测试和...

关键字: 通信 5G COMMUNICATIONS 图像分析

厦门2022年9月27日 /美通社/ -- 近日,卓越职场研究机构(Great Place to Work®)公布了2022年亚洲最佳职场™(Best Workplaces in Asia™)榜单,铃盛(Ring...

关键字: CENTRAL BSP 通信 VIDEO

9月27日消息,据央视报道,今天7时50分,我国在太原卫星发射中心使用长征六号运载火箭,以“一箭三星”方式,成功将试验十六号A/B星和试验十七号卫星发射升空,卫星顺利进入预定轨道,发射任务获得圆满成功。该组卫星主要用于国...

关键字: 长征六号 卫星 通信

VPN是一种常用于连接中、大型企业或团体与团体间的私人网络的通信方式。它利用隧道协议(Tunneling Protocol)来达到保密、发送端认证、消息准确性等私人消息安全效果,这种技术可以用不安全的网络(例如:互联网)...

关键字: vpn专线 通信 互联网

(全球TMT2022年9月20日讯)2022年9月16日,以"同心聚力、共创算网发展未来;创新合作、共享数字经济红利"为主题的2022浪潮通信产业联盟合作伙伴大会在济南召开。 在产业联盟合作伙伴大会上,浪...

关键字: 通信 网络 APPLICATIONS POWER

我们学校的定位是给企业输送“运维”人员,至于“设计”人员不再考虑范围之内, 只需要学生明白设备的工作原理、流程即可,培养具备设计能力的学生即累老师也累学生。

关键字: 通信专业 通信

嵌入式教程

6897 篇文章

关注

发布文章

编辑精选

技术子站

关闭