一种基于查询方式模拟串口通信的方法和装置制造方法及图纸

技术编号:19247206 阅读:25 留言:0更新日期:2018-10-24 08:58
一种基于查询方式模拟串口通信的方法,由定时器以及通用IO接口来模拟串口通信,包括以下步骤:模拟串口接收数据时,控制该定时器以第一中断时间(T1)定时采样该通用IO接口的电平;当查询到数据报文的起始位时,对该第一中断时间(T1)的采样点延时指定时间(T)后,调整该定时器的第一中断时间为第二中断时间(T2)进行采样,按位接收该数据报文;完成接收该数据报文的停止位后,恢复该定时器以该第一中断时间(T1)定时查询该通用IO接口的电平。

【技术实现步骤摘要】
【国外来华专利技术】一种基于查询方式模拟串口通信的方法和装置
本申请涉及通信
,具体涉及一种基于查询方式模拟串口通信的方法和装置。
技术介绍
在工业控制领域,串口因为协议简单使用方便,因此使用非常普遍。串行接口采用串行通信方式的扩展接口,将数据一位一位地顺序传送。随着工业控制终端的功能集成和扩展,很多工业控制终端会碰到微控制器(MicrocontrollerUnit,MCU)硬件串口资源不足的情况。而更换微控制器或者使用串口扩展芯片会产生额外的硬件开销,从而增加产品的研发和生产成本,因此,就需要用软件来模拟串口通信。现有的软件模拟串口的方法,一般通过使用微控制器的可中断IO接口来检测通信线上的边沿信号,不仅增加了微控制器选型的局限性,同时对于微控制器的时钟精度要求较高。现有的模拟串口通信方法,需要具有外部中断能力的IO接口才可作为通信口使用,对IO接口的要求特殊,会增加产品的微控制器的选型局限性。并且,利用中断边沿来录制电平波形,会将两个数据报文之间的空闲时间记录在数据时间中,还需要额外增加数据解析处理程序。该数据解析处理程序需从该电平波形中提取出数据报文,并判断一帧数据报文是否接受完毕,因此数据通信处理过程复杂,影响串口通信效率。并且微控制器的时钟一般都存在误差,微控制器的时钟误差也会给模拟串口通信带来不稳定因素,出现通信异常或者数据出错。因此,现有技术的模拟串口技术还有待于改进。
技术实现思路
本申请针对以上要解决的技术问题,提供一种基于查询方式模拟串口通信的方法和装置,采用通用定时器和通用IO接口即可实现模拟串口通信功能,同时通过动态调整数据报文起始位的定时中断时间,以较长的第二中断时间完成数据接收,再恢复回第一中断时间进行检测采样,避免了微控制器时钟误差造成的通信数据异常,提高数据接收准确率。第一方面,本申请实施例提供了一种基于查询方式模拟串口通信的方法,由定时器以及通用IO接口来模拟串口通信,包括以下步骤:模拟串口接收数据时,控制该定时器以第一中断时间(T1)定时采样该通用IO接口的电平;当查询到数据报文的起始位时,对第一中断时间(T1)的采样点延时指定时间(T)后,调整该定时器的第一中断时间为第二中断时间(T2)进行采样,按位接收该数据报文;完成接收该数据报文的停止位后,恢复该定时器以该第一中断时间(T1)定时查询该通用IO接口的电平。该模拟串口发送数据时,根据通用IO接口的比特率设定该定时器的第三中断时间(T3),在每个第三中断时间的周期内根据发送数据报文的数据位设定模拟串口的电平状态,当一个数据报文发送完成后停止定时器。其中,该定时器的第一中断时间(T1)为:T1=T2-2T;该定时器的第二中断时间(T2)为:其中A为通信比特率;该定时器的第三中断时间(T3)为:其中A为通信比特率。在一种延时实施例中,模拟串口接收数据时,该定时器以第一中断时间(T1)定时采样该通用IO接口的电平,当第一中断时间(T1)的采样点正好在起始位的下降沿时,关闭该定时器,对该第一中断时间(T1)延时指定时间(T),之后重新设置该定时器至该第二中断时间(T2)进行采样,其中,该指定时间(T)为:T=T2*X%,X%是系统允许的时钟误差。在另一种延时实施例中,模拟串口接收数据时,该定时器以第一中断时间(T1)定时采样的采样点落在起始位中接近下降沿的位置时,关闭该定时器,对该第一中断时间(T1)延时指定时间(T),之后重新设置该定时器至该第二中断时间(T2)进行采样,其中,该指定时间(T)为:T=T2*X%,X%是系统允许的时钟误差。模拟串口接收数据时,还包括以下步骤:第二中断时间(T2)到,接收起始位,修改状态为接收数据位;第二中断时间(T2)到,接收数据位,并记录读取次数,若读取次数等于数据报文的有效位数,修改状态为接收校验位;第二中断时间(T2)到,接收校验位,根据接收到的数据内容以及校验位确定校验结果;校验结果错误时设置错误标志;校验结果正确时修改状态为接收停止位;第二中断时间(T2)到,接收停止位;收到错误的停止位时,设置错误标志;收到正确的停止位时,修改状态为接收起始位。第二方面,本申请实施例还提供了一种基于查询方式模拟串口通信的装置,包括定时器设定单元、定时查询单元、延时模块以及接收模块,模拟串口接收数据时,该定时器设定单元用于以第一中断时间(T1)定时采样通用IO接口的电平;当该定时查询单元查询到数据报文的起始位时,该延时模块用于对该第一中断时间(T1)的采样点延时指定时间(T),该定时器设定单元还用于调整该第一中断时间为第二中断时间(T2)进行采样,该接收模块用于按位接收该数据报文;该接收模块完成接收该数据报文的停止位后,该定时器设定单元还用于恢复以该第一中断时间(T1)定时查询该通用IO接口的电平。该装置还包括发送模块,该模拟串口发送数据时,该定时器设定单元用于根据通用IO接口的比特率设定第三中断时间(T3),该发送模块用于在每个第三中断时间的周期内根据发送数据报文的数据位设定模拟串口的电平状态,当一个数据报文发送完成后停止定时器。其中,该定时器的第一中断时间(T1)为:T1=T2-2T;该定时器的第二中断时间(T2)为:其中A为通信比特率;该定时器的第三中断时间(T3)为:其中A为通信比特率。具体实施时,模拟串口接收数据时,该定时器设定单元用于以第一中断时间(T1)定时采样该通用IO接口的电平,当第一中断时间(T1)的采样点在起始位的下降沿时,该延时模块用于对该第一中断时间(T1)延时指定时间(T),然后重新设置该定时器至该第二中断时间(T2)进行采样,其中,该指定时间(T)为:T=T2*X%,X%是系统允许的时钟误差。具体实施时,模拟串口接收数据时,该延时模块用于在该定时器以第一中断时间(T1)定时采样的采样点落在起始位中接近下降沿的位置时,对该第一中断时间(T1)延时指定时间(T),之后重新设置该定时器至该第二中断时间(T2)进行采样,其中,该指定时间(T)为:T=T2*X%,X%是系统允许的时钟误差。该接收模块用于按位接收该数据报文,包括起始位接收单元、数据位接收单元、校验位接收单元以及停止位接收单元,该起始位接收单元用于接收起始位,修改状态为接收数据位;该数据位接收单元用于接收数据位,并记录读取次数,若读取次数等于数据报文的有效位数,修改状态为接收校验位;该校验位接收单元用于接收校验位,根据接收到的数据内容以及校验位确定校验结果;校验结果错误时设置错误标志;校验结果正确时修改状态为接收停止位;该停止位接收单元用于接收停止位;收到错误的停止位时,设置错误标志;收到正确的停止位时,修改状态为接收起始位。本申请的有益效果在于:提供一种基于查询方式模拟串口通信的方法和装置,采用通用定时器和通用IO接口即可实现模拟串口通信功能,对微控制器的选型没有任何限制,并能够节省微控制器的硬件资源。同时通过动态调整数据报文起始位的定时中断时间,以较长的第二中断时间完成数据接收,再恢复回第一中断时间进行检测采样,避免了微控制器因时钟误差造成的通信数据异常,提高数据接收准确率。并且,该基于查询方式模拟串口通信的方法和装置,通过设置用于延时的指定时间,可增大微控制器允许的时钟误差范围。附图说明一个或多个实施例通过与之本文档来自技高网...

【技术保护点】
1.一种基于查询方式模拟串口通信的方法,由定时器以及通用IO接口来模拟串口通信,其特征在于,包括以下步骤:模拟串口接收数据时,控制所述定时器以第一中断时间(T1)定时采样所述通用IO接口的电平;当查询到数据报文的起始位时,对所述第一中断时间(T1)的采样点延时指定时间(T)后,调整所述定时器的所述第一中断时间(T1)为第二中断时间(T2)进行采样,按位接收所述数据报文;完成接收所述数据报文的停止位后,恢复所述定时器以第一中断时间(T1)定时查询所述通用IO接口的电平。

【技术特征摘要】
【国外来华专利技术】1.一种基于查询方式模拟串口通信的方法,由定时器以及通用IO接口来模拟串口通信,其特征在于,包括以下步骤:模拟串口接收数据时,控制所述定时器以第一中断时间(T1)定时采样所述通用IO接口的电平;当查询到数据报文的起始位时,对所述第一中断时间(T1)的采样点延时指定时间(T)后,调整所述定时器的所述第一中断时间(T1)为第二中断时间(T2)进行采样,按位接收所述数据报文;完成接收所述数据报文的停止位后,恢复所述定时器以第一中断时间(T1)定时查询所述通用IO接口的电平。2.根据权利要求1所述的方法,其特征在于,还包括:模拟串口发送数据时,根据通用IO接口的比特率设定所述定时器的第三中断时间(T3),在每个第三中断时间的周期内根据发送数据报文的数据位设定模拟串口的电平状态,当一个数据报文发送完成后停止定时器。3.根据权利要求2所述的方法,其特征在于,所述定时器的第一中断时间(T1)为:T1=T2-2T;所述定时器的第二中断时间(T2)为:其中A为通信比特率;所述定时器的第三中断时间(T3)为:其中A为通信比特率。4.根据权利要求1-3任意一项所述的方法,其特征在于,模拟串口接收数据时,所述定时器以第一中断时间(T1)定时采样所述通用IO接口的电平,当第一中断时间(T1)的采样点在起始位的下降沿时,关闭所述定时器,对所述第一中断时间(T1)延时指定时间(T),之后重新设置所述定时器至所述第二中断时间(T2)进行采样,其中,所述指定时间(T)为:T=T2*X%,X%是系统允许的时钟误差。5.根据权利要求4所述的方法,其特征在于,模拟串口接收数据时,所述定时器以第一中断时间(T1)定时采样的采样点落在起始位中接近下降沿的位置时,关闭所述定时器,对所述第一中断时间(T1)延时指定时间(T),之后重新设置所述定时器至所述第二中断时间(T2)进行采样,其中,所述指定时间(T)为:T=T2*X%,X%是系统允许的时钟误差。6.根据权利要求5所述的方法,其特征在于,模拟串口接收数据时,包括以下步骤:第二中断时间(T2)到,接收起始位,修改状态为接收数据位;第二中断时间(T2)到,接收数据位,并记录读取次数,若读取次数等于数据报文的有效位数,修改状态为接收校验位;第二中断时间(T2)到,接收校验位,根据接收到的数据内容以及校验位确定校验结果;校验结果错误时设置错误标志;校验结果正确时修改状态为接收停止位;第二中断时间(T2)到,接收停止位;收到错误的停止位时,设置错误标志;收到正确的停止位时,修改状态为接收起始位。7.一种基于查询方式模拟串口通信的装置,其特征在于,包括定时器设定单元、定时查询单元、延时模块以及接收模块,模...

【专利技术属性】
技术研发人员:龚铭吴志明刘光林
申请(专利权)人:深圳和而泰智能控制股份有限公司
类型:发明
国别省市:广东,44

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

1