一种波特率自适应的串口通信系统及串口通信方法与流程

文档序号:21455495发布日期:2020-07-10 17:50阅读:307来源:国知局
导航: X技术> 最新专利> 计算;推算;计数设备的制造及其应用技术
一种波特率自适应的串口通信系统及串口通信方法与流程

本发明属于串口通信技术,尤其涉及一种波特率自适应的串口通信系统及串口通信方法。



背景技术:

两个串口设备进行串口通讯前,必须提前设置成相同的帧格式和相同的波特率,才能保证通讯数据的正确性。帧格式为串口通讯的电平流信息,包括1个起始位、6/7/8个数据位、0/1个校验位和1/1.5/2个停止位,最常见的帧格式为:1个起始位、8个数据位、0个校验位、1个停止位分析。波特率为串口通讯的传输速率参数。随着usb接口的普及,usb转串口芯片使用越来越广泛。但是现有的usb转串口芯片,结构如图1,和通用串口通信设备一样,在进行串口数据接收和发送前,必须先将自身串口通讯的帧格式和波特率设置成和另外一方一样,才能实现正确的串口通讯,不能实现串口通讯的自适应。虽然有的文献也提出了可以实现波特率自适应的方法,需要对usb转串口芯片有很高的要求,比如需要很高的时钟主频和很大的存储ram,势必会增加额外的硬件成本。尤其对于成本较低资源有限的八位mcu芯片来说,要想不增加成本来实现波特率的自适应是不可能的。



技术实现要素:

发明目的:为了解决在低成本的资源有限的usb转串口芯片上较难实现串口波特率自适应的问题,本发明提供一种波特率自适应的串口通信系统及串口通信方法。

技术方案:一种波特率自适应的串口通信系统,其特征在于,包括串口通信设备、usb转串口设备及usb上位机,usb转串口设备包含usb转串口芯片,所述usb转串口芯片包括核心控制模块、串口rxd引脚电平采样模块、usb数据上传模块、usb数据下传模块及串口txd引脚电平发送模块,串口rxd引脚电平采样模块、usb数据上传模块、usb数据下传模块及串口txd引脚电平发送模块均与核心控制模块相连;串口rxd引脚电平采样模块与串口通信设备的txd引脚连接;串口txd引脚电平发送模块与串口通信设备的rxd引脚连接;usb数据上传模块、usb数据下传模块通过usb接口连接usb上位机;串口rxd引脚电平采样模块用于对usb转串口芯片的串口rxd引脚连续采样;usb数据上传模块用于将连续的采样数据不间断上传;usb数据下传模块用于获取usb上位机下传的编码数据流;串口txd引脚电平发送模块用于将编码数据流转换成电平信息流并发给串口通信设备;所述usb上位机包括存储器、处理器及存储在存储器上并可在处理器上运行的usb驱动程序,处理器执行usb驱动程序时实现:不间断接收usb接口上传的连续的采样数据;分析串口通信的波特率;提取有效的串口通信数据;将发送数据转换成符合该波特率的编码数据流并下传至usb接口。

一种波特率自适应串口通信系统中的usb转串口芯片,包括核心控制模块、串口rxd引脚电平采样模块、usb数据上传模块、usb数据下传模块及串口txd引脚电平发送模块,串口rxd引脚电平采样模块、usb数据上传模块、usb数据下传模块及串口txd引脚电平发送模块均与核心控制模块相连;串口rxd引脚电平采样模块用于对串口rxd引脚连续采样;usb数据上传模块用于将连续的采样数据不间断上传;usb数据下传模块用于获取usb上位机下传的编码数据流;串口txd引脚电平发送模块用于将编码数据流转换成电平信息流并发出。

进一步地,还包括采样数据编码模块、发送数据解码模块,所述采样数据编码模块与核心控制模块、串口rxd引脚电平采样模块连接,采样数据编码模块用于将连续的采样数据进行编码;发送数据解码模块与核心控制模块、串口txd引脚电平发送模块连接,发送数据解码模块用于对usb数据下传模块传输的编码数据流进行解码。

一种波特率自适应串口通信系统中的usb上位机,包括存储器、处理器及存储在存储器上并可在处理器上运行的usb驱动程序,处理器执行usb驱动程序时实现:不间断接收usb数据;根据usb数据分析串口通信的波特率,提取有效的串口通信数据;将发送数据转换成符合该波特率的编码数据流,并下传编码数据流至usb接口。

一种usb转串口设备的串口通信方法,包括以下步骤:

对usb转串口芯片的串口rxd引脚的电平信息进行连续采样,采样频率至少为usb转串口芯片所支持的最大波特率的4倍;

将连续的采样数据不间断上传至usb上位机;

接收usb上位机下发的发送数据的编码数据流;

将编码数据流转换成电平信息流发送至串口通信设备。

一种usb上位机的串口通信方法,包括以下步骤:

通过usb接口不间断接收连续的采样数据,根据连续的采样数据获取串口通信的波特率,根据串口通信的波特率和串口通信的帧格式提取有效的串口通信数据;

获取待发送数据,并根据串口通信的波特率、串口通信的帧格式及所述采样频率,将待发送数据转换成编码数据流并通过usb接口下传。

进一步地,所述串口通信的波特率的获取方法为:

计算连续的采样数据相应的电平信息最小脉冲所占时间;

设最小脉冲所占时间为t,则波特率的计算值为1/t;

设定容错误差为x;

枚举串口通信波特率的常见值;

将1/t与常见值进行比较,若存在常见值,使该常见值介于(1-x)/t与(1+x)/t之间,则串口通信的实际波特率即为该常见值;若所有的常见值均不介于(1-x)/t与(1+x)/t之间,则串口通信的实际波特率即为1/t,为非标准波特率。

进一步地,所述串口通信的帧格式为固定格式或根据串口通信的波特率和连续的采样数据分析得到,分析方法包括:

默认帧格式为1个起始位、8个数据位、0个校验位及1个停止位;

通过连续的采样数据和串口通信的波特率,根据串口帧的特征,与默认帧格式进行匹配,若匹配成功,默认帧格式即为串口通信的帧格式;若匹配不成功,改变默认帧格式为其他常见帧格式重新匹配,直到找到匹配的帧格式,即为串口通信的帧格式。

一种波特率自适应的串口通信方法,包括以下步骤:

usb转串口设备对串口通信设备的txd引脚的电平信息进行连续采样,采样频率至少为usb转串口芯片所支持的最大波特率的4倍;

usb转串口设备将连续的采样数据不间断上传至usb上位机;

usb上位机不间断接收连续的采样数据,根据连续的采样数据计算出相应的电平信息最小脉冲所占时间,根据最小脉冲所占时间获取串口通信的波特率,根据串口通信的波特率和串口通信的帧格式,提取有效的串口通信数据;

usb上位机获取待发送数据,按照串口通信的波特率、串口通信的帧格式及所述采样频率,对待发送数据进行位编码,并将位编码后的编码数据流下传至usb转串口设备;

usb转串口设备接收usb上位机下传的编码数据流,将编码数据流转换成电平信息流并发送至串口通信设备,默认未接收到编码数据流时发送高电平。

进一步地,所述串口通信的帧格式为固定格式或根据串口通信的波特率和连续的采样数据分析得到。

有益效果:本发明提供一种波特率自适应的串口通信系统及串口通信方法,相比较现有技术,不需要提前设置成串口通信设备的串口通信波特率,能够实时根据发送方发送的数据流,自动分析出发送方目前所使用波特率,并解析出有效的串口通信数据,并将待发送数据也转换成相同的波特率发出,从而实现了串口通信波特率的自适应,实现接收数据和发送数据双重自适应,实现正确的串口通信。因为usb转串口芯片仅对串口rxd引脚进行电平采样以及数据的编码上传,由系统中本身就具备更大存储和更快速度的usb上位机进行帧格式和波特率的分析以及串口数据的解析处理,从而使得usb转串口芯片不需要很高的时钟主频和很大的存储ram,因此本方法不会增加额外的硬件成本。本发明充分利用系统中上位机的高运算速度、大缓存的资源优势,可以在资源普通的8位mcu芯片上实现usb转串口的功能,以达到使用便捷、操作简单、成本低、串口信号兼容性好等效果。

附图说明

图1为现有的usb转串口芯片的结构框图;

图2为本发明波特率自适应的串口通信系统的系统框图;

图3为本发明usb转串口芯片的结构示意图;

图4为usb转串口芯片的串口rxd引脚的采样示意图;

图5为计算串口通信波特率的原理示意图;

图6为本发明usb转串口芯片的工作流程图;

图7为本发明usb驱动软件的工作流程图。

具体实施方式

下面结合附图和具体实施例对本发明做进一步解释说明。

如图2所示,波特率自适应的串口通信系统包括串口通信设备、usb转串口设备及usb上位机,usb上位机上安装有usb上位机软件,包括usb驱动软件及上层串口软件。

如图2和图3所示,usb转串口设备包含usb转串口芯片,所述usb转串口芯片包括核心控制模块、串口rxd引脚电平采样模块、usb数据上传模块、usb数据下传模块、串口txd引脚电平发送模块、采样数据编码模块及发送数据解码模块,串口rxd引脚电平采样模块、usb数据上传模块、usb数据下传模块及串口txd引脚电平发送模块均与核心控制模块相连;串口rxd引脚电平采样模块与串口通信设备的txd引脚连接;串口txd引脚电平发送模块与串口通信设备的rxd引脚连接;usb数据上传模块、usb数据下传模块通过usb接口连接usb上位机。串口rxd引脚电平采样模块用于对串口rxd引脚连续采样;usb数据上传模块用于将连续的采样数据不间断上传;usb数据下传模块用于获取usb上位机下传的编码数据流;串口txd引脚电平发送模块用于将编码数据流转换成电平信息流并发出;所述采样数据编码模块与核心控制模块、串口rxd引脚电平采样模块连接,采样数据编码模块用于将采样数据编码成字节;发送数据解码模块与核心控制模块、串口txd引脚电平发送模块连接,发送数据解码模块用于将usb上位机发送的编码数据流解码。

usb上位机上安装有usb驱动软件和上层串口软件,usb驱动软件利用usb转串口设备不间断上传的连续的采样数据分析出串口通信的帧格式和波特率,实际上帧格式可以采用固定格式无需分析,也可以进行分析得到,本实施例所描述的为通过分析得到的方法;获取有效的串口通信数据并将其发送给上层串口软件;从上层串口软件获取待发送数据,并将待发送数据转换成符合该帧格式和波特率的编码数据流并下传至usb转串口设备。

该波特率自适应的串口通信系统包括两种工作模式,除了波特率自适应的工作模式外,还可用于指定波特率的工作模式。本实施例仅详细说明波特率自适应工作模式下的具体内容。

图6、图7分别为usb转串口设备和usb驱动软件的主要工作流程,其中,电平信息采样、usb数据上传、usb数据下传、电平信息发送等事件都以中断方式处理,即保证了事件的并行性又保证了处理的实时性。相关数据的接收、存储和发送都以dma方式处理,即减少了系统资源的占用,又提高了处理速度。即控制包需要中断,纯数据包无需中断。由硬件自动实现usb下传到缓冲区再通过直接内存存取dma连续发给txd输出,接收采样数据到dma也由硬件处理,只是在dma满64字节存入缓冲区时才中断一次,不用dma和自动功能,高速采样难实现。即:硬件上有rxd连续采样、按序8位组合编码、dma自动存储到缓冲区,上传下传到缓冲区、dma从缓冲区中自动取出数据,将8位按序发到txd,无数据时默认txd输出高电平。

波特率自适应的串口通信的具体方法包括以下内容:

1、usb转串口设备对串口rxd引脚的电平信息进行连续采样,采样频率至少为usb转串口芯片所支持的最大波特率的4倍;

为了方便后续usb传输,将连续的采样数据编码成字节的形式,八个采样数据编码为一个字节,然后再将每64个字节组成一个数据包进行存储,但不仅限该编码方式及该数据包组合方式。

串口rxd引脚的电平信息,以帧为单位,每帧包括1个起始位,6个或7个或8个数据位、0个或1个校验位和1个或1.5个或2个停止位。每一位占用的时间由波特率决定,假定usb转串口芯片所支持的最大波特率为bmax,则最大波特率时串行通讯每个位占用时间为1/bmax。usb转串口芯片至少需要以1/(4*bmax)的时间间隔进行连续采样,高电平采样数据为“1”,低电平采样数据为“0”。连续采样的时间间隔越小越精确,如1/(8*bmax)或者1/(16*bmax)。下面以采样频率f为3mhz举例说明。

usb转串口芯片按照3mhz的采样频率连续不停的采样串口rxd引脚的电平信息,并将采样到的电平信息进行连续编码,每采样8次则编码成1个字节。

如图4所示为对电平信息随机进行采样24次的示意图。a0-a7、b0-b7、c0-c7为24次采样点,将a0(高电平1)、a1(低电平0)、a2(低电平0)、a3(低电平0)、a4(低电平0)、a5(高电平1)、a6(高电平1)和a7(高电平1)8次采样编码成二进制数据10000111,对应十六进制数据0x87。将b0(高电平1)、b1(高电平1)、b2(高电平1)、b3(高电平1)、b4(高电平1)、b5(低电平0)、b6(低电平0)和b7(低电平0)8次采样编码成二进制数据11111000,对应十六进制数据0xf8。将c0(低电平0)、c1(高电平1)、c2(高电平1)、c3(高电平1)、c4(高电平1)、c5(低电平0)、c6(低电平0)和c7(低电平0)8次采样编码成二进制数据01111000,对应十六进制数据0x78。

2、usb转串口设备通过usb接口连接usb上位机,在usb上位机上识别成一个自定义的usb设备。usb上位机上运行usb驱动软件,usb驱动软件会不停的发送in令牌获取usb转串口设备in端点的上传数据。usb转串口设备循环先将编码后的数据进行组包,例如每64个字节组成1包,然后通过usb接口不间断地上传给usb驱动软件。usb驱动软件将获取到的编码数据按先后顺序进行存储,然后启动下面的解码分析。采样、编码和上传均是连续不断的过程,而现有的usb转串口芯片是需要识别串口通信的空闲与非空闲后再进行数据传输。

因为usb转串口芯片仅对串口rxd引脚进行连续不间断的电平采样以及数据的编码上传,不需要识别是否有串口数据传输,也无需分析波特率,由本身具备更大存储和更快速度的usb上位机的usb驱动软件进行帧格式和波特率的分析以及串口数据的解析处理,从而usb转串口芯片不需要很高的时钟主频和很大的存储ram,因此本方法不会增加额外的硬件成本。

3、usb上位机不间断接收usb转串口设备上传的连续的采样数据的数据包,将数据包解码还原成连续的采样数据,根据连续的采样数据分析波特率和帧格式;根据波特率和帧格式从连续的采样数据中获取有效的串口通信数据,并将有效的串口通信数据提交给上层串口软件。

(1)分析波特率:

1个字节的十六进制编码数据包含8个数据位,每位0表示1/f时间的低电平,每位1表示1/f时间的高电平。如图5为一段连续的采样数据对应的电平信息,包括5个字节的编码数据0xf0、0xf0、0x00、0xf0、0xf0,对应的二进制数据依次为:11110000、11110000、00000000、11110000和11110000,解码还原成连续的二进制采样数据“1111000011110000000000001111000011110000”,连续的采样数据相应的电平信息如图5所示。从拼接起来的连续的电平信息流中,寻找到时间最小的低电平脉冲或高电平脉冲。即从连续的二进制采样数据中间寻找最小的连续0或连续1的个数。从上述连续的二进制采样数据中找到的多个最小的连续0或连续1的个数都是4,即本段电平流信息的最小脉冲时间包含4个采样周期。同样的方法对不断接收到的连续采样数据进行不断分析,若存在比4个采样周期更小的脉冲,则更新数据。假设4为最终确定的最小的0或1的连续个数,则串口通信的波特率计算为:

设最小脉冲所占时间为t,串口通讯波特率的计算值为b,则有t=4*(1/f),b=1/t=750000bps。

考虑到采样误差以及串口通讯误差,需要对波特率的计算值进行一定的容错误差(例如5%,也可根据需要设为其他数值)计算处理,将b与常见值进行比较,若存在常见值,使该常见值介于0.95b与1.05b之间,则串口通信的实际波特率即为该常见值;若所有的常见值均不介于0.95b与1.05b之间,说明所有常见波特率值和计算值相差都比较大,则该波特率可能本身就是非标波特率,串口通信的实际波特率即为1/t。常见波特率值有1200bps、2400bps、4800bps、9600bps、19200bps、115200bps、230400bps、460800bps和921600bps等。因上述计算得到b为750000bps,不存在较接近的常见波特率值,所以该串口通信的波特率即为非标波特率750000bps。假设计算出来的波特率b=2345,比较接近2400,则可以确定当前实际波特率为2400bps;假设当前计算出来的波特率b=9357,比较接近9600,则可以确定当前实际波特率为9600bps。

(2)分析帧格式:

串口通讯每帧包括1个起始位,6个或7个或8个数据位、0个或1个校验位和1个或1.5个或2个停止位,每位占用的时间宽度为1/b,因此每帧占用的时间宽度为:8、8.5、9、9.5、10、10.5、11、11.5或12个1/b。由于起始位固定为低电平,停止位固定为高电平,因此可以根据连续的采样数据和已经得到的波特率,得出最小脉宽,还原出串口帧真实的波形对应的1和0序列,然后根据帧的特征从序列中分析出每帧的开始和结束,从而确定当前帧的位数。确定了每位的时间宽度,以及帧位数后,进而分析出当前帧的数据位数(6或7或8)、校验位数(0或1)和停止位数(1或1.5或2)。

最常见的串口通讯帧格式是:1个起始位,8个数据位、0个校验位和1个停止位,因此默认此帧格式为当前通讯的帧格式进行分析,匹配的概率更大。因为所有接收到的连续的采样数据事先已存储,因此可以重复进行不同的分析。如果当前默认的帧格式不匹配,再假定另一种新的帧格式重新匹配,直到找到匹配的帧格式。若串口通信的帧格式为已知的固定格式,则无需分析帧格式。

传统方案曾提到由mcu分析波特率或帧格式来实现自适应,usb转串口芯片的mcu主频通常在几mhz到几十mhz,ram存储空间通常是几百bytes或者几kbytes,分析能力严重受限,或者需要大幅提高硬件成本,从而限制了商业应用。而本发明的方案中,usb上位机这端的计算机cpu主频通常是几ghz并且多核,存储空间是以mbytes甚至gbytes计量,比usb转串口芯片那端高几个数量级,所以能够高速和并行地在更宽广的采样数据范围中寻找特征进行智能分析,提高波特率自适应的准确性和响应速度。

4、上层串口软件需要发送串口数据时,先将待发送数据提交给usb驱动软件,usb驱动软件根据之前接收时分析出的帧格式和波特率,将待发送数据转换成带有起始位、数据位、校验位和停止位并按采样频率之于波特率的倍数展开的十六进制编码数据流,然后通过usb接口下传给usb转串口设备。usb转串口设备接收到编码数据流后,将编码数据流解码还原成电平信息流,并通过txd引脚发送给串口通信设备。再根据usb转串口芯片的采样频率,每收到usb下传的一个位0发送1/f时间的低电平,每收到usb下传的一个位1发送1/f时间的高电平,默认未接收到usb上位机下传的编码数据流时发送持续的高电平。因此,数据发送时的帧格式和波特率,会根据接收时分析的帧格式和波特率自动调整,因此实现了接收和发送的双重自适应,usb转串口设备直接将其转换成电平信息流即可。

完整全部详细技术资料下载
当前第1页 1  2 
相关技术
  • DDS通信中间件集成Rapi...
  • 一种PCIE网卡的热插拔方法...
  • 移动终端设备和日志获取系统的...
  • USB转接电路的制作方法
  • USB接口电路和电子装置的制...
  • 具备可信计算功能的M.2接口...
  • 具备可信计算功能的PCIE接...
  • 一种基于自动化产线转接板控制...
  • 线缆及其使用方法与流程
  • 接口适配器及其电子设备的制作...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

聚圣源金雨弘防水cisco模拟器高加索起个啥名字好干货调料店起名断交属虎人起名大全无赖勇者的鬼畜美学一时无两redhatlinux下载猪年男宝宝起名李给自己起英文名古诗大全怎样起名字大全免费武汉东湖海洋世界毛起名字大全女孩星辰影院星辰影视星空影院生肖鼠 起名一年级数学教学工作总结福建体育题拍拍2019 起名取名字大全中纪委介入调查贫困县豪华中学杀神白起小蜜蜂瓷砖产品起名网杜姓宝宝起名2020年10月出生宝宝起名手机公司起名大全免费起名宝典2019铜火锅店起名字大全淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化