一种基于DSP同步串口的异步串行通信方法技术

技术编号:26170701 阅读:80 留言:0更新日期:2020-10-31 13:39
本发明专利技术公开了一种基于DSP同步串口的异步串行通信方法,其中,McBSP设置包含发送控制寄存器设置:设置发送帧采用单相帧模式、发送帧的长度和字长;采样率设置寄存器设置:设置串口分频系数=(主频*倍频)/(字长*波特率);DMA软件设置包含:串口发送程序配置:设置波特率、数据帧的起始位以及停止位,对数据帧中的每一位数据0由0x0000代替,1由0xFFFF代替。本发明专利技术对每一个数据位进行多次采样,可将误差缩小很多,解决数据有可能丢失问题。

【技术实现步骤摘要】
一种基于DSP同步串口的异步串行通信方法
本专利技术属于通信应用
,特别是一种基于DSP同步串口的异步串行通信方法。
技术介绍
在DSP应用系统设计时,常常需要设计异步串行通讯接口,用于和上位机PC机或单片机之间的通信。目前,一般采用硬件实现异步串行接口,一般分为两种,一是在DSP外部扩展专用的异步通信器件UART芯片,完成收发数据的缓存及采样,减少CPU软件采样的负担;另一种是利用外部可编程芯片(如FPGA),实现DSP片上同步串口到异步串行接口的协议转换。无论采用何种硬件连接方式,均需要外部扩展芯片,硬件设计相对较复杂,且不可避免地增加了整个系统的功耗。
技术实现思路
本专利技术的目的在于提供一种基于DSP同步串口的异步串行通信方法,采用DSP自带McBSP和DMA软件模拟异步串行通信,此时用户不需要设计串-并转换子程序,只需要为每一个数据包加上异步串行通信所要求的起始位、奇偶校验位和停止位。此方法硬件连接比较简单,直接由McBSP的引脚接触即可,可降低硬件占有率,但软件实现较复杂,对软件编制有一定要求。本专利技术的专利技术目的通过以下技术方案实现:一种基于DSP同步串口的异步串行通信方法,包含McBSP设置和DMA软件设置,McBSP设置包含:发送控制寄存器设置:设置发送帧采用单相帧模式、发送帧的长度和字长;采样率设置寄存器设置:设置串口分频系数=(主频*倍频)/(字长*波特率);DMA软件设置包含:串口发送程序配置:设置波特率、数据帧的起始位以及停止位,对数据帧中的每一位数据0由0x0000代替,1由0xFFFF代替。进一步,McBSP设置还包含接收控制寄存器设置:设置接收帧采用单相帧模式、接收帧的长度和字长。进一步,McBSP设置还包含引脚控制寄存器设置:设置接收帧低电平有效,接收帧外部产生,发送帧内部产生。进一步,McBSP设置还包含串行端口控制寄存器设置:设置环回模式为禁止循环返回模式、不使用时钟停止模式、选择mcbsp模式。进一步,DMA软件设置还包含接收通道配置程序配置:原地址、目标地址、数据长度、帧长度、触发方式。进一步,DMA软件设置还包含发送通道配置程序配置:原地址、目标地址、数据长度、帧长度、触发方式、模拟高电平。进一步,DMA软件设置还包含接收中断配置程序配置:接收数据时,同步触发方式设置为REVT触发。本专利技术与现有技术相比,其显著优点:采取对每一个数据位进行多次采样,即对于16位的DSP而言,对每一位进行16次采样或连续发送16次。发送时,设置好波特率、起始位以及停止位,将0由0x0000代替,1由0xFFFF代替,同一个数据采用16个数据模拟,可将误差缩小很多,解决数据有可能丢失问题。附图说明图1为采用基于DSP同步串口的异步串行通信方法后DSP的硬件连接示意图。具体实施方式下面结合附图及具体实施例对本专利技术作出进一步详细说明。采用McBSP模块与DMA相结合实现异步串行通信时存在的困难问题是时序同步问题,虽然数据收发的波特率可以规定,但是不可避免地出现以下问题:一是发送端数据的初始相位与接收端的波特率不一致,二是由于没有直接用CLOCK引脚直接连,也没有类似的中断口来模拟FSR,因此两端的波特率未必会完全一致,随着时间的延长,即使很小的误差也会得到积累,数据有可能丢失,即所谓的时钟歪斜现象。针对上述问题,本实施例提供了一种基于DSP同步串口的异步串行通信方法,采用DSP自带McBSP和DMA软件模拟异步串行通信,此时用户不需要设计串-并转换子程序,只需要为每一个数据包加上异步串行通信所要求的起始位、奇偶校验位和停止位。此方法硬件连接比较简单,参见图1所示,针对每一个McBSP,将BFSR和BDR连在一起都和异步串口的发送数据线连接,将BDX和异步串口的接收数据线连接,其余悬空即可,可降低硬件占有率,通过McBSP和DMA软件的设置完成异步串行通信。1、MCBSP设置McBSP是在标准串行接口的基础上对功能进行扩展,除具标准串口的功能特点外,其灵活性主要体现在以下几个方面。1)拥有相互独立的数据发送、接收帧同步脉冲和时钟信号;2)两级缓冲区发送,三级缓冲区接收,允许连续数据流传输;3)多通道发送和接收,最多可达256个通道,速度高达200Mb/s;4)可编程帧同步,支持外部移位时钟或内部频率可编程移位时钟;5)可与SPI、ST-BUS、MVIP等兼容设备直接接口。McBSP的寄存器有引脚控制寄存器(PCR)、串行端口控制寄存器(SPCR)、接收控制寄存器(RCR)、发送控制寄存器(XCR)、采样率设置寄存器(SRGR)等,各寄存器的配置内容如下:引脚控制寄存器(PCR):接收帧低电平有效,接收帧外部产生,发送帧内部产生。串行端口控制寄存器(SPCR):可以对数据收发的中断进行设置,包含有环回模式设置为禁止循环返回模式、不使用时钟停止模式、选择mcbsp模式等。将SPCR设置为0x0000后,可以引入DMA控制器进行数据收发,减少CPU占用时间。接收数据时,通过DMA控制器接收多个数据帧后,再触发中断响应;发送数据时,由DMA控制器自动控制多帧数据,再通过MCBSP发送。接收控制寄存器(RCR):设置接收帧采用单相帧模式、接收帧的长度和字长,无扩展,0位数据延时。例如,帧长度为9个字,字长16位。发送控制寄存器(XCR):与RCR相对应,设置发送帧采用单相帧模式、发送帧的长度和字长。采样率设置寄存器(SRGR):设置串口时钟源,串口分频系数等。其中,串口分频系数=(主频*倍频)/(字长*波特率)。本实施例中波特率为38400bit/s,字长16位,因此串行通信时钟应该为38400*16=614400Hz。因此,对于主频为16MHz的DSP来说,经7倍频后主频变为112MHz,要由主频时钟分出相应的串行通信时钟,因此串口分频系数=(16*106*7)/(16*38400)=182。程序代码示意如下:voidmcbsp0_confing()//MCBSP0初始化{SPSA0=SPCR1;//禁止循环返回(回送)模式;SPSD0=0x0000;SPSA0=SPCR2;SPSD0=0x0000;SPSA0=PCR;SPSD0=0x0b04;//接收帧低电平有效SPSA0=RCR1;//长度为9个字,接收字长为16位SPSD0=0x0840;SPSA0=RCR2;SPSD0=0x0004;SPSA0=XCR1;//长度为9个字,发送字长为16位SPSD0=0x0040;SPSA0=XCR2;SPSD0=0x0004;SPSA0=SRGR1;//为采样率时钟选择分频因子SPSD0=0x00b6;//分频系数本文档来自技高网...

【技术保护点】
1.一种基于DSP同步串口的异步串行通信方法,包含McBSP设置和DMA软件设置,其特征在于McBSP设置包含:/n发送控制寄存器设置:设置发送帧采用单相帧模式、发送帧的长度和字长;/n采样率设置寄存器设置:设置串口分频系数=(主频*倍频)/(字长*波特率);/nDMA软件设置包含:/n串口发送程序配置:设置波特率、数据帧的起始位以及停止位,对数据帧中的每一位数据0由0x0000代替,1由0xFFFF代替。/n

【技术特征摘要】
1.一种基于DSP同步串口的异步串行通信方法,包含McBSP设置和DMA软件设置,其特征在于McBSP设置包含:
发送控制寄存器设置:设置发送帧采用单相帧模式、发送帧的长度和字长;
采样率设置寄存器设置:设置串口分频系数=(主频*倍频)/(字长*波特率);
DMA软件设置包含:
串口发送程序配置:设置波特率、数据帧的起始位以及停止位,对数据帧中的每一位数据0由0x0000代替,1由0xFFFF代替。


2.根据权利要求1所述的一种基于DSP同步串口的异步串行通信方法,其特征在于McBSP设置还包含接收控制寄存器设置:设置接收帧采用单相帧模式、接收帧的长度和字长。


3.根据权利要求1所述的一种基于DSP同步串口的异步串行通信方法,其特征在于McBSP设置还包含引脚控制寄存器设置:设置接收帧低电平有效,接收帧外部产生,发送帧内...

【专利技术属性】
技术研发人员:孙文莉汪慧云蔡磊余静
申请(专利权)人:中国航空工业集团公司上海航空测控技术研究所
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1