技术文章您当前的位置:首页 > 技术文章 > I2C,SPI总线协议测试分析方案

I2C,SPI总线协议测试分析方案

日期:2018-07-06浏览:4354次

I2C,SPI总线协议测试分析方法技巧

在数位电子电路领域内,当装置与装置间需要进行通信连接时,往往会透过总线来进行数据传输,在这当中又以I2C(Inter integrated Circuit)以及SPI(Serial Peripheral interface)在电子领域中使用为频繁。
孕龙科技所推出的I2C-SPI Control Center,透过软件设定可I2C-SPI Control Center来模拟I2C或SPI之间装置(Master Device及Slave Device)传输状况,且产品本身所拥有的Batch Mode(批次执行模式)更可加强待测电路分析功能或满足产线测试需求。
接着我们将逐一说明各项功能来了解I2C-SPI Control Center。
I2C(Inter integrated Circuit)Mode
这是一款由Philips在1980年代为了让主板、嵌入式系统或手机连接周边装置而所研发制定的一种总线,因其构架简便容易操作,所以演变至今成为各种不同设备装置间的界面标准。I2C使用两条信号线做双向数据传输(Serial Data及Serial Clock),接下来将透过测量EEPROM 24LS02来进行功能介绍。
将I2C-SPI Control Center的SDA及SCL连接至待测端的SDA及SCL,开启I2C-SPI Control Cen-ter软件后可看到如图一的软件界面。
I2C-SPI Control Center

图一:I2C-SPI Control Cente软件视窗

待驱动程序安装完成后,可在视窗上方的Select Device下拉菜单中选择已安装的I2C-SPI ControlCenter,接着点选右方的『联机』按钮即可进行操作设定。
首先,在I2C模式下操作I2C Master。先设定Slave Address=0X50、Bit Rate=2KHz及Master端的写入数据为0X00、0X11、0X22、0X33、0X44、0X55、0X66、0X77、0X88、0X99、0XAA、
0XBB、0XCC、0XDD、0XEE及0XFF,设定完毕后可点选右方的写入按钮来进行信号发送。动作完成后随即可在下方Log视窗中看到相关讯息,如图二所示。
Log视窗
图二:I2C-SPI Control Center Log视窗
写入

图三:使用孕龙逻辑分析仪撷取状况
1
2
图三中的方块1为I2C Clock,可清楚看出目前I2C总线中的Bit Rate为2KHz,方块2为写入数据的表示。
搭配上孕龙逻辑分析仪更可清楚表示出,此一数据写入的动作状况。

图四
读取
操作读取功能时,方法与写入功能大致相同,在软件视窗中可先设定读取字节数。预设值为5Bytes,在这边将读取字节更改为20 Bytes后点下右方的读取即可进行动作。

同样的搭配孕龙逻辑分析仪可看出I2C-SPI Control Center读回的数据内容。
图五:使用孕龙逻辑分析仪记录I2C数据内容

名称说明
Time
可显示此笔信息出现的时间日期表示当下所操作的模式,共分为I2C、SPI及GPIO显示该笔信息是由Master De-vice发出或是Slave Device发出Mode
M/S
R/W
显示此笔数据为读取动作
(Read)或写入动作(Write)
Bit Rate表示总线数据传输速率
Address表示总线位址
Length
表示总线数据字节
(Data Bytes)数量
Data可显示出详细数据数值
图六:Log视窗
Tip:在I2C-SPI Control Center Log中点击信息,可将该信息展该如图六所示

I2C-SPI Control Center还可以进行Slave装置模拟,可自行设定当Master端下读取命令时Slave响应的数据内容。
响应数据内容
图七:I2 C Slave设定画面

SPI(Serial Peripheral interface)
是由Motorola为能在全双工方式下进行列表数据传输所制定的一种标准界面,采用主/从装置方式传输,一个主装置可同时与多个从装置连接。此时主装置便透过Slave select(chip select)来选择欲沟通的从装置。依照不同的应用环境SPI汇流排可操作在四线式状态下(SCLK、MOSI、MISO、SS),这个时候SPI可拥有全双工能力。在三线式状态下(SCLK、DATA、SS)则是半双工方式,若连接环境较为单纯时,则可衍生出两线式状态(SCLK、DATA),此时SPI总线上仅只有一个主装置及一个从装置。
在I2C SPI Control Center软件中切换至SPI Mode便可开始操作,在软件视窗中可以设定SPI总线的取样模式。SPI总线定义了四种模式分别为模式0、1、2、3,是由Clock Phase及Clock Polar-ity组合而成,图八说明了SPI Clock在不同SPI模式下对Data取样位置。
图八:SPI总线模式取样点说明(图中波形为Clock pulse,红色边缘为取样位置)

图九:SPI Master设定画面
设定Master
传送数据内容
设定取样参数
设定高低位
传送方向及SS
动作极性
设定传输速率
在SPI Master界面中尚可设定其他的参数,如数据高低位传送方向(Bit Order数据传输速率(Bit Rate)及SS动作极性(SS Polarity)。

如同操作I2C Mode般,在SPI Mode中也支持SPI Slave装置模拟,使用者可设定Slave装置响应的内容来测试Master端反应状况。
图十:SPI Slave设定画面

当环境设定完成后按下写入功能时,便可依照设定数据内容进行SPI总线数据发送。搭配逻辑分析仪可明显看出主/从装置数据传输状况。
图十一:孕龙逻辑分析仪记录SPI数据内容

GPIO(Generator Purpose Input / Output)
GPIO为通用型输入输出界面的简称,常出现在MCU上(Micro Control Unit,微控制器),使用者可自行定义GPIO内每一根脚位为输入状态或是输出状态。
在I2C-SPI Control Center中亦支持此种模式,能够提供8 Bits GPIO进行操作,使用者可自定每一支脚位的输入/输出状态,下图为I2C-SPI Control Center GPIO Mode的设定画面。
图十二:I2C-SPI Control Center GPIO Mode
Direction:选择每一bit为输入/输出
状态
Pull Up:选择I/O是否开启上升电阻(阻值约30K欧母)
Out Set: Output时
所输出的数据状态
设定
In Value: Input时所
接收的数据状态
I2C-SPI Control Center为孕龙科技所推出的新产品,能够依照需求进行I2C、SPI装置信号模拟,也能够透过GPIO来发送/接收数据。同时除了上述三种模式之外,I2C-SPI Control Center拥有I2C、SPI触发功能,所支持的Batch模式可以更加灵活的模拟装置反应,下期将针对I2C / SPI Trigger及Batch模式进行深入的介绍。
切换GPIO模式


I2C,SPI总线协议测试分析方法技巧
孕龙科技所推出的新产品I2C-SPI Control Center,能够依照需求进行I2C、SPI装置信号模拟。
I2C-SPI Control Center拥有I2C、SPI触发功能以及所支持的Batch Mode(批次执行模式)可以更加灵活的模拟装置反应。
当I2C-SPI进行通信时,往往传输的数据封包十分庞大。对分析仪器而言,此时触发功能便显得十分重要。越强大的触发功能可帮助使用者在繁杂数据封包内准确找出欲分析的位置。
孕龙科技所推出的I2C-SPI Control Center,使用I2C / SPI Trigger功能可I2C-SPI数值来进行触发,且产品本身所拥有的Batch Mode(批次执行模式)更可完整模拟待测电路分析时所需要的动作功能需求。
接下来将开始介绍I2C-SPI Control Center - I2C-SPI Trigger以及Batch Mode。
I2C-SPI Control Center

图一:I2C-SPI Control Center软件视窗
开启I2C-SPI Control Center操作软件后可看到图一视窗表示,接着选择I2C Trigger页签进行I2C Trigger条件设定。
I2C Trigger

切换至I2C Trigger后可看到如图二所示视窗,在此视窗中使用者可依照I2C内容进行两组条件设定,每一组条件可设定8个byte,也能够依照读取/写入动作进行设定。
图二:I2C Trigger setting视窗

数据动作选项:可设定Write Data、Write Data(1st)、Read Data、Read Data(1st),当选择Write Data(1st)、Read Data(1st)时,表示仅判断个byte数据封包。
运算条件:Write Data、Read Data仅可为『=』;Write Data(1st)、Read Data(1st)可设置『=』、『>』、『<』。
数据长度:当长度改变时,数据字段元会随之改变;Write Data(1st),Read Data(1st)仅可为『1』。
数据内容:可在此字段内输入欲设定为触发条件之数据数值。
Count:触发条件达成设定次数后再进行触发。
Continuity:可设定2组条件是否要连续判断。
致能:当I2C Trigger设定完成后,点选表示开始动作。
使用I2C Trigger时需将外部开关『Mode』切换至8 Pin模式。I/O Ctrl为I2C Trigger时触发状态输出脚位,输出信号以转态方式表示。

图三:0x11、0x22条件设定
接下来透过孕龙逻辑分析仪进行I2C Trigger的实际操作,将I2C-SPI Control Center的I/O Ctrl连接至逻辑分析仪A2脚位,A0及A1则连接I2C的SDA及SCL。
同时,在I2C-SPI Control Center - I2C Trigger页签中设定触发条件为『写入』、数据数值为『0x11、0x22』,设定完成后如图三所示。

表示笔触发条件数据0x11
表示第二笔触发条件数据0x22
表示透过I2C-SPI Control Center - I2C Trigger所判定触发成立的位置由图四可清楚看见当I2C-SPI Control Center - I2C Trigger判定触发成立后在I/O Ctrl将会出现一个
波形转态。
2
图四:触发完成
设定完成后点选『致能』,接着开启孕龙逻辑分析仪软件,设定好环境参数以及I2C总线译码即可开始分析,图四为触发完成结果。

图五:SPI Trigger setting视窗
SPI Trigger操作方式与I2C Trigger雷同,开启I2C-SPI Control Center后选择SPI Mode,接着切换至SPI Trigger页签便可以开始进行设定,设定视窗如图五所示。
数据动作选项:可设定MOSI Data、MOSI Data(1st)、MISO Data、MISO Data(1st),当选择MOSI Data(1st)、MISO Data(1st)时,表示仅判断个byte数据封包。
运算条件:MOSI Data、MISO Data仅可为『=』;MOSI Data(1st)、MISO Data(1st)可设置『=』、『>』、『<』。
数据长度:当长度改变时,数据字段元会随之改变;MOSI Data(1st)、MISO Data(1st)仅可为『1』。
数据内容:可在此字段内输入欲设定为触发条件之数据数值。
Count:触发条件达成设定次数后再进行触发。
Continuity:可设定2组条件是否要连续判断。
致能:当SPI Trigger设定完成后,点选致能表示开始动作。

接下来透过孕龙逻辑分析仪进行SPI Trigger的实际操作,将I2C-SPI Control Center的5V Ctrl连接至逻辑分析仪A4脚位,A0连接SS、A1及A2连接SPI的MOSI及MISO、A3则连接SPI SCL。
同时,在I2C-SPI Control Center -SPI Trigger页签中设定两组触发条件。组为『MOSI』、数据数值为『0x11』。第二组为『MISO』、数据数值为『0x01』,并勾选『Continuity』,设定完成后如
图六所示。
图六:MOSI=0x11、MISO=0x01触发条件设定

接着设定逻辑分析仪环境以及SPI译码模块,因此次触发条件有两组,故进行判断时将会依照SS Low Enable状况作为依据,触发完成后的表示如图七所示。
图七中左边方块为条件一判定成立位置,在这边可看见SPI总线中包含MOSI=0x11,右边方块为条件二判断成立位置。此时可看见SPI总线中包含MISO=0x01。
图七:SPI触发完成
MOSI=0x11
MISO=0x01

透过Batch Mode可灵活定义数据传送状态及内容,模拟实际装置反应。在I2C-SPI Control Center软件视窗中点选Batch,便可在视窗空白处输入Batch代码来设定I2C-SPI Control Center动作模式,也可以点选鼠标右键来加载程序示例档案。
图八:Batch Mode
执行
Batch模式

ModeStatus=FTXX_I2CMODE //设定硬件控制模式有FTXX_I2CMODE、FTXX_SPIMODE、
FTXX_GPIOMODE三种控制旗标可供组合使用
I2CFunctionStatus=I2C_I2CMASTER //设定I2C模式控制旗标,由I2C_I2CMASTER orI2C_I2CSLAVE与I2C_10BITADDR、I2C_COMBINEDFORMAT、I2C_NOSTOP组成I2CBitRate=400 //设定I2C模式Bit Rate单位KHz。
I2CSlaveAddress=80 //设定I2C模式Slave Address,支持7 or 11位寻址,输入数值格式为10进制。
I2CMasterModeTxData=[00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 1718 19 1a 1b 1c 1d 1e 1f 20 21] //设定I2C Master模式TX Data,由[与]判断Data起始与结束
I2CMasterModeReadByength=10 //设定I2C Master模式读取Byte长度
I2CFreeBus=true //设定I2C模式Free Bus Enabled or Disable
I2CSlaveModeTxByength=10 //设定I2C Slave模式TX Byte长度
I2CSlaveModeRxByength=10 //设定I2C Slave模式Rx Byte长度
I2CSlaveRespondData=[00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17
18 19 1a 1b 1c 1d 1e 1f 20 21] //设定I2C Slave模式Respond Data,由[与]判断Data起始与结束
I2CSlaveModeEnabled=true //设定I2C Slave模式Enabled or Disable
以下为I2C Batch程序示例
红色字为代码

代码输入完毕后点选视窗旁边的『执行』,便可让Batch程序开始动作。接着我们透过孕龙逻辑分析仪来验证Batch程序动作内容。
图九:使用逻辑分析仪撷取I2C Batch程序动作
表示目前I2C Slave Address为0X50。
表示此I2C传输速率为400KHz
表示Master写入数据内容
表示Master读取数据内容
如需增加其他不同的总线动作或是传输不同的位址及数据,仅需在Batch程序字段中增加欲的动作内容即可,借此来模拟待测物通信状态。


I2C,SPI总线协议测试分析方法技巧总结
孕龙科技推出的产品I2C-SPI Control Center是在总线协定I2C、SPI的基础上研发而成,可用来存取I2C-SPI界面总线数据并可在数据符合条件时送出触发信号,或者用GPIO来发送信号。同时使用者可在Batch模式下通过写入指令来发送信号。搭配孕龙逻辑分析仪可以更有效的进行研发工作。可做快速的分析与快速的问题侦测,以及测量更多的信息,是电子研发人员、电子测试人员、电子电机学生及个人研究工作室*的工具。

上一篇:吉时利KEITHLEY源表测量能力和主要应用

下一篇:USB2.0测试分析应用方案

产品分类

联系我们

在线客服:

Baidu
map