串行通信波特率自适应方法及其装置制造方法及图纸

技术编号:4166420 阅读:546 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种串行通信波特率自适应方法及装置,用于完成发送方与接收方之间的数据传输和指令控制任务,包括以下步骤:设置接收方的起始波特率为发送方波特率变化范围内的最小波特率的M倍,其中M=8或16或32,在连续接收多个字符后,将接收到的字符数据通过判断法则判断发送方采用的波特率是否为接收方波特率的1/M,若不是,则使接收方的波特率加倍,重新接收字符,直至判断接收方的波特率为发送方波特率的M倍时结束。本发明专利技术无需串行设备发送特征字符,也不依赖定时器或其它工具来测试一个位保持的时间,即可实现波特率的自适应识别,提高了串行设备使用上的灵活性和通用性。

Method and device for self-adapting baud rate of serial communication

The invention provides a device and method for adaptive baud rate of serial communication, data transmission and instruction between the sender and receiver control tasks, which comprises the following steps: starting the baud rate setting is M times the baud rate of the sender changes within the minimum rate of Potter, where M = 8 or 16 or 32, in the continuous reception a character, the character data received by the sender using the judgment rule to determine whether the baud rate baud rate 1 / M, if not, the receiver baud rate is doubled, to receive characters, until the end of M times the baud rate for the sender receiver to determine the baud rate. The invention does not need to send the serial device features characters, also does not depend on the timer or other tools to test a bit to keep time, can realize the adaptive recognition of baud rate, serial equipment using improved flexibility and versatility.

【技术实现步骤摘要】

本专利技术涉及通信
,提供了 一种串行通信波特率自适应方法及其装置
技术介绍
在工业测量、自动控制、通信等领域中,人们经常会用串行通信来完成主机与终端的数据传输和指令控制任务,由于终端用途的多样性使得系统对通信速率要求也有很大的不同。 目前,波特率检测的常用方法主要有两种标准波特率穷举法和码元宽度实时检测法。标准波特率穷举法要求数据终端传输数据所采用的波特率必须在有限的几个固定数值之间变化,如标准波特率序列。串行设备启动后,逐个尝试以不同的波特率接收数据终端发出的特征字符,直到能正确接收为止。码元宽度实时检测法要求数据终端按照约定发送特征字符,串行设备测量输入数据的码元宽度,而后计算出待测的波特率。以上两种方法对串行设备发送的数据都有一定的限制或要求才能够实现波特率的自适应,降低了使用上的灵活性和通用性。波特率检测大都采用根据一个位保持的时间来判断的,通常采用定时或采集器来测量一个位保持的时间,需要依赖定时器或其它工具来测试一个位保持的时间。 在实际工作中,尽管终端的波特率有多种情况,但是大部分都还是采用通用的标准波特率系列,这些波特率常取如下值300 、 600 、1200、 2400 、 4800 、 9600 、 19200 、 38400 、57600、 115200等。显然要让主机与终端能进行正确接收和发送,双方必须使用相同的波特率设置,简单的做法是双方设置成固定的值,但这样做使得系统的灵活性变差。如果一方的波特率发生改变,另一方也需要进行相应的调整设置,需要人为修改较为不便,也使得串行设备的通用性和灵活性差。
技术实现思路
针对以上不足,本专利技术提出的是一种串行通信波特率自适应方法及其装置,不依赖于特殊的硬件、定时器及接口协议设计,能够自适应的识别串行设备使用的波特率。 本专利技术提供了一种串行通信波特率自适应方法,用于完成发送方(终端)与接收方(主机)之间的数据传输和指令控制任务,包括以下步骤设置接收方的起始波特率为发送方波特率变化范围内的最小波特率的M倍,其中M = 8或16或32,根据M值的不同可分为8倍波特率法或16倍波特率法或32倍波特率法,所述的8倍波特率法或16倍波特率法或32倍波特率法均是在连续接收多个字符后,将接收到的字符数据通过判断法则判断发送方采用的波特率是否为接收方波特率的1/M,若不是,则使接收方的波特率加倍,重新接收字符,直至判断接收方的波特率为发送方波特率的M倍时结束;其中,所述判断法则是当M = 8时,所述8倍波特率法的判断法则是当接收到的字符数据均为00H或80H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的8倍;当M = 16时,所述16倍波特率法的判断法则是当接收到的字符数据均为0000H或8000H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的16倍; 当M二 32时,所述32倍波特率法的判断法则是当接收到的字符数据均为00000000H或80000000H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的32倍。 进一步的,所述的8倍波特率法包括以下步骤 步骤101,发送方开始发送,假设发送方波特率采用通用的标准波特率,其波特率是ai, a2, a3, . . . , an,即其变化范围是(&1 an),其中,an = 2(n—; 步骤102,接收方设置起始波特率为^ = 8ai ; 步骤103,连续接收多个字符; 步骤104,根据判断法则,判断接收到的字符是否均为00H或80H,且含有开始、结束字符均已出现;若是,进入步骤106,否则,进入步骤105 ; 步骤105,将接收方的波特率加倍,进入步骤103 ; 步骤106,发送方采用的波特率为接收方波特率的1/8 ; 步骤107,结束。 在异步串行通信中每个字节传输时会附加一个起始位和一个停止位,其基本特点是数据以字符为单位进行传输,每个字符按位传输。传输一个字符时,总是以起始位开始,以停止位结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值0),字符本身由8位数据位组成,没有校验位,最后是一位停止位,停止位后面是不定长的空闲位。停止位规定为高电平(逻辑值1),以保证起始位开始处一定有一个下跳沿。 由于起止式异步通信协议规定,只有当检测到下跳沿时,接收方才开始接收数据,因此当接收方采用的波特率为发送端的8倍时,发送方不必要采用特定字符(OOH除外)发送,只要一直发送数据就行。由于接收方是采用8倍发送方的波特率,所以接收方收到的数据是由开始位和发送方第一位数据组成的若发送方数据第一位为高电平,那么接收方在采用8倍波特率收到的是IOOOOOOOB,即80H ;若发送方数据第一位为低电平,那么接收方在采用8倍波特率收到的是OOOOOOOOB,即OOH。很明显接收方接收到的数据只可能有两种情况00H和80H。这样,如果接收方连续接收多个字符,接收到的字符均为00H或80H,那么通讯的实际波特度为接收方的1/8。根据这一特点,可以实现波特率的自适应。 进一步的,所述的16倍波特率法包括以下步骤 步骤201,发送方开始发送,假设发送方波特率采用通用的标准波特率,其波特率是ai, a2, a3, . . . , an,即其变化范围是(&1 an),其中,an = 2(n—; 步骤202,接收方设置起始波特率为^ = 16ai ; 步骤203,连续接收多个字符; 步骤204,根据判断法则,判断接收到的字符是否均为OOOOH或8000H,且含有开始、结束字符均已出现;若是,进入步骤206,否则,进入步骤205 ; 步骤205,将接收方的波特率加倍,进入步骤203 ; 步骤206,发送方采用的波特率为接收方波特率的1/16 ; 步骤207,结束。 进一步的,所述的32倍波特率法包括以下步骤 步骤301,发送方开始发送,假设发送方波特率采用通用的标准波特率,其波特率是ai, a2, a3, . . . , an,即其变化范围是(&1 an),其中,an = 2(n—; 步骤302,接收方设置起始波特率为^ = 32ai ; 步骤303,连续接收多个字符; 步骤304,根据判断法则,判断接收到的字符是否均为00000000H或80000000H,且含有开始、结束字符均已出现;若是,进入步骤306,否则,进入步骤305 ; 步骤305,将接收方的波特率加倍,进入步骤303 ; 步骤306,发送方采用的波特率为接收方波特率的1/32 ; 步骤307,结束。 本专利技术还提供了 一种串行通信波特率自适应装置,包括 —波特率设置模块,用于设置接收方的波特率,开始时设置起始波特率; —接收模块,用于接收发送方传送的字符; —判断模块,用于接收模块根据所接收的字符依据判断法则判断发送方采用的波特率是否为接收方波特率的1/M ; —波特率控制模块,用于控制波特率设置模块,并根据判断模块的结果执行是否使接收方的波特率加倍。 本专利技术是根据异步串行通信的接收过程从一个下跳沿开始接收数据,按时钟周期和波特率因子来接收8位数据位,最后如果能检测到停止位的话,则表明一帧数据接收成功,否则就在状态标志位上记帧错误标志。 本专利技术提供本文档来自技高网...

【技术保护点】
一种串行通信波特率自适应方法,用于完成发送方与接收方之间的数据传输和指令控制任务,其特征在于:设置接收方的起始波特率为发送方波特率变化范围内的最小波特率的M倍,其中M=8或16或32,根据M值的不同可分为8倍波特率法或16倍波特率法或32倍波特率法,所述的8倍波特率法或16倍波特率法或32倍波特率法均是在连续接收多个字符后,将接收到的字符数据通过判断法则判断发送方采用的波特率是否为接收方波特率的1/M,若不是,则使接收方的波特率加倍,重新接收字符,直至判断接收方的波特率为发送方波特率的M倍时结束;其中,所述判断法则是:当M=8时,所述8倍波特率法的判断法则是当接收到的字符数据均为00H或80H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的8倍;当M=16时,所述16倍波特率法的判断法则是当接收到的字符数据均为0000H或8000H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的16倍;当M=32时,所述32倍波特率法的判断法则是当接收到的字符数据均为00000000H或80000000H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的32倍。...

【技术特征摘要】
一种串行通信波特率自适应方法,用于完成发送方与接收方之间的数据传输和指令控制任务,其特征在于设置接收方的起始波特率为发送方波特率变化范围内的最小波特率的M倍,其中M=8或16或32,根据M值的不同可分为8倍波特率法或16倍波特率法或32倍波特率法,所述的8倍波特率法或16倍波特率法或32倍波特率法均是在连续接收多个字符后,将接收到的字符数据通过判断法则判断发送方采用的波特率是否为接收方波特率的1/M,若不是,则使接收方的波特率加倍,重新接收字符,直至判断接收方的波特率为发送方波特率的M倍时结束;其中,所述判断法则是当M=8时,所述8倍波特率法的判断法则是当接收到的字符数据均为00H或80H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的8倍;当M=16时,所述16倍波特率法的判断法则是当接收到的字符数据均为0000H或8000H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的16倍;当M=32时,所述32倍波特率法的判断法则是当接收到的字符数据均为00000000H或80000000H,且含有开始、结束的字符均已出现时,接收方的波特率为发送方波特率的32倍。2. 根据权利要求1...

【专利技术属性】
技术研发人员:曾宗云陈泽城
申请(专利权)人:厦门敏讯信息技术股份有限公司
类型:发明
国别省市:92[中国|厦门]

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

1