中频解调电路中的I2C总线接口电路
上电后,状态机的初始值被置位为全0。HL91作为移位寄存器输入端的置位端将移位寄存器的输入端置0。当初始信号到来时,start信号变为1,此时状态机的状态变为100,开始传送寻址字节;当8位地址传送完毕后,假设为写状态,此时Qd8变为高电平,应答位HL22由高电平变为低点平,状态机的状态变为110。HL91变高将移位寄存器的输入置0,响应结束后,应答位由低电平变为高电平,状态机的状态变为010,此时开始传输数据。
I2C总线开始工作后,主控器便发送寻址字节给移位寄存器,在移位寄存器将7位串行地址并行移出,且与地址寄存器的从地址进行比较,当地址相同时,Glll变为1,寻址成功,此时应答信号HL22变为0,并告知主控制器。在寻址成功后,如果为读状态,则在传完该字节之后,产生应答信号,状态机变为100,移位寄存器控制端C5变为低电平,读状态寄存器的控制端C6变为高电平,读状态寄存器读入内部总线状态。其中,QI20是与读/写有关的控制端,响应结束后,状态机状态变为110,此时,C5变为高电平,C6变为低电平,读状态寄存器将存储的8位状态位并行传给移位寄存器;移位寄存器将状态串行移出,发送给主控制器;主控制器接收到8位状态位后,发送非应答信号给接收器,使它释放数据线;响应结束后,主控制器产生结束信号,结束数据传送。
如果为写状态,在接收器产生应答信号后,主控器将发送子地址给移位寄存器。根据输出模式寄存器功能的不同,分别对应3组不同的子地址。在状态机与控制逻辑的作用下,子地址具有自动加1功能,所以在读写多字节时,可以实现自动操作,加上后面的2/4译码器,每次只选通1路输出模式寄存器,如图7所示。
在所有数据发送完毕后,接收器发送应答信号给主控制器,响应结束后,主控制器发送停止信号(P),结束数据传送。
3 仿真结果
通过VHDL的程序编写,对I2C模块进行了分析综合,得到如图8、图9的仿真结果。
在写状态时,寻址位后的读/写位为0,C6一直为低电平,即读状态寄存器不工作,在开始后的第8个时钟,移位寄存器将SDA的数据并行移出,第9个时钟时,应答位HL22变为低电平。在读状态时,当传完7位寻址位和“1”方向位时,C5变为低电平,C6变为高电平,读状态寄存器工作,可将内部总线状态读进来。
在读/写2种状态下,I2C控制模块都能很好地实现I2C总线的开始、停止、读、写、响应等功能,仿真结果正确,完全符合I2C总线标准和电路预期的要求。
4 结 语
目前,I2C总线已作为一种标准广为人们接受,除了带有I2C总线的单片机和一些常用的外围设备器件,在电信、电视、音像等产品中都有成套的I2C总线器件。
随着大量串行数据的传输,I2C总线的传输速率已提升为高速模式,可达到3.4 Mb/s,寻址范围也由原来的7位扩展为10位,这样被控器的地址数量约增加了10倍。
- 电源设计小贴士 1:为您的电源选择正确的工作频率(12-25)
- 用于电压或电流调节的新调节器架构(07-19)
- 超低静态电流电源管理IC延长便携应用工作时间(04-14)
- 电源设计小贴士 2:驾驭噪声电源(01-01)
- 负载点降压稳压器及其稳定性检查方法(07-19)
- 电源设计小贴士 3:阻尼输入滤波器(第一部分)(01-16)