CN110297794B - 数据通信系统及方法 - Google Patents
数据通信系统及方法 Download PDFInfo
- Publication number
- CN110297794B CN110297794B CN201810247857.1A CN201810247857A CN110297794B CN 110297794 B CN110297794 B CN 110297794B CN 201810247857 A CN201810247857 A CN 201810247857A CN 110297794 B CN110297794 B CN 110297794B
- Authority
- CN
- China
- Prior art keywords
- signal
- counting
- data
- scl
- preset value
- 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
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
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/3625—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0016—Inter-integrated circuit (I2C)
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)
- Dc Digital Transmission (AREA)
Abstract
一种数据通信系统,包括一通信设备及一可编程逻辑器件,所述可编程逻辑器件与所述通信设备之间建立通信连接,所述可编程逻辑器件包括一信号采集单元、一计数单元及一比较单元,信号采集单元实时地采集所述通信设备的集成电路总线的SDA信号及SCL信号,计数单元在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行计数,以得到一计数值,比较单元将所述SDA信号在所述SCL信号的一个时钟周期内的计数值与一第一预设值进行比较,并根据比较结果输出对应的解码数据。本发明还提供一种数据通信方法。如此可以对因信号完整性失效等原因产生的误码进行自动纠错,得到真实的解码数据,提高了数据传输的稳定性。
Description
技术领域
本发明涉及一种数据通信系统及方法。
背景技术
集成电路总线(Inter-Integrated Circuit,I2C)通信在服务器应用上越来越广泛。然而,I2C总线数据传输有着严格统一的时序要求,I2C设备需要遵循这些时序要求来传输数据。有些I2C设备在数据传输时并不满足时序要求,如此将会造成数据误传。
发明内容
鉴于上述内容,有必要提供一种数据通信系统。
一种数据通信方法,所述方法包括步骤:
获取通信设备的集成电路总线的SDA信号及SCL信号;
在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行多次采样并计数;及
将所述SDA信号在所述SCL信号的一个时钟周期内的计数值与一第一预设值进行比较,并根据比较结果输出对应的解码数据。
进一步地,在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行计数的具体步骤包括:
在所述SCL信号为上升沿时开始对所述SDA信号的有效数据进行采样计数,并在所述SCL信号变为低电平时停止计数。
进一步地,在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行采样计数的具体步骤还包括:
根据实际误码情形预先设定一第一和一第二预设值,并在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据采样N次并计数,其中N为正整数;及
判断所述SDA信号是否为高电平,以根据判断结果在所述第二预设值及上次计数值的基础上依次进行加减计数。
进一步地,所述方法还包括:
当所述计数值小于所述第一预设值,输出解码数据为0;及
当所述计数值大于或等于所述第一预设值,输出解码数据为1。
进一步地,所述方法还包括:
所述第一预设值及所述第二预设值均可根据实际需要对应调整取值大小。
一种数据通信系统,包括一通信设备及一可编程逻辑器件,所述可编程逻辑器件与所述通信设备之间建立通信连接,所述可编程逻辑器件包括:
一信号采集单元,用于实时地采集所述通信设备的集成电路总线的SDA信号及SCL信号;
一计数单元,用于在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行采样并计数,以得到一计数值;及
一比较单元,用于将所述SDA信号在所述SCL信号的一个时钟周期内的计数值与一第一预设值进行比较,并根据比较结果输出对应的解码数据。
进一步地,所述计数单元用于在所述SCL信号为上升沿时开始对所述SDA信号的有效数据进行计数,并在所述SCL信号变为低电平时停止计数。
进一步地,所述计数单元设定一第二预设值,并在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据采样N次并计数,其中N为正整数;所述计数单元还用于判断所述SDA信号是否为高电平,以根据判断结果在所述第二预设值及上次计数值的基础上依次进行加减计数。
进一步地,当所述计数单元的计数值小于所述第一预设值,所述比较单元输出解码数据为0。
进一步地,当所述计数单元的计数值大于或等于所述第一预设值,所述比较单元输出解码数据为1。
相较于现有技术,上述数据通信系统及方法中,通过所述计数单元可得到所述SDA信号的有效数据在所述SCL的一个时钟周期内的计数值,并通过所述比较单元得到解码数据,并通过所述计数单元及所述比较单元对所述SDA信号的有效数据进行及时修复,如此可以得到真实的解码数据,保证了数据传输的稳定性。
附图说明
图1是数据通信系统在一较佳实施例中的示意图。
图2是图1中可编程逻辑器件的示意图。
图3是数据通信方法的步骤流程图。
主要元件符号说明
数据通信系统 100
可编程逻辑器件 10
信号采集单元 12
计数单元 14
比较单元 16
通信设备 20
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
为了使本发明的目的、技术方案及优点能更加清楚明白,以下将会结合附图及实施方式,以对本发明中的数据通信系统及方法作进一步详细的描述及相关说明。
请参考图1及图2,在本发明一较佳实施方式中,一种数据通信系统100包括一可编程逻辑器件(Complex Programmable Logic Device,CPLD)10及一通信设备20,所述可编程逻辑器件10与所述通信设备20之间建立通信连接以进行数据传输。在一具体实施方式中,所述通信设备20为一中央处理单元(Central Processing Unit,CPU)。
在一较佳实施方式中,所述可编程逻辑器件10包括一信号采集单元12、一计数单元14及一比较单元16。
在一较佳实施方式中,所述信号采集单元12用于实时地采集所述通信设备20的I2C总线的SDA信号及SCL信号,并将所述采集到的SDA信号及SCL信号实时地传输至所述计数单元14。
在一较佳实施方式中,所述计数单元14用于获取所述信号采集单元12所传输的SDA信号及SCL信号。
所述计数单元14还用于在所述SCL信号的一个时钟周期内对所述SDA的有效数据进行计数,并将得到的计数值传送至所述比较单元16。
具体而言,所述计数单元14在所述SCL信号为上升沿时开始对所述SDA信号的有效数据进行计数,并在所述SCL信号变为低电平(如0)时停止计数,如此即可在所述SCL信号的一个时钟周期内得到所述SDA的有效数据的计数值。
其中,所述计数单元14在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据的计数方法为:
所述计数单元14预先设定一第一预设值(如50),并在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据计数N次。其中N为正整数,在本实施方式中,N取值为50。
所述计数单元14多次判断所述SDA信号是否为高电平(如1),以根据判断结果在所述第一预设值的基础上依次进行加减计数。
例如,当所述计数单元14在第1次计数时判断到所述SDA信号为高电平时,所述计数单元14将对第一预设值加1,即50+1=51。当所述计数单元在第2次计数时判断到所述SDA信号为高电平时,所述计数单元14将对第1次后的计数值加1,即51+1=52。当所述计数单元在第3次计数时判断到所述SDA信号为低电平时,所述计数单元14将对第2次后的计数值减1,即52-1=51。以此类推,直到所述计数单元14在第50次计数时判断到所述SDA信号的电平状态,并根据上述计数方式得到第50次后的计数值。
以此类推,所述计数单元14可在所述SCL信号的多个时钟周期内对所述SDA信号的有效数据进行计数。
在一较佳实施方式中,所述比较单元16用于将所述计数单元14所传送的计数值与一第二预设值进行比较,并根据比较结果输出对应的解码数据。在本实施方式中,所述第二预设值的取值为70。
具体而言,当所述计数单元14所传送的计数值小于所述第二预设值,所述比较单元16输出的解码数据为0,即可得出所述SDA信号在所述SCL的一个时钟周期内的传输的有效数据为0。当所述计数单元14所传送的计数值大于或等于所述第二预设值,所述比较单元16输出的解码数据为1,即可得出所述SDA信号在所述SCL的一个时钟周期内的传输的有效数据为1。
其中,所述第一预设值及所述第二预设值均可根据实际需要对应调整取值大小。
通过所述计数单元14在所述SCL的一个时钟周期内对SDA信号的有效数据进行多次计数,并根据所述SDA信号的电平状态以在所述第一预设值的基础上进行加减计数。即可得到所述SDA信号的有效数据在所述SCL的一个时钟周期内的计数值,并将所述计数值与第二预设值进行比较以得到解码数据。如此可知,所述解码数据即为所述通信设备20在SCL信号的一个时钟周期内所传输的真实数据。
请参考图3,所述数据通信方法包括以下步骤:
步骤S100,所述信号采集单元12实时地采集所述通信设备20的I2C总线的SDA信号及SCL信号,并将所述采集到的SDA信号及SCL信号实时地传输至所述计数单元14。
步骤S102,所述计数单元14侦测所述SCL信号是否为上升沿。若是,则进入步骤S104,否则进入返回步骤S100。
步骤S104,所述计数单元14设定一第一预设值(如50),所述第一预设值可以根据实际需要而对应调整。
步骤S106,所述SCL信号为上升沿,启动所述计数单元14。
步骤S108,所述计数单元14判断所述SDA信号是否为高电平(如1)。若是,则进入步骤S110,否则进入步骤S112。
步骤S110,所述计数单元14在所述第一预设值的基础及上次计数值的基础上加1。
例如,当所述计数单元14在第1次计数时判断到所述SDA信号为高电平时,所述计数单元14将对第一预设值加1,即50+1=51。当所述计数单元在第2次计数时判断到所述SDA信号为高电平时,所述计数单元14将对第1次后的计数值加1,即51+1=52。
步骤S112,所述计数单元14在所述第一预设值的基础及上次计数值的基础上减1。
例如,当所述计数单元在第1次计数时判断到所述SDA信号为低电平时,所述计数单元14将在第一预设值的基础上减1,即50-1=49。当所述计数单元在第2次计数时判断到所述SDA信号为低电平时,所述计数单元14将对第1次后的计数值减1,即49-1=48。
步骤S114,所述计数单元14判断所述SCL信号是否为高电平。若是,则返回步骤S108,否则进入步骤S116。
步骤S116,所述比较单元16获取所述计数单元14的计数值,并判断所获取的计数值是否大于或等于一第二预设值。若是,则进入步骤S118,否则进入步骤S120。
步骤S118,所述比较单元16输出解码数据为1,即可得出所述SDA信号在所述SCL的一个时钟周期内的传输的有效数据为1。
步骤S120,所述比较单元16输出解码数据为0,即可得出所述SDA信号在所述SCL的一个时钟周期内的传输的有效数据为0。
例如,所述计数单元14在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据计数N次。其中N为正整数,在本实施方式中,N取值为50。
如此,通过上述数据通信系统及方法,通过所述计数单元14在所述SCL的一个时钟周期内对SDA信号的有效数据进行多次计数,并根据所述SDA信号的电平状态以在所述第一预设值的基础上进行加减计数。即可得到所述SDA信号的有效数据在所述SCL的一个时钟周期内的计数值,并将所述计数值与第二预设值进行比较以得到解码数据。如此可知,所述解码数据即为所述通信设备20在SCL信号的一个时钟周期内所传输的真实数据。
如此,当所述SDA信号发生失真情况时,可通过所述计数单元14及所述比较单元16以对所述SDA信号的有效数据进行及时修复,以得到真实的解码数据,保证了数据传输的稳定性。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明。
本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。并且,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都将属于本发明保护的范围。
Claims (10)
1.一种数据通信方法,其特征在于,所述方法包括步骤:
获取通信设备的集成电路总线的SDA信号及SCL信号;
在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行计数;及
将所述SDA信号在所述SCL信号的一个时钟周期内的计数值与一第一预设值进行比较,并根据比较结果输出对应的解码数据。
2.如权利要求1所述的数据通信方法,其特征在于,在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行计数的具体步骤包括:
在所述SCL信号为上升沿时开始对所述SDA信号的有效数据进行计数,并在所述SCL信号变为低电平时停止计数。
3.如权利要求2所述的数据通信方法,其特征在于,在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行计数的具体步骤还包括:
预先设定一第二预设值,并在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据计数N次,其中N为正整数;及
判断所述SDA信号是否为高电平,以根据判断结果在所述第二预设值及上次计数值的基础上依次进行加减计数。
4.如权利要求3所述的数据通信方法,其特征在于,所述方法还包括:
当所述计数值小于所述第一预设值,输出解码数据为0;及
当所述计数值大于或等于所述第一预设值,输出解码数据为1。
5.如权利要求4所述的数据通信方法,其特征在于,所述方法还包括:
所述第一预设值及所述第二预设值均可根据实际需要对应调整取值大小。
6.一种数据通信系统,包括一通信设备及一可编程逻辑器件,所述可编程逻辑器件与所述通信设备之间建立通信连接,其特征在于,所述可编程逻辑器件包括:
一信号采集单元,用于实时地采集所述通信设备的集成电路总线的SDA信号及SCL信号;
一计数单元,用于在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据进行计数,以得到一计数值;及
一比较单元,用于将所述SDA信号在所述SCL信号的一个时钟周期内的计数值与一第一预设值进行比较,并根据比较结果输出对应的解码数据。
7.如权利要求6所述的数据通信系统,其特征在于,所述计数单元用于在所述SCL信号为上升沿时开始对所述SDA信号的有效数据进行计数,并在所述SCL信号变为低电平时停止计数。
8.如权利要求7所述的数据通信系统,其特征在于,所述计数单元设定一第二预设值,并在所述SCL信号的一个时钟周期内对所述SDA信号的有效数据计数N次,其中N为正整数;所述计数单元还用于判断所述SDA信号是否为高电平,以根据判断结果在所述第二预设值及上次计数值的基础上依次进行加减计数。
9.如权利要求8所述的数据通信系统,其特征在于,当所述计数单元的计数值小于所述第一预设值,所述比较单元输出解码数据为0。
10.如权利要求9所述的数据通信系统,其特征在于,当所述计数单元的计数值大于或等于所述第一预设值,所述比较单元输出解码数据为1。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810247857.1A CN110297794B (zh) | 2018-03-23 | 2018-03-23 | 数据通信系统及方法 |
US15/983,410 US10268629B1 (en) | 2018-03-23 | 2018-05-18 | I2C data communication system and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810247857.1A CN110297794B (zh) | 2018-03-23 | 2018-03-23 | 数据通信系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297794A CN110297794A (zh) | 2019-10-01 |
CN110297794B true CN110297794B (zh) | 2022-08-12 |
Family
ID=66174996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810247857.1A Active CN110297794B (zh) | 2018-03-23 | 2018-03-23 | 数据通信系统及方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10268629B1 (zh) |
CN (1) | CN110297794B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112051890B (zh) * | 2020-08-27 | 2022-07-26 | 海光信息技术股份有限公司 | I2c总线的时钟控制方法、主设备及连接i2c总线的设备系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587692A (zh) * | 2008-05-19 | 2009-11-25 | 乐金显示有限公司 | 液晶显示器及其驱动方法 |
CN101770443A (zh) * | 2009-01-07 | 2010-07-07 | 成都市华为赛门铁克科技有限公司 | 一种内部集成电路总线时序调节方法、相应装置及系统 |
CN107452309A (zh) * | 2017-08-31 | 2017-12-08 | 深圳市明微电子股份有限公司 | 一种自适应数据频率的解码电路 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100517279C (zh) * | 2005-12-01 | 2009-07-22 | 鸿富锦精密工业(深圳)有限公司 | 数据撷取装置和方法 |
JP4936506B2 (ja) * | 2005-12-08 | 2012-05-23 | ルネサスエレクトロニクス株式会社 | メモリ制御回路及びメモリ制御方法 |
US7816979B2 (en) * | 2007-10-16 | 2010-10-19 | On Semiconductor Trading Ltd. | Configurable demodulator and demodulation method |
DE102011052334B4 (de) * | 2011-08-01 | 2013-04-11 | Leica Microsystems Cms Gmbh | Einrichtung und Verfahren zum Zählen von Photonen |
US20140068122A1 (en) * | 2012-09-05 | 2014-03-06 | Lsi Corporation | Method, system and processor-readable media for ascertaining a maximum number of contiguous bits of logical ones or zeros within a parallel word of arbitrary width |
JP2017126850A (ja) * | 2016-01-13 | 2017-07-20 | ルネサスエレクトロニクス株式会社 | 通信インターフェース回路および半導体集積回路 |
-
2018
- 2018-03-23 CN CN201810247857.1A patent/CN110297794B/zh active Active
- 2018-05-18 US US15/983,410 patent/US10268629B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101587692A (zh) * | 2008-05-19 | 2009-11-25 | 乐金显示有限公司 | 液晶显示器及其驱动方法 |
CN101770443A (zh) * | 2009-01-07 | 2010-07-07 | 成都市华为赛门铁克科技有限公司 | 一种内部集成电路总线时序调节方法、相应装置及系统 |
CN107452309A (zh) * | 2017-08-31 | 2017-12-08 | 深圳市明微电子股份有限公司 | 一种自适应数据频率的解码电路 |
Also Published As
Publication number | Publication date |
---|---|
CN110297794A (zh) | 2019-10-01 |
US10268629B1 (en) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060245515A1 (en) | Data reception apparatus and synchronizing signal detection method and program | |
CN111177060B (zh) | 串口数据发送方法、接收方法、相应装置及终端设备 | |
US9621304B2 (en) | Self-learning and self-correcting decoding of BMC encoded signal | |
US8281189B2 (en) | SATA primitive prediction and correction | |
CN107147553B (zh) | 从站波特率及帧格式的调整方法、调整装置及调整设备 | |
US20180285309A1 (en) | Data bus message filter | |
US20210058226A1 (en) | Sampling point identification for low frequency asynchronous data capture | |
CN110297794B (zh) | 数据通信系统及方法 | |
CN109871344B (zh) | 通讯系统、接口电路及其传输信号的方法 | |
US10462268B2 (en) | Data transmitting/receiving apparatus and data transmitting/receiving method | |
CN111198833B (zh) | 串行通用输入/输出系统 | |
CN103338131A (zh) | 检测日志传输丢失率的方法和设备 | |
US9621339B1 (en) | Host devices and data transmission methods | |
CN116225255A (zh) | 显示屏的适配方法、装置、设备、存储介质及程序产品 | |
CN1119067C (zh) | 比特同步电路及其方法 | |
CN102655441A (zh) | 一种通信自动纠错编码方法和系统 | |
CN110381095B (zh) | 一种片上系统及设备、通信系统 | |
US7812618B2 (en) | Printed circuit board, and backplane data transmission method | |
CN107592967B (zh) | 控制帧在网络中传输的方法和装置及相关单元和运输工具 | |
US10698395B2 (en) | Air-conditioning apparatus and method of detecting abnormality in transmission line | |
CN110718052B (zh) | 一种无线采集装置及数据采集方法 | |
US20240146458A1 (en) | Electronic device and data transmission method thereof | |
CN113850988B (zh) | 键值修正方法、装置、设备和计算机可读介质 | |
US9020012B1 (en) | Oversampled receiver for transition encoded signaling | |
CN114815573B (zh) | 电表时间的校准方法、装置、电子设备及存储介质 |
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 | ||
CB02 | Change of applicant information |
Address after: No. 36, North Street, West District, economic and Technological Development Zone, Binhai New Area, Tianjin Applicant after: Fulian precision electronics (Tianjin) Co.,Ltd. Address before: No. 80 Haiyun Street, Jinshi Economic and Technological Development Zone, 300457 Applicant before: HONGFUJIN PRECISION ELECTRONICS (TIANJIN) Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |