基于定时器录波的串口通讯方法

文档序号:6534790阅读:871来源:国知局
基于定时器录波的串口通讯方法
【专利摘要】本发明公开了一种基于定时器录波的串口通讯方法,主要解决现有技术在模拟串口通信时依赖波特率稳定性以及抗干扰能力较差的问题。其实现过程为:接收过程,首先,使用MCU定时器的捕获功能来捕捉接收数据上升沿和下降沿发生的时间,达到录制数据波形的目的;然后,计算捕获到的波形发生时间,得到接收到的数据;发送过程,根据模拟串口波特率设定定时器周期,启动定时器,每个周期中根据要发送的数据的数据位设定模拟串口发送数据脚的状态,当一个字节的数据发送完成后停止定时器。本发明在波特率存在偏差的情况下有较好的容错性,并且可以有效的剔除误触发信号可应用于在硬件串口资源较少的MCU上实现串口通信。
【专利说明】基于定时器录波的串口通讯方法
【技术领域】
[0001]本发明属于数据通信领域,涉及一种采用定时器录波模拟串口通信的方法,可用于在硬件串口资源较少的MCU上实现串口通信。
【背景技术】
[0002]在工业领域,串口的使用非常普遍,很多产品会遇到硬件串口资源不足的情况。而更换MCU或者使用串口扩展芯片会产生额外的硬件开销,从而增加了产品的生产和研发成本。因此,在这种情况下,需要采用软件模拟来实现串口通信。
[0003]目前,使用比较普遍的软件模拟串口方法,采用了外部IO中断配合定时采样来捕捉数据的方法。这种方法的数据接收过程依赖于波特率的稳定,并且抗干扰能力较差。
[0004]由于生产MCU的硬件厂商较多,生产工艺以及时钟频率的差异性导致了串口波特率会有细微的差异,而基于定时采样捕捉数据的方法在接收数据的过程中可能会因为波特率的差异造成对信号的误采样,从而导致通信错误。
[0005]采用串口通信的应用场合,由于实际使用环境的复杂性,可能会产生许多干扰信号。例如使用串口进行红外通信,日光灯的红外光会造成信号的误触发,导致通信错误。

【发明内容】

[0006]本发明所要解决的技术问题是,提供一种基于定时器录波的串口通讯方法,以提高软件模拟串口通信的稳定性和可靠性。以克服现有方法出现的依赖波特率稳定性以及抗干扰能力较差的缺点。
[0007]实现本发明目的的技术方案如下:
一种基于定时器录波的串口通讯方法,包括模拟串口的接收过程和模拟串口的发送过程,其特征在于模拟串口的接收过程为:首先,使用MCU定时器的捕获功能来捕捉接收数据上升沿和下降沿发生的时间,达到录制数据波形的目的;然后,计算捕获到的波形发生时间,得到接收到的数据;发送数据时,根据模拟串口波特率设定定时器周期,启动定时器,每个周期中根据要发送的数据的数据位设定模拟串口发送数据脚的状态,当一个字节的数据发送完成后停止定时器。
[0008]所述的基于定时器录波的串口通讯方法,其特征在于,所述模拟串口的接收过程为:
(1)、将串口接收引脚配置为IO下降沿触发中断,根据中断确定起始位;
(2)、当下降沿中断被触发后,关闭IO下降沿中断,将串口接收引脚重新配置为定时器捕获通道输入引脚,配置“捕获定时器”为上升沿、下降沿同时捕获模式,开启捕获中断,根据捕获发生的时刻录制接收数据的波形;
(3)、根据捕获到的数据波形,处理得到二进制数据。
[0009]所述的基于定时器录波的串口通讯方法,其特征在于,所述模拟串口的发送过程为:(1)、将串口发送引脚初始化为输出模式,在空闲状态保持高电平;
(2)、当需要发送数据时,根据所需波特率设置定时器周期,根据需要发送数据的高低电平状态,利用定时器延时,将发送引脚置高或者置低,完成一帧数据的发送。
[0010]所述的基于定时器录波的串口通讯方法,其特征在于,其中步骤(2)如下:
(2a)、当下降沿中断被触发后,关闭IO下降沿中断,将串口接收引脚重新配置为定时
器捕获通道输入引脚,将该定时器记为“捕获定时器”,根据串口通信的波特率和校验方式配置捕获定时器的计时周期:
【权利要求】
1.一种基于定时器录波的串口通讯方法,包括模拟串口的接收过程和模拟串口的发送过程,其特征在于模拟串口的接收过程为:首先,使用MCU定时器的捕获功能来捕捉接收数据上升沿和下降沿发生的时间,达到录制数据波形的目的;然后,计算捕获到的波形发生时间,得到接收到的数据;发送数据时,根据模拟串口波特率设定定时器周期,启动定时器,每个周期中根据要发送的数据的数据位设定模拟串口发送数据脚的状态,当一个字节的数据发送完成后停止定时器。
2.如权利要求1所述的基于定时器录波的串口通讯方法,其特征在于所述模拟串口的接收过程为: (1)、将串口接收引脚配置为IO下降沿触发中断,根据中断确定起始位; (2)、当下降沿中断被触发后,关闭IO下降沿中断,将串口接收引脚重新配置为定时器捕获通道输入引脚,配置“捕获定时器”为上升沿、下降沿同时捕获模式,开启捕获中断,根据捕获发生的时刻录制接收数据的波形; (3)、根据捕获到的数据波形,处理得到二进制数据。
3.如权利要求1所述的基于定时器录波的串口通讯方法,其特征在于所述模拟串口的发送过程为: (1)、将串口发送引脚初始化为输出模式,在空闲状态保持高电平; (2)、当需要发送数据时,根据所需波特率设置定时器周期,根据需要发送数据的高低电平状态,利用定时器延时,将发送引脚置高或者置低,完成一帧数据的发送。
4.如权利要求2所述的基于定时器录波的串口通讯方法,其特征在于其中步骤(2)如下: (2a)、当下降沿中断被触发后,关闭IO下降沿中断,将串口接收引脚重新配置为定时器捕获通道输入引脚,将该定时器记为“捕获定时器”,根据串口通信的波特率和校验方式配置捕获定时器的计时周期:
=...........................................................4^+^ + ^, + ^-0.5) ,<1> BaudRats 'f 其中,T辯表不“捕获定时器”计时周期,BaudRaie表不串口通/[目波特率,表不起始位位数,Vima表示数据位位数,N樣-表示校验位位数,Mm表示停止位位数; (2b)、配置“捕获定时器”为上升沿、下降沿同时捕获模式,开启捕获中断,开启定时器计数溢出中断,启动“捕获定时器”; (2c)、当捕获中断被第一次触发时,记录此时定时器捕获的时刻,设为^,若I1 <Τ-滅骤(la);若&,则认为数据接收正确,继续执行步骤(2d); (2d)、当捕获中断被连续触发时,分别记录各个捕获时刻为...‘,其中,|?表




2, S7 4? 7 Jv示定时器捕获第N次触发时的数值。
5.根据权利要求2所述的基于定时器录波的串口通讯方法,其特征在于其中程步骤(3)如下: (3a)、“捕获定时器”计数溢出中断触发后,表示一帧数据已经接收完毕,根据记录的数值,可以得到该帧数据的高低电平持续时间:
T1 = [I1X BaudRate + 0.5]
Th =['is-4-11 xBaudRaie + 0.5J η = 2,3,...,N 其中,HT5,…:表示低电平数据位持续时间,Ti,%,%,:表示高电平数据位持续时间;H表示向下取整;(3b)、根据$ β =的时值,将7;映射至相应的数据位,设Dt5表示起始位,D1,1?,!?,...,/?.表示数:据位^自勺第一位第八位如果:有"校I位则马表示校&位!^表示停止位;如果没有校验位,则1?表示停止位; 由T1开始,将T1循环减一,直至$ = O ,设共循环X次,则 D0 = Df = Djf = O,<3> 继续将72循环减一,直至T2 = O,设共循环I次,则 Dr^l = D^+2 =…= £?,.= I,〈4〉 以此类推,继续将循环减一,直至仏=ο ; (3C)、根据校验位和停止位对接收到的数据进行有效性判断,一帧数据的处理过程结束,跳转至步骤(Ia),开始新一帧数据的接收。
【文档编号】G06F13/38GK103699509SQ201410002214
【公开日】2014年4月2日 申请日期:2014年1月3日 优先权日:2014年1月3日
【发明者】陈星 , 刘笑菲, 吴章宪 申请人:烟台东方威思顿电气有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1