java怎么拦截某个对象
264
2022-11-10
应用于医疗监护仪扩展接口的I2C总线分析器的设计
1 引言
2 I2C总线标准模式
I2C总线是一种仅用到两线的工业标准同步串行数据通讯总线。两个总线:串行数据(SDA)线和串行时(SCL)线,对于嵌入式系统有限的 IO接口资源是非常重要的。I 2C总线支持从机、主机和多主机。每个I 2C器件有唯一的识别地址(7位或 10位的地址)。串行的 8位双向数据传输传输有三种模式:标准模式(100kbits/s)、快模式(400kbits/s)、高速模式(3.4Mbits/s)。
I2C总线数据传输以字节为单位,按照高位在前顺序传输。数据传输首先以 I 2C主机发出开始条件和从机地址,读写控制字。从机必须对地址完成识别,之后传输由器件规则和协议定义的一系列读或写的数据。字节传输要有响应信号,确认后再发下一个字节,当通讯结束后,主机产生停止状态。
接收端采用SCL信号同步采样读取数据信息。I 2C协议规定数据变化只发生在 SCL信号为低电平期间,高电平期间要保持数据信号的稳定性。SCL信号线高电平期间,SDA信号由高电平变为低电平是开始条件,反之为停止条件。 3 硬件设计
I2C总线分析器为医疗检测仪或其它嵌入式系统提供很好的外设扩展。在不同工作模式下提供系统更多的功能。
在被动模式下,分析器探测总线上数据,传输数据或做算法处理。这里将采集到的数据直接通过 LCD显示,不占用微处理器资源;在主机模式下,分析器掌控总线,完成对外设的操作,如配置传感器,采集传感器信号;在从机模式下,分析器作为 I 2C器件使用,在被总线上主机识别后,接收或发送用户信息。
3.1 控制信息模块和 I 2C状态机
在控制寄存器中,最高位是初始化标识位,使系统进入等待状态;第 7位用于控制 I 2C总线产生起始状态;第 6位用于控制总线产生停止状态;第 5位控制读、写 FIFO存储器,低电平定义使用FIFO读存储器,高电平定义使用 FIFO写存储器;第 3、4位用于总线工作模式选择;第 2位用于主、从模式选择;最后一位作为总线传输响应。
状态寄存器反映工作状态。功能描述如下:最高位选择主、从机模式,第 7位标识总线状态,第 6、3位标识 FIFO存储器状态,第 5位标识数据通讯方向,第 4位为中断位,最后两位标识工作模式检测模式,共 8位。
3.2状态的产生和探测模块
根据协议,主机在 SCL高电平期间,在 SDA线上产生由 0到 1或由 1到 0的变化,前者代表开始条件,后者代表了停止条件。设计基于分频器完成,由控制信息模块可以产生所需 SCL信号,由 SCL信号倍频信号控制在 SCL信号高电平时产生 SDA信号。
在从机状态下,因为起始、停止条件是由 SDA在 SCL高电平期间改变来产生,所以设计中考虑用 SCL频率的 30、25或 16倍频来探测(高速模式下 56MHz可以由 PLL产生)。考虑在不同模式下采用不同倍频系数,虽然增加了设计复杂度和硬件的消耗,但从机能更精确地探测到起始和停止条件,提高系统性能。
3.3信息收集模块
3.4器件地址模块
根据协议,每个 I2C器件都有独立地址。本设计有自定义 7位地址。如果信息收集模块中采样到地址与本地址一致,则作为从机操作。
3.5 FIFO读、写存储器
3.7 主系统状态机
这是 I2C总线分析器的核心单元,需要完成在被动模式、主机模式和从机模式下状态转换和控制,根据控制寄存器中控制字,采用有限状态机嵌套设计完成。状态机编码采用独热编码,有利于提高传输速度并节省面积。
I2C总线分析器状态转移如图 2所示,整个过程受控制字和状态寄存器调节。图中主要描述了作为主机模式下状态变换,从机模式下,在准备阶段需要加上 I2C总线识别、器件地址识别,其它过程与主机相似,这里不详细描述。
另外,采用移位寄存器完成数据接收和发送模块设计,最后,由顶层完成各模块时序控制,重点在于时钟信号管理,以达到同步目的。 4 验证
4.1 仿真 I2C总线分析器主要有主机写操作、读操作和作为从机写操作、读操作功能。采用 Verilog HDL语言建立测试平台,联合 ModelSim完成功能和时序验证。
图 3波形验证了主机向从机发送地址和写数据的过程:发送 7位地址 0x40h和写控制字0,即0x80h、8位数据 0xa8h。在 I 2C总线上,首先产生起始条件,接着发送从机地址和写控制信号,采样响应信号后再发送数据,响应后产生停止条件。由下图的波形分析,主机能正确的发送地址和数据,应对从机响应。
下面测试作为从机接收数据,检测I 2C总线信息,探测起始条件,接收从机地址和R/W,地址不同无响应,地址相同产生响应信号,并开始接收数据。I 2C总线分析器的地址定义为0x50h。仿真波形如图 4所示。由上图的波形说明设计能够很好完成作为从机的功能。
图 5显示了由逻辑分析仪得到的结果。I 2C总线分析器作为主机很明显能够驱动总线,向从机发送从机地址、命令和数据,符合对 TMS8083应用中传输数据描述,能进行正确通讯。
5 总结
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~