I2C总线最早是由Philips公司提出的串行通信接口规范,标准I2C总线只使用两条线通信,能将多个具有I2C接口的设备连接,进行可靠的通信,连接到同一总线的I2C器件数量,只受总线最大电容400pF的限制,而且最高通信速率可以达到3.4Mb/s,由于I2C接口简单,使用方便,被很多芯片采用,成为一种广泛应用的接口[1]。DSP即数字信号处理器,是一种广泛应用的嵌入式处理器,主要应用是实时快速地实现各种数字信号处理算法,目前,国际主要的
I2C总线最早是由Philips公司提出的串行通信接口规范,标准I2C总线只使用两条线通信,能将多个具有I2C接口的设备连接,进行可靠的通信,连接到同一总线的I2C器件数量,只受总线最大电容400pF的限制,而且最高通信速率可以达到3.4Mb/s,由于I2C接口简单,使用方便,被很多芯片采用,成为一种广泛应用的接口[1]。
DSP即数字信号处理器,是一种广泛应用的嵌入式处理器,主要应用是实时快速地实现各种数字信号处理算法,目前,国际主要的DSP供应商是TI公司,其TMS32系列产品占据了DSP市场近一半的份额,为了用户能方便快捷的进行系统的开发与集成,TI公司在一些型号的DSP中集成了I2C通信模块,本文以TMS320C6713为例,使用TI公司DSP开发工具CCS2.2提供的CSL(Chip Support Lib,片级支持库)配置I2C模块。
图像采集和处理是DSP应用的一个重要领域,本文结合作者开发的基于DSP的图像采集、处理系统、以CMOS图像采集芯片OV7620为例,介绍DSP芯片通过I2C模块对I2C设备进行配置的过程。
1 TI公司带I2C接口的DSP
在嵌入式系统开发过程中,如果处理器没有I2C接口而系统中又存在I2C器件时,通用的办法是利用处理器的两根引脚分别模拟SDA和SCL信号,并利用程序模拟接口,这种方法的通用性好,灵活可靠,但是移植性差,不同型号的处理器需要不同的程序,尽管在网上能够下载到这类程序的源代码,但是进行程序移植仍会浪费开发人员大量的时间,而且使得程序变得庞大,不易维护。
为了用户能方便快捷地进行系统的开发与集成,TI公司在一些型号的DSP中集成了I2C通信模块,例如TMS320C6713、TMS320C6416、TMS320C5509等。
TMS320C6713是一款高性能浮点DSP,内部集成2个I2C接口:I2C0和I2C1。其中,I2C1的引脚与McBSP1(Multichannel Buffered Serial Port 1,多通道缓存串口1)的引脚复用,默认情况下是激活McBSP1,使用I2C1必须将寄存器DEVCFG的最低位置1[2,3]。I2C模块的结构如图1所示。