一种实现波特率自适应的模拟UART的方法技术

技术编号:14555061 阅读:43 留言:0更新日期:2017-02-05 04:17
本发明专利技术公开了一种实现波特率自适应的模拟UART的方法,利用数据帧的前20个边沿,在扫描时找出电平持续时间最短的一个电平,根据实际通讯情况和硬件滤波器的情况决定对最小电平进行一个滤波去抖动处理,最后确定的最短电平的持续时间与哪个波特率匹配,那么这个波特率就是当前通讯的波特率。

Method for realizing baud rate adaptive analog UART

The invention discloses a method for analog UART baud rate adaptive, using the 20 edges of the data frame, find a level of the shortest duration in the scan, according to the actual situation of communication and hardware filter case decided to a minimum level of a filter to jitter, the shortest duration the level of final match with which the baud rate, then the baud rate is the current communication baud rate.

【技术实现步骤摘要】

本专利技术涉及通讯领域,具体涉及一种实现波特率自适应的模拟UART的方法
技术介绍
随着我国市场经济改革日趋成熟和电力行业体制改革的不断深化,电力市场引入竞争机制,电网内部管理也逐渐走向商业化市场,而商业化运行的核心就是供电和购电双方以电力交换点的电能量作为计量结算依据,原来人工抄表和统计结算的抄表方式显然不能适应市场商业化运营的需要,因此,必须建立以自动化为基础的电能量计量自动化系统,以提高电能量的采集、传输、处理的精确性、可靠性和及时性。电能量采集系统由系统主站、数据通道、厂站设备三部分组成,实现了对电网和电能表实时数据采集和监测,独立完成分时计费、电能量统计、电能量平衡、电能量管理以及电力营业考核自动化等功能;并具有远程维护、授权Internet用户远程查询等远程管理功能;并且通过与MIS、SCADA、DMS、EMS等系统实现数据交换与共享,为其他子系统提供了准确、完整的信息数据。电能表随着微电子技术的进步有许多的通讯方式应用其中,包括红外通讯、有线通讯、无线通讯、电力载波通讯、串口通信。串口通信是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件;而波特率则是在串口通信是的速率,指的是信号被调制以后单位时间内的变化,即单位时间内载波参数变化的次数;在电能表的应用中,通讯波特率的切换都会遇到问题,有时并不知道电能表内部的波特率而需要对每个波特率都进行试通讯来确定正确的波特率,从而浪费操作人员的时间,增加了人力成本。>
技术实现思路
本专利技术的目的是为了提供一种能在通讯时波特率自适应,无需手动切换的实现波特率自适应的模拟UART的方法。本专利技术通过以下技术方案实现:一种实现波特率自适应的模拟UART的方法,步骤如下:a)将电能表上电初始化,开启一个定时器,根据波特率的最小周期确定定时器的步进,并将接收引脚配置为双边沿外部中断输入,发送引脚配置为普通输出,同时开辟至少20个缓存,将前20个缓存标记为T1至T20,用于存放前19个电平的持续时间;b)检测电能表的中断信号,每次检测到中断信号,都将边沿变化记入缓存中记录定时器的值,记满前20个缓存;c)依次计算前19个电平的持续时间,取持续时间最短的电平标记为Tmin,进行滤波处理,清除干扰信号;d)取与Tmin持续时间最近的波特率Tb,并将Tmin与Tb匹配,Tmin≈Tb;匹配成功则Tb就为当前通讯的波特率;匹配不成功则抛弃接收数据;e)将接收到的19个电平进行解析,并通过((Tn+1)-Tn)/Tb算出每个电平代表的数据位;f)设置定时器的定时间隔为Tb,并关闭外部中断输入;g)每次在定时中断中,读取接收引脚的电平直至接收完成;h)电能表将接收的数据处理完后在间隔为Tb的定时器中断中将应答的数据发送出去;i)发送完成后,初始化定时器,并将接收引脚配制为双边沿外部中断输入,进入接收模式,回到步骤b。作为优选,所述步骤c中的滤波处理为根据通讯情况和硬件滤波器对持续时间最短的电平Tmin进行去抖动处理。作为优选,所述步骤a中的定时器为微妙级定时器。本专利技术利用数据帧的前20个边沿,在扫描时找出电平持续时间最短的一个电平,根据实际通讯情况和硬件滤波器的情况决定对最小电平进行一个滤波去抖动处理,最后确定的最短电平的持续时间与哪个波特率匹配,那么这个波特率就是当前通讯的波特率。本专利技术的有益之处在于:1)利用一个定时器和多个IO边沿中断,高效实现多路模拟UART功能,效率更高;2)通过对前20个中持续时间最短的电平与波特率进行匹配,得出与之匹配的波特率就是当前通讯的波特率,起到能自适应波特率的功能,无需操作人员再对每个波特率进行通讯从而确定当前通讯的波特率,节省人力成本。具体实施方式下面结合具体实施方式,对本专利技术作进一步描述。一种实现波特率自适应的模拟UART的方法,步骤如下:a)将电能表上电初始化,开启一个定时器,根据波特率的最小周期确定定时器的步进,并将接收引脚配置为双边沿外部中断输入,发送引脚配置为普通输出,同时开辟至少20个缓存,将前20个缓存标记为T1至T20,用于存放前19个电平的持续时间;b)检测电能表的中断信号,每次检测到中断信号,都将边沿变化记入缓存中记录定时器的值,记满前20个缓存;c)依次计算前19个电平的持续时间,取持续时间最短的电平标记为Tmin,进行滤波处理,清除干扰信号;d)取与Tmin持续时间最近的波特率Tb,并将Tmin与Tb匹配,Tmin≈Tb;匹配成功则Tb就为当前通讯的波特率;匹配不成功则抛弃接收数据;e)将接收到的19个电平进行解析,并通过((Tn+1)-Tn)/Tb算出每个电平代表的数据位;f)设置定时器的定时间隔为Tb,并关闭外部中断输入;g)每次在定时中断中,读取接收引脚的电平直至接收完成;h)电能表将接收的数据处理完后在间隔为Tb的定时器中断中将应答的数据发送出去;i)发送完成后,初始化定时器,并将接收引脚配制为双边沿外部中断输入,进入接收模式,回到步骤b。本实施方式中,所述步骤c中的滤波处理为根据通讯情况和硬件滤波器对持续时间最短的电平Tmin进行去抖动处理。本实施方式中,所述步骤a中的定时器为微妙级定时器。本实施方式中,首先开启一个定时器,定时器的步进根据波特率的最小周期确定,小于最小周期的1/20即可;接收时,将输入信号设置成双边沿触发,捕获定时器的值并放入一个缓冲区中,如果MCU具有DMA功能,可以使用DMA加边沿捕获功能来实现,后续分析缓冲区中的定时器的值,得出每个电平的宽度,从而分析出通讯的数据内容;发送时,根据起始位、数据内容、奇偶校验位、停止位等,确定每个电平的发送持续时间,根据定时器的比较翻转电平模式,进行比较IO输出。本实施方式中,根据各种不同的规约,一帧数据至少有20个电平变化,本专利技术主要利用数据帧的前20个边沿,而在前20个边沿中肯定存在一个电平持续时间为1位波特率的电平,例如电能表中的《DLT645-2007》协议、DLMS协议等都具备此特点,就是在检测电能表的中断信号时,找出前20个边沿中电平持续时间最短的一个电平,可根据实际通讯情况和硬件滤波器的情况决定对最小电平进行一个滤波去抖动处理,最后确定的最短电平的持续时间与哪个波特率匹配,那么这个波特率就是当前的波特率。本实施方式中,t为滤波值,用于去除抖动,根据通讯的特点和电路的参数进行选值。本实施方式中,步骤1)检测电能表的中断信号,取边沿捕获数,将边沿变化记入缓存中记录定时器的值,并将电平最小值寄存器设置为0xffff;步骤2)检测捕获数是否大于0,若不大于0,则进入步骤5,如大于0则计算各个电平持续时间t(i)-t(i-1)并计算电平持续的位数;步骤3)检测该电平持续时间是否小于t,若大于t则进入步骤4,若小于t则将本文档来自技高网...

【技术保护点】
一种实现波特率自适应的模拟UART的方法,其特征在于,步骤如下:a)将电能表上电初始化,开启一个定时器,根据波特率的最小周期确定定时器的步进,并将接收引脚配置为双边沿外部中断输入,发送引脚配置为普通输出,同时开辟至少20个缓存,将前20个缓存标记为T1至T20,用于存放前19个电平的持续时间;b)检测电能表的中断信号,每次检测到中断信号,都将边沿变化记入缓存中记录定时器的值,记满前20个缓存;c)依次计算前19个电平的持续时间,取持续时间最短的电平标记为Tmin,进行滤波处理,清除干扰信号;d)取与Tmin持续时间最近的波特率Tb,并将Tmin与Tb匹配,Tmin≈Tb;匹配成功则Tb就为当前通讯的波特率;匹配不成功则抛弃接收数据;e)将接收到的19个电平进行解析,并通过((Tn+1)‑Tn)/Tb算出每个电平代表的数据位;f)设置定时器的定时间隔为Tb,并关闭外部中断输入;g)每次在定时中断中,读取接收引脚的电平直至接收完成;h)电能表将接收的数据处理完后在间隔为Tb的定时器中断中将应答的数据发送出去;i)发送完成后,初始化定时器,并将接收引脚配制为双边沿外部中断输入,进入接收模式,回到步骤b。...

【技术特征摘要】
1.一种实现波特率自适应的模拟UART的方法,其特征在于,步骤如下:
a)将电能表上电初始化,开启一个定时器,根据波特率的最小周期确定定时器的步进,并将接收引脚配置为双边沿外部中断输入,发送引脚配置为普通输出,同时开辟至少20个缓存,将前20个缓存标记为T1至T20,用于存放前19个电平的持续时间;
b)检测电能表的中断信号,每次检测到中断信号,都将边沿变化记入缓存中记录定时器的值,记满前20个缓存;
c)依次计算前19个电平的持续时间,取持续时间最短的电平标记为Tmin,进行滤波处理,清除干扰信号;
d)取与Tmin持续时间最近的波特率Tb,并将Tmin与Tb匹配,Tmin≈Tb;匹配成功则Tb就为当前通讯的波特率;匹配不成功则抛弃接收数据;
e)将接收到的19...

【专利技术属性】
技术研发人员:郑坚江王运兵应碧锋陈恢云应必金刘其君
申请(专利权)人:宁波三星医疗电气股份有限公司
类型:发明
国别省市:浙江;33

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

1