CN106095712A - 一种串口的软件自适应波特率方法 - Google Patents
一种串口的软件自适应波特率方法 Download PDFInfo
- Publication number
- CN106095712A CN106095712A CN201610375092.0A CN201610375092A CN106095712A CN 106095712 A CN106095712 A CN 106095712A CN 201610375092 A CN201610375092 A CN 201610375092A CN 106095712 A CN106095712 A CN 106095712A
- Authority
- CN
- China
- Prior art keywords
- baud rate
- serial ports
- self adaptation
- data
- software self
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种串口的软件自适应波特率方法,发送方先在一个波特率上间隔重复发送预定的数据,若接收方在一段时间内没有收到预定的数据,则接收方切换一个波特率,继续在所述一段时间内等待接收预定的数据,直至接收方在所述一段时间内收到预定的数据后,回复握手信号完成自适应波特率的同步,之后双方使用固定的同步后的波特率进行通信。
Description
技术领域
本发明涉及一种串口自适应波特率的方法,属于数据传输领域。
背景技术
波特率是对信号传输速率的一种度量,通常以“波特”(baud)为单位,由于不同的设备各自的波特率不同,因此在信号传输过程中需要对传输双方进行波特率的同步。
目前的波特率同步方法包括:1、通过硬件计算法来实现,其缺陷在于波特率局限于低速的9600、19200、38400、57600、115200bps,且对硬件平台资源依赖较大;2、采用计算脉冲宽度的算法,其缺陷在于稳定性和适应性不足,在一些硬件环境下无法实现同步。另外,这种波特率的同步方法需要进行重新配置才能更改波特率,使用较为不便。
发明内容
针对现有技术存在的上述问题,本发明的目的是提供一种串口的软件自适应波特率方法。
为实现上述目的,本发明采用的技术方案如下:
一种串口的软件自适应波特率方法,发送方先在一个波特率上间隔重复发送预定的数据,若接收方在一段时间内没有收到预定的数据,则接收方切换一个波特率,继续在所述一段时间内等待接收预定的数据,直至接收方在所述一段时间内收到预定的数据后,回复握手信号完成自适应波特率的同步,之后双方使用固定的同步后的波特率进行通信。
作为一种实施方式,使用串口的接收引脚电平跳变中断作为触发条件,在中断触发后,启动一个定时器,在定时器到期前如果收到了事先约定好的数据则认为同步上波特率;如果在定时器到期时没有收到事先约定好的数据,则停止定时器,并切换到下一波特率,再次等待电平中断并接受数据。
作为一种实施方式,所述定时器为50ms。
作为一种实施方式,所述波特率包括9600,19200,38400,57600以及115200bps。
作为一种实施方式,所述预定的数据为一个或者几个字符。
相较于现有技术,本发明的有益技术效果在于:
本发明提供的串口的软件自适应波特率方法的优点在于:1、采用软件轮训机制,可同步的波特率,不受限于9600、19200、38400、57600、115200bps,可以扩展到更高的波特率;2、接收方接收到任意数据的第一时间肯定会有电平跳变,采用电平跳变作为触发条件,可以确保无论任何硬件环境都可以同步上,相对于一些采用计算脉冲宽度之类算法有较好的稳定性和适应性;3、采用中断配合软件轮训切换波特率的机制,可以自定义任意的同步字,包括同步字长度,有很好的扩展性。
附图说明
图1是本发明提供的一种串口的软件自适应波特率方法的工作流程图。
具体实施方式
以下结合附图对本发明的技术方案做进一步详细描述。
本发明提供的一种串口的软件自适应波特率方法是基于发送方先在某一波特率上间隔重复发送某一个或者某几个事先约定好的字符,接收方收到事先约定好的字符后,然后回复握手信号完成自适应波特率的同步,之后双方使用固定的同步上的波特率进行通信,串口自适应波特率可以针对同一产品,满足多种不同速率的设备进行对接,而使用者无需切换波特率就可以进行数据收发,大大提高产品适用性。
本方案中使用串口接收引脚(RX引脚)电平跳变中断作为触发条件,在中断触发后,启动一个定时器,在定时器到期前如果收到了事先约定好的字符则进行同步波特率;如果在定时器到来时没有收到事先约定好的字符或者没有收到任何字符,则停止定时器,并切换到下一波特率,再次等待接收引脚中断并接收数据;如此循环直到收到事先约定好的字符或者字符串为止。
如图1所示,该方法流程图如下:
步骤1:设备开机,先固定波特率9600(9600,19200,38400,57600,115200bps),并打开串口电平跳变中断。
步骤2:等待串口上接收引脚电平跳变中断,如果中断到来则启动定时器T1(50ms)。
步骤3:串口收到指定的数据,则同步上串口回复指定的数据跳到步骤5。如果串口没有收到数据或者收到的数据不是约定好的数据那么等待T1超时,如果T1超时则回到步骤4。
步骤4:重新初始化串口,并且波特率切换到下一波特率19200,并重新开启接收引脚中断,回到步骤2。
步骤5:停止T1,记录当前同步的波特率,即为同步上的波特率,回复握手信号完成自适应波特率同步。
本方案中有两个对象,一个对象记为模块A,另一模块记为模块B,模块A开机后处于自适应波特率状态等待模块B同步,具体实施步骤如下:
1)模块A上电开机,模块B上电开机。
2)模块A先设置固定波特率9600,并打开接收引脚的中断功能。
3)模块A等待串口接收引脚中断到来。
4)模块B开机后开始固定以100MS间隔发送指定的同步字符或者字符串。
5)模块A由于接收引脚上有数据过来那么会引发中断,进而触发中断,启动定时器T1。
6)定时器T1到期前收到指定字符串,模块A记录当前使用的波特率为同步波特率并回复握手信息给模块B,开始正常工作。进入步骤8。
7)T1超时,模块A切换到另一个波特率,并使能接收引脚的输入中断回到步骤3。
8)模块B收到指定字符,完成自适应的同步,至此流程结束。
最后有必要在此指出的是:以上所述仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
Claims (5)
1.一种串口的软件自适应波特率方法,其特征在于:发送方先在一个波特率上间隔重复发送预定的数据,若接收方在一段时间内没有收到预定的数据,则接收方切换一个波特率,继续在所述一段时间内等待接收预定的数据,直至接收方在所述一段时间内收到预定的数据后,回复握手信号完成自适应波特率的同步,之后双方使用固定的同步后的波特率进行通信。
2.根据权利要求1所述的串口的软件自适应波特率方法,其特征在于:使用串口的接收引脚电平跳变中断作为触发条件,在中断触发后,启动一个定时器,在定时器到期前如果收到了事先约定好的数据则认为同步上波特率;如果在定时器到期时没有收到事先约定好的数据,则停止定时器,并切换到下一波特率,再次等待电平中断并接受数据。
3.根据权利要求2所述的串口的软件自适应波特率方法,其特征在于:所述定时器为50ms。
4.根据权利要求1所述的串口的软件自适应波特率方法,其特征在于:所述波特率包括9600,19200,38400,57600以及115200bps。
5.根据权利要求1所述的串口的软件自适应波特率方法,其特征在于:所述预定的数据为一个或者几个字符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610375092.0A CN106095712A (zh) | 2016-05-31 | 2016-05-31 | 一种串口的软件自适应波特率方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610375092.0A CN106095712A (zh) | 2016-05-31 | 2016-05-31 | 一种串口的软件自适应波特率方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106095712A true CN106095712A (zh) | 2016-11-09 |
Family
ID=57229590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610375092.0A Pending CN106095712A (zh) | 2016-05-31 | 2016-05-31 | 一种串口的软件自适应波特率方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106095712A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153696A (zh) * | 2017-12-29 | 2018-06-12 | 广州市中海达测绘仪器有限公司 | 嵌入式系统串口模块匹配方法、装置、介质和计算机设备 |
CN108257369A (zh) * | 2018-03-26 | 2018-07-06 | 宁波三星医疗电气股份有限公司 | 一种表计与gprs模块的透传通讯方法 |
CN112511334A (zh) * | 2020-10-13 | 2021-03-16 | 博流智能科技(南京)有限公司 | 提高通信速率的方法及系统 |
CN114584276A (zh) * | 2022-05-05 | 2022-06-03 | 合肥芯荣微电子有限公司 | 一种UART波特率自适应方法和系统以及SoC芯片 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050041594A1 (en) * | 2003-08-06 | 2005-02-24 | Jha Mithilesh Kumar | Automatic baud rate determination |
CN101551786A (zh) * | 2009-05-05 | 2009-10-07 | 大连理工大学 | 波特率自适应串行通信中继器的制作方法 |
CN101710857A (zh) * | 2009-11-05 | 2010-05-19 | 厦门敏讯信息技术股份有限公司 | 串行通信波特率自适应方法及其装置 |
CN102387011A (zh) * | 2011-09-06 | 2012-03-21 | 杭州开鼎科技有限公司 | 一种半双工的rs485端口速率自适应的方法 |
CN103973533A (zh) * | 2014-05-22 | 2014-08-06 | 哈尔滨理工大学 | 隔离型rs485/rs422中继隔离器的波特率识别方法及数据流控制方法 |
CN104714920A (zh) * | 2015-02-13 | 2015-06-17 | 暨南大学 | 一种自适应波特率的信号接收方法 |
-
2016
- 2016-05-31 CN CN201610375092.0A patent/CN106095712A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050041594A1 (en) * | 2003-08-06 | 2005-02-24 | Jha Mithilesh Kumar | Automatic baud rate determination |
CN101551786A (zh) * | 2009-05-05 | 2009-10-07 | 大连理工大学 | 波特率自适应串行通信中继器的制作方法 |
CN101710857A (zh) * | 2009-11-05 | 2010-05-19 | 厦门敏讯信息技术股份有限公司 | 串行通信波特率自适应方法及其装置 |
CN102387011A (zh) * | 2011-09-06 | 2012-03-21 | 杭州开鼎科技有限公司 | 一种半双工的rs485端口速率自适应的方法 |
CN103973533A (zh) * | 2014-05-22 | 2014-08-06 | 哈尔滨理工大学 | 隔离型rs485/rs422中继隔离器的波特率识别方法及数据流控制方法 |
CN104714920A (zh) * | 2015-02-13 | 2015-06-17 | 暨南大学 | 一种自适应波特率的信号接收方法 |
Non-Patent Citations (1)
Title |
---|
赵培宇: "STC单片机波特率自适应方法", 《现代电子技术》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108153696A (zh) * | 2017-12-29 | 2018-06-12 | 广州市中海达测绘仪器有限公司 | 嵌入式系统串口模块匹配方法、装置、介质和计算机设备 |
CN108153696B (zh) * | 2017-12-29 | 2020-04-10 | 广州市中海达测绘仪器有限公司 | 嵌入式系统串口模块匹配方法、装置、介质和计算机设备 |
CN108257369A (zh) * | 2018-03-26 | 2018-07-06 | 宁波三星医疗电气股份有限公司 | 一种表计与gprs模块的透传通讯方法 |
CN112511334A (zh) * | 2020-10-13 | 2021-03-16 | 博流智能科技(南京)有限公司 | 提高通信速率的方法及系统 |
CN112511334B (zh) * | 2020-10-13 | 2024-05-07 | 博流智能科技(南京)有限公司 | 提高通信速率的方法及系统 |
CN114584276A (zh) * | 2022-05-05 | 2022-06-03 | 合肥芯荣微电子有限公司 | 一种UART波特率自适应方法和系统以及SoC芯片 |
CN114584276B (zh) * | 2022-05-05 | 2022-08-23 | 合肥芯荣微电子有限公司 | 一种UART波特率自适应方法和系统以及SoC芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106095712A (zh) | 一种串口的软件自适应波特率方法 | |
US10042797B2 (en) | Voltage mode and current mode device enumeration | |
CN104378729B (zh) | 移动通信网络业务实现方法和移动终端系统 | |
US20190391821A1 (en) | Method and apparatus for plug and play, networkable iso 18000-7 connectivity | |
CN101989248A (zh) | 一种usb设备和usb设备重启的方法 | |
US20110305165A1 (en) | Method and system for physical-layer handshaking for timing role transition | |
CN102916921A (zh) | 一种载波同步方法、装置及系统 | |
US20140357185A1 (en) | Method for information processing and electronic device | |
US20130324186A1 (en) | Single Transceiver for Wireless Peer-To-Peer Connections | |
CA2438370A1 (en) | Command synchronization establishment system | |
CN106233232A (zh) | 在计算设备上传感器模块的同步 | |
CN107479426B (zh) | 一种机器人同步表演控制系统及方法 | |
KR20180019560A (ko) | 독립적인 uart brk 검출 | |
EP1484879A3 (en) | Two-wire data communication | |
WO2017049556A1 (zh) | 数据传输方法和移动终端 | |
KR101883522B1 (ko) | 듀얼 mcu에서 마스터 mcu 및 슬레이브 mcu 전환 방법 및 장치 | |
CN105591728B (zh) | 用于链路层信号同步的装置和方法 | |
WO2023011587A1 (zh) | Harq-ack传输资源确定方法、终端及存储介质 | |
WO2024010630A1 (en) | Dynamic spread-spectrum-clocking control | |
CN106330357B (zh) | 一种serdes的传输校验方法、节点与系统 | |
CN106814214A (zh) | 一种新型adcp数字自适应用户系统 | |
CN110035399A (zh) | 消息传输方法及相关设备 | |
CN106209480B (zh) | 同步配置信息的方法及装置 | |
CN105379375A (zh) | 一种发射同步信号的方法及装置 | |
KR20150052421A (ko) | 휴대 클라우드 서비스 제공 방법 및 이를 이용한 휴대 클라우드 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161109 |