基于Verilog HDL的I2C总线分析器
1 引言
在医疗保健、临床医学和医疗救护中,血氧、心电、血压、呼吸、脑电波等生理信号都是非常重要的指标。针对临床应用,已经报道了将血氧、血压等检测应用于咽喉、食管等体内循环 [1],提高了准确性和及时性[2],这种方法正处在研究阶段,I 2C总线分析仪可以扩展医疗监测仪实现包括体外循环的多种方法同时检测和比较。现在医疗仪器短缺,一台带 I 2C扩展接口的监测仪可实现多人同时使用,资源得到有效利用。可见,实时、准确记录各项人体基本体征参数,同时具有便携式特点的医疗监测仪对健康监护、检测技术和医学研究具有重大意义。如何扩展医疗检测仪的功能成为热点问题。
目前扩展检测仪接口的方法很多,多通道是最常用的方法,具有数据通道相对独立,有很强的抗干扰能力和设计复杂度优势,但体积较大,资源浪费多,不适合便携式处理。I 2C总线是一个工业标准同步串行数据通讯总线,被广泛应用在消费类电子和嵌入式系统产品中 [3],例如:数据转换器、EEPROM、传感器等等。相比现今流行的并口、SPI、USB等接口,虽然 I 2C有相对较低的带宽 [4],但功能多样化,广泛应用于信号处理器的控制接口设计。而且血氧饱和度有效信号基频在 1Hz左右,血压、呼吸、脑电波等生理信号的基频几十赫兹范围内。多种信号同时采集完全可以实现。同时应用I2C总线还有以下优点:一是各部分电路之间的连接变得非常简单,省去控制系统中的许多输入/输出接口,可靠性好;二是由于 I 2C总线具有多种工作模式,利用软件可以十分方便进行调整和测试,增加功能;三是 I 2C总线具有良好的扩展性,支持多主机通讯 [5]。本文描述了采用 Verilog HDL语言设计一种 I 2C总线分析器的硬件电路结构和它们主要特点,采用此设计可以实现多种传感器信号采集,方便实现与微处理器的接口设计,可重用性好,可以作为 IP核使用。
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器件使用,在被总线上主机识别后,接收或发送用户信息。
图 1显示了 I 2C总线分析器的硬件框图。采用 Verilog HDL语言描述,主要实现工作模式识别和I2C总线控制逻辑。采用层次化设计方法。硬件验证在 FPGA上实现。
3.1 控制信息模块和 I 2C状态机
这是 I 2C总线分析器和外部控制系统交换控制逻辑和状态信息的接口,决定着整个系统的功能。 I2C控制信息模块和状态模块产生总线上开始和结束状态请求,检测和报告总线信息(起始、停止、总线响应),产生 SCL脉冲信号,传输数据到SDA,控制两个FIFO(读和写存储器)。在模块中定义两个寄存器(系统控制寄存器 SYS_CONTROL和系统状态寄存器SYS_STAT)。
在控制寄存器中,最高位是初始化标识位,使系统进入等待状态;第 7位用于控制 I 2C总线产生起始状态;第 6位用于控制总线产生停止状态;第 5位控制读、写 FIFO存储器,低电平定义使用FIFO读存储器,高电平定义使用 FIFO写存储器;第 3、4位用于总线工作模式选择;第 2位用于主、从模式选择;最后一位作为总线传输响应。
状态寄存器反映工作状态。功能描述如下:最高位选择主、从机模式,第 7位标识总线状态,第 6、3位标识 FIFO存储器状态,第 5位标识
- 基于SystemC 的系统验证研究和应用(08-10)
- SoC:IP是新的抽象(10-24)
- 从传统电路检查到先进可靠性验证的最佳实践(07-03)
- 基于Verilog语言的等精度频率计设计(08-14)
- Verilog串口通讯设计(06-06)
- Verilog HDL 设计模拟(06-06)