CN111737182A - 串行通信参数自动配置方法及系统 - Google Patents
串行通信参数自动配置方法及系统 Download PDFInfo
- Publication number
- CN111737182A CN111737182A CN202010603198.8A CN202010603198A CN111737182A CN 111737182 A CN111737182 A CN 111737182A CN 202010603198 A CN202010603198 A CN 202010603198A CN 111737182 A CN111737182 A CN 111737182A
- Authority
- CN
- China
- Prior art keywords
- serial communication
- baud rate
- configuration
- data
- bit
- 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
-
- 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)
- Synchronisation In Digital Transmission Systems (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请公开了串行通信参数自动配置方法及系统,包括:在建立通信连接前,主设备以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;从设备接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置。
Description
技术领域
本申请涉及串行通信技术领域,特别是涉及串行通信参数自动配置方法及系统。
背景技术
本部分的陈述仅仅是提到了与本申请相关的背景技术,并不必然构成现有技术。
在工业、通信等领域,很多设备通过串行通信来实现数据传输的目的,参与串行通讯的设备双方的参数需事先约定一致才能进行正常通信,传统的方法是进行人工设置。
串行通信的参数包括:波特率与数据格式。常用的串行通信波特率有十几种,主要包括:300,600,1200,2400,4800,9600,19200,38400,115200等等。串行通信要求收发双方波特率配置一致;串行异步通信的数据格式示意图如图2所示,串行通信数据格式参数包括:数据位长度、有无校验位、校验模式(奇校验偶校验)、停止位长度,其中数据位长度可为5、6、7或8位,校验位是用来对串行通信数据的正确传输与否给出验证,停止位长度可为1、1.5或2位。
在实现本申请的过程中,发明人发现现有技术中存在以下技术问题:
目前大部分的串行通信参数自适应方法,仅仅是接收方对发送方的波特率进行自适应,无法自动配置串行通信参数中的数据格式,比如:当发送方将要发送的数据帧格式产生变化时,接收方无法针对其做出有效的改变。
发明内容
针对目前串行通信存在的缺陷:(1)串行通信前通信设备需要进行人工配置参数,导致通信不够灵活;(2)在实际应用中,存在主设备要与不同的从设备进行数据交互的使用需求。本申请提供了串行通信参数自动配置方法及系统;本申请提供的方法可以实现串行通信参数的在线自动配置,本方法设计简单,可靠性高,实用性强。
第一方面,本申请提供了串行通信参数自动配置方法;
串行通信参数自动配置方法,包括:
在建立通信连接前,主设备以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;
从设备接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置。
第二方面,本申请提供了串行通信参数自动配置系统;
本实施例提供了串行通信参数自动配置系统;
串行通信参数自动配置系统,包括:主设备与从设备;
主设备,在建立通信连接前,以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;
从设备,接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置。
与现有技术相比,本申请的有益效果是:
本申请能够进行串行通信参数自适应,包括主机波特率的自动检测以及数据格式指令的接收与配置,从而实现串行通信中参数的自动配置,是非常有意义的。
本申请接收方能够完成串行通信参数的自动配置,成功建立通信双方的数据传输链路。
本申请串行通信过程中无需进行人工配置参数的工作,接收方根据主设备发送的同步码与配置码解析出主设备的串行通信参数并与之匹配,实现了接收方与可与发送方进行通信,而无需进行人工配置的功能。
本申请能够完成从设备对串行通信配置参数字节中的字节头部波特率同步码和数据帧格式配置码进行识别和检测的功能,实现自动配置串行参数,建立串行通信链路并实现数据传输。本申请可以解决目前所存在的技术缺陷,极大提高了发明本身的实用性。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为本申请的串行通信参数自动配置的步骤图;
图2为串行异步通信的数据格式示意图;
图3为串行通信中波特率、数据格式配置码的接收方式示意图;
图4为串行通信配置字节接收过程,包括边沿检测、时钟计数以及波特率采样时钟的时序关系;
图5为从设备进行配置字节接收的示意图;
图6为从设备接收模块和发送模块的示意图;
图7为串行通信中选择配置参数字节接收、数据接收的流程图;
图8为串行通信配置参数字节中的字节头部波特率同步码和数据帧格式配置码的接收流程图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例提供了串行通信参数自动配置方法;
如图1所示,串行通信参数自动配置方法,包括:
在建立通信连接前,主设备以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;
从设备接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置。
作为一个或多个实施例,所述从设备接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置;包括:
S101:从设备对接收的串行通信配置参数字节进行下降沿检测与波特率时钟计数,得出波特率,将波特率对应的配置码写入串行通信参数存储寄存器;
S102:从设备利用波特率与系统时钟频率计算时钟分频因子,对系统时钟进行分频,得到串行通信波特率采样时钟信号;
S103:从设备利用波特率采样时钟信号,对串行通信参数存储寄存器的配置码进行采样,获取数据帧格式的配置码,将数据帧格式的配置码写入串行通信参数存储寄存器;
S104:从设备将串行通信参数存储寄存器通过数据总线开放给数据发送模块和数据接收模块,从设备读取配置参数并进行配置。
应理解的,仅用一个字节完成主从设备之间的串行通信参数自适应配置,建立通信双方的串行通信链路,使主从设备实现稳定的数据传输。
进一步地,串行通信配置参数字节,包括:字节头部波特率同步码和数据帧格式配置码。
应理解的,所述串行通信配置参数字节,用来传输波特率信息和数据格式配置参数信息。
进一步地,主设备以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;其中,串行通信配置参数字节的格式,包括:起始位、数据位D0、数据位D1、数据位D2、数据位D3、数据位D4、数据位D5、数据位D6、数据位D7和停止位;其中,数据位D0和数据位D1作为固定的头部波特率同步码,起始位为低电平脉冲,数据位D0为高电平脉冲,数据位D1为低电平脉冲,停止位为高电平脉冲;数据位D2到数据位D7为串行通信的数据帧格式配置码。
示例性的,主设备所发送的串行通信配置参数字节一共10个bit,包括1位起始位,8位宽数据位D0~D7和1位停止位。起始位与停止位分别设定为低电平和高电平信号。数据包发送顺序依次是起始位、8位数据位、停止位,数据位的发送顺序为最低有效位在先、最高有效位在最后。每一位的时间长度相等,都为波特率B的倒数1/B;
串行通信配置参数字节的字节头部波特率同步码包括一位宽起始位、数据位的D0、D1位,D0、D1为固定二进制值:1、0,对应高电平与低电平信号,这样可以让波特率同步码包含两个下降沿,且两个下降沿间距为2个bit的位宽,用于从设备检验得到波特率;
从设备接收串行通信配置参数字节内容包含两部分,接收字节头部波特率同步码和数据帧格式配置码,前者用于检测串行通信波特率信息,后者用于检测串行通信的数据格式,从设备进行配置字节接收的示意图如图5所示。
串行通信配置参数字节是一个10位的二进制码,其中波特率、数据格式配置码其如图3所示,包括1个起始位、8个数据位、1个停止位;
其中,起始位、D0、D1作为固定的头部波特率同步码,起始位为低电平脉冲,D0为高电平信号,D1为低电平信号,用来检测串行通信波特率信息;D2到D7为串行通信的数据帧格式配置码,用来检测串行通信的数据格式;
作为一个或多个实施例,所述S101中,从设备对接收信号进行下降沿检测与波特率时钟计数,得出波特率,将波特率对应的配置码写入串行通信参数存储寄存器;具体包括:
从设备对接收信号进行下降沿检测与波特率时钟计数;所述波特率时钟计数的计数范围为前两个下降沿之间的时间长度,根据波特率时钟计数范围查找表得出波特率,将波特率对应的配置码写入串行通信参数存储寄存器。
示例性的,所述S101;具体步骤包括:
从设备接收字节头部波特率同步码是以检测串行通信配置参数字节的起始位下降沿开始,以D0、D1位间的下降沿作为结束,从设备对下降沿的检测是采用多级D触发器的方法;
从设备对起始位到来的下降沿与D0结束的下降沿进行边沿检测,第一个下降沿来临时记为时刻T1,并开始时钟计数,第二个下降沿来临时记为时刻T2,并结束时钟计数,计数区间(T1,T2)内包含起始位和D0两位的时钟长度,考虑到系统时钟存在误差,时钟计数长度无法准确与波特率匹配,因此设定波特率时钟计数范围查找表即可根据波特率时钟计数范围查找表得出波特率,并将其存储于串行通信参数存储寄存器SERIAL_CONFIG当中。
串行通信波特率将以配置码的形式存储于配置串行通信参数存储寄存器SERIAL_CONFIG的低4位0~3中。
从设备接收字节头部波特率同步码是以检测串行通信配置参数字节的起始位下降沿开始,以D0、D1位间的下降沿作为结束,根据波特率时钟计数范围查找表得出波特率,将波特率对应的配置码写入串行通信参数存储寄存器SERIAL_CONFIG表,写入配置码如表1所示,数据格式配置码的接收方式示意图如图3所示;
为减小下降沿的误检测,在识别串行通信配置参数字节中的字节头部波特率同步码的过程中,检测下降沿到来采用多级D触发器来执行;
需要说明的是:信号在发生电平跳变时,由于走线过长或者接地不良等因素,有可能会出现信号的抖动或毛刺现象,使用多级D触发器即可有效消除这些因素带来的干扰;
定义一个4位宽的寄存器,将接收信号线RXD的值分别延时一个、两个、三个、四个时钟周期存储在寄存器4位中去,将寄存器的一、二位取反,取反后的值进行位与运算,再与三、四位进行位与运算,来消除信号抖动带来的误操作;
当前状态为空闲状态,检测到第一个下降沿到来即进入波特率检测状态,准备接收主设备发送来的配置字节头部波特率同步码;
设定一个32位宽的时钟计数寄存器,在设备上电或复位时进行初始化,初始值为0,在计数完成之后下一次计数开始之前自动清0。对起始位与D0的下降沿进行边沿检测,当检测到第一个下降沿到来,开始时钟计数,并标记为T1时刻,第二个下降沿到来停止计数标记为T2时刻。计数寄存器在每一个系统时钟信号的上升沿执行加1操作,T2时刻计数完成,得到时钟计数寄存器的计数值,计数区间其包含2个数据bit的时长;
系统时钟为100MHz,时钟周期为10纳秒,计数时钟频率远大于串行通信波特率,即使在面对非常高的115200bps时,其时间测量误差小于0.115%,因此能够保证较高的时间测量精度;
波特率、计数范围与波特率配置码的对应关系如表1所示,将时钟计数寄存器的计数值与表1的计数范围进行比较,得到波特率大小,同时得到该波特率的4位配置码;
如图3所示,把得到的波特率配置码写入到12位宽的串行通信参数存储寄存器SERIAL_CONFIG的低4位中,用于串行收发模块的波特率时钟产生模块访问调用;
表1
进一步地,所述S102中,从设备利用波特率与系统时钟频率计算时钟分频因子,对系统时钟进行分频,得到串行通信波特率采样时钟信号;具体步骤包括:
利用时钟分频因子与波特率和系统时钟频率的关系计算时钟分频因子,对系统时钟进行分频,得到在当前波特率下接收一个比特对应的系统时钟长度,波特率时钟产生模块以此产生串行通信波特率采样时钟信号。
示例性的,所述S102具体步骤包括:
波特率检测完毕后,利用波特率与系统时钟频率,计算波特率时钟分频因子的值,计算公式:
其中为Fsys_clk为时钟频率,Baud_rate为波特率;
波特率时钟分频因子是对系统时钟进行分频计数的最大值,利用这个值对系统时钟进行时钟计数分频,得到用于接收数据帧格式配置码的波特率采样时钟信号。
根据时钟分频因子把系统时钟配置成串行通信波特率时钟,定义一个32位宽的时钟分频计数寄存器,波特率时钟分频因子是对系统时钟进行时钟分频计数的最大值,当时钟分频计数达到最大值时自动置0;
利用上述制造的串行通信波特率时钟,对数据帧格式配置码进行采样接收,当时钟分频计数值为波特率分频因子的一半时,产生波特率采样时钟信号,利用该信号对配置码的数据位进行采样接收;
示例性的,所述S103中,从设备利用波特率采样时钟信号,对第一串行通信参数存储寄存器的配置码进行采样,获取数据帧格式的配置码,将数据帧格式的配置码写入第二串行通信参数存储寄存器;具体步骤包括:
从设备接收6位数据帧格式配置码,使用中间采样的方法,利用波特率采样时钟,对每个数据位的中间点进行定位采样,获取数据帧格式配置码,并将其存储于串行通信参数存储寄存器SERIAL_CONFIG当中。
数据帧格式配置码的对应格式如表1所示。
示例性的,所述S103具体步骤包括:
利用波特率采样时钟,对配置字节的后6位(D2~D7)进行中间采样接收,而D1作为“伪起始位”,获取数据帧格式的配置码,并将配置码写入串行通信参数存储寄存器SERIAL_CONFIG的4~9位中。
利用波特率采样时钟,对配置码进行接收时,把D1作为“伪起始位”,作为接收后面6位配置码数据的过渡位;
根据采样信号对接收数据的每个数据位进行中间采样,串行通信配置字节接收过程,包括边沿检测、时钟计数以及波特率采样时钟的时序关系如图4所示;
接收配置字节的后6位(D2~D7),在波特率时钟信号到来时进行中间采样,定义1个6位宽的寄存器,用于循环移位接收并暂存配置字节的后6位。对接收到的数据位个数进行计数,当计数位数小于6时,继续等待波特率时钟信号的到来,准备接收下一位的数据,当计数位数等于6时,数据位的接收完毕,进入停止位的接收;
通信双方两设备系统时钟若存在一定误差,比如接收方的时钟相对发送方偏快或偏慢,此时如果在靠近边沿处进行采样,易出现接收数据的错误,波特率采样时钟在每个接收位的中间位置,这样可以避免接收数据时由于发送设备与接收设备的波特率时钟不完全同步引起的接收数据误差。
如图3所示,从机完成配置码的接收后,将数据格式所对应的参数配置码写入串行参数存储寄存SERIAL_CONFIG的4~9位,建立完整数据传输链路,配置码对照关系如表2所示;
表2
应理解的,上述所述S103步骤的有益效果是可以减小误差,增加容错率。
作为一个或多个实施例,所述S104,具体步骤包括:
将串行通信参数存储寄存器SERIAL_CONFIG开放给接收、发送模块,其中串行通信参数存储寄存器SERIAL_CONFIG包含的信息有:波特率配置码,数据帧格式配置码,波特率配置码检测完成信号和数据帧格式配置码检测完成信号;所有配置码检测完毕后,根据配置码查找表获取配置参数,至此完成主从设备串行通信参数的匹配。
示例性的,所述S104,具体步骤包括:
从设备接收模块对串行通信参数存储寄存器SERIAL_CONFIG具有写入的权限,从设备串行通信收发模块以及波特率时钟产生模块对串行通信参数存储寄存器SERIAL_CONFIG具有读取的权限;
串行通信的波特率时钟产生模块读取串行通信参数存储寄存器SERIAL_CONFIG的低4位串行通信波特率配置码,获取波特率大小,利用时钟分频得到串行通信的波特率时钟;
串行通信的收发模块读取串行通信参数存储寄存器SERIAL_CONFIG的4~9位的数据帧格式配置码,得到串行通信的数据格式,用于数据收发的数据格式配置;
配置字节只会在主从设备建立连接时发送一次,在之后的通信中不进行重复检验,实施方法是:串行通信参数存储寄存器SERIAL_CONFIG的10、11位,用于标识串行通信配置是否完毕;
数据收发模块通过检测SERIAL_CONFIG的10、11位来判定串行通信参数是否已经配置完毕。
如果SERIAL_CONFIG为二进制“11”则表示串行通信波特率与数据格式后已经配置完毕,当检测到起始位的下降沿,则进行数据接收;
如果SERIAL_CONFIG为二进制“00”则表示串行通信波特率与数据格式未配置,当检测到起始位的下降沿,则进行串行通信配置参数字节的字节头部波特率同步码识别和数据帧格式配置码的接收。
配置寄存器SERIAL_CONFIG通信参数设定完成后,可供接收发模块以及其波特率时钟产生模块访问,来实现数据串行通信收发双方通信模式的统一,完成通信设备双方数据传输链路的建立;
从设备接收模块对串行通信参数存储寄存器SERIAL_CONFIG具有写入的权限,从设备串行通信收发模块以及波特率时钟产生模块对串行通信参数存储寄存器SERIAL_CONFIG具有读取的权限。
作为一个或多个实施例,所述方法还包括:
为检测通信连接是否成功建立并将连接完成信号传输回主设备,从设备将串行通信配置参数字节进行回传,若主设备接收到的配置字节与协定相同时,判断为主从设备连接建立完成并开始进行数据传输。
完善串行通信参数存储寄存器时有四种状态:空闲状态、波特率检测状态、接收数据帧格式参数、检测完成状态。串行通信配置参数字节中的字节头部波特率同步码和数据帧格式配置码的接收流程图如图8所示。
如图8所示,在空闲状态下不断进行下降沿检测,若检测到下降沿,读取串行通信参数存储寄存器SERIAL_CONFIG最高位(11位)中的值,判断当前串行通信参数是否完成配置,如果为0表示没有配置,则进行串行通信配置参数字节的接收,执行配置波特率的步骤。
如图7所示,若通信参数存储寄存器SERIAL_CONFIG最高位(11位)中的值为1,则表示串行通信参数接收完成,开始进行串行数据的接收或发送,如下步骤:
示例性的,所述S105具体步骤包括:
S601:存储在通信参数配置寄存器SERIAL_CONFIG中的低4位波特率信息将被波特率时钟产生模块读取,根据查找表获取波特率大小,利用此波特率为数据收发模块的波特率时钟产生模块产生波特率时钟;
S602:存储在通信参数配置寄存器SERIAL_CONFIG中的4~9位数据格式信息将被收发模块的接收控制器、发送控制器和移位寄存器调用,来完成数据接收以及发送过程中的数据格式的设定,从设备接收模块和发送模块的示意图如图6所示;
S603:接收数据共分为5个状态,根据接收采样信号进行各个状态之间的变换,按照顺序为:空闲状态、起始状态、接收数据位、校验状态、停止状态,每接收一个数据5个状态按照顺序循环一次,未接收数据时处于空闲状态,电平信号为高电平;
S604:接收采样信号到来当前状态即变为接收数据状态,接收数据需要根据串行通信参数存储寄存器SERIAL_CONFIG的第4位和第5位来判断要接收的数据位的长度,并且由接收控制器来控制要接收的数据长度,具体对照情况如表2所示;
S605:在接收控制器的控制下,利用移位寄存器来完成接收数据的串并转换,并将接收到的数据存储在移位寄存器中;
S606:接收控制器是接收模块与配置参数(数据格式)接收模块的控制核心,能够控制接收移位寄存器,对接收数据进行采样,接收数据的采样采取中间采样的方法,并实现接收数据的串并转化。按照参数配置寄存器的数据格式,确定数据接收部分以及其长度,并控制移位寄存器进行数据的串并转化与校验;
S607:在接收控制器的控制下,判断当前是否已经完成所有数据位的接收,如果数据未接收完成,则重复执行S606操作。如果已经完成所有数据位的接收,则根据通信参数存储寄存器SERIAL_CONFIG第6位来判断是否进入校验位的接收与校验操作。如果SERIAL_CONFIG的第6位为1,则在在接收控制器的控制下,进入校验位的接收操作S608,如果SERIAL_CONFIG的第6位为0,则进入S609的停止位接收操作。
S608:在接收控制器的控制下,进入到校验位接收状态并接收校验位,根据通信参数存储寄存器SERIAL_CONFIG第7位,来判断当前校验类型为奇校验或偶校验。如果为0,则为奇校验并进行奇校验;如果为1,则为偶校验并进行偶校验。将校验结果存储到校验结果存储寄存器。
S609:在接收控制器的控制下,进入停止状态接收停止位,根据串行通信参数存储寄存器SERIAL_CONFIG第8位和第9位来判断要接收的停止位的长度.如果为00,则停止位长度为1位;如果为01,则停止位长度为1.5位;如果为10,则停止位长度为2位,分别经过1位、1.5位或2位的时间进入空闲位,等待检测下一个起始位的到来。
S610:发送模块根据可发送脉冲信号控制发送数据的状态,一共有五种状态:空闲状态、起始状态、数据位发送状态、校验状态、停止位状态;其中空闲状态为高电平,起始状态为低电平,停止状态为高电平,其中起始状态与校验状态的维持时间长度固定为波特率分之一,发送状态与停止状态的维持时间需数据位长度与停止位长度决定;
S611:当发送到发送指令,当前状态由空闲状态进入发送模式的起始状态,发送数据需要根据串行通信参数存储寄存器SERIAL_CONFIG的第4位和第5位来判断要发送的数据位的长度,并且由发送控制器来控制要发送的数据长度;
S612:在发送控制器的控制下,读取存储在移位寄存器中的将要发送的数据,并完成发送数据的并串转换;
S613:发送控制器是发送模块与配置参数(数据格式)发送模块的控制核心,能够控制发送移位寄存器,并实现发送数据的并串转化。按照参数配置寄存器的数据格式,确定数据发送部分以及其长度,并添加起始位、校验位与停止位,起始位发送低电平信号,停止位发送高电平信号;
S614:在发送控制器的控制下,判断当前是否已经完成所有数据位的发送,如果数据未发送完成,则重复执行S613操作。如果已经完成所有数据位的发送,则根据通信参数存储寄存器SERIAL_CONFIG第6位来判断是否进入校验值运算与校验位的发送状态,具体对照情况如表2所示。如果SERIAL_CONFIG的第6位为1,则在在发送控制器的控制下,进入校验位的发送操作S615,如果SERIAL_CONFIG的第6位为0,则进入S616的停止位发送操作。
S615:在发送控制器的控制下,进入到进入校验值运算与校验位的发送状态,根据通信参数存储寄存器SERIAL_CONFIG第7位,来判断当前校验类型为奇校验或偶校验,具体对照情况如表2所示。如果SERIAL_CONFIG第7位为0则为奇校验,根据奇校验方式与数据位的值得到奇校验位;如果SERIAL_CONFIG第7位为0则为偶校验,根据偶校验方式与数据位的值得到偶校验位。并进行校验位的发送。
S616:在发送控制器的控制下,进入停止位状态发送停止位,根据串行通信参数存储寄存器SERIAL_CONFIG第8位和第9位来判断要发送的停止位的长度.具体对照情况如表2所示。如果为00,则停止位长度为1位;如果为01,则停止位长度为1.5位;如果为10,则停止位长度为2位,分别经过1位、1.5位或2位的时间进入空闲位,准备下一个数据的发送。
S617:接收方仅在第一次数据传输时进行串行通信参数配置,后续数据收发过程不再进行参数配置。若是更换串行通信设备或者接收到复位信号后,才会再次对配置数据包进行再次发送,建立串行通信链路。
本申请也可作为外部串行通信参数配置装置,连接两台主接收方,实现两台设备间的通信,比如:检测主设备的波特率,产生波特率时钟,并检测出主设备的串行通信参数,将波特率时钟以及串行通信参数供给接收方使用。
本申请优势在于避免了目前存在的串行通信参数无法自动配置的问题,简化了串行通信过程中的配置步骤,增加了不同设备之间进行异步串行通信的灵活性。
实施例二
本实施例提供了串行通信参数自动配置系统;
串行通信参数自动配置系统,包括:主设备与从设备;
主设备,在建立通信连接前,以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;
从设备,接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置。
此处需要说明的是,上述主设备和从设备的功能对应于实施例一中的步骤,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
所提出的系统,可以通过其他的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时,可以有另外的划分方式,例如多个模块可以结合或者可以集成到另外一个系统,或一些特征可以忽略,或不执行。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.串行通信参数自动配置方法,其特征是,包括:
在建立通信连接前,主设备以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;
从设备接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置。
2.如权利要求1所述的方法,其特征是,所述从设备接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置;包括:
从设备对接收的串行通信配置参数字节进行下降沿检测与波特率时钟计数,得出波特率,将波特率对应的配置码写入串行通信参数存储寄存器;
从设备利用波特率与系统时钟频率计算时钟分频因子,对系统时钟进行分频,得到串行通信波特率采样时钟信号;
从设备利用波特率采样时钟信号,对串行通信参数存储寄存器的配置码进行采样,获取数据帧格式的配置码,将数据帧格式的配置码写入串行通信参数存储寄存器;
从设备将串行通信参数存储寄存器通过数据总线开放给数据发送模块和数据接收模块,从设备读取配置参数并进行配置。
3.如权利要求1所述的方法,其特征是,串行通信配置参数字节,包括:字节头部波特率同步码和数据帧格式配置码。
4.如权利要求1所述的方法,其特征是,主设备以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;其中,串行通信配置参数字节的格式,包括:起始位、数据位D0、数据位D1、数据位D2、数据位D3、数据位D4、数据位D5、数据位D6、数据位D7和停止位;其中,数据位D0和数据位D1作为固定的头部波特率同步码,起始位为低电平脉冲,数据位D0为高电平脉冲,数据位D1为低电平脉冲,停止位为高电平脉冲;数据位D2到数据位D7为串行通信的数据帧格式配置码。
5.如权利要求2所述的方法,其特征是,从设备对接收的串行通信配置参数字节进行下降沿检测与波特率时钟计数,得出波特率,将波特率对应的配置码写入串行通信参数存储寄存器;具体包括:
从设备对接收信号进行下降沿检测与波特率时钟计数;所述波特率时钟计数的计数范围为前两个下降沿之间的时间长度,根据波特率时钟计数范围查找表得出波特率,将波特率对应的配置码写入串行通信参数存储寄存器。
6.如权利要求2所述的方法,其特征是,从设备利用波特率与系统时钟频率计算时钟分频因子,对系统时钟进行分频,得到串行通信波特率采样时钟信号;具体步骤包括:
利用时钟分频因子与波特率和系统时钟频率的关系计算时钟分频因子,对系统时钟进行分频,得到在当前波特率下接收一个比特对应的系统时钟长度,波特率时钟产生模块以此产生串行通信波特率采样时钟信号。
7.如权利要求2所述的方法,其特征是,从设备利用波特率采样时钟信号,对串行通信参数存储寄存器的配置码进行采样,获取数据帧格式的配置码,将数据帧格式的配置码写入串行通信参数存储寄存器;具体步骤包括:
从设备接收6位数据帧格式配置码,使用中间采样的方法,利用波特率采样时钟,对每个数据位的中间点进行定位采样,获取数据帧格式配置码,并将其存储于串行通信参数存储寄存器SERIAL_CONFIG当中。
8.如权利要求2所述的方法,其特征是,所述从设备将串行通信参数存储寄存器通过数据总线开放给数据发送模块和数据接收模块,从设备读取配置参数并进行配置,具体步骤包括:
将串行通信参数存储寄存器SERIAL_CONFIG开放给接收、发送模块,其中串行通信参数存储寄存器SERIAL_CONFIG包含的信息有:波特率配置码,数据帧格式配置码,波特率配置码检测完成信号和数据帧格式配置码检测完成信号;所有配置码检测完毕后,根据配置码查找表获取配置参数,至此完成主从设备串行通信参数的匹配。
9.如权利要求2所述的方法,其特征是,所述方法还包括:
为检测通信连接是否成功建立并将连接完成信号传输回主设备,从设备将串行通信配置参数字节进行回传,若主设备接收到的配置字节与协定相同时,判断为主从设备连接建立完成并开始进行数据传输。
10.串行通信参数自动配置系统,其特征是,包括:主设备与从设备;
主设备,在建立通信连接前,以自身串行通信波特率为依据,设置串行通信配置参数字节的格式,发送串行通信配置参数字节给从设备;
从设备,接收并对串行通信配置参数字节波特率同步码和数据帧格式配置码进行识别和检测,从而得到主设备波特率信息和数据格式配置参数信息;从设备读取配置参数并进行配置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010603198.8A CN111737182B (zh) | 2020-06-29 | 2020-06-29 | 串行通信参数自动配置方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010603198.8A CN111737182B (zh) | 2020-06-29 | 2020-06-29 | 串行通信参数自动配置方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111737182A true CN111737182A (zh) | 2020-10-02 |
CN111737182B CN111737182B (zh) | 2022-04-15 |
Family
ID=72651703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010603198.8A Active CN111737182B (zh) | 2020-06-29 | 2020-06-29 | 串行通信参数自动配置方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111737182B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511334A (zh) * | 2020-10-13 | 2021-03-16 | 博流智能科技(南京)有限公司 | 提高通信速率的方法及系统 |
CN113032320A (zh) * | 2021-04-09 | 2021-06-25 | 山东大学 | 一种异步串口通信波特率自适应方法 |
CN114006688A (zh) * | 2021-10-29 | 2022-02-01 | 北京中科昊芯科技有限公司 | 一种基于lin协议的波特率更新的方法、装置、设备和介质 |
CN114095300A (zh) * | 2021-11-10 | 2022-02-25 | 天津兆讯电子技术有限公司 | 自适应速率的数据读写方法及设备 |
CN114389911A (zh) * | 2022-01-13 | 2022-04-22 | 上海步科自动化股份有限公司 | 一种参数设置的方法、装置、终端及存储介质 |
CN114510446A (zh) * | 2022-01-05 | 2022-05-17 | 浙江科睿微电子技术有限公司 | 串口波特率自适应方法、装置、设备及介质 |
CN115733706A (zh) * | 2021-08-31 | 2023-03-03 | 宸芯科技有限公司 | 一种数据传输方法、装置、射频串行接口及存储介质 |
CN117155782A (zh) * | 2023-09-15 | 2023-12-01 | 江苏舒茨测控设备股份有限公司 | 一种自动解析通信参数的方法 |
CN117424947A (zh) * | 2023-12-19 | 2024-01-19 | 无锡梵克罗电气设计有限公司 | 骑行设备系统 |
CN117155782B (zh) * | 2023-09-15 | 2024-06-07 | 江苏舒茨测控设备股份有限公司 | 一种自动解析通信参数的方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1392706A (zh) * | 2002-08-13 | 2003-01-22 | 北京长城鼎兴网络通信技术有限公司 | 一种利用串行总线实现多点通信的方法 |
CN101132217A (zh) * | 2007-08-02 | 2008-02-27 | 重庆重邮信科(集团)股份有限公司 | 采用at指令实现直放站内部信息交互的方法及装置 |
CN103001734A (zh) * | 2012-10-17 | 2013-03-27 | 海军工程大学 | 一种基于电平采样的异步串口通信协议自动侦测方法 |
CN104714920A (zh) * | 2015-02-13 | 2015-06-17 | 暨南大学 | 一种自适应波特率的信号接收方法 |
CN110908940A (zh) * | 2019-10-14 | 2020-03-24 | 百富计算机技术(深圳)有限公司 | 串口通讯参数调整的方法及终端设备 |
-
2020
- 2020-06-29 CN CN202010603198.8A patent/CN111737182B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1392706A (zh) * | 2002-08-13 | 2003-01-22 | 北京长城鼎兴网络通信技术有限公司 | 一种利用串行总线实现多点通信的方法 |
CN101132217A (zh) * | 2007-08-02 | 2008-02-27 | 重庆重邮信科(集团)股份有限公司 | 采用at指令实现直放站内部信息交互的方法及装置 |
CN103001734A (zh) * | 2012-10-17 | 2013-03-27 | 海军工程大学 | 一种基于电平采样的异步串口通信协议自动侦测方法 |
CN104714920A (zh) * | 2015-02-13 | 2015-06-17 | 暨南大学 | 一种自适应波特率的信号接收方法 |
CN110908940A (zh) * | 2019-10-14 | 2020-03-24 | 百富计算机技术(深圳)有限公司 | 串口通讯参数调整的方法及终端设备 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511334A (zh) * | 2020-10-13 | 2021-03-16 | 博流智能科技(南京)有限公司 | 提高通信速率的方法及系统 |
CN112511334B (zh) * | 2020-10-13 | 2024-05-07 | 博流智能科技(南京)有限公司 | 提高通信速率的方法及系统 |
CN113032320B (zh) * | 2021-04-09 | 2022-10-18 | 山东大学 | 一种异步串口通信波特率自适应方法 |
CN113032320A (zh) * | 2021-04-09 | 2021-06-25 | 山东大学 | 一种异步串口通信波特率自适应方法 |
CN115733706A (zh) * | 2021-08-31 | 2023-03-03 | 宸芯科技有限公司 | 一种数据传输方法、装置、射频串行接口及存储介质 |
CN114006688A (zh) * | 2021-10-29 | 2022-02-01 | 北京中科昊芯科技有限公司 | 一种基于lin协议的波特率更新的方法、装置、设备和介质 |
CN114095300A (zh) * | 2021-11-10 | 2022-02-25 | 天津兆讯电子技术有限公司 | 自适应速率的数据读写方法及设备 |
CN114510446A (zh) * | 2022-01-05 | 2022-05-17 | 浙江科睿微电子技术有限公司 | 串口波特率自适应方法、装置、设备及介质 |
CN114389911A (zh) * | 2022-01-13 | 2022-04-22 | 上海步科自动化股份有限公司 | 一种参数设置的方法、装置、终端及存储介质 |
CN117155782A (zh) * | 2023-09-15 | 2023-12-01 | 江苏舒茨测控设备股份有限公司 | 一种自动解析通信参数的方法 |
CN117155782B (zh) * | 2023-09-15 | 2024-06-07 | 江苏舒茨测控设备股份有限公司 | 一种自动解析通信参数的方法 |
CN117424947A (zh) * | 2023-12-19 | 2024-01-19 | 无锡梵克罗电气设计有限公司 | 骑行设备系统 |
CN117424947B (zh) * | 2023-12-19 | 2024-03-12 | 无锡梵克罗电气设计有限公司 | 骑行设备系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111737182B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111737182B (zh) | 串行通信参数自动配置方法及系统 | |
CN106528478B (zh) | 一种单总线异步串口通信系统及其通信方法 | |
CN111800249A (zh) | 串行通信波特率误差容忍范围提升方法及系统 | |
CN112187789B (zh) | 一种数据链路协议转换系统 | |
CN111177060B (zh) | 串口数据发送方法、接收方法、相应装置及终端设备 | |
CN102136968B (zh) | 测量报文在以太交换设备中的延时的方法及以太交换设备 | |
US5579299A (en) | Communications network, a dual mode data transfer system therefor | |
US20090077344A1 (en) | Method for bus testing and addressing in mass memory components | |
CN113259205B (zh) | 一种多板卡系统内部互联接口测试方法及系统 | |
CN113934667A (zh) | 一种基于fpga逻辑资源延时的过采样异步通信方法 | |
CN113220607A (zh) | 一种基于fifo的数据处理方法 | |
CN101039323B (zh) | 多速率多协议比特流处理器 | |
CN105354157A (zh) | 配置iic器件的方法、装置和系统 | |
US8510485B2 (en) | Low power digital interface | |
CN114884627B (zh) | 一种波特率同步方法 | |
CN115904844A (zh) | 一种用于打印boot信息的uart仿真模型及其工作方法 | |
CN114301991B (zh) | 通信方法、设备、系统及计算机可读存储介质 | |
CN210955040U (zh) | 用于机器人控制器的可扩展的io模块组件 | |
JPS60241150A (ja) | デ−タ転送装置 | |
CN101888715A (zh) | 具有usb通信和自定位功能的无线电基站及通信方法 | |
CN113074595A (zh) | 电子雷管的数据写入方法及系统、电子雷管、起爆器 | |
CN116684389B (zh) | 地址自动分配方法及具有其的主机、从机和通信设备 | |
CN201042016Y (zh) | 多速率多协议比特流处理器 | |
US20240126629A1 (en) | Semiconductor device and serial communication interface control method | |
CN110377549B (zh) | 基于fpga的异步串行数据交换系统及方法 |
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 |