微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP与CPLD的I2C总线接口的设计与实现

基于DSP与CPLD的I2C总线接口的设计与实现

时间:04-14 来源:互联网 点击:

I/O控制,因此只能通过精确的计数器定时和读/写使能信号共同判别控制。

读/写使能信号WR_EN/RD_EN也象EN那样由触发产生,因此也要用同样的方法判别。

②同步时钟的产生。

从图2中可以看到,数据在同步时钟的高电平脉冲时必须保持稳定,如果此时发生变化将会被视为一个控制信号,而通信也会被中断。因此,同步时钟的高电平脉冲一定要在有效数据的中间出现。而所需的控制信号必须在同步时钟正脉冲的时候出现。

③对数据总线进行三态设置。 因为SDA和DSP_DATA都是双向数据线,在写SDA和DSP_DATA的进程中必须设置高阻态,否则会出现数据线状态"不确定"。

2.3 DSP与CPLD的接口模块

根据DSP的时序,DSP与CPLD之间必须根据双方(ADSP21992和PCF8583)的时序制定一个握手协议。当读程序时,由于I2C总线协议只能支持最高400kbit/s的传输速率,而DSP的同步时钟可达几十兆赫。因此,DSP必须等到I2C核把PCF8583的数据读到CPLD后才能获得正确的数据(这里可以通过设立一个忙标志来实现)。而当写程序时,为了节约CPLD的资源(数据缓存特别占用资源),可以设置DSP定时输出数据给I2C核,让I2C核的一次只送一个数据。

2.4 硬件设计

此I2C核可外挂多个带有I2C总线接口的芯片,可以通过发送不同的器件地址来选择。SDA和SCL线必须接上拉电阻。此外,同步时钟不能太高,否则会影响数据传输的稳定性。

2.5 时序

(1)I2C核时序

以写为例,I2C核时序如图5所示。

(2)PCF8583时序

PCF8583的数据是8bit一个存储单元,共256个字节,所以只需要8位地址,而且器件本身有两种寻址方式:一种是从指定地址开始递增寻址,另一种是从首地址开始递增寻址。两种寻址方式的时序是不一样的,如图6所示。


3 实现方法

本系统是选用ALTERA公司CPLD7000S系列EPM7128S芯片,并基于MAXPLUSII开发的。I2C核采用VHDL语言编写,使用SYNPLIFY 编译、综合,用AHDL绘成图表,用MAXPLUSII仿真和布局。DSP采用VISUAL DSP++2.0编写。最后分别通过JTAG口下载到芯片并联机调试成功。

随着DSP芯片和2C通信方式的广泛应用,它们之间的接口问题必须得到解决。本文提出的解决方案具有非常好的可移植性和产品开发能力。本系统既可以作为一个单独的系统运行,又可以作为一个通信模块植入一个大系统中,而其中的I2C核又是一个可移植IP核。利用CPLD的逻辑可编程性,还可以在其剩下的资源中再开发所需的逻辑器件,既能降低硬件成本又能大大减小系统主板的面积,使电路的设计更具灵活性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top