CN115964320A - 波特率识别方法、装置、识别波特率的芯片及存储介质 - Google Patents
波特率识别方法、装置、识别波特率的芯片及存储介质 Download PDFInfo
- Publication number
- CN115964320A CN115964320A CN202211715397.3A CN202211715397A CN115964320A CN 115964320 A CN115964320 A CN 115964320A CN 202211715397 A CN202211715397 A CN 202211715397A CN 115964320 A CN115964320 A CN 115964320A
- Authority
- CN
- China
- Prior art keywords
- data
- baud rate
- clock
- data packet
- trigger signal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000004891 communication Methods 0.000 claims abstract description 153
- 238000012545 processing Methods 0.000 claims description 69
- 230000000630 rising effect Effects 0.000 claims description 28
- 238000012937 correction Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 15
- 230000004044 response Effects 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
Abstract
本申请提供一种波特率识别方法、装置、识别波特率的芯片及存储介质,识别波特率的芯片包括:数据通信单元和定时单元,所述方法包括:当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;根据所述时钟数据,确定发送所述数据包的发送端的波特率。实现芯片进行波特率识别的功能,以使芯片能够根据所述波特率接收发送端发送的数据,避免芯片内部不能自动进行波特率识别的问题,提升芯片的数据传输性能。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种波特率识别方法、装置、识别波特率的芯片及存储介质。
背景技术
在嵌入式领域,串口通信(USART)是一种简单且使用率很高的通讯方式,串口通信中有一个关键参数,波特率(每秒钟传输的bit数),通信双方只有使用相同的波特率才能完成正确的数据传输。
但是,由于使用场景需求,数据传输的波特率并不是固定的,而大多数使用串口通信的控制器(MCU)芯片内部未实现硬件上的波特率自动识别,只有基础的串口通信功能,导致芯片的数据传输被限制。
发明内容
本申请提供一种波特率识别方法、装置、识别波特率的芯片及存储介质,解决现有技术中,芯片内部不能自动进行波特率识别的问题,提升芯片的数据传输性能。
第一方面,本申请提供
一种波特率识别方法,其特征在于,应用于识别波特率的芯片,所述芯片包括:数据通信单元和定时单元,所述方法包括:
当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;
根据所述时钟数据,确定发送所述数据包的发送端的波特率。
在本申请一种可能的实现方式中,所述数据通信单元用于接收数据包,并根据所述数据包中的数据包头生成中断触发信号;
所述根据所述时钟数据,确定发送所述数据包的发送端的波特率包括:
根据生成的各所述时钟数据,计算所述数据包头对应的脉冲宽度;
获取所述定时单元对应的预设的第一时钟频率,以及所述数据包头对应的预设时钟数量;
根据所述脉冲宽度、所述第一时钟频率以及所述预设时钟数量,确定发送所述数据包的发送端的波特率。
在本申请一种可能的实现方式中,所述根据生成的各所述时钟数据,计算所述数据包头对应的脉冲宽度,包括:
当生成时钟数据时,计算生成的所述时钟数据与上一次生成的时钟数据之间的时钟数据差值;
当所述时钟数据差值的数量与所述数据包头对应的预设时钟数量相同,则计算所有的时钟数据差值的总和,得到所述数据包头对应的脉冲宽度。
在本申请一种可能的实现方式中,所述计算生成的所述时钟数据与上一次生成的时钟数据之间的时钟数据差值,包括:
若生成的所述时钟数据与上一次生成的时钟数据之间的时钟数据差值为负数,则获取所述定时单元对应的时钟上限值;
根据所述时钟上限值和上一次生成的所述时钟数据的之间的差值,对所述时钟数据差值进行数据修正,得到修正后的时钟数据差值。
在本申请一种可能的实现方式中,所述当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据,包括:
当接收到所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;
若在预设时间段内未接收到所述数据通信单元再次发送的中断触发信号时,则删除已生成的所述时钟数据;
反馈数据发送指令到所述发送端,以控制所述发送端重新发送用于使所述数据通信单元产生所述中断触发信号的数据包。
在本申请一种可能的实现方式中,所述识别波特率的芯片还包括波特率控制寄存器;
所述根据所述时钟数据,确定发送所述数据包的发送端的波特率之后,所述方法还包括:
获取所述数据通信单元对应预设的第二时钟频率;
根据所述第二时钟频率和所述波特率,确定所述波特率控制寄存器的控制参数;
将所述控制参数写入所述波特率控制寄存器,以控制所述数据通信单元根据所述波特率接收所述数据包中的目标数据。
第二方面,本申请提供一种波特率识别装置,应用于识别波特率的芯片,所述芯片包括:数据通信单元和定时单元,所述波特率识别装置包括:
中断处理模块:用于当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;
波特率确定模块:用于根据所述时钟数据,确定发送所述数据包的发送端的波特率。
第三方面,本申请提供一种识别波特率的芯片,包括:
数据通信单元:用于接收数据包,并根据所述数据包中的数据包头生成中断触发信号,将所述中断触发信号发送到所述数据处理单元;
定时单元,用于计时:
数据处理单元:用于当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据,并根据所述时钟数据,确定发送所述数据包的发送端的波特率。
在本申请的其中一种实施方案中,所述中断触发信号包括上升沿触发信号或下降沿触发信号;
所述数据通信单元具体用于:
当检测到数据包时,根据预设通信协议读取所述数据包中的数据包头;
当检测到所述数据包头中的电位信号由高变低,生成下降沿触发信号,并将所述下降沿触发信号发送到所述数据处理单元;或
当检测到所述数据包头中的电位信号由低变高,生成上升沿触发信号,并将所述上升沿触发信号发送到所述数据处理单元。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行任一项所述的波特率识别方法中的步骤。
本申请提供波特率识别方法、装置、识别波特率的芯片及存储介质,识别波特率的芯片包括:数据通信单元和定时单元,所述方法包括:当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;根据所述时钟数据,确定发送所述数据包的发送端的波特率。本方案通过所述芯片通过配置中断触发,通过数据通信单元数据包包头中的中断触发信号,并根据中断触发信号确定定时单元的时间信息,生成对应的时钟数据,即,先通过中断检测的方式数据包包头的时钟数据,确定所述数据包头的时钟宽度,可以理解的是,进一步可以根据时钟数据计算发送方的发送波特率,实现芯片进行波特率识别的功能,以使芯片能够根据所述波特率接收发送端发送的数据,避免芯片内部不能自动进行波特率识别的问题,提升芯片的数据传输性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中波特率识别方法的一个实施例流程示意图;
图2为本申请实施例提供的波特率识别方法中波特率确定的其中一种实施方案流程示意图;
图3为本申请实施例提供的波特率识别方法中生成时钟数据生成的其中一种实施方案流程示意图;
图4为本申请实施例提供另一种波特率识别方法的实施方案流程示意图;
图5为本申请实施例提供的一种波特率识别装置的实施方案结构示意图;
图6为本申请实施例提供的另一种波特率识别装置的实施方案结构示意图;
图7为本申请实施例中识别波特率的芯片的一个实施例结构示意图;
图8为本申请实施例中识别波特率的芯片的另一个实施例结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据背景技术描述可知,大多数使用串口通信的控制器(MCU)芯片内部未实现硬件上的波特率自动识别,只有基础的串口通信功能,而串口通信(USART)的通信双方只有使用相同的波特率才能完成正确的数据传输,但是,在很多窗口数据传输的场景下,发送方的波特率并不是固定的,因此,现有技术中的芯片的数据传输被限制。
故,本申请提供一种波特率识别方法、装置、识别波特率的芯片及存储介质以及存储介质(计算机可读存储介质),具体的,在本申请的其中一种运用场景中,波特率识别方法运用与识别波特率的芯片,识别波特率的芯片安装于电子设备中,可以理解的是,存储介质可以设于识别波特率的芯片,波特率识别方法可以为可被识别波特率的芯片中的处理器执行的计算机程序,并存储在设于识别波特率的芯片中的存储介质中。
其中,识别波特率的芯片可以为单片机,微控制器等,电子设备可以为手机、平板、电脑等。
基于上述场景,提出了波特率识别方法的实施例,波特率识别方法应用于识别波特率的芯片,芯片包括:数据通信单元和定时单元,数据通信单元用于接收数据包,并根据数据包中的数据包头生成中断触发信号,定时单元用于计时。
参见图1,图1为本申请实施例中波特率识别方法的一个实施例流程示意图,方法包括步骤S101-S102:
S101、当接收数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据。
其中,数据通信单元,即,芯片(即,识别波特率的芯片的简称)中的USART_RxD引脚模块,可以理解的是,USART_RxD引脚具备边沿触发外部中断功能,使能USART_RxD引脚的IO外部中断。
其中,数据包,即,与芯片串口通信的发送端发送的数据,可以理解的是,数据包中包括数据包头和目标数据,其中,数据包头用于识别发送端的传输频率,即发送端的波特率,目标数据为发送端要发送的给芯片的数据。
其中,时钟数据,即,时间点信息,可以理解的是,识别波特率的芯片响应中断触发信号时,根据这一刻从定时单元获取的时间信息生成的时间数据,比如,将从定时单元获取的时间信息进行小数值修正处理(保留几位小数等)生成时钟数据,或者直接将从定时单元获取的时间信息设置为时钟数据。
可以理解的是,数据包中包括多个字节,每个字节中存储有多个比特(bit),发送端在发送数据包时,从数据包头开始对应的第一个比特开始发送,比如,数据包中包括8个字节,根据预设的通信协议,约定第一字节中对应的数据是数据包头,即,第一个字节对应的数据为数据包头,数据包头中可以包括M个比特,其中M是小于8的整数。
可以理解的是,数据包头的数据格式可以为预设格式,比如:数据包头中为16进制数据0xAA转换后的二进制数值,即,第一字节中存储8个比特值,可以理解的是,在申请的其他实施方案中,数据包头也可以为其他格式的预设数据。
其中,定时单元用于计时,示例性的,定时单元可以为定时器、计数器等的任意一种;示例性的,定时单元用于在检测到识别波特率的芯片上电后启动计时,且在计时达到上限值后进行计时清零后重新计时,可以理解的是,定时单元也可以在检测到数据通信单元接收到数据包时,启动计时,定时单元的计时启动方法本申请不做具体的限定。
可以理解的是,时间信息,即,对应定时单元计时的时间信息。
可以理解的是,发送端,为芯片外部的设备,比如,与芯片串口通信的芯片,控制器,即,发送方配置并使能串口通信(USART)功能。
具体的,定时单元在检测芯片上电后即启动计时,数据通信单元检测到数据包头中的起始信号后,检测根据数据包头中比特值对应的电流信号(在本申请实施方案中,数据通信单元数据包包头中的数据对应的电流信号的变化为对应为脉冲信号),数据通信单元会根据电流信号的变化会生成中断触发信号,然后将中段触发信号发送到识别波特率的芯片中的数据处理单元,以使数据处理单元进行中断处理,即,数据处理单元会停止正在进行的工作,进行中断处理,具体的,中断处理,即,读取数据处理单元中定时单元当前计时对应的时间信息,将时间信息进行小数值修正处理(保留几位小数等)生成时钟数据,或者直接将时间信息设置为时钟数据,然后根据时钟数据确定发送数据包的发送端的波特率。即,识别波特率的芯片接收数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据;根据时钟数据,确定发送数据包的发送端的波特率。
S102、根据时钟数据,确定发送数据包的发送端的波特率。
进一步的,识别波特率的芯片在接收数据通信单元发送的中断触发信号时,并根据读取的定时单元的时间信息生成时钟数据后,根据时钟数据,确定发送数据包的发送端的波特率,可以理解的是,根据时钟数据,确定发送数据包的发送端的波特率的实现方式本申请不作具体的限定,比如:
在本申请的其中一种实施方案中,识别波特率的芯片在确定时钟数据后,查找时钟和波特率对应的预设映射表,获取时钟数据对应的目标波特率,该目标波特率即发送数据包的发送端的波特率。
在本申请的另一种实施方案中,识别波特率的芯片在确定时钟数据后,将时钟数据输出预设的用于计算波特率的计算公式中,计算得到发送数据包的发送端的波特率。
进一步的,在上述实施方案的基础上,参见图2,图2为本申请实施例提供的波特率识别方法中波特率确定的其中一种实施方案流程示意图,包括步骤S201-S203:
S201、根据生成的各时钟数据,计算数据包头对应的脉冲宽度。
其中,脉冲宽度,即,数据包头对应的时钟宽度Delta,即,数据通信单元接收数据包头的占用时间,可以理解的是,时间为定时器计时对应的时间。
可以理解的是,由于数据包头中包括多个不同二进制的比特值,导致接收检测的电流信号不同,会产生多个脉冲,即,数据通信单元能够检测到多个中断触发信号,即,识别波特率的芯片对应多个中断触发信号会得到多个对应的时钟数据。
在本申请实施方案中,识别波特率的芯片在接收到数据通信单元发送的中断触发信号后,读取定时单元的时间信息,将时间信息进行备份,得到为当前接收到的中触发信号对应的时钟数据,即,读取定时器的当前计数值Cnt_Current(时间信息),备份当前值为Cnt_Curren_Cpy=Cnt_Curren_(即,根据时间信息生成时钟数据),然后等待下降沿中断触发,即,当检测到数据包头中的电位信号由高变低,触发下降沿中断,生成下降沿触发信号,并将下降沿触发信号发送到识别波特率的芯片对应的数据处理单元;然后使能上升沿中断,禁止下降沿中断,数据通信单元进一步等待上升沿中断,即,当检测到数据包头中的电位信号由低变高,触发上升沿中断,生成上升沿触发信号,并将上升沿触发信号发送到识别波特率的芯片对应的数据处理单元;数据处理单元再一次接收到数据通信单元发送的中断触发信号时,再次响应中断触发信号,读取定时单元的时间信息,生成时钟数据,即,读取定时器的当前计数值Cnt_Current(在本申请实施方案中,计数值等于时钟数据),然后计算当前生成的时钟数据和上一次检测到的时钟数据之间的差值,得到一数据包头中一个bit的时钟宽度Delta(脉冲宽度),即,Delta=Cnt_Curren(当前检测到的时钟时间信息,即时钟数据)-Cnt_Curren_Cpy(上一次备份的时钟数据),然后备份Cnt_Curren_Cpy=Cnt_Curren;然后同理根据检测到的上升沿触发信号,下降沿触发信息,重复进行脉冲宽度计算(即,当读取定时单元的时间信息,生成时钟数据,并根据生成的时钟数据与上一次生成的时钟数据进行差值计算,根据差值计算数据包头对应的脉冲宽度),然后根据计算得到的所有的bit的时钟宽度Delta,求和计算得到数据包头对应的脉冲宽度。
S202、获取定时单元对应的预设的第一时钟频率,以及数据包头对应的预设时钟数量。
其中,定时单元的第一时钟频率,即定时器的定时工作对应的时钟频率。
其实,预设时钟数量,即,与识别波特率的芯片进行交互的外设之间进行通信前预先预定好的用于检测波特率的数据包头会产生的时钟数量,示例性的,比如,包头数据包括中包括相邻比特值不同的八个比特,则预设时钟数量为8。
可以理解的是,定时单元的第一时钟频率可以通过读取定时单元的配置参数获取,预设时钟数量可以通过预设的存储路径获取。
S203、根据脉冲宽度、第一时钟频率以及预设时钟数量,确定发送数据包的发送端的波特率。
具体的,根据脉冲宽度、定时单元的第一时钟频率以及时钟数据的数量,确定发送数据包的发送端的波特率的计算公式参见:
其中,Cnt_Sum为数据包头的脉冲宽度,ftimer为定时器时钟频率(第一时钟频率),Baudrate为波特率,m为每一个比特对应时钟宽度数量,即,时钟数据的数量。
进一步的,在本申请的另一种实施方案中,计算生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值,具体包括:
(1)若生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值为负数,则获取定时单元对应的时钟上限值;
(2)根据时钟上限值和上一次生成的时钟数据的之间的差值,对时钟数据差值进行数据修正,得到修正后的时钟数据差值。
可以理解的是,定时单元具有时钟上限值,当定时单元计数达到的时钟上限值,则会重新开始计时,此时,生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值即会出现负数,即,比如,当前定时器计数值Cnt_Current和上次计数值Cnt_Current_cpy相减为负数的情况,此时,通过时钟上限值减去上一次生成的时钟数据,得到差值,将差值加上时钟数据与上一次生成的时钟数据之间的时钟数据差值,得到修正后的时钟数据差值,修正后的时钟数据差值,用于计算波特率,修正前的时钟数据差值舍弃。可以理解的是,在本申请的其他一些实施方案中,若生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值为负数,对负数的时钟数据差值的修正也可通过二进制补码的方式实现修正。
进一步的,在上述实施方案的基础上,参见图3,图3为本申请实施例提供的波特率识别方法中生成时钟数据生成的其中一种实施方案流程示意图,包括步骤S301-S303:
S301、当接收到数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据。
具体的,定时单元在检测芯片上电后即启动计时,时间信息,即,对应定时单元计时的时间信息,数据通信单元检测到数据包头中的起始信号后,检测根据数据包头中比特值对应的电流信号(在本申请实施方案中,数据通信单元数据包包头中的数据对应的电流信号的变化为对应为脉冲信号),数据通信单元会根据电流信号的变化会生成中断触发信号,然后将中段触发信号发送到识别波特率的芯片中的数据处理单元,当接收数据通信单元发送的中断触发信号时,读取定时单元当前计时对应的时间信息,将时间信息进行小数值修正处理(保留几位小数等)生成时钟数据,或者直接将时间信息设置为时钟数据。
S302、若在预设时间段内未接收到数据通信单元再次发送的中断触发信号时,则删除已生成的时钟数据;
具体的,识别波特率的芯片检测接收数据通信单元发送的中断触发信号的时间间隔,若在预设时间段内未接收到数据通信单元再次发送的中断触发信号时,则删除已生成的时钟数据,预设时长可以根据具体的实际需求进行设计,若在预设时长内未接收到中断触发信号,可能是数据包传输中断,没有检测到下一次bit,或者数据通信单元检测错误,则丢掉之前的生成的时钟数据。
S303、反馈数据发送指令到发送端,以控制发送端重新发送用于使数据通信单元产生中断触发信号的数据包。
进一步的,识别波特率的芯片若在预设时间段内未接收到数据通信单元再次发送的中断触发信号时,反馈数据发送指令到发送端,以控制发送端重新发送用于使数据通信单元产生中断触发信号的数据包。
进一步的,在上述实施方案的基础上,参见图4,图4为本申请实施例提供另一种波特率识别方法的实施方案流程示意图,包括步骤S401-S405:
S401、当接收数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据。
S402、根据时钟数据,确定发送数据包的发送端的波特率。
其中,步骤S401-S402的实现方案参见上述任一项。
S403、获取数据通信单元对应预设的第二时钟频率。
其中,第二时钟频率,即,芯片对应的串口工作时钟频率,即,数据通信单元的工作频率。
S404、根据第二时钟频率和波特率,确定波特率控制寄存器的控制参数。
其中,控制参数,为控制识别波特率的芯片中数据通信单元的数据接收频率(即,波特率)的控制参数。
具体的,识别波特率的芯片在计算得到发送方的波特率后,获取识别波特率的芯片的数据通信单元对应的工作时钟频率,即,第二时钟频率,然后根据第二时钟频率和波特率,确定波特率控制寄存器的控制参数,具体计算方式参见:
其中,USART_DIV为控制参数,m为数据包头对应的预设时钟数量,即,数据包头中的比特数量,比如,可以为8,可以理解的是,波特率Baudrate在MCU芯片上是通过配置寄存器的USART_DIV值(控制参数)确定。
S405、将控制参数写入波特率控制寄存器,以控制数据通信单元根据波特率接收数据包中的目标数据。
进一步的,通过将算出的USART_DIV值写入波特率控制寄存器即可得到对应的波特率,识别波特率的芯片中的数据通信单元,即会根据识别到的发送端的波特率接收发送端发送的数据包中的目标数据。可以理解的是,USART_DIV值(控制参数)可忽略小数部分,误差在0.1%左右,在可接受误差范围内。
进一步,可以理解的是,在本申请的其他一些实施方案中,为了减少复杂数学运算给MCU造成的负担,提高软件执行效率,可将f_usart和f_timer设置为相同频率的时钟,可以理解的是,在定时器和串口(数据通信单元101)时钟频率相同时,波特率分频的计算只和测得的时钟数量有关,在软件上只需将8个bit的数据(0xAA)宽度总和Cnt_Sum右移3位即可,在很大程度上提升了波特率自动识别的效率。具体本申请不做具体的限定。
本申请实施例提供波特率识别方法,应用于识别波特率的芯片,芯片包括:数据通信单元和定时单元,方法包括:当接收数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据;根据时钟数据,确定发送数据包的发送端的波特率。本方案通过芯片通过配置中断触发,通过数据通信单元数据包包头中的中断触发信号,并根据中断触发信号确定定时单元的时间信息,生成对应的时钟数据,即,先通过中断检测的方式数据包包头的时钟数据,确定数据包头的时钟宽度,可以理解的是,进一步可以根据时钟数据计算发送方的发送波特率,实现芯片进行波特率识别的功能,以使芯片能够根据波特率接收发送端发送的数据,避免芯片内部不能自动进行波特率识别的问题,提升芯片的数据传输性能。
为了实施本申请实施例中波特率识别方法,在波特率识别方法基础之上,本申请实施例中还提供一种波特率识别装置,应用于识别波特率的芯片,所述芯片包括:数据通信单元和定时单元,其中,数据通信单元用于接收数据包,并根据数据包中的数据包头生成中断触发信号;如图5所示,波特率识别装置包括模块中断处理模块501和波特率确定模块502。其中,中断处理模块501用于当接收数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据。波特率确定模块502用于根据时钟数据,确定发送数据包的发送端的波特率。
在本申请其中一种实施方案中,波特率确定模块502具体用于:根据生成的各时钟数据,计算数据包头对应的脉冲宽度;获取定时单元对应的预设的第一时钟频率,以及数据包头对应的预设时钟数量;根据脉冲宽度、第一时钟频率以及预设时钟数量,确定发送数据包的发送端的波特率。
在本申请其中一种实施方案中,波特率确定模块502具体用于:
当生成时钟数据时,计算生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值;
当时钟数据差值的数量与数据包头对应的预设时钟数量相同,则计算所有的时钟数据差值的总和,得到数据包头对应的脉冲宽度。
在本申请其中一种实施方案中,波特率确定模块502具体用于:
若生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值为负数,则获取定时单元对应的时钟上限值;
根据时钟上限值和上一次生成的时钟数据的之间的差值,对时钟数据差值进行数据修正,得到修正后的时钟数据差值。
在本申请其中一种实施方案中,中断处理模块501具体用于:
当接收到数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据;
若在预设时间段内未接收到数据通信单元再次发送的中断触发信号时,则删除已生成的时钟数据;
反馈数据发送指令到发送端,以控制发送端重新发送用于使数据通信单元产生中断触发信号的数据包。
在本申请其中一种实施方案中,识别波特率的芯片还包括波特率控制寄存器;波特率识别装置还包括波特率控制模块503,波特率控制模块503用于:在根据时钟数据,确定发送数据包的发送端的波特率之后,获取数据通信单元对应预设的第二时钟频率;
根据第二时钟频率和波特率,确定波特率控制寄存器的控制参数;
将控制参数写入波特率控制寄存器,以控制数据通信单元根据波特率接收数据包中的目标数据。
本申请实施例提供波特率识别装置,运用与识别波特率的芯片,识别波特率的芯片包括:数据通信单元和定时单元,波特率识别装置包括:中断处理模块501和波特率确定模块502。其中,中断处理模块501用于当接收数据通信单元发送的中断触发信号时,读取定时单元的时间信息,生成时钟数据。波特率确定模块502用于根据时钟数据,确定发送数据包的发送端的波特率。本方案通过芯片通过配置中断触发,通过数据通信单元数据包包头中的中断触发信号,并根据中断触发信号确定定时单元的时间信息,生成对应的时钟数据,即,先通过中断检测的方式数据包包头的时钟数据,确定数据包头的时钟宽度,可以理解的是,进一步可以根据时钟数据计算发送方的发送波特率,实现芯片进行波特率识别的功能,以使芯片能够根据波特率接收发送端发送的数据,避免芯片内部不能自动进行波特率识别的问题,提升芯片的数据传输性能。
如图6所示,图6为本申请实施例中识别波特率的芯片的一个实施例结构示意图,该识别波特率的芯片包括:数据通信单元101、定时单元102和数据处理单元103:
数据通信单元101,用于接收数据包,并根据数据包中的数据包头生成中断触发信号,将中断触发信号发送到数据处理单元103;
定时单元102,定时单元102用于计时:
数据处理单元103,用于接收到数据通信单元101发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,根据时钟数据确定发送数据包的发送端的波特率。
其中,数据通信单元101,即,芯片中的USART_RxD引脚模块,可以理解的是,USART_RxD引脚具备边沿触发外部中断功能,使能USART_RxD引脚的IO外部中断。
其中,数据包,即,与芯片串口通信的发送端发送的数据,可以理解的是,数据包中包括数据包头和目标数据,其中,数据包头用于识别发送端的传输频率,即发送端的波特率,目标数据为发送端要发送的给芯片的数据。
可以理解的是,数据包中包括多个字节,每个字节中存储有多个比特(bit),发送端在发送数据包时,从数据包头开始对应的第一个比特开始发送,比如,数据包中包括8个字节,根据预设的通信协议,约定第一字节中对应的数据是数据包头,即,第一个字节对应的数据为数据包头,数据包头中可以包括M个比特,其中M是小于8的整数。
可以理解的是,数据包头的数据格式可以为预设格式,比如:数据包头中为16进制数据0xAA转换后的二进制数值,即,第一字节中存储8个比特值,可以理解的是,在申请的其他实施方案中,数据包头也可以为其他格式的预设数据。
其中,定时单元102用于对应芯片的工作状态进行计时,示例性的,定时单元102可以为定时器、计数器等的任意一种,数据处理单元103用于当接收数据通信单元发送的中断触发信号时,读取定时单元102的时间信息,生成时钟数据;根据时钟数据,确定发送数据包的发送端的波特率,示例性的,数据处理单元103包括处理器以及存储器,处理器是该芯片控制中心,利用各种接口和电路连接整个芯片的各个部分,控制器通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行接收到数据通信单元101发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,根据时钟数据确定发送数据包的发送端的波特率,从而对发送方的波特率进行识别。即,在本申请实施方案中,存储器中存储有上述任一项实施方案的波特率识别方法对应的一个或多个应用程序,并配置为由处理器执行上述空调控制方法实施例中任一实施例中波特率识别方法中的步骤,可选的,处理器可包括一个或多个处理核心;优选的,处理器可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器中。
具体在本实施例中,数据处理单元103的处理器会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到数据处理单元103对应的存储器中,并由处理器来运行存储在存储器中的应用程序,从而实现各种功能,如下:
当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;
根据所述时钟数据,确定发送所述数据包的发送端的波特率。
可以理解的是,发送端,为芯片外部的设备,比如,与芯片串口通信的芯片,控制器,即,发送方配置并使能串口通信(USART)功能。
具体的,定时单元102在检测芯片上电后即启动计时,时间信息,即,对应定时单元102计时的时间信息,数据通信单元101检测到数据包头中的起始信号后,检测根据数据包头中比特值对应的电流信号(在本申请实施方案中,数据通信单元101数据包包头中的数据对应的电流信号的变化为对应为脉冲信号),数据通信单元101会根据电流信号的变化会生成中断触发信号,然后将中段触发信号发送到数据处理单元103,以使数据处理单元103进行中断处理,即,数据处理单元103会停止正在进行的工作,进行中断处理,具体的,中断处理,即,读取定时单元102当前计时对应的时间信息,将时间信息进行小数值修正处理(保留几位小数等)生成时钟数据,或者直接将时间信息设置为时钟数据,然后根据时钟数据确定发送数据包的发送端的波特率。
具体的,在本申请的其中一种实施方案中,中断触发信号包括上升沿触发信号和下降沿触发信号;数据通信单元101,用于接收数据包,并根据数据包中的数据包头生成中断触发信号,将中断触发信号发送到数据处理单元103,具体用于:
(1)当检测到数据包时,根据预设通信协议读取数据包中的数据包头;
(2)当检测到数据包头中的电位信号由高变低,生成下降沿触发信号,并将下降沿触发信号发送到数据处理单元103;
(3)当检测到数据包头中的电位信号由低变高,生成上升沿触发信号,并将上升沿触发信号发送到数据处理单元103。
其中,预设的通信协议,即,芯片和发送端双方实体完成通信或服务所必须遵循的规则和约定,预设的通信协议中可以约定数据包头包括的字节数据,比如,在本申请实施方案中,约定数据包头为第一个字节中的数据,即,通过检测第一个字节的内电位信号来计算发送端的波特率;在本申请的其他实施方案中,通信协议也可以约定数据包头为第一个字节和第二字节中的数据。
具体的,在本申请实施方案中,数据处理单元103在检测到数据包时,根据预设通信协议确定数据包中的数据包头,进行外部中断初始化处理,使能下降沿中断,禁止上升沿中断,读取数据包头后,然后等待下降沿中段触发,即,当检测到数据包头中的电位信号由高变低,触发下降沿中断,生成下降沿触发信号,并将下降沿触发信号发送到数据处理单元103;然后使能上升沿中断,禁止下降沿中断,数据通信单元101进一步等待上升沿中断,即,当检测到数据包头中的电位信号由低变高,触发上升沿中断,生成上升沿触发信号,并将上升沿触发信号发送到数据处理单元103。
进一步的,在本申请得其中一种实施方案中,数据处理单元103,用于接收到数据通信单元101发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,根据时钟数据确定发送数据包的发送端的波特率,具体用于:
(1)当接收到数据通信单元101发送的中断触发信号,响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,并根据生成的各时钟数据,计算数据包头对应的脉冲宽度;
(2)根据脉冲宽度、定时单元102的第一时钟频率以及时钟数据的数量,确定发送数据包的发送端的波特率。
其中,定时单元102的第一时钟频率,即定时器的定时器时钟频率。
在本申请实施方案中,时间信息,即,定时器对应时间的计数值,数据处理单元103在接收到数据通信单元发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,将时间信息进行备份,得到为当前接收到的中触发信号对应的时钟数据,可以理解的是,由于数据包头中包括多个不同二进制的比特值,导致接收检测的电流信号不同,会产生多个脉冲,即,数据通信单元能够检测到多个中断触发信号,即,数据处理单元103对应多个中断触发信号会得到多个对应的时钟数据。
具体的,在本申请实施方案中,数据处理单元103在检测到数据包时,根据预设通信协议确定数据包中的数据包头,进行外部中断初始化处理,使能下降沿中断,禁止上升沿中断,读取数据包头后,然后,数据处理单元103接收到数据通信单元101发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,即,读取定时器(定时单元102)的当前计数值Cnt_Current(时间信息),备份当前值为Cnt_Curren_Cpy=Cnt_Curren_(即,根据时间信息生成时钟数据),然后等待下降沿中断触发,即,当检测到数据包头中的电位信号由高变低,触发下降沿中断,生成下降沿触发信号,并将下降沿触发信号发送到数据处理单元103;然后使能上升沿中断,禁止下降沿中断,数据通信单元101进一步等待上升沿中断,即,当检测到数据包头中的电位信号由低变高,触发上升沿中断,生成上升沿触发信号,并将上升沿触发信号发送到数据处理单元103;数据处理单元103再一次接收到数据通信单元发送的中断触发信号时,再次响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,即,读取定时器的当前计数值Cnt_Current(在本申请实施方案中,计数值等于时钟数据),然后计算当前生成的时钟数据和上一次检测到的时钟数据之间的差值,得到一数据包头中一个bit的时钟宽度Delta(脉冲宽度),即,Delta=Cnt_Curren(当前检测到的时钟时间信息,即时钟数据)-Cnt_Curren_Cpy(上一次备份的时钟数据),然后备份Cnt_Curren_Cpy=Cnt_Curren;然后同理根据检测到的上升沿触发信号,下降沿触发信息,重复进行脉冲宽度计算(即,当读取定时单元102的时间信息,生成时钟数据,并根据生成的时钟数据与上一次生成的时钟数据进行差值计算,根据差值计算数据包头对应的脉冲宽度),然后根据计算得到的所有的bit的时钟宽度Delta,求和计算得到数据包头对应的脉冲宽度;进一步的,根据数据包头对应的脉冲宽度以及定时单元102的第一时钟频率以及时钟数据的数量,确定发送数据包的发送端的波特率。
可以理解的是,在本申请的其他一些实施方案中,数据包头的时钟宽度的占用时间,也可以根据数据处理单元103在检测到数据包时,根据预设通信协议确定数据包中的数据包头,进行外部中断初始化处理,使能下降沿中断,禁止上升沿中断,读取数据包头后,初次检测到下降沿中断时,反馈中断触发信号到数据处理单元103,数据处理单元103接收到数据通信单元发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,然后进行和中断触发累计,当中断累计值与数据包头中的比特数量相同时,则再次读取定时单元102的时间信息,生成时钟数据,计算时钟数据和第一次生成的时钟数据之间的差值,得到数据包头对应的脉冲宽度,然后根据脉冲宽度、定时单元102的第一时钟频率以及时钟数据的数量,确定发送数据包的发送端的波特率。
具体的,根据脉冲宽度、定时单元102的第一时钟频率以及时钟数据的数量,确定发送数据包的发送端的波特率的计算公式参见:
其中,Cnt_Sum为数据包头的脉冲宽度,ftimer为定时器时钟频率(第一时钟频率),Baudrate为波特率,m为每一个比特对应时钟宽度数量,即,时钟数据的数量。
进一步,在本申请的其中一种实施方案中,数据处理单元103,用于当接收到数据通信单元101发送的中断触发信号,响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,并根据生成的各时钟数据,计算数据包头对应的脉冲宽度,具体用于:
(1)当预设时长内接收到数据通信单元101发送的中断触发信号,响应中断触发信号,读取定时单元102的时间信息,生成时钟数据;
(2)计算生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值;
(3)当时钟数据差值的数量与数据包头对应的比特数量相同,则计算所有的时钟数据差值的总和,得到数据包头对应的脉冲宽度。
具体的,数据处理单元103,在初次接收到数据通信单元101发送的中断触发信号后,响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,然后预设时长内再次接收到数据通信单元101发送的中断触发信号时,再次响应中断触发信号,读取定时单元102的时间信息,第二次接收到的中断触发信号对应生成时钟数据,并计算生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值,即,数据包头中一个bit的脉冲宽度,根据上述实施方案中的计数方式依次计算得到多个时钟数据差值,即,检测完数据包头中的全部bit对应的脉冲后,得到多个时钟数据差值,此时时钟数据差值的数量和数据包头对应的比特数量相同,即,当时钟数据差值的数量与数据包头对应的比特数量相同,即,数据包头接收检测完毕,然后,计算所有的时钟数据差值的总和,得到数据包头对应的脉冲宽度。
具体的,在本申请的另一种实施方案中,数据处理单元103,用于接收到数据通信单元101发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,具体用于:
(1)当接收到收到数据通信单元101发送的中断触发信号时,响应中断触发信号,读取定时单元102的时间信息,生成时钟数据;
(2)若在预设时间段内未接收到数据通信单元101再次发送的中断触发信号时,则删除已生成的时钟数据;
(3)反馈数据发送指令到发送端,以控制发送端重新发送数据包。
可以理解的是,预设时长可以根据具体的实际需求进行设计,若在预设时长内未接收到中断触发信号,可能是数据包传输中断,没有检测到下一次bit,或者数据通信单元101检测错误,则丢掉之前的统计个数,从头再来,具体的,数据处理单元103可以反馈数据传输错误的信息到发送端,发送端根据反馈的数据传输错误信息重新发送数据包。
具体的,在本申请的另一种实施方案中,数据处理单元103,用于计算生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值,具体用于:
(1)若生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值为负数,则获取定时单元102对应的时钟上限值;
(2)根据时钟上限值和上一次生成的时钟数据的之间的差值,对时钟数据差值进行数据修正,得到修正后的时钟数据差值。
可以理解的是,定时单元102具有时钟上限值,当定时单元102计数达到的时钟上限值,则会重新开始计时,此时,生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值即会出现负数,即,比如,当前定时器计数值Cnt_Current和上次计数值Cnt_Current_cpy相减为负数的情况,此时,通过时钟上限值减去上一次生成的时钟数据,得到差值,将差值加上时钟数据与上一次生成的时钟数据之间的时钟数据差值,得到修正后的时钟数据差值,修正后的时钟数据差值,用于计算波特率,修正前的时钟数据差值舍弃。可以理解的是,在本申请的其他一些实施方案中,若生成的时钟数据与上一次生成的时钟数据之间的时钟数据差值为负数,对负数的时钟数据差值的修正也可通过二进制补码的方式实现修正。
进一步的,参见图7,在本申请的其中一种实施方案中,识别波特率的芯片,还包括波特率控制寄存器104,用于控制数据通信单元101的数据接收和数据发送;
数据处理单元103,用于接收到数据通信单元101发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,根据时钟数据确定发送数据包的发送端的波特率之后,还用于:
(1)获取数据通信单元101对应的第二时钟频率;
(2)根据第二时钟频率和波特率,确定波特率控制寄存器104的控制参数;
(3)将控制参数写入波特率控制寄存器104,以控制数据通信单元101根据波特率接收数据包中的目标数据。
其中,第二时钟频率,即,芯片对应的串口工作时钟频率,即,数据处理单元103的工作频率。
具体的,数据处理单元103在计算得到发送方的波特率后,获取芯片的数据通信单元101对应的工作时钟频率,即,第二时钟频率,然后根据第二时钟频率和波特率,确定波特率控制寄存器104的控制参数,具体计算方式参见:
其中,USART_DIV为控制参数,m为数据包头对应的预设时钟数量,即,数据包头中的比特数量,比如,可以为8,可以理解的是,波特率Baudrate在MCU芯片上是通过配置寄存器的USART_DIV值(控制参数)确定,即,通过将算出的USART_DIV值写入波特率控制寄存器104,数据通信单元101即可得到对应的波特率,识别波特率的芯片中的数据通信单元101,即会根据识别到的发送端的波特率接收发送端发送的数据包中的目标数据。可以理解的是,USART_DIV值(控制参数)可忽略小数部分,误差在0.1%左右,在可接受误差范围内。
进一步,可以理解的是,在本申请的其他一些实施方案中,为了减少复杂数学运算给MCU造成的负担,提高软件执行效率,可将f_usart和f_timer设置为相同频率的时钟,可以理解的是,在定时器和串口(数据通信单元101)时钟频率相同时,波特率分频的计算只和测得的时钟数量有关,在软件上只需将8个bit的数据(0xAA)宽度总和Cnt_Sum右移3位即可,在很大程度上提升了波特率自动识别的效率。具体本申请不做具体的限定。
本申请上述实施方案中的识别波特率的芯片,在识别波特率的芯片不增加额外硬件的情况下,也可以具有波特率识别的效果,节省了硬件成本,也可以节省芯片开发和制造成本。
上述实施方案提供识别波特率的芯片,识别波特率的芯片,包括:数据通信单元101、定是单元102和数据处理单元103:数据通信单元101,用于接收数据包,并根据数据包中的数据包头生成中断触发信号,将中断触发信号发送到数据处理单元103;定时单元102,所述定时单元102用于计时,数据处理单元103,用于接收到数据通信单元101发送的中断触发信号,并响应中断触发信号,读取定时单元102的时间信息,生成时钟数据,根据时钟数据确定发送数据包的发送端的波特率。本方案通过芯片通过配置中断触发,通过数据通信单元101数据包包头中的中断触发信号,并根据中断触发信号确定定时单元102的时间信息,生成对应的时钟数据,即,先通过中断检测的方式数据包包头的时钟数据,确定数据包头的时钟宽度,可以理解的是,进一步可以根据时钟数据计算发送方的发送波特率,实现芯片进行波特率识别的功能,以使芯片能够根据波特率接收发送端发送的数据,避免芯片内部不能自动进行波特率识别的问题,提升芯片的数据传输性能。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质(可以简称为存储介质)中,并由处理器进行加载和执行。
为此,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。其上存储有计算机程序,计算机程序被处理器进行加载,以执行本发明实施例所提供的任一种频率控制曲线的调整方法中的步骤。例如,计算机程序被处理器进行加载可以执行如下步骤:
接收到数据通信单元发送的中断触发信号,并响应中断触发信号,读取定时单元的时间信息,生成时钟数据;
根据时钟数据,确定发送数据包的发送端的波特率。
进一步的,本发明实施例还提供一种电子设备,电子设备包括如上述任一项实施方案中的识别波特率的芯片,可以理解的是,电子设备还可以包括一个或多个处理器;存储器;以及一个或多个应用程序,电源等。
具体的,电子设备可以为手机,电脑、平板等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对其他实施例的详细描述,此处不再赘述。
具体实施时,以上各个单元或结构可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元或结构的具体实施可参见前面的方法实施例,在此不再赘述。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种波特率识别方法、装置、识别波特率的芯片及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种波特率识别方法,其特征在于,应用于识别波特率的芯片,所述芯片包括:数据通信单元和定时单元,所述数据通信单元用于接收数据包,并根据所述数据包中的数据包头生成中断触发信号;所述方法包括:
当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;
根据所述时钟数据,确定发送所述数据包的发送端的波特率。
2.根据权利要求1所述的波特率识别方法,其特征在于,所述根据所述时钟数据,确定发送所述数据包的发送端的波特率包括:
根据生成的各所述时钟数据,计算所述数据包头对应的脉冲宽度;
获取所述定时单元对应的预设的第一时钟频率,以及所述数据包头对应的预设时钟数量;
根据所述脉冲宽度、所述第一时钟频率以及所述预设时钟数量,确定发送所述数据包的发送端的波特率。
3.根据权利要求2所述的波特率识别方法,其特征在于,所述根据生成的各所述时钟数据,计算所述数据包头对应的脉冲宽度,包括:
当生成时钟数据时,计算生成的所述时钟数据与上一次生成的时钟数据之间的时钟数据差值;
当所述时钟数据差值的数量与所述数据包头对应的预设时钟数量相同,则计算所有的时钟数据差值的总和,得到所述数据包头对应的脉冲宽度。
4.根据权利要求3所述的波特率识别方法,其特征在于,所述计算生成的所述时钟数据与上一次生成的时钟数据之间的时钟数据差值,包括:
若生成的所述时钟数据与上一次生成的时钟数据之间的时钟数据差值为负数,则获取所述定时单元对应的时钟上限值;
根据所述时钟上限值和上一次生成的所述时钟数据的之间的差值,对所述时钟数据差值进行数据修正,得到修正后的时钟数据差值。
5.根据权利要求1所述的波特率识别方法,其特征在于,所述当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据,包括:
当接收到所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;
若在预设时间段内未接收到所述数据通信单元再次发送的中断触发信号时,则删除已生成的所述时钟数据;
反馈数据发送指令到所述发送端,以控制所述发送端重新发送用于使所述数据通信单元产生所述中断触发信号的数据包。
6.根据权利要求1-5任一项所述的波特率识别方法,其特征在于,所述识别波特率的芯片还包括波特率控制寄存器;
所述根据所述时钟数据,确定发送所述数据包的发送端的波特率之后,所述方法还包括:
获取所述数据通信单元对应预设的第二时钟频率;
根据所述第二时钟频率和所述波特率,确定所述波特率控制寄存器的控制参数;
将所述控制参数写入所述波特率控制寄存器,以控制所述数据通信单元根据所述波特率接收所述数据包中的目标数据。
7.一种波特率识别装置,其特征在于,应用于识别波特率的芯片,所述芯片包括:数据通信单元和定时单元,所述波特率识别装置包括:
中断处理模块:用于当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据;
波特率确定模块:用于根据所述时钟数据,确定发送所述数据包的发送端的波特率。
8.一种识别波特率的芯片,其特征在于,包括:
数据通信单元,用于接收数据包,并根据所述数据包中的数据包头生成中断触发信号,将所述中断触发信号发送到所述数据处理单元;
定时单元,用于计时;
数据处理单元,用于当接收所述数据通信单元发送的中断触发信号时,读取所述定时单元的时间信息,生成时钟数据,并根据所述时钟数据,确定发送所述数据包的发送端的波特率。
9.根据权利要求8所述的识别波特率的芯片,其特征在于,所述中断触发信号包括上升沿触发信号或下降沿触发信号;
所述数据通信单元具体用于:
当检测到数据包时,根据预设通信协议读取所述数据包中的数据包头;
当检测到所述数据包头中的电位信号由高变低,生成下降沿触发信号,并将所述下降沿触发信号发送到所述数据处理单元;或
当检测到所述数据包头中的电位信号由低变高,生成上升沿触发信号,并将所述上升沿触发信号发送到所述数据处理单元。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行权利要求1-6任一项所述的波特率识别方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211715397.3A CN115964320A (zh) | 2022-12-28 | 2022-12-28 | 波特率识别方法、装置、识别波特率的芯片及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211715397.3A CN115964320A (zh) | 2022-12-28 | 2022-12-28 | 波特率识别方法、装置、识别波特率的芯片及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115964320A true CN115964320A (zh) | 2023-04-14 |
Family
ID=87352540
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211715397.3A Pending CN115964320A (zh) | 2022-12-28 | 2022-12-28 | 波特率识别方法、装置、识别波特率的芯片及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115964320A (zh) |
-
2022
- 2022-12-28 CN CN202211715397.3A patent/CN115964320A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2205515C2 (ru) | Способ и устройство слежения за пакетами данных в системе передачи пакетных данных | |
CN107147553B (zh) | 从站波特率及帧格式的调整方法、调整装置及调整设备 | |
US11595964B2 (en) | Method and device for determining information domain value in DCI | |
CN106575169B (zh) | 消除充电器对触摸屏的干扰的方法和移动终端 | |
US8924611B2 (en) | Providing a serial protocol for a bidirectional serial interconnect | |
CN111786737B (zh) | 数据的发送方法、装置、存储介质以及电子装置 | |
CN111177060B (zh) | 串口数据发送方法、接收方法、相应装置及终端设备 | |
CN108306967B (zh) | 一种数据处理方法及终端 | |
TW201029410A (en) | Data communication device, communication control method, and program | |
WO2011116610A1 (zh) | 一种对上网设备进行初始化的方法、系统及设备 | |
WO2022089313A1 (zh) | 通信处理方法、装置、存储介质、芯片及相关设备 | |
CN110365598B (zh) | 心跳消息发送的方法、装置、服务器、终端及存储介质 | |
CN114826542A (zh) | 基于异步串行通信的数据传输方法、装置、设备及介质 | |
CN108027744B (zh) | 数据传输方法和移动终端 | |
CN115964320A (zh) | 波特率识别方法、装置、识别波特率的芯片及存储介质 | |
CN111371536B (zh) | 一种控制指令的发送方法及装置 | |
CN109726604B (zh) | 一种接触卡与终端之间的数据交换通信方法 | |
CN114024795B (zh) | 波特率自适应方法、装置、计算机设备和存储介质 | |
CN117200923A (zh) | 一种异步通信方法及装置 | |
CN114095300A (zh) | 自适应速率的数据读写方法及设备 | |
CN108650049B (zh) | 一种信道检测方法、装置及基站 | |
CN116742763B (zh) | 快充协议芯片、由其执行的方法以及电子设备 | |
CN114828218A (zh) | 参考信号传输时机有效性的确定方法和用户设备 | |
CN111371799A (zh) | Mctp控制器收发数据的控制方法、装置及设备 | |
CN116192998B (zh) | 一种解码功率传输协议信息包的方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |