CN114584276A - 一种UART波特率自适应方法和系统以及SoC芯片 - Google Patents
一种UART波特率自适应方法和系统以及SoC芯片 Download PDFInfo
- Publication number
- CN114584276A CN114584276A CN202210479248.5A CN202210479248A CN114584276A CN 114584276 A CN114584276 A CN 114584276A CN 202210479248 A CN202210479248 A CN 202210479248A CN 114584276 A CN114584276 A CN 114584276A
- Authority
- CN
- China
- Prior art keywords
- baud rate
- sequence
- synchronous
- synchronization
- uart
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0079—Receiver details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L25/00—Baseband systems
- H04L25/38—Synchronous or start-stop systems, e.g. for Baudot code
- H04L25/40—Transmitting circuits; Receiving circuits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0091—Transmitter details
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/04—Speed or phase control by synchronisation signals
- H04L7/041—Speed or phase control by synchronisation signals using special codes as synchronising signal
-
- 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
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种UART波特率自适应方法和系统以及SoC芯片。发送方在其预先配置的UART波特率组中选择一个波特率作为通信用波特率,基于该波特率发送同步序列;接收方检测同步序列并计算其波特率,根据其预先配置的UART波特率范围,判断该波特率是否在其UART波特率范围内,如果是则基于该波特率发送同步响应序列;发送方在预设的握手时间内收到同步响应序列,同步成功。本发明的UART波特率自适应系统,可集成于支持UART接口芯片中,使其具备自适应匹配UART波特率的功能,可以简化芯片调试或应用配置的流程,提高通信可靠性和工作效率。
Description
技术领域
本发明涉及芯片设计和电子设备通信领域,具体地说是一种UART波特率自适应方法和系统以及SoC芯片。
背景技术
UART(Universal Asynchronous Receiver/Transmitter,通用异步收发传输器),是电子设计常用的通信接口。各类SoC芯片中普遍集成了UART接口电路,用于芯片功能调试或低速率数据通信。UART定义了一种异步全双工通信协议,有发送和接收两个通道,使用串行方式进行数据收发,不需要同步时钟。基于采用异步方式通信,通信收发双方需要事先约定波特率用以匹配数据收发的速率。
在实际应用过程中,操作者需要在发送端和接收端分别设置波特率,其工作流程复杂,可能会出现因为忘记正确匹配的波特率,而导致芯片调试出现异常或数据通信失败等问题。另外,因为常见的波特率已固定为几个特定档位,一些低端的MCU芯片,可能会出现参与通信的设备或芯片因其自身时钟精度不高,而导致能支持的波特率略有偏差而影响通信质量的问题。
UART常见波特率有300、600、1200、2400、4800、9600、19200、38400、43000、56000、57600、115200。传统的波特率匹配采用穷举法。在最佳情况下,例如,通信双方均支持波特率115200,并均从最高波特率开始穷举收发双方一次匹配即可成功。但是,在最差情况下,例如,发送方的波特率是115200,而接收方是从最低波特率开始穷举,则需要匹配12次才可以完成波特率的匹配,
例如,中国专利申请CN106095712A公开了一种串口的软件自适应波特率方法,发送方先在一个波特率上间隔重发送预定的数据,若接收方在一段时间内没有收到预定的数据,则接收方切换一个波特率,继续在所述一段时间内等待接收预定的数据,直至接收方在所述一段时间内收到预定的数据后,回复握手信号完成自适应波特率的同步,之后双方使用固定的同步后的波特率进行通信。在该技术方案中,发送方在一个波特率发送预定的数据,接收方通过切换波特率进行轮询穷举,直至收到预定的数据,并且每次轮询都需要等待一段时间,耗时时间长,响应速度慢;另外,使用串口的接收引脚电平跳变中断作为触发条件,并启动定时器,该过程中需要CPU介入处理。
发明内容
为了解决背景技术中存在的技术问题,本发明提出一种UART波特率自适应方法和系统以及SoC芯片,可自动匹配通信双方的波特率,其响应速度快。
本发明提出了一种UART波特率自适应方法,应用于发送方,包括:
发送方在其预先配置的UART波特率组中选择一个波特率作为通信用波特率,基于该波特率发送同步序列;
发送方在其预设的握手时间内,如果收到接收方根据检测的同步序列计算0或1的持续时间得到的波特率,并判断该波特率在接收方预先配置的波特率范围内而发出的同步响应序列,同步成功。
优选地,如果在其预设的握手时间内未收到接收方的同步响应序列,同步超时,则发送方在预先配置的UART波特率组中选择下一个波特率作为通信用波特率,并基于该波特率发送同步序列。
优选地,发送方在预先配置的UART波特率组中轮询了所有波特率,如果在其预设的握手时间内都未收到接收方的同步响应序列,同步失败。
优选地,在同步成功之后还包括:发送方发送同步完成序列。
优选地,发送方在其预先配置的UART波特率组中选择一个波特率作为通信用波特率,具体包括:发送方在其预先配置的UART波特率组中,按照波特率从高到低或者从低到高的顺序,选择一个波特率作为通信用波特率。
本发明提出了一种UART波特率自适应方法,应用于接收方,包括:
接收方检测同步序列并计算其波特率;
接收方根据其预先配置的UART波特率范围,判断该波特率是否在其波特率范围内,如果是则基于该波特率发送同步响应序列;同步成功。
优选地,在同步成功之后还包括:如果在其预设的握手时间内收到发送方的同步完成序列,同步完成;如果在其预设的握手时间内未收到发送方的同步完成序列,同步异常。
优选地,计算其波特率,具体包括:检测同步序列中0或1持续时间,计算多次检测结果的平均值并将该平均值取反,得到波特率。
本发明提出了一种UART波特率自适应系统,包括:
同步状态机单元,用于控制在其预先配置的UART波特率组中选择一个波特率作为通信用波特率,基于该波特率控制发送同步序列;如果在其预设的握手时间内,收到接收方根据检测的同步序列计算得到的波特率,并判断该波特率在接收方预先配置的波特率范围内而发出的同步响应序列,同步成功;
同步序列检测单元,用于检测并行数据是否为同步响应序列,将检测结果告知同步状态机单元;
同步序列发送单元,用于在同步状态机单元控制下发送同步序列。
优选地,同步状态机单元还用于:如果在其预设的握手时间内未收到接收方的同步响应序列,同步超时,则控制在其预先配置的UART波特率组中选择下一个波特率作为通信用波特率,并基于该波特率发送同步序列;
在其预先配置的UART波特率组中轮询了所有波特率,如果在其预设的握手时间内都未收到接收方的同步响应序列,同步失败。
优选地,同步状态机单元还用于:在同步成功之后控制发送同步完成序列;
同步序列发送单元还用于,在同步状态机单元控制下发送完成序列。
本发明提出了一种UART波特率自适应系统,包括:
0/1周期检测单元,用于检测同步序列并计算其波特率;
同步状态机单元,用于根据其预先配置的UART波特率范围,判断该波特率是否在其波特率范围内;如果是则控制基于该波特率发送同步响应序列;
同步序列检测单元,用于检测并行数据是否为同步完成序列,将检测结果告知同步状态机单元;
同步序列发送单元,用于在同步状态机单元控制下,发送同步响应序列。
优选地,0/1周期检测单元,具体用于:检测同步序列中0或1持续时间,计算多次检测结果的平均值并将该平均值取反,得到波特率。
优选地,同步序列检测单元具体用于,如果在其预设的握手时间内收到发送方的同步完成序列,检测结果为同步成功;如果在其预设的握手时间内未收到发送方的同步完成序列,检测结果为同步异常。
本发明提出了一种SoC芯片,集成了上述的UART波特率自适应系统。
本发明提出了一种UART波特率自适应系统,包括:串行转并行单元、0/1周期检测单元、同步序列检测单元、同步状态机单元、同步序列发送单元、并行转串行单元,其中:
串行转并行单元,用于接收UART RX上的串行信号,将其转成并行数据,并输送至同步序列检测单元;
0/1周期检测单元,用于接收UART RX上的串行信号,检测串行信号中比特位0或1的持续时间,并根据持续时间计算出波特率;
同步序列检测单元,用于接收串行转并行单元输出的并行数据,检测并行数据为同步响应序列或者同步完成序列,并将检测结果告知同步状态机单元;
同步状态机单元,在第一工作模式下,其应用于发送方,用于根据其预设的UART波特率组,控制同步序列发送单元发送同步序列,在同步序列检测单元检测到同步响应序列后,同步完成,控制同步序列发送单元发送同步完成序列;
同步状态机单元,在第二工作模式下,其应用于接收方,用于根据0/1周期检测单元计算的波特率,控制同步序列发送单元发送同步响应序列,在同步序列检测单元检测到同步完成序列,同步完成;
同步序列发送单元,在同步状态机单元控制下,用于分别发送同步序列、同步响应序列或者同步完成序列;
并行转串行单元,用于接收同步序列发送单元的并行数据,将并行数据转成串行信号,并依照同步状态机单元选定的波特率通过UART TX发送出去。
在本发明中,发送方在其预先配置的UART波特率组中选择一个波特率,并基于该波特率向接收方发送同步序列;接收方检测同步序列并计算其波特率,接收方根据其预先配置的UART波特率范围,判断该波特率是否在其UART波特率范围内,如果是则该基于波特率向发送方发送同步响应序列;发送方收到接收方的同步响应序列,同步成功。
在本发明的波特率自适应过程中,发送方选择一个波特率并向接收方发送同步序列,接收方检测同步序列并计算其波特率,判断该波特率是否在其支持的波特率范围内,如果是则接收方支持该波特率,完成波特率同步。打破了传统的波特率穷举法,接收方通过计算波特率并判断是否在其所支持的波特率范围内即可实现同步,无需对波特率一个一个地进行轮询,其耗时时间短,响应速度快。
在上述过程中,基于接收方可支持的波特率范围,发送方可以采用常见波特率或者特殊波特率,只要该波特率在接收方所支持的波特率范围内,双方就一次同步成功,接收方预先无需知道发送方采用的具体波特率。
在本发明中,同步序列,用于一次握手,同步响应序列,用于二次握手,同步完成序列,用于三次握手。在恶劣工况下,通过三序列同步流程,可提高速率匹配和通讯的鲁棒性,尽量减少干扰所导致的误匹配和通讯失败。
本发明提出的UART波特率自适应方法和系统,可集成于支持UART接口芯片中,具备自适应UART波特率的功能;其可应用于集成了本发明提供的UART波特率自适应系统的芯片之间,也可应用于传统UART设备或芯片以及集成了本发明提供的UART波特率自适应系统的芯片之间,具有一定的应用普适性,可以简化芯片调试或应用时配置的流程,提高通信可靠性和工作效率。在实际应用过程中,其支持在发送方和接收方的两种工作模式,用户可根据需要灵活配置。
附图说明
图1为UART传输帧格式图。
图2为典型同步序列格式图。
图3为非典型同步序列格式图。
图4为本发明实施例提出一种UART波特率自适应系统的结构示意图。
图5为本发明实施例提出一种UART波特率自适应系统的状态变化图。
图6为本发明实施例提出一种UART波特率自适应方法的流程示意图。
图7为本发明中一种SOC芯片的结构示意图。
具体实施方式
参照图4和图5,本发明实施例提出了一种UART波特率自适应方法和系统,将参与通信的两个设备使用UART通信线缆连接,这两个设备分别定义为发送方和接收方,以下简称为发送方和接收方。
在本发明实施例中,在发送方预先设置一组其所支持的通信波特率和握手时间,发送方配置一个波特率组,其包括多个波特率,可以为UART的常见波特率,还可以由用户根据实际需要而设置的特殊波特率。在接收方预先配置其所支持的波特率范围和握手时间,波特率范围可以由用户设置,通过设置波特率上限和波特率下限,上限和下限之间的波特率即为其可支持的波特率范围。
发送方从预先设置的UART通信波特率组中,依据预设规则选择一个波特率作为通信用波特率,基于此波特率主动发送同步序列,同时开始计时以及检测接收方发送的同步响应序列;
接收方检测同步序列并计算同步序列的波特率,判断该波特是否在其预先配置的可支持的波特率范围内;如果是,则基于该波特率发送同步响应序列,同时开始计时以及检测发送方发送的同步完成序列;
发送方接收到来自于接收方的同步响应序列后,则说明同步成功,然后发送同步完成序列给接收方;
接收方收到同步完成序列后,通信双方进入通信阶段,并基于同步成功的波特率进行数据收发。
如果发送方计时到达其预设的握手时间,尚未收到同步响应序列,则视为同步超时,发送方从预先设置的通信波特率组中,依据预设规则选择下一个波特率重新发送同步序列。如果发送方使用预先设置的通信波特率组中的所有波特率重复发送同步序列后均出现同步超时,则视为同步失败;如果发送方在同步超时之前,收到了同步响应序列,则视为同步成功。
如果接收方判断该波特不在其可支持的波特率范围内,不执行相关动作,等待发送方调整波特率之后重新进行同步。如果接收方计时到达其预设的握手时间,尚未收到同步完成序列,则视为同步异常。
在发送方和接收方完成波特率匹配之后,UART两端的设备可根据用户的配置,按照单工、半双工和全双工模式传输数据。
本发明的UART波特率自适应方法和系统,突破了传统的穷举法进行波特率的自适应,接收方通过计算波特率并判断是否在其所支持的波特率范围内即可实现同步,无需对波特率一个一个地进行轮询,其耗时时间短,响应速度快。基于接收方可支持的波特率范围,发送方可以采用常见波特率或者特殊波特率,只要该波特率在接收方所支持的波特率范围内,双方就一次同步成功,接收方预先无需知道发送方采用的具体波特率。
参照图1,根据UART协议,通过UART传输一个字符通常包括起始位、bit0~bit7共8个数据位、校验位和停止位,其中起始位固定为0,停止位固定为1,校验位在有些应用中使用、有些应用中未使用,8个数据位内容不固定,可能为0、也可能为1。可以得知一次数据传输开始于信号从1到0的跳变。计算波特率的方式为,从发现1到0的跳变后,开始记录后续每两次跳变之间的时间,这就可以算出传输过程中每一段0或1的持续时间,然后,把计算得到的持续时间取平均,得到平均持续时间。
参照图2,这是一个典型的同步序列,其相邻两个bit都不一样,在图中bit0~7由二进制的10101010组成,一共有至少10次信号跳变,可计算出T0、T1、T2、T3、T4、T5、T6、T7、T8九个数值,用如下公式计算平均周期T:
T=(T0 + T1 + T2 + T3+ T4 + T5 + T6 + T7 + T8)/ 9
参照图3,这是一个非典型的同步序列,其相邻两个或多个bit的数值一样,bit0~7数值不一定都有跳变,这意味着某段0或1持续时间比较长,且跳变的数量少于10次,无法简单的计算平均值。
综上所示,本申请实施例中提供两种方法用于计算同步序列的波特率,下面对波特率的计算过程进行详细说明。
本发明实施例提出的第一种波特率的计算方法,其具体计算过程如下。
从起始位开始,记录每次信号跳变的时间,计算相邻跳变之间的间隔时间,即0或1持续时间,并依次记录为Ti(i=0、1、2…end);
记录一个最短持续时间Tmin,当每次新计算出一个Ti,就拿它和Tmin做比较,取二者较小者作为新的最短持续时间;
使用Tmin和记录下来的Ti做比较,并判决每一个Ti相当于几个数据位;判决的方式是Ti除以Tmin,得到除数后,获取离此除数最近的整数,该整数即为0或1维持的数据位个数,记录为Ni。每个数据位的间隔是大致相等,因信号抖动存在一定偏差,除数可能不是一个整数,比如是0.90、1.10、2.03,则分别判决1、1、2;
将Ni(i=0、1、2…end)累加,得到总的数据位个数,如总的数据位个数大于或等于9,则意味着起始位和所有的数据位都已传输完成,检测过程完成,可以进行平均持续时间的计算;
使用已经记录下的Ti和Ni(其中i = 0、1、2…end)计算平均持续时间T,计算公式为:T = (T0 + T1 + T2 … Tend)/ (N0 + N1 + N2…Nend);
根据计算出的平均持续时间T,计算波特率,波特率= 1/T。
本发明实施例提出的第二种波特率的计算方法,其具体计算过程如下。
从起始位开始,记录最早以及最近两次信号跳变的时间,计算最早跳变到最近1次跳变的时间间隔,记录为T0,计算最近两次信号跳变的时间间隔,记录为T1;
记录一个最短持续时间Tmin,当每次新计算出一个T1,就拿它和Tmin做比较,取二者较小者作为新的最短持续时间;
使用Tmin和已记录的T0做比较,判决已经传输了多少个数据位;判决的方式是将T0除以Tmin,再去离此结果最近的整数,记录为N;
每个数据位的间隔是大致相等,因信号抖动存在一定偏差,除数可能不是一个整数,比如是0.90、1.10、2.03,则分别判决1、1、2;
若N大于或等于9,则意味着起始位和所有的数据位都已传输完成,检测过程完成,可以进行平均持续时间的计算;
使用已记录的T0和N计算平均时间T,计算公式为:T = T0/N
使用计算出的平均时间T计算波特率,波特率 = 1/T。
下面,结合具体实施例,对本发明的UART波特率自适应系统进行详细的说明。
参照图4,本发明实施例提出的一种UART波特率自适应系统,包括:串行转并行单元、0/1周期检测单元、同步序列检测单元、同步状态机单元、同步序列发送单元、并行转串行单元。该系统对外连接UART线缆上的RX信号线和TX信号线,对内提供并行的数据输入输出以和其他系统进行数据传输。
串行转并行单元,用于接收UART RX上的串行信号,将其转成并行数据;在完成采样之后,将并行数据输送至同步序列检测单元,并且,也会将并行数据送出以供系统中其他系统使用。根据UART协议,串行信号由一系列0、1组成,在最常用的配置下,一次数据传输由1位起始位、8位数据位和1位停止位组成,串行转并行单元会持续检测起始位,一旦检测到起始位,则按照特定的波特率连续采样8次,采样到的结果则是8位数据位,这8位数据组成位宽为8位的并行数据。
0/1周期检测单元,用于接收UART RX上的串行信号,检测串行信号中比特位0或1的持续时间,并根据持续时间计算出波特率;基于无需采样、提取具体数值,检测可以从起始位开始。在具体计算过程中,检测每个0或1持续时间,并将多个持续时间取平均值,以消除信号抖动和异步采样导致的周期偏差,多次平均的数值视为串行信号发送的周期,取反,即为波特率。
同步序列检测单元,用于接收串行转并行单元输出的并行数据,检测并行数据为同步响应序列或者同步完成序列,并将检测结果告知同步状态机单元;具体地,同步响应序列和同步完成序列的具体内容由用户进行定义,同步序列检测单元将收到的并行数据分别与同步响应序列、同步完成序列进行比对,如果完全相符,则发送相应的标志信号给同步状态机单元。
同步状态机单元,负责系统的全局控制,其支持两种工作模式,分别对应于发送方的第一工作模式以及接收方的第二工作模式,由用户根据需要进行指定,其可以存储的UART波特率、握手时间等由用户根据需要进行配置。
在第一工作模式下,其应用于发送方,同步状态机单元用于控制根据预设的UART波特率组,控制同步序列发送单元发送同步序列,在同步序列检测单元检测到同步响应序列后,同步完成,控制同步序列发送单元发送同步完成序列,其具体同步过程如下:
同步状态机单元在预先配置的UART波特率组中,依据从高到低的顺序,选择最高的波特率作为通信用波特率,控制同步序列发送单元基于该波特率发送同步序列,将内部计时器清零并使能,等待同步序列检测单元检测的结果;
内部计时器计时在预设的握手时间内,如果同步状态机单元收到同步序列检测单元检测并发送的同步响应序列的标志信号,同步状态机单元控制同步序列发送单元发送同步完成序列,同步完成,同步状态机进入正常通信阶段;
内部计时器计时超过预设的握手时间,如果同步状态机单元未收到同步响应序列,则当前选择的波特率同步超时,则从预先配置的UART波特率组中选择次高波特率并重新进行同步;
在轮询了预先配置的UART波特率组中所有波特率,如果在预设的握手时间内都未收到同步响应序列,同步失败。
其中,从预先配置的波特率组选择一个波特率的方法可以采用从高到低轮询,或者从低到高轮询。
在第二工作模式下,其应用于接收方,同步状态机单元用于根据0/1周期检测单元计算的波特率,控制同步序列发送单元发送同步响应序列,在同步序列检测单元检测到同步完成序列,同步完成,其具体同步过程如下:
等待0/1周期检测单元检测到有效的串行信号并完成波特率计算;
判断该波特率是否在其预先配置的可支持的波特率范围内,如果是,则控制同步序列发送单元基于该波特率发送同步响应序列,将内部计时器清零并使能,等待同步序列检测单元检测到同步完成序列;如果否,不执行相关动作,则等待发送方调整波特率后重新进行同步;
内部计时器计时在预设的握手时间内,如果同步状态机单元收到同步序列检测单元检测并发送的同步完成序列的标志信号,同步完成,同步状态机进入正常通信阶段;
内部计时器计时超过预设的握手时间,如果同步状态机单元未收到同步完成序列,则同步过程出现异常。
同步序列发送单元,在同步状态机单元控制下,用于分别发送同步序列、同步响应序列或者同步完成序列。同步序列发送单元支持上述三种序列的数据内容、发送方式、发送间隔的灵活配置,由用户根据需要进行指定;为了确保波特率计算的准确性,同步序列要定义为交替的0或1,发送方式则支持单次发送和多次发送,其中对于多次发送则可配置发送间隔;同步序列发送单元在同步状态单元机的控制下,启动或停止同步序列的发送,并根据同步状态机单元的控制选择发送同步序列、同步响应序列或同步完成序列。
并行转串行单元,用于接收同步序列发送单元或者发送数据输入的并行数据,将并行数据转成串行信号,并依照同步状态机单元选定的波特率通过UART TX发送出去。
在本发明实施例中,同步序列是由交替的二进制0或1组成的,以方便快速检测到其波特率;同步响应序列和同步完成序列不限定具体数值,由用户自行定义,只要其不等同于同步序列即可。
参照图6,本发明实施例提出了一种UART波特率自适应方法,应用于发送方,该方法包括如下步骤:
S101,发送方初始化。
通过用户或者内置程序将通信设备设置为发送方工作模式,为其配置一组通信波特率和握手时间。
S102,发送同步序列并检测同步响应序列。
发送方从预先设置的通信波特率组中,依据从高到低的顺序选择最高的波特率作为当前通信用波特率,基于此波特率主动发送同步序列,并开始计时以及检测接收方发送的同步响应序列。
如果发送方计时超过预设的握手时间未收到同步响应序列,则视为同步超时,发送方从预先设置的通信波特率组中选择次高波特率重新发送同步序列。
如果发送方使用预先设置的通信波特率组中的所有波特率重复发送同步序列,都出现同步超时,则视为同步失败。
如果发送方在同步超时之前,收到了同步响应序列,则视为同步成功。
S103,发送同步完成序列。
发送方在预设的握手时间内收到同步响应序列,则向接收方发送同步完成序列,同步完成。
S104,进入通信阶段。
发送方将该波特率作为目标波特率,发送方与接收方进入正常通信阶段,以该目标波特率进行数据收发。
参照图3,本发明实施例提出了一种UART波特率自适应方法,应用于接收方,该方法包括如下步骤:
S201,接收方初始化。
通过用户或者内置程序将通信设备设置为接收方工作模式,为其配置可支持的波特率范围和握手时间,具体地,配置波特率上限和波特率下限,上限和下限之间的波特率即为其可支持的波特率范围。
S202,检测同步序列并计算波特率,发送同步响应序列。
接收方收到同步序列,根据序列内容提取特征信息并计算其波特率,在成功识别同步序列的波特率后,判断该波特率是否在其波特率范围内;如果是,记录该波特率作为当前同步到的波特率,基于该波特率发送同步响应序列,并开始计时并检测发送方发送的同步完成序列;如果否,不执行相关动作,等待发送方调整波特率后重新进行同步。
接收方识别同步序列的波特率,通过持续检测同步序列中0或1持续时间,并计算多次检测结果的平均值,该平均值取反即为波特率。
S203,检测同步完成序列。
接收方在预设的握手时间内收到同步完成序列,同步完成。如果接收方计时超过预设的握手时间未收到同步完成序列,则视为同步异常,异常如何处理由用户决定。
S204,进入通信阶段。
接收方将该波特率作为目标波特率,接收方与发送方进入正常通信阶段,以该目标波特率进行数据收发。
本发明的UART波特率自适应方法和系统,可集成于支持UART接口芯片中,具备自适应UART波特率的功能;其可应用于集成了本发明提供的UART波特率自适应系统的芯片之间,也可应用于传统UART设备或芯片以及集成了本发明提供的UART波特率自适应系统的芯片之间,具有一定的应用普适性,可以简化芯片调试或应用时配置的流程,提高通信可靠性和工作效率。在实际应用过程中,其支持在发送方和接收方的两种工作模式,用户可根据需要灵活配置。
参照图7,本发明实施例提出了一种SoC芯片,集成了该UART波特率自适应系统,该芯片主要组成部分包括:中央处理器CPU、片内总线、UART控制器以及UART波特率自适应系统。
UART波特率自适应系统的UART RX端口和UART TX端口分别连接芯片管脚,UART波特率自适应系统的接收数据输出端口和发送数据输入端口都与UART控制器连接,UART控制器挂载在片内总线上,UART波特率自适应系统也通过相应的接口挂载在片内总线上,以用于中央处理器CPU通过片内总线对其进行参数配置。
在具体实施例中,片内总线上还可以挂载其他各种外设接口。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (15)
1.一种UART波特率自适应方法,应用于发送方,其特征在于,包括:
发送方在其预先配置的UART波特率组中选择一个波特率作为通信用波特率,基于该波特率发送同步序列;
发送方在其预设的握手时间内,如果收到接收方根据检测的同步序列计算0或1的持续时间得到的波特率,并判断该波特率在接收方预先配置的波特率范围内而发出的同步响应序列,同步成功。
2.根据权利要求1所述的UART波特率自适应方法,其特征在于,如果在其预设的握手时间内未收到接收方的同步响应序列,同步超时,则发送方在其预先配置的UART波特率组中选择下一个波特率作为通信用波特率,并基于该波特率发送同步序列。
3.根据权利要求2所述的UART波特率自适应方法,其特征在于,发送方在其预先配置的UART波特率组中轮询了所有波特率,如果在其预设的握手时间内都未收到接收方的同步响应序列,同步失败。
4.根据权利要求1-3中任一项所述的UART波特率自适应方法,其特征在于,在同步成功之后还包括:发送方发送同步完成序列。
5.根据权利要求1-3中任一项所述的UART波特率自适应方法,其特征在于,发送方在其预先配置的UART波特率组中选择一个波特率作为通信用波特率,具体包括:发送方在其预先配置的UART波特率组中,按照波特率从高到低或者从低到高的顺序,选择一个波特率作为通信用波特率。
6.一种UART波特率自适应方法,应用于接收方,其特征在于,包括:
接收方检测同步序列并计算其波特率;
接收方根据其预先配置的UART波特率范围,判断该波特率是否在其波特率范围内,如果是则基于该波特率发送同步响应序列;同步成功。
7.根据权利要求6所述的UART波特率自适应方法,其特征在于,在同步成功之后还包括:如果在其预设的握手时间内收到发送方的同步完成序列,同步完成;如果在其预设的握手时间内未收到发送方的同步完成序列,同步异常。
8.根据权利要求6或7所述的UART波特率自适应方法,其特征在于,计算其波特率,具体包括:检测同步序列中0或1持续时间,计算多次检测结果的平均值并将该平均值取反,得到波特率。
9.一种UART波特率自适应系统,其特征在于,包括:
同步状态机单元,用于控制在其预先配置的UART波特率组中选择一个波特率作为通信用波特率,基于该波特率控制发送同步序列;如果在其预设的握手时间内,收到接收方根据检测的同步序列计算得到的波特率,并判断该波特率在接收方预先配置的波特率范围内而发出的同步响应序列,同步成功;
同步序列检测单元,用于检测并行数据是否为同步响应序列,将检测结果告知同步状态机单元;
同步序列发送单元,用于在同步状态机单元控制下发送同步序列。
10.根据权利要求9所述的UART波特率自适应系统,其特征在于,同步状态机单元还用于:如果在其预设的握手时间内未收到接收方的同步响应序列,同步超时,则控制在其预先配置的UART波特率组中选择下一个波特率作为通信用波特率,并基于该波特率发送同步序列;
在其预先配置的UART波特率组中轮询了所有波特率,如果在其预设的握手时间内都未收到接收方的同步响应序列,同步失败。
11.根据权利要求9所述的UART波特率自适应系统,其特征在于,同步状态机单元还用于:在同步成功之后控制发送同步完成序列;
同步序列发送单元还用于,在同步状态机单元控制下发送完成序列。
12.一种UART波特率自适应系统,其特征在于,包括:
0/1周期检测单元,用于检测同步序列并计算其波特率;
同步状态机单元,用于根据其预先配置的UART波特率范围,判断该波特率是否在其波特率范围内;如果是则控制基于该波特率发送同步响应序列;
同步序列检测单元,用于检测并行数据是否为同步完成序列,将检测结果告知同步状态机单元;
同步序列发送单元,用于在同步状态机单元控制下,发送同步响应序列。
13.根据权利要求12所述的UART波特率自适应系统,其特征在于,0/1周期检测单元,具体用于:检测同步序列中0或1持续时间,计算多次检测结果的平均值并将该平均值取反,得到波特率。
14.根据权利要求12所述的UART波特率自适应系统,其特征在于,同步序列检测单元具体用于,如果在其预设的握手时间内收到发送方的同步完成序列,检测结果为同步成功;如果在其预设的握手时间内未收到发送方的同步完成序列,检测结果为同步异常。
15.一种SoC芯片,其特征在于,集成了权利要求9-11或者权利要求12-14所述的UART波特率自适应系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210479248.5A CN114584276B (zh) | 2022-05-05 | 2022-05-05 | 一种UART波特率自适应方法和系统以及SoC芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210479248.5A CN114584276B (zh) | 2022-05-05 | 2022-05-05 | 一种UART波特率自适应方法和系统以及SoC芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584276A true CN114584276A (zh) | 2022-06-03 |
CN114584276B CN114584276B (zh) | 2022-08-23 |
Family
ID=81778078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210479248.5A Active CN114584276B (zh) | 2022-05-05 | 2022-05-05 | 一种UART波特率自适应方法和系统以及SoC芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584276B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640016A (zh) * | 2024-01-26 | 2024-03-01 | 北京智芯微电子科技有限公司 | 波特率协商方法、装置、计算机设备、芯片及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710857A (zh) * | 2009-11-05 | 2010-05-19 | 厦门敏讯信息技术股份有限公司 | 串行通信波特率自适应方法及其装置 |
CN106095712A (zh) * | 2016-05-31 | 2016-11-09 | 上海工程技术大学 | 一种串口的软件自适应波特率方法 |
US20160330044A1 (en) * | 2013-12-30 | 2016-11-10 | Schneider Electric It Corporation | System and method for automatically selecting baud rate in a can network |
WO2018072091A1 (zh) * | 2016-10-18 | 2018-04-26 | 深圳配天智能技术研究院有限公司 | 一种数据处理方法及基站设备 |
CN111694785A (zh) * | 2020-05-20 | 2020-09-22 | 哈尔滨工业大学 | 反馈型的uart自适应波特率系统及自适应波特率方法 |
JP2020198514A (ja) * | 2019-05-31 | 2020-12-10 | 株式会社富士通ゼネラル | 通信装置、ボーレート自動設定方法及び通信システム |
-
2022
- 2022-05-05 CN CN202210479248.5A patent/CN114584276B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101710857A (zh) * | 2009-11-05 | 2010-05-19 | 厦门敏讯信息技术股份有限公司 | 串行通信波特率自适应方法及其装置 |
US20160330044A1 (en) * | 2013-12-30 | 2016-11-10 | Schneider Electric It Corporation | System and method for automatically selecting baud rate in a can network |
CN106095712A (zh) * | 2016-05-31 | 2016-11-09 | 上海工程技术大学 | 一种串口的软件自适应波特率方法 |
WO2018072091A1 (zh) * | 2016-10-18 | 2018-04-26 | 深圳配天智能技术研究院有限公司 | 一种数据处理方法及基站设备 |
JP2020198514A (ja) * | 2019-05-31 | 2020-12-10 | 株式会社富士通ゼネラル | 通信装置、ボーレート自動設定方法及び通信システム |
CN111694785A (zh) * | 2020-05-20 | 2020-09-22 | 哈尔滨工业大学 | 反馈型的uart自适应波特率系统及自适应波特率方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117640016A (zh) * | 2024-01-26 | 2024-03-01 | 北京智芯微电子科技有限公司 | 波特率协商方法、装置、计算机设备、芯片及存储介质 |
CN117640016B (zh) * | 2024-01-26 | 2024-05-17 | 北京智芯微电子科技有限公司 | 波特率协商方法、装置、计算机设备、芯片及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114584276B (zh) | 2022-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4821292A (en) | Adaptive limiter/detector which changes time constant upon detection of dotting pattern | |
CN109451536B (zh) | 一种减少LoRa通信丢包率的方法 | |
US5526399A (en) | Data transmission method and apparatus of mobile radiocommunication system | |
US5353341A (en) | Cordless telephone arranged for operation in a frequency hopping system | |
US7398101B2 (en) | Transmitter power level optimization and error correction technique | |
CN114584276B (zh) | 一种UART波特率自适应方法和系统以及SoC芯片 | |
US20240155499A1 (en) | Wakeup method and apparatus, and electronic device | |
US7212800B2 (en) | Diversity control method and wireless communication apparatus | |
US20120220228A1 (en) | Wireless communication apparatus | |
JP3565730B2 (ja) | Atコマンド解析装置 | |
JPH11243590A (ja) | 無線通信システム | |
US20210083898A1 (en) | Device and method for a transmitter/receiver device of a bus system | |
US11477682B2 (en) | Radio link monitoring method and apparatus | |
CN113746217B (zh) | 基于趋势判断的无线设备匹配通讯方法及系统与电子设备 | |
CN107547265B (zh) | 端口配置方法和装置 | |
US8538336B2 (en) | Radio LSI device and interfering wave detecting circuit | |
US20130044795A1 (en) | System and method for automatic baud rate selection for facsimile transmit and receive | |
CN108011703B (zh) | 一种并行接口时序控制方法和装置 | |
JP2001251335A (ja) | データ伝送機能を備えた機器 | |
EP3297220A1 (en) | Signal transmission method, controller and signal transmission system | |
EP2530864A1 (en) | Apparatus and Method for Power Saving | |
JP3476378B2 (ja) | 無線テレメータシステム | |
US10013304B2 (en) | Electrical apparatus, control device and communication method that control communications performed at different communication rates | |
CN110932782B (zh) | 一种光纤传输标准的自适应系统及自适应方法 | |
JPH07327272A (ja) | 第1の無線通信装置と第2の無線通信装置との間でrfリンクを確立かつモニタする方法、システム、および第1のrf装置に含まれ、第2のrf装置とのrfリンクを確立かつモニタするための装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |