CN101630299B - 一种i2c串行总线信号的分析与触发方法 - Google Patents
一种i2c串行总线信号的分析与触发方法 Download PDFInfo
- Publication number
- CN101630299B CN101630299B CN2009100268828A CN200910026882A CN101630299B CN 101630299 B CN101630299 B CN 101630299B CN 2009100268828 A CN2009100268828 A CN 2009100268828A CN 200910026882 A CN200910026882 A CN 200910026882A CN 101630299 B CN101630299 B CN 101630299B
- Authority
- CN
- China
- Prior art keywords
- address
- bus
- data
- sda
- scl
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Small-Scale Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提出了一种测量仪器中I2C串行总线信号分析与触发的方法。首先利用高速时钟判别I2C串行总线两根信号线(串行时钟SCL,串行数据SDA)的电平变化事件,采用同步状态机分析并提取出总线的控制信息、地址信息和数据信息。然后将上述提取的信息与用户设定的触发条件相比较,如果条件符合则产生触发信号,并以此信号控制测量仪器的采集存储。信息提取的输出还可以做进一步分析处理,使用户查找感兴趣的事件变得简单,提高调试效率。
Description
技术领域
本发明涉及一种测量仪器中I2C串行总线信号的分析与触发方法,尤其涉及数字示波器中I2C总线信号的分析与触发。
背景技术
随着I2C串行总线应用的日益增多,对测量仪器的触发与分析功能也提出了更高的要求。由于在I2C总线中,所有信息(包括控制信息、地址信息、数据信息和时钟信息)都以串行方式在两条导线上传送,测量仪器的传统触发方式(如边沿触发)不能有效的捕获总线信息(如:帧开始、帧结束、特定的地址、特定的数据等)。因此,有必要为测量仪器配备一种专门的I2C总线信号分析与触发的方式。根据I2C总线协议,分析并提取总线的控制信息、地址信息或数据信息,并将其作为触发条件,使得捕获感兴趣的事件变得简单,甚至可以将提取的信息显示或做进一步分析处理,提高总线调试效率。
发明内容
技术问题:本发明的目的是提出一种在测量仪器中I2C串行总线信号的分析与触发方法。根据I2C总线协议,分析并提取总线传输的控制信息、地址信息和数据信息,并与用户设定的触发条件相比较,如果条件符合则产生触发信号,控制测量仪器的采集存储。
技术方案:本发明的I2C串行总线信号的分析与触发方法为:
a.利用高速时钟判别I2C串行总线中串行时钟SCL、串行数据SDA两根信号线的电平变化事件,采用同步状态机分析并提取出总线的控制信息和串行位信息,
b.根据上述控制信息,参照I2C总线协议,将串行位信息转换成并行的地址信息和数据信息,
c.将上述的控制信息、地址信息、数据信息与用户设定的触发条件相比较,如果条件符合则产生触发信号,并以此信号控制测量仪器的采集存储,
对I2C总线电平变化事件判别的高速时钟频率应高于I2C总线串行时钟频率的四倍,以确保后续信息分析和提取的正确性。
参照I2C总线协议,由两根输入信号线串行时钟SCL、串行数据SDA的电平变化事件,采用同步状态机分析出总线所包含的控制信息和串行位信息,具体规则如下:
1)状态机共有四个状态,上电复位后进入状态1;
2)在当前状态为状态1时:
若输入的SCL为高电平,SDA为低电平,则进入状态2,输出帧开始信号;
若输入的SCL为低电平,SDA为高电平,则进入状态3,无有效信号输出;
若输入的SCL为低电平,SDA为低电平,则进入状态4,无有效信号输出;
若输入的SCL为高电平,SDA为高电平,则保持状态1,无有效信号输出;
3)在当前状态为状态2时:
若输入的SCL为高电平,SDA为高电平,则进入状态1,输出帧结束信号;
若输入的SCL为低电平,SDA为高电平,则进入状态3,无有效信号输出;
若输入的SCL为低电平,SDA为低电平,则进入状态4,无有效信号输出;
若输入的SCL为高电平,SDA为低电平,则保持状态2,无有效信号输出;
4)在当前状态为状态3时:
若输入的SCL为高电平,SDA为高电平,则进入状态1,输出一位高电平信号;
若输入的SCL为高电平,SDA为低电平,则进入状态2,输出一位高电平信号;
若输入的SCL为低电平,SDA为低电平,则进入状态4,无有效信号输出;
若输入的SCL为低电平,SDA为高电平,则保持状态3,无有效信号输出;
5)在当前状态为状态4时:
若输入的SCL为高电平,SDA为高电平,则进入状态1,输出一位低电平信号;
若输入的SCL为高电平,SDA为低电平,则进入状态2,输出一位低电平信号;
若输入的SCL为低电平,SDA为高电平,则进入状态3,无有效信号输出;
若输入的SCL为低电平,SDA为低电平,则保持状态4,无有效信号输出;
根据总线控制信息,将串行位信息转换成并行地址信息和数据信息的方法如下:根据I2C总线协议,计数器在检测到帧开始信号后从0开始计数,若当前总线寻址方式为七位寻址,并且计数器值为7,则前8位转换成七位地址和读/写位,之后每8位转换成一个数据字节;若当前总线寻址方式为十位寻址,并且计数器值为15,则前两个字节低11位转换成十位地址和读/写位,之后的每8位转换成一个数据字节。
总线信息提取的输出分为两部分,一部分表示的是总线的控制信息,包括帧开始、帧结束、无确认、七位地址、十位地址第一个字节、十位地址第二个字节,以及数据;另一部分是所提取的地址或数据的内容,并仅在控制信息为七位地址、十位地址第一个字节、十位地址第二个字节,以及数据时有效。
用户设定的触发条件为下列触发条件中的一种:
1)帧开始:在SCL为高电平,SDA由高电平变为低电平时触发;
2)帧结束:在SCL为高电平,SDA由低电平变为高电平时触发;
3)无确认:在没有检测到地址或数据的确认信号时触发;
4)七位地址:在I2C总线为七位寻址方式且所寻地址与用户设定地址相同时触发;
5)十位地址:在I2C总线为十位寻址方式且所寻地址与用户设定地址相同时触发;
6)数据:在总线上传输的数据与用户设定的数据相同时触发;
7)地址和数据:在所寻地址与用户设定地址相同;包含七位寻址方式和十位寻址方式,并且传输数据与用户设定的数据相同时触发。
用户设定的触发条件为:帧开始、帧结束或无确认,只需比较控制信息;用户设定的触发条件为:数据、地址和数据、七位地址或十位地址,则在控制信息满足的情况下再比较地址、数据的内容是否相同。
有益效果:在I2C总线中,所有信息(包括控制信息、地址信息、数据信息和时钟信息)都以串行方式在两条导线上传送,测量仪器的传统触发方式(如边沿触发)不能有效的捕获总线事件(如:帧开始、帧结束、特定的地址、特定的数据等),并且触发后不能方便解读总线信息。因此,有必要配备一种专门的I2C总线信号分析与触发的方式。在带有I2C串行总线信号分析与触发方法的测量仪器中,用户除了能够用传统触发方式触发I2C总线信号,还可以采用专门为I2C串行总线定制的触发方式,以总线的控制信息、地址信息或数据信息作为触发条件,使得捕获感兴趣的事件变得简单;信息提取的输出还可以送给微处理器显示或做进一步的分析处理,方便用户解读总线信息,提高调试效率。
附图说明
图1是具体实施模块图,
图2是总线控制信息和串行位信息分析与提取状态机的状态转移图,
图3是I2C串行总线分析与触发原理图。
具体实施方式
首先利用高速时钟判别I2C串行总线两根信号线(串行时钟SCL,串行数据SDA)的电平变化事件,采用同步状态机提取出总线的控制信息和串行位信息。然后根据控制信息,并参照I2C总线协议,将上述串行位信息转换成并行的地址信息和数据信息。为了保证上述信息分析和提取的正确性,对I2C总线电平变化事件判别的高速时钟频率应高于I2C总线串行时钟频率的四倍。所提取的控制信息为当前总线的传输信息的类型,包括:帧开始、帧结束、地址(包含七位和十位寻址方式)、数据或确认等;地址信息为总线当前所寻地址的内容;数据信息为总线当前所传输数据的内容。
在提取出控制信息和串行位信息后,根据控制信息,参考I2C总线协议,将串行位信息转换成地址信息和数据信息。采用计数器实现,计数器在检测到帧开始信号后从0开始计数,若当前总线寻址方式为七位寻址,并且计数器值为7,则前8位转换成七位地址和读/写位,之后每8位转换成一个数据字节;若当前总线寻址方式为十位寻址,并且计数器值为15,则前两个字节低11位转换成十位地址和读/写位,之后的每8位转换成一个数据字节。如此便提取出总线上的控制信息,地址信息和数据信息。
信息提取的输出分为两部分,一部分表示的是总线的控制信息,包括帧开始、帧结束、无确认、七位地址、十位地址第一个字节、十位地址第二个字节,以及数据;另一部分是所提取的地址或数据的内容,并仅在控制信息为七位地址、十位地址第一个字节、十位地址第二个字节,以及数据时有效。信息提取的输出与用户设定的触发条件相比较,如果符合,则产生触发信号。
用户可以设定的触发条件包括帧开始:在SCL为高电平,SDA由高电平变为低电平时触发;帧结束:在SCL为高电平,SDA由低电平变为高电平时触发;无确认:在没有检测到地址或数据的确认信号时触发;七位地址:在I2C总线为七位寻址方式且所寻地址与用户设定地址相同时触发;十位地址:在I2C总线为十位寻址方式且所寻地址与用户设定地址相同时触发;数据:在总线上传输的数据与用户设定的数据相同时触发;地址和数据:在所寻地址与用户设定地址相同(包含七位寻址方式和十位寻址方式)并且传输数据与用户设定的数据相同时触发。如果用户设定的触发条件为:帧开始、帧结束或无确认,只需比较信息提取输出的控制信息;如果用户设定的触发条件为:数据、地址和数据、七位地址或十位地址,在信息提取输出的控制信息满足的情况下再比较地址或数据的内容是否相同。
触发信号传输给测量仪器的采集控制器,以控制总线信息的捕获。
下面结合附图说明本发明在数字荧光示波器(DPO)中的具体实施方式。
在数字荧光示波器的具体实施中,本方法由两个功能模块(信息分析和提取模块和比较触发模块)在FPGA(现场可编程门阵列)中实现。
如图1所示,I2C总线信号经过比较器转换成高、低逻辑电平并输入FPGA中的信息提取模块。比较器的阈值电平由用户设定。信息分析合提取模块利用50MHz时钟判别I2C串行总线两根信号线(串行时钟SCL,串行数据SDA)的电平变化事件,采用同步状态机分析并提取出总线的控制信息和串行位信息。然后根据控制信息,并参照I2C总线协议,将串行位信息转换成并行的地址信息和数据信息。由于I2C总线协议规定其最高传输速率为3.4Mbps,因此,用50MHz时钟判别总线电平变化事件完全能够满足要求。
控制信息和串行位信息的提取状态机如图2所示。串行位信息的串并转换采用4bit循环计数器实现。计数器在检测到帧开始信号后从0开始递增计数,若当前总线寻址方式为七位寻址,并且计数器值为7,则前8位转换成七位地址和读写/位,之后每8位转换成一个数据字节;若当前总线寻址方式为十位寻址,并且计数器值为15,则前两个字节低11位转换成十位地址和读/写位,之后的每8位转换成一个数据字节。如此便提取出总线上的控制信息,地址信息和数据信息。
信息提取模块将提取的总线信息分为两部分:一部分为I2C总线上所传输的控制信息,包括:帧开始、帧结束、无确认、七位地址、十位地址第一个字节、十位地址第二个字节,以及数据,共7种用4bit输出;另一部分为总线上传输的地址或数据的内容,用8bit并行输出,并且仅当控制信息为七位地址、十位地址第一个字节、十位地址第二个字节,以及数据时有效。总线信息提取模块的输出传输至比较触发模块用于比较产生触发信号,同时传输至微处理器显示和做进一步分析处理。
如图1所示,比较触发模块包含控制信息比较器、2字节地址信息比较器、6字节数据信息比较器和一个控制状态机。该模块接收信息提取模块的输出和用户设定的触发条件,并进行比较,如果条件符合则产生触发信号。若用户设定的触发条件为:帧开始、帧结束或无确认,则只需比较信息提取模块输出的控制信息与用户设定是否相同;如果用户设定的触发条件为:数据、地址和数据、七位地址或十位地址,则在控制信息与用户设定触发条件相符合的情况下再比较地址或数据的内容是否相同。对于地址信息的比较由地址信息比较模块完成,对数据信息的比较由数据信息比较模块完成。比较控制器控制比较流程。
比较触发模块产生的触发信号输出给示波器的采集控制模块以控制示波器的采集存储。示波器采集控制模块通过使能与复位信号来控制信息提取模块和比较触发模块是否工作,保证其工作流程符合示波器的要求。以上具体实施方式仅用于说明本发明,而非用于限定本发明。
Claims (5)
1.一种I2C串行总线信号的分析与触发方法,其特征在于:
a.利用高速时钟判别I2C串行总线中串行时钟SCL、串行数据SDA两根信号线的电平变化事件,采用同步状态机分析并提取出总线的控制信息和串行位信息,
b.根据上述控制信息,参照I2C总线协议,将串行位信息转换成并行的地址信息和数据信息,
c.将上述的控制信息、地址信息、数据信息与用户设定的触发条件相比较,如果条件符合则产生触发信号,并以此信号控制测量仪器的采集存储;
参照I2C总线协议,由两根输入信号线串行时钟SCL、串行数据SDA的电平变化事件,采用同步状态机分析出总线所包含的控制信息和串行位信息,具体规则如下:
1)状态机共有四个状态,上电复位后进入状态1;
2)在当前状态为状态1时:
若输入的SCL为高电平,SDA为低电平,则进入状态2,输出帧开始信号;
若输入的SCL为低电平,SDA为高电平,则进入状态3,无有效信号输出;
若输入的SCL为低电平,SDA为低电平,则进入状态4,无有效信号输出;
若输入的SCL为高电平,SDA为高电平,则保持状态1,无有效信号输出;
3)在当前状态为状态2时:
若输入的SCL为高电平,SDA为高电平,则进入状态1,输出帧结束信号;
若输入的SCL为低电平,SDA为高电平,则进入状态3,无有效信号输出;
若输入的SCL为低电平,SDA为低电平,则进入状态4,无有效信号输出;
若输入的SCL为高电平,SDA为低电平,则保持状态2,无有效信号输出;
4)在当前状态为状态3时:
若输入的SCL为高电平,SDA为高电平,则进入状态1,输出一位高电平信号;
若输入的SCL为高电平,SDA为低电平,则进入状态2,输出一位高电平信号;
若输入的SCL为低电平,SDA为低电平,则进入状态4,无有效信号输出;
若输入的SCL为低电平,SDA为高电平,则保持状态3,无有效信号输出;
5)在当前状态为状态4时:
若输入的SCL为高电平,SDA为高电平,则进入状态1,输出一位低电平信号;
若输入的SCL为高电平,SDA为低电平,则进入状态2,输出一位低电平信号;
若输入的SCL为低电平,SDA为高电平,则进入状态3,无有效信号输出;
若输入的SCL为低电平,SDA为低电平,则保持状态4,无有效信号输出;
根据总线控制信息,将串行位信息转换成并行地址信息和数据信息的方法如下:根据I2C总线协议,计数器在检测到帧开始信号后从0开始计数,若当前总线寻址方式为七位寻址,并且计数器值为7,则前8位转换成七位地址和读/写位,之后每8位转换成一个数据字节;若当前总线寻址方式为十位寻址,并且计数器值为15,则前两个字节低11位转换成十位地址和读/写位,之后的每8位转换成一个数据字节。
2.按照权利要求1所述的一种I2C串行总线信号的分析与触发方法,其特征在于:对I2C总线电平变化事件判别的高速时钟频率应高于I2C总线串行时钟频率的四倍,以确保后续信息分析和提取的正确性。
3.按照权利要求1所述的一种I2C串行总线信号的分析与触发方法,其特征在于:总线信息提取的输出分为两部分,一部分表示的是总线的控制信息,包括帧开始、帧结束、无确认、七位地址、十位地址第一个字节、十位地址第二个字节,以及数据;另一部分是所提取的地址或数据的内容,并仅在控制信息为七位地址、十位地址第一个字节、十位地址第二个字节,以及数据时有效。
4.按照权利要求1所述的一种I2C串行总线信号的分析与触发方法,其特征在于:用户设定的触发条件为下列触发条件中的一种:
15)帧开始:在SCL为高电平,SDA由高电平变为低电平时触发;
16)帧结束:在SCL为高电平,SDA由低电平变为高电平时触发;
17)无确认:在没有检测到地址或数据的确认信号时触发;
18)七位地址:在I2C总线为七位寻址方式且所寻地址与用户设定地址相同时触发;
19)十位地址:在I2C总线为十位寻址方式且所寻地址与用户设定地址相同时触发;
20)数据:在总线上传输的数据与用户设定的数据相同时触发;
21)地址和数据:在所寻地址与用户设定地址相同;包含七位寻址方式和十位寻址方式,并且传输数据与用户设定的数据相同时触发。
5.按照权利要求1所述的一种I2C串行总线信号的分析与触发方法,其特征在于:用户设定的触发条件为:帧开始、帧结束或无确认,只需比较控制信息;用户设定的触发条件为:数据、地址和数据、七位地址或十位地址,则在控制信息满足的情况下再比较地址、数据的内容是否相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100268828A CN101630299B (zh) | 2009-05-27 | 2009-05-27 | 一种i2c串行总线信号的分析与触发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100268828A CN101630299B (zh) | 2009-05-27 | 2009-05-27 | 一种i2c串行总线信号的分析与触发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101630299A CN101630299A (zh) | 2010-01-20 |
CN101630299B true CN101630299B (zh) | 2011-08-10 |
Family
ID=41575413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100268828A Expired - Fee Related CN101630299B (zh) | 2009-05-27 | 2009-05-27 | 一种i2c串行总线信号的分析与触发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101630299B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102010010820B4 (de) * | 2010-03-10 | 2012-08-09 | Siemens Aktiengesellschaft | Lokalspule für eine Magnetresonanzeinrichtung, Magnetresonanzeinrichtung und Verfahren zur Anzeige einer Änderung des Zustands einer Lokalspule |
CN102355382A (zh) * | 2011-09-28 | 2012-02-15 | 东南大学 | 一种控制器局域网总线分析与触发的方法 |
CN102752194B (zh) * | 2012-06-12 | 2015-04-15 | 黄程云 | 基于帧结构转发的rs-485总线集线器 |
CN102929828B (zh) * | 2012-10-18 | 2016-01-06 | 广东欧珀移动通信有限公司 | 同时支持标准和非标准i2c接口的数据传输方法及装置 |
CN103955419A (zh) * | 2014-04-28 | 2014-07-30 | 电子科技大学 | 具有串行总线协议在线实时检测分析功能的逻辑分析仪 |
CN104133095A (zh) * | 2014-07-07 | 2014-11-05 | 中国电子科技集团公司第四十一研究所 | 一种数字示波器串行总线i2c触发方法 |
CN105653489A (zh) * | 2015-12-23 | 2016-06-08 | 中国电子科技集团公司第四十研究所 | Mil_std_1553总线分析与触发方法 |
FR3071938A1 (fr) * | 2017-10-02 | 2019-04-05 | Stmicroelectronics (Rousset) Sas | Detection d'une condition temporelle sur un bus bifilaire |
CN108845967A (zh) * | 2018-07-03 | 2018-11-20 | 广东好帮手环球科技有限公司 | 一种i2c总线分析装置 |
CN109188307A (zh) * | 2018-08-14 | 2019-01-11 | 青岛海尔智能家电科技有限公司 | 一种非接触式模具传感器 |
CN111078604B (zh) * | 2019-11-15 | 2022-06-03 | 苏州浪潮智能科技有限公司 | 一种i2c总线设备读写的方法及装置 |
CN113032197A (zh) * | 2021-03-29 | 2021-06-25 | 杭州迪普信息技术有限公司 | 一种设备故障检测方法及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2837835Y (zh) * | 2005-04-22 | 2006-11-15 | 长春威德光电技术有限公司 | 具有高灵敏度的水中油检测装置 |
-
2009
- 2009-05-27 CN CN2009100268828A patent/CN101630299B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN2837835Y (zh) * | 2005-04-22 | 2006-11-15 | 长春威德光电技术有限公司 | 具有高灵敏度的水中油检测装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101630299A (zh) | 2010-01-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101630299B (zh) | 一种i2c串行总线信号的分析与触发方法 | |
CN102355382A (zh) | 一种控制器局域网总线分析与触发的方法 | |
CN105044420B (zh) | 一种数字示波器的波形搜索方法 | |
CN101571555B (zh) | 一种串行外设接口总线信号的触发方法 | |
CN104361374A (zh) | 一种射频信号的采集与处理系统及其方法 | |
CN102820970B (zh) | 电子装置及其电池模块的认证方法 | |
CN101799321A (zh) | 智能振动监测系统 | |
CN103176014B (zh) | 一种波形数据解码装置及示波器 | |
CN202676907U (zh) | 一种多通道天气雷达数据采集装置 | |
CN202230480U (zh) | 基于fpga 的高速信号采集与数据缓存系统 | |
CN201444313U (zh) | 基于fpga高速图像采集功能清分机 | |
CN103852670A (zh) | 高采样率的瞬态电能质量信息采集模块 | |
CN104361373A (zh) | 一种射频信号的采集与处理方法 | |
CN202794325U (zh) | 一种增加单体电压采集数量的装置 | |
CN104281082A (zh) | 局部放电信号采集方法和系统 | |
CN109443557B (zh) | 一种单光子脉冲到达时间探测装置 | |
CN103679917A (zh) | 一种基于fpga的高速纸币冠字号码提取识别系统及其实现方法 | |
CN202500555U (zh) | 一种石油测井仪中的数据传输系统 | |
CN204242207U (zh) | 一种射频信号的采集与处理系统 | |
CN108132636A (zh) | 基于单片机控制的多通道数据采集处理系统 | |
CN210719211U (zh) | 基于多路增量型编码器信号采集处理的检测系统 | |
CN203720588U (zh) | 一种信号采集装置 | |
CN204100994U (zh) | 一种二相线阵ccd数据采集与处理系统 | |
CN203054072U (zh) | 一种基于usb总线的电晕电流采集卡 | |
CN203368439U (zh) | 脉宽自适应单总线接收器 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110810 Termination date: 20140527 |