[发明专利]一种单片机串口数据接收方法无效
| 申请号: | 200910109543.6 | 申请日: | 2009-08-07 |
| 公开(公告)号: | CN101989249A | 公开(公告)日: | 2011-03-23 |
| 发明(设计)人: | 程朋胜;郭海兵;邱佰平 | 申请(专利权)人: | 深圳达实智能股份有限公司 |
| 主分类号: | G06F13/42 | 分类号: | G06F13/42 |
| 代理公司: | 深圳市顺天达专利商标代理有限公司 44217 | 代理人: | 易钊 |
| 地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 单片机 串口 数据 接收 方法 | ||
技术领域
本发明涉及一种单片机通信方法,尤其是涉及一种单片机串口数据接收方法。
背景技术
通用串行异步收发器由于其接口简单,扩展灵活而被广泛应用于单片机系统中,由于单片机本身工作频率一般较低,处理速度较慢,所以在高速通讯的过程中,往往会出现通讯不可靠的情况。
单片机中的通用串行异步收发器一般有2种接收方式:中断方式和查询方式。由于通讯具有随机性,所以实际应用中一般以中断方式为主。现有技术中单片机的串口数据接收采用以下方式:由中断函数按字节或字来实时接收串口的数据并放到缓冲区中,由主程序来循环查询并处理。这样,在通讯过程中就要随时响应串口中断,并通过调用中断处理函数来接收数据。而单片机每次响应中断调用中断处理函数时,最主要的工作就是保存程序执行的现场,即将当前使用的各变量和状态都要保存到堆栈中,并且在中断处理函数退出后还需要将这些变量和状态从堆栈中弹出,以保证程序能接着执行。
如图所1示,一个串口数据的时间为数据有效时间T1加上数据间隔T2,图2为接收一个串口数据所用的时间组成。按现有技术,单片机接收一个串口数据需要在堆栈中保存数据时间T3,中断处理时间T4,从堆栈中弹出之前保存的数据需要时间T5。其中T1和T2与通讯波特率成反比,通讯波特率越高,T1和T2越小。T3,T4,T5,与单片机的处理速度有关,处理速度越快,时间越短。在信号到来后,单片机在T1时间内响应中断,保存现场然后转去接收串口数据,完成后再退出中断处理程序,弹出堆栈中保存的数据。所用的时间为T3+T4+T5,假设一条通讯协议有n个字节,串口数据的有效时间为n*(T1+T2),接收所需要的时间为n*(T3+T4+T5),而只有n*(T3+T4+T5)<n*(T1+T2),既在下一个串口数据到来时单片机已经处理完了上一个串口数据才能保证可靠的收到每一个串口数据。由于T1+T2是由通讯波特率决定的,所以为了保证串口数据接收的可靠,就需要减小时间T3+T4+T5的值。
现有技术解决此问题一般是通过提高单片机工作频率降低通讯的波特率、或者借助其他辅助通讯手段的方法来解决。采用外扩CAN(ControllerArea Network、即控制器区域网络)总线的技术方案,虽然能解决通讯不可靠的问题,但由于需要外扩CAN总线通讯方式,使得系统设计变的复杂,并且大大增加了系统成本。而提高单片机工作频率降低通讯的波特率的这种方式一是受单片机的最高工作频率限制,二是需要牺牲部分通讯的性能,并且当单片机工作在接近最高频率的情况下,会给系统可靠性带来一定的影响。
因此,有必要对现有技术进行改进。
发明内容
本发明的目的在于,针对现有技术的上述缺点,提供了一种简单、低成本,在不增加任何硬件设备并且不降低通讯波特率的前提下,提高单片机的响应速度的单片机串口数据接收方法。
本发明的技术方案是:
提供了一种单片机串口数据接收方法,包括以下步骤:
A、单片机响应串口中断信号,保存现场数据,采用中断模式接收一条通讯协议的第一个串口数据;
B、将串口数据接收模式改为查询模式,查询是否接收到新的串口数据;
C、在收到新的串口数据时,处理所述新的串口数据,直到收到所述通讯协议的所有串口数据后,弹出所述现场数据。
本发明所述的单片机串口数据接收方法,其中,所述步骤A包括:
A1、将单片机的串口数据接收模式设置为中断模式,在接收到串口中断信号时,响应所述串口中断信号,保存现场数据,调用中断处理函数接收所述通讯协议的第一个串口数据,单片机主程序查询并处理所述第一个串口数据。
本发明所述的单片机串口数据接收方法,其中,所述步骤C还包括以下步骤:
C1、在没有收到新的串口数据时,弹出所述现场数据。
本发明所述的单片机串口数据接收方法,其中,所述步骤C中,所述一条通讯协议包括10~20个串口数据。
本发明通过在单片机串口采用中断模式与查询模式相结合的通信方式,大大减少了单片机在响应中断时的处理时间,在不增加任何硬件设备并且不降低通讯波特率的前提下,提高了单片机的响应速度,保证通讯的可靠性。
附图说明
图1为现有技术中的串口数据处理时间组成示意图;
图2为现有技术中的单片机响应中断时间组成示意图;
图3为本发明实施例的单片机响应中断时间组成示意图;
图4为本发明实施例的单片机串口数据接收方法流程图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳达实智能股份有限公司,未经深圳达实智能股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910109543.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:线性全光谱图像读取装置
- 下一篇:热水器漏电保护器改进结构
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





