CN102938744B - 一种通用串行收发器的实现方法 - Google Patents
一种通用串行收发器的实现方法 Download PDFInfo
- Publication number
- CN102938744B CN102938744B CN201210376314.2A CN201210376314A CN102938744B CN 102938744 B CN102938744 B CN 102938744B CN 201210376314 A CN201210376314 A CN 201210376314A CN 102938744 B CN102938744 B CN 102938744B
- Authority
- CN
- China
- Prior art keywords
- bit
- data
- pulse sequence
- baud rate
- pilot pulse
- 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.)
- Active
Links
Landscapes
- Communication Control (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
- Dc Digital Transmission (AREA)
Abstract
本发明提供了一种通用串行收发器的实现方法,通过接收引导脉冲序列来确定发送端的波特率,该引导脉冲序列的数据位总宽度必须大于16*M,该引导脉冲序列相邻两位宽度之差(第N位与第N-1位,1≤N≤M)不能超过第N-1位位宽的x%(x值可配置),若超过则需重新接收引导脉冲序列以自动匹配连接;接收数据序列累计位宽误差不能超过标准位宽的y%(y可配置)。本发明既提高串行通讯的抗干扰能力,又具有普适应。该通用串行收发器结合一定的通信协议控制器即可组成相应的串行通讯接口,如调试接口、异步串行通讯接口等,达到灵活、高可靠性效果,具有广泛的应用前景。
Description
技术领域
本发明属于数据通信领域,特别涉及一种通用串行收发器的实现方法。
背景技术
在某些通信过程中,输入数据的波特率并不能直接获取,故需接收方根据接收数据的特点来确定数据传输的波特率。现今多采用自适应波特率检测的基本原理为:N表示串行线路上某一下降沿,P表示紧接着下降沿N的上升沿,T表示N和P之间的时间间隔,等于若干个数据位周期。采样周期计数器在下降沿N处从0开始计数,在上升沿P处停止计数,该数值表示串行数据出现一个低电平的时钟周期,等于若干个数据位周期。然后将该计数值和保持寄存器中存储的数值进行比较。若计数值小于保持寄存器中的数值,则该计数值替换保持寄存器中的数值。在设定的检测时间内,不断重复上面的比较过程。最终,采样获得保持寄存器中存储的最小计数值即为波特率系数。在上述设计中,若低电平的最小宽度与标准位宽超差过大,则由该方法所获得的波特率系数存在较大误差,可能无法正常实现通信。
发明内容
为了克服现有技术的不足,本发明提供一种通用串行收发器的实现方法,在确保串行收发器通用性的同时,又很好地提高其抗干扰能力。
本发明解决其技术问题所采用的技术方案包括以下步骤:
(1)判定串行收发器为自适应波特率模式或设置波特模式,若为设置波特率模式,则进入步骤(8),若为自适应波特率模式,则进入步骤(2);
(2)接收引导脉冲序列的起始位,启动计数器得到起始位宽度T0;
(3)接收引导脉冲序列的第N位数据位,启动计数器计算第N位数据位宽度,在计数过程中每隔1个采样周期,判定当前计数值T-TN-1是否超过上一个数据位的计数值TN-1的x%,x为根据需要配置的阈值,若超过则回到步骤(1),否则继续计数过程;
(4)计数结束后得到第N位数据位宽度TN,判定在TN-1-TN是否超过TN-1的x%,若超过则回到步骤(1);
(5)若N<M,则回到步骤(2)继续循环直至N=M后进入步骤(6),M为引导脉冲序列的数据位数;
(6)判定M位数据位的总宽度W是否小于16*M,若小于则回到步骤(1),否则进入步骤(7);
(7)计算自适应的波特率Baud=W/M;
(8)接收数据序列,对数据序列的每一位数据位采样三次,第2次采样位置为标准位宽TS的y%,y为根据需要配置的阈值,第1、3次采样位置与第2次采样位置之间间隔G个采样时钟,G为根据需要配置的阈值,取其中两次相同的采样值作为接收数据。
本发明的有益效果是:既提高串行通讯的抗干扰能力,又具有普适应。该通用串行收发器结合一定的通信协议控制器即可组成相应的串行通讯接口,如调试接口、异步串行通讯接口等,达到灵活、高可靠性效果,具有广泛的应用前景。
附图说明
图1是本发明实施例的实现流程图。
具体实施方式
一种通用串行收发器的实现方法,其特征在于可通过接收引导脉冲序列来确定发送端的波特率,该引导脉冲序列的数据位总宽度必须大于16*M,该引导脉冲序列相邻两位宽度之差(第N位与第N-1位,1≤N≤M)不能超过第N-1位位宽的x%(x值可配置),若超过则需重新接收引导脉冲序列以自动匹配连接;接收数据序列累计位宽误差不能超过标准位宽的y%(y可配置)。该设计包括:
(1)判定串行收发器为自适应波特率模式或设置波特模式,若为设置波特率模式,则进入步骤(8),若为自适应波特率模式,则进入步骤(2);
(2)接收引导脉冲序列的起始位,该序列的起始位(第0位)、数据位(第1位~第M位)、停止位(第M+1位)每一位相对前一位均有电平变化,启动计数器得到起始位宽度T0;
(3)接收引导脉冲序列的第N位数据位,启动计数器计算第N位数据位宽度,在计数过程中每隔1个采样周期,判定当前计数值T-TN-1是否超TN-1的x%(x值可配置),若超过则回到步骤(1),否则继续计数过程;
(4)计数结束后得到第N位数据位宽度TN,判定在TN-1-TN是否超过TN-1的x%,若超过则回到步骤(1);
(5)若N<M,则回到步骤(2)继续循环直至N=M后进入步骤(6);
(6)判定M位数据位的总宽度W是否小于16*M,若小于则回到步骤(1),否则进入步骤(7);
(7)通过公式Baud=W/M计算得到自适应的波特率;
(8)接收数据序列,对序列的每一位数据位采样三次,第2次采样位置为标准位宽TS的y%(y可配置),第1、3次采样位置与第2次采样位置之间间隔G个采样时钟(G可配置),取其中两次相同的采样值作为接收数据。
上述通用串行收发器波特率寄存器包含波特率模式位、波特率分频因子位FreqMpy。该串行收发器具备自适应和设置波特率两种模式。若采用波特率设置模式,则通讯双方需按系统约定的波特率进行设置(FreqMpy=fsampling/Baud,fsampling为串行收发器采样频率)。
本发明可通过接收引导脉冲序列来确定发送端的波特率,该引导脉冲序列的数据位总宽度必须大于16*M,该引导脉冲序列相邻两位宽度之差(第N位与第N-1位,1≤N≤M)不能超过第N-1位位宽的x%(x值可配置),若超过则需重新接收引导脉冲序列以自动匹配连接。
本发明接收数据序列累计位宽误差不能超过标准位宽的y%(y可配置)。
下面结合附图和实施例对本发明进一步说明。
一种通用串行收发器的实现方法,如图1所示,具体包含以下步骤:
(1)判定串行收发器为自适应波特率模式或设置波特模式,若为设置波特率模式,则进入步骤(8),若为自适应波特率模式,则进入步骤(2);
(2)接收引导脉冲序列(0X″55″)的起始位,该序列包含起始位(第0位:高电平)、数据位(第1位~第8位:低、高电平相间)、停止位(第9位:低电平),启动计数器得到起始位宽度T0;
(3)接收引导脉冲序列的第N位数据位,启动计数器计算第N位数据位宽度,在计数过程中每隔1个采样周期,判定当前计数值T-TN-1是否超TN-1的12.5%,若超过则回到步骤(1),否则继续计数过程;
(4)计数结束后得到第N位数据位宽度TN,判定在TN-1-TN是否超过TN-1的12.5%,若超过则回到步骤(1);
(5)若N<8,则回到步骤(2)继续循环直至N=8后进入步骤(6);
(6)判定8位数据位的总宽度W是否小于0X″80″,若小于则回到步骤(1),否则进入步骤(7);
(7)通过公式Baud=W/8计算得到自适应的波特率;
(8)接收数据序列,对序列的每一位数据位采样三次,第2次采样位置为标准位宽TS的50%,第1、3次采样位置与第2次采样位置之间间隔1个时钟,取其中两次相同的采样值作为接收数据。
以上实施例可实现:该引导脉冲序列(0X″55″)的数据位总宽度必须大于0X″80″,该引导脉冲序列相邻两位宽度之差(第N位与第N-1位,1≤N≤8)不能超过第N-1位位宽的12.5%,若超过则需重新接收引导脉冲序列以自动匹配连接;接收数据序列累计位宽误差不能超过标准位宽的50%。
Claims (1)
1.一种通用串行收发器的实现方法,其特征在于包括下述步骤:
(1)判定串行收发器为自适应波特率模式或设置波特率模式,若为设置波特率模式,则进入步骤(8),若为自适应波特率模式,则进入步骤(2);
(2)接收引导脉冲序列的起始位,启动计数器得到起始位宽度T0;
(3)接收引导脉冲序列的第N位数据位,启动计数器计算第N位数据位宽度,在计数过程中每隔1个采样周期,判定当前计数值T-TN-1是否超过上一个数据位的计数值TN-1的x%,x为根据需要配置的阈值,若超过则回到步骤(1),否则继续计数过程;
(4)计数结束后得到第N位数据位宽度TN,判定TN-TN-1是否超过TN-1的x%,若超过则回到步骤(1);
(5)若N<M,则回到步骤(2)继续循环直至N=M后进入步骤(6),M为引导脉冲序列的数据位数;
(6)判定M位数据位的总宽度W是否小于16*M,若小于则回到步骤(1),否则进入步骤(7);
(7)计算自适应的波特率Baud=W/M;
(8)接收数据序列,对数据序列的每一位数据位采样三次,第2次采样位置为标准位宽TS的y%,y为根据需要配置的阈值,第1、3次采样位置与第2次采样位置之间间隔G个采样时钟,G为根据需要配置的阈值,取其中两次相同的采样值作为接收数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210376314.2A CN102938744B (zh) | 2012-10-08 | 2012-10-08 | 一种通用串行收发器的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210376314.2A CN102938744B (zh) | 2012-10-08 | 2012-10-08 | 一种通用串行收发器的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102938744A CN102938744A (zh) | 2013-02-20 |
CN102938744B true CN102938744B (zh) | 2015-09-23 |
Family
ID=47697614
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210376314.2A Active CN102938744B (zh) | 2012-10-08 | 2012-10-08 | 一种通用串行收发器的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102938744B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103973533B (zh) * | 2014-05-22 | 2017-06-20 | 哈尔滨理工大学 | 隔离型rs485/rs422中继隔离器的波特率识别方法及数据流控制方法 |
CN104144137B (zh) * | 2014-08-12 | 2017-08-29 | 北京控制与电子技术研究所 | 一种高速lvds串行同步通讯控制器 |
CN105978413B (zh) * | 2016-07-05 | 2018-09-11 | 中车株洲电力机车研究所有限公司 | 一种脉冲序列的串行传输方法、装置和永磁传动系统 |
WO2018072091A1 (zh) * | 2016-10-18 | 2018-04-26 | 深圳配天智能技术研究院有限公司 | 一种数据处理方法及基站设备 |
CN106941399B (zh) * | 2017-03-15 | 2020-04-24 | 广州致远电子有限公司 | 一种双速率can fd的波特率测量方法及装置 |
CN112559412B (zh) * | 2021-03-01 | 2021-06-08 | 上海灵动微电子股份有限公司 | 一种串口波特率自适应接收端、实现方法、系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020040984A (ko) * | 2000-11-25 | 2002-05-31 | 구자홍 | 데이터 송수신시 보율 감지 장치 및 그 방법 |
CN101082953A (zh) * | 2006-05-29 | 2007-12-05 | 北京同方微电子有限公司 | 非接触式ic卡和读写器之间波特率自适应方法及其装置 |
CN101551786A (zh) * | 2009-05-05 | 2009-10-07 | 大连理工大学 | 波特率自适应串行通信中继器的制作方法 |
CN101604161A (zh) * | 2009-04-17 | 2009-12-16 | 北京铱钵隆芯科技有限责任公司 | 位同步解码方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100525548B1 (ko) * | 2000-12-29 | 2005-10-31 | 엘지전자 주식회사 | 범용 비동기화 송수신기의 전송률 검출회로 |
-
2012
- 2012-10-08 CN CN201210376314.2A patent/CN102938744B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020040984A (ko) * | 2000-11-25 | 2002-05-31 | 구자홍 | 데이터 송수신시 보율 감지 장치 및 그 방법 |
CN101082953A (zh) * | 2006-05-29 | 2007-12-05 | 北京同方微电子有限公司 | 非接触式ic卡和读写器之间波特率自适应方法及其装置 |
CN101604161A (zh) * | 2009-04-17 | 2009-12-16 | 北京铱钵隆芯科技有限责任公司 | 位同步解码方法 |
CN101551786A (zh) * | 2009-05-05 | 2009-10-07 | 大连理工大学 | 波特率自适应串行通信中继器的制作方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102938744A (zh) | 2013-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102938744B (zh) | 一种通用串行收发器的实现方法 | |
Fang et al. | Design and simulation of UART serial communication module based on VHDL | |
CN105790754B (zh) | 一种数字隔离电路及其控制方法 | |
CN103684678A (zh) | 一种用于uart的波特率自适应方法、装置及uart | |
CN108965082A (zh) | 低功率数据总线接收器 | |
KR20170040304A (ko) | 임베딩된 클록을 갖는 직교 차동 벡터 시그널링 코드 | |
CN109075742B (zh) | 波特率校准电路及串口芯片 | |
CN101431390B (zh) | 一种数据串行传输的电路和方法 | |
US9203665B1 (en) | Resource optimization by implementing multiple instances of a soft modem with a single microcontroller | |
KR20160140847A (ko) | 집적회로간 (i2c) 버스상에서 인-밴드로 여분의 정보를 전송하는 방법들 | |
CN103916284A (zh) | Rs485通讯端口自动波特率和通讯地址检测方法 | |
EP3512170B1 (en) | Circuit structure for efficiently demodulating fsk signal in wireless charging device | |
CN105959093B (zh) | 一种串行通信波特率实时自适应方法 | |
CN102546084B (zh) | 异步串行通信数据接收时的抗干扰纠错采样系统和方法 | |
US9087158B2 (en) | Explicit control message signaling | |
CN102611447A (zh) | 一种基于fpga的加噪信号同步时钟提取装置 | |
CN107454028B (zh) | 基于FPGA的LiFi信号解调方法及解调器 | |
CN101719858B (zh) | Can控制器的位时序的同步处理方法 | |
CN212969687U (zh) | 异步串口通信波特率自动检测装置 | |
CN103427945A (zh) | 同步串行通信接口的通信方法及该同步串行通信接口 | |
CN109995347A (zh) | 信号隔离电路 | |
CN116015324A (zh) | 一种强化抗干扰的uart数据接收装置及其接收方法 | |
CN204697106U (zh) | 一种ofdm电力线载波和gfsk无线双模通信芯片 | |
CN112422256B (zh) | 数字时钟和数据恢复的快速初始相位搜索的装置和方法 | |
CN116633813A (zh) | 一种can总线的波特率自适应检测方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |