一种基于MCU的串口通信方法和系统技术方案

技术编号:18203950 阅读:67 留言:0更新日期:2018-06-13 06:12
本发明专利技术公开了一种基于MCU的串口通信方法,该方法包括并行的收发控制步骤和中断响应步骤;其中,收发控制步骤包括:获取数据状态标志值;根据对数据状态标志值是否为应答完成的判断执行操作,包括:当数据状态标志值为应答完成时,获取数据;当数据状态标志值不为应答完成时,间隔预设的时间间隔,返回获取数据状态标志值的步骤;中断响应步骤包括:根据检测到MCU的接收中断信号,将数据状态标志值更新为应答完成。此外,还公开了一种基于MCU的串口通信系统。上述基于MCU的串口通信方法和系统提高了MCU与外接设备之间数据交互的效率。

【技术实现步骤摘要】
一种基于MCU的串口通信方法和系统
本专利技术涉及数据通信,尤其涉及一种基于MCU的串口通信方法和系统。
技术介绍
通常在MCU与外接设备的通信过程中,MCU扮演主机模式,外接设备扮演从机模式。MCU向外接设备发送指令数据,外接设备在接到该指令数据后,将经过一系列处理得到的运算结果作为应答数据返回给MCU,因而,从MCU开始请求数据到获取数据需要一定的数据交互时间。某些情形下,MCU与外接设备之间还会引入其他电路结构,这些其他电路结构的引入会导致数据传输的延时,从而进一步增加数据交互时间。例如,在电能表应用场景下,当外接设备为计量芯片时,由于计量芯片直接与强电设施(如市电220V)连接,一般行业规范上都要求MCU与计量芯片之间必须电气隔离,如采用光耦隔离电路。参见图1是电能表中MCU与计量芯片的电气连接原理图,图2是单相电能表通信应用的一个实例,其中,S1表示MCU请求数据阶段,S2表示计量芯片应答阶段,CMD表示MCU向计量芯片发送的请求指令数据,T1表示CMD数据的传输时间,T2表示MCU发送完指令数据之后计量芯片开始数据应答的时间间隔,T3表示计量芯片应答数据的传输时间,DATA1~DATA4表示计量芯片应答的相关测量数据(即MCU期望得到的数据),CHKSUM表示DATA1~DATA4的计算和,供于MCU验证计量芯片应答数据的正确性,可看出MCU与计量芯片之间一个正常的数据交互时间大约需要14ms。另外,由于一般MCU程序执行机制只具备单线程执行机制,一旦某个功能子程序运行时间过长都会影响其他功能子程序的运行。假如MCU与外接设备在一个主函数中数据交互次数过多,则不利于主函数中其他功能子程序的运行,降低整个主函数的运行效率。
技术实现思路
为了解决上述技术问题,本专利技术的目的是提供一种基于MCU的串口通信方法,包括并行的收发控制步骤和中断响应步骤;其中,收发控制步骤包括:获取数据状态标志值;根据对数据状态标志值是否为应答完成的判断执行操作,包括:当数据状态标志值为应答完成时,获取数据;当数据状态标志值不为应答完成时,间隔预设的时间间隔,返回获取数据状态标志值的步骤;中断响应步骤包括:根据检测到MCU的接收中断信号,将数据状态标志值更新为应答完成。进一步地,数据状态标志值的取值还包括发送请求;相应地,收发控制步骤包括:获取数据状态标志值;根据对数据状态标志值是否为发送请求或应答完成的判断执行操作,包括:当数据状态标志值为发送请求时,触发MCU的发送中断信号;当数据状态标志值为应答完成时,获取数据,且在获取数据完成时将数据状态标志值更新为发送请求;当数据状态标志值不为发送请求或应答完成时,间隔预设的时间间隔,返回获取数据状态标志值的步骤。进一步地,中断响应步骤根据对检测到的中断信号的判断执行操作,包括:当检测到接收中断信号时,通知MCU接收数据,并将数据状态标志值更新为应答请求,且当数据接收完成,将数据状态标志值更新为应答完成;当检测到发送中断信号时,将数据状态标志值更新为发送进行中。进一步地,接收中断信号和发送中断信号分别为UART接收中断信号和UART发送中断信号。进一步地,基于MCU的串口通信方法用于MCU与计量芯片的通信。本专利技术的目的是还提供一种基于MCU的串口通信系统,包括并行的收发控制模块和中断响应模块;其中,收发控制模块包括:第一标志值获取单元,用于获取数据状态标志值;第一标志值判断单元,用于根据对数据状态标志值是否为应答完成的判断执行操作,包括:当数据状态标志值为应答完成时,获取数据;当数据状态标志值不为应答完成时,间隔预设的时间间隔,通知第一标志值获取单元工作;中断响应模块,用于根据检测到MCU的接收中断信号,将数据状态标志值更新为应答完成。进一步地,数据状态标志值的取值还包括发送请求;相应地,收发控制模块包括:第二标志值获取单元,用于获取数据状态标志值;第二标志值判断单元,用于根据对数据状态标志值是否为发送请求或应答完成的判断执行操作,包括:当数据状态标志值为发送请求时,触发MCU的发送中断信号;当数据状态标志值为应答完成时,获取数据,且在获取数据完成时将数据状态标志值更新为发送请求;当数据状态标志值不为发送请求或应答完成时,间隔预设的时间间隔,通知第二标志值获取单元工作。进一步地,中断响应模块用于根据对检测到的中断信号的判断执行操作,包括:接收中断响应单元,用于当检测到接收中断信号时,通知MCU接收数据,并将数据状态标志值更新为应答请求,且当数据接收完成,将数据状态标志值更新为应答完成;发送中断响应单元,用于当检测到发送中断信号时,将数据状态标志值更新为发送进行中。进一步地,接收中断信号和发送中断信号分别为UART接收中断信号和UART发送中断信号。进一步地,基于MCU的串口通信方法用于MCU与计量芯片的通信。由上述技术方案可知,在MCU发送指令数据的请求后,不是在固定时延的等待后才从接收缓冲区获取外接设备返回的应答数据,而是由收发控制步骤每隔预设的时间间隔去查询数据状态标志值并以其取值来判断MCU的接收缓冲区是否已接收完成外接设备返回的应答数据,若判断接收完成,则可在第一时间获取,而该数据状态标志值的赋值由与收发控制步骤并行运行的中断响应步骤实时监测更新。由于中断代码指令较少,占用的程序运行时间也少,可认为整个通信过程不存在延时指令。更优选实施例的收发控制步骤中,在一个应答数据获取完成之后,还包括将数据状态标志值更新为发送请求,开始向与MCU通信的外接设备发送下一个要请求的指令数据,这样,充分保证了MCU与外接设备之间数据交互的效率,使得请求数据的更新更为及时有效。附图说明下面结合附图对本专利技术的具体实施方式作进一步说明:图1是电能表中MCU与计量芯片的电气连接原理图;图2是单相电能表通信应用的一个实例;图3是一个实施例中收发控制步骤的流程示意图;图4是另一个实施例中收发控制步骤的流程示意图;图5是一个实施例中中断响应步骤的流程示意图;图6是一个实施例中基于MCU的串口通信系统的结构示意图;图7是一个实施例中收发控制模块的结构示意图;图8是另一个实施例中收发控制模块的结构示意图;图9是一个实施例中中断响应模块的结构示意图。具体实施方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。如前所述的,现有技术中,在MCU发送请求数据的命令后,会在固定时延的等待后再从接收缓冲区获取外接设备返回的应答数据。但实际情况中,外接设备处理不同数据花费的时间有长有短,因而,返回的应答数据在到达MCU的时间也有早有晚。若MCU每次都在固定时延的等待后才去获取数据,这样,就会造成程序运行中不必要的时间耗费。特别地,当MCU与外接设备之间的数据交互不止一次时,累计产生的时间耗费更大,大大降低了通信效率。鉴于此,特提出一种基于MCU的串口通信方法,该基于MCU的串口通信方法包括并行的收发控制步骤和中断响应步骤。其中,参见图3是一个实施例中收发控制步骤的流程示意图,收发控制步骤包括:S310、获取数据状态标志值。在本实施中,增加了一个全局变量数据状态标志值step,该数据状态标志值step用来标志在MCU与外接设备通信时交互数据的传输状态。考虑MCU从外接设备接收应答数据本文档来自技高网
...
一种基于MCU的串口通信方法和系统

【技术保护点】
一种基于MCU的串口通信方法,其特征在于,包括并行的收发控制步骤和中断响应步骤;其中,所述收发控制步骤包括:获取数据状态标志值;根据对所述数据状态标志值是否为应答完成的判断执行操作,包括:当所述数据状态标志值为所述应答完成时,获取数据;当所述数据状态标志值不为所述应答完成时,间隔预设的时间间隔,返回所述获取数据状态标志值的步骤;所述中断响应步骤包括:根据检测到所述MCU的接收中断信号,将所述数据状态标志值更新为所述应答完成。

【技术特征摘要】
1.一种基于MCU的串口通信方法,其特征在于,包括并行的收发控制步骤和中断响应步骤;其中,所述收发控制步骤包括:获取数据状态标志值;根据对所述数据状态标志值是否为应答完成的判断执行操作,包括:当所述数据状态标志值为所述应答完成时,获取数据;当所述数据状态标志值不为所述应答完成时,间隔预设的时间间隔,返回所述获取数据状态标志值的步骤;所述中断响应步骤包括:根据检测到所述MCU的接收中断信号,将所述数据状态标志值更新为所述应答完成。2.根据权利要求1所述的基于MCU的串口通信方法,其特征在于,所述数据状态标志值的取值还包括发送请求;相应地,所述收发控制步骤包括:获取数据状态标志值;根据对所述数据状态标志值是否为所述发送请求或所述应答完成的判断执行操作,包括:当所述数据状态标志值为所述发送请求时,触发所述MCU的发送中断信号;当所述数据状态标志值为所述应答完成时,获取数据,且在所述获取数据完成时将所述数据状态标志值更新为所述发送请求;当所述数据状态标志值不为所述发送请求或所述应答完成时,间隔预设的时间间隔,返回所述获取数据状态标志值的步骤。3.根据权利要求2所述的基于MCU的串口通信方法,其特征在于,所述中断响应步骤根据对检测到的中断信号的判断执行操作,包括:当检测到所述接收中断信号时,通知MCU接收数据,并将所述数据状态标志值更新为应答请求,且当数据接收完成,将所述数据状态标志值更新为应答完成;当检测到所述发送中断信号时,将所述数据状态标志值更新为发送进行中。4.根据权利要求2所述的基于MCU的串口通信方法,其特征在于,所述接收中断信号和所述发送中断信号分别为UART接收中断信号和UART发送中断信号。5.根据权利要求1~4任一项所述的基于MCU的串口通信方法,其特征在于,所述基于MCU的串口通信方法用于MCU与计量芯片的通信。6.一种基于MCU的串口通信系统,其特征在于,包括并行的收发控制模块和...

【专利技术属性】
技术研发人员:潘晓亮
申请(专利权)人:深圳市科陆电子科技股份有限公司
类型:发明
国别省市:广东,44

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

1