



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、应用McBSP实现I2C总线控制器摘 要:提出了在TMS320C6000系列DSP上应用McBSP实现I2C总线接口协议的方法,使DSP可以接入其他需要I2C总线配置的智能器件,系统结构简单,硬件设计容易,资源消耗小。 关键字:I2C总线 GPIO McBSP DSP 1 引 言TI公司的TMS320C60001,2系列是高性能的DSP,可广泛的用于XDSL、无线基站、数字图像处理等方面。在进行数字图像处理时,通常需要视频解码器诸如SAA7111A之类的模拟视频前端,而大多数的视频解码器进行初始化通常是通过两线的I2C总线接口,但是现在的DSP和MCU大部分都没有I2C总线接口,在这种情况下我
2、们可以应用两个通用的IO线,通过软件的方法来模拟I2C总线的协议,继而完成I2C总线的接口。在TMS320C6000中通常都有两个或两个以上的多通道缓冲串行接口McBSP,McBSP不仅可以配制成串行接口还可以独立的配制成通用的输入(GPI)、输出(GPO)和输入输出端口(GPIO)。 I2C3串行总线是用双向数据线(SDA)和串行时钟线(SCL)两根信号线,在连接到该总线的器件之间传送信息。总线上的每个器件均可设置一个唯一地址,然后根据所设的功能进行信息的发送或接收。除了作为发送器和接收器以外,在执行数据传输时,总线的器件还可以设定为主控器和受控器。通常由主控器启动总线上的数据传输,并产生数
3、据传输所需的时钟信号。而被其寻址的其它器件均为受控器,这意味着总线上可连接多个有控制总线的器件。 I2C总线上的数据传输率为100kbits,快速方式下可达400kbits。连接到总线上的器件数仅受400pF的总线电容的限制。同时,为了避免总线信号的混乱,要求连接到总线上的各器件输出端必须是集电极开路或漏极开路,以便产生“线与”功能。I2C总线上的SDA和SCL线都是双向传输线,它们可通过一个电阻连接到正电源端,当总线处于空闲状态时,两条线均为高电平。 2 硬件设计I2C总线的硬件设计非常方便,只需要将SDA 和SCL连接即可,在I2C总线上只允许有一个主控器,其余的都是受控器。当节点的个数大
4、于了400pF的限制时,可以通过总线驱动器如82B715来进行总线扩展。连接见图1 3 软件设计 3.1 McBSP的配置 I2C总线应用McBSP的两个管脚,首先禁用McBSP功能以便将McBSP的管脚配制成GPI、GPO、GPIO。本文应用McBSP0的CLKX0作为I2C总线的SCL,FSX0作为I2C总线的SDA,McBSP的DX,DR,通常不能配置成I2C的SDA,因为SDA是双向的,而DX,DR只能配制成单一的输入或输出。配置代码如下:McBSP0_SPCR=0x00000000;/McBSP0 发送和接收复位McBSP0_PCR=0x00003F00;/ McBSP0的所有的管脚
5、都配置为GPIO,CLKX0和FSX0为输出对于主机来说SCL总是输出,所以它的方向是保持不变的,SCL应该输出0,1作为接口的时钟,为了实现此功能我们定义一个宏(MACROS):SET_SCLHI( ) SET_SCLLO( )#define Set_SCLHi( ) McBSP0_SPSA = PCR; McBSP0_SPSA |= 0x00000002#define Set_SCLLo( ) McBSP0_SPSA = PCR; McBSP0_SPSA &= 0XfffffffdI2C总线的数据线SDA当写的时候是输入,读的时候是输出。为了改变SDA的方向可以定义Set_SDADirOu
6、t( ) Set_SDADirIn( )#define Set_SDADirOut( ) McBSP0_SPSA = PCR; McBSP0_SPSA | = 0x00000800#define Set_SDADirIn( ) McBSP0_SPSA = PCR; McBSP0_SPSA &= 0xFFFFF7FFSDA应该依照数据位的0,1来变化,为了输出1,0定义Set_SDAHi( ) Set_SDALo( )#define Set_SDAHi( ) McBSP0_SPSA = PCR; McBSP0_SPSA |= 0x00000008#define Set_SDALo( ) McBS
7、P0_SPSA = PCR; McBSP0_SPSA &= 0xFFFFFFF7定义好之后可以模拟I2C总线的协议进行传送,例如在SAA7111A上的I2C总线接口是用来对SAA7111A进行初始化用的,SCL的频率可以从0到400KHZ,为了控制SCL的频率可以应用DSP的TIMER0来控制。当CPU为100MHZ时:TCR = 0x00000010; / 停止 TIMER0 and TDDR=0PRD = 6249; / TIMER0 rate = CPU-Frequency/(PDR+1) = 100MHz/6250 = 16kHz.TCR &= 0xFFFFFFEF; / 开始 TIM
8、ER0 32 I2C总线协议编程 321 I2C总线协议读写数据流的编程 为了进行I2C总线的通讯,我们选用每位数据流4帧(FRAMES),以便延迟和噪声干扰最小,4帧每位的数据流保证了SDA不会变化在SCL的边沿处,仅仅允许数据变化在FRAME0,读仅在FRAME2。如图2所示I2C总线的写程序如下void I2CWrite(unsigned int WriteBit)Set_SDADirOut( ); / 设置SDA为输出switch(FrameCount)case(0): / 起始帧Set_SCLLo( ); / SCL 为 0if (WriteBit = 0) / SDA = Writ
9、eBitSet_SDALo( );elseSet_SDAHi( );break;case(3): / 第4帧Set_SCLLo( ); / break;default: / 在第2,3帧Set_SCLHi( ); / SCL 为 1FrameCount += 1; / 帧计数if (FrameCount 3) FrameCount = 0; BitIndex = (BitIndex 1); / 准备下一个发送位I2C总线的读程序与写程序很类似,只需要改变SDA为输入即可。 322 I2C总线的开始位和停止位的编程 I2C总线的开始位和停止位有3帧产生,在I2C总线传输过程中,仅当总线空闲(SC
10、L线和SDA线均为高电平)时,数据传送才能开始,此时总线上的任何器件均可以控制总线。其中当SCL线为高电平且SDA线由高变低时为开始条件;而当SCL线为高电平且SDA线由低变高时为结束条件。如图3所示开始位:void I2CSTA ( ) / I2C 开始位Set_SDADirOut ( );/定义SDA为输出 switch ( FrameCount )case (1): / 第2帧Set_SCLHi ( );Set_SDALo( );break;case (2): / 第三帧Set_SCLLo ( );Set_SDALo( );break;default: / 第一帧Set_SCLHi (
11、);Set_SDAHi ( );FrameCount += 1; / 帧计数if ( FrameCount 2 )FrameCount = 0;BitIndex = 0x0080; / 定义的低8位停止位的编程方法只需要按照上面所说的将SCL线为高电平且SDA线由低变高即可。323 I2C总线的数据格式起始位受控器件地址读写控制位0/1应答位数据应答位停止位 I2C总线数据传输格式3如图4。其中第一部分为数据传输起始信号,即由此开始进行数据传送;第二部分为受控器地址,用来选择向哪个受控器传送数据;第三部分为读写控制位,用于指示受控器的工作方式,0表示写,1表示读;第四部分是被主控器选中的受控器向主控器回传的确认信号;第五部分是所传送的数据,每传送一个字节数据,都要求有一个应答位;第六部分是数据传输的结束信号。每个具有I2C总线接口的受控器件都有唯一固定的地址,当主控器发送数据时,I2C总线上挂接的受控器件都会将主控器发出的、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》真题含答案详解【考试直接用】
- 安全文明施工组织设计内容
- 2025一建《水利水电工程管理与实务》考前十页纸(完整版)
- 2025年教师招聘之《小学教师招聘》试卷含答案详解(培优)
- 教师招聘之《小学教师招聘》题型+答案(考点题)附参考答案详解(夺分金卷)
- 押题宝典教师招聘之《幼儿教师招聘》通关考试题库及参考答案详解(培优a卷)
- 教师招聘之《幼儿教师招聘》综合检测提分附参考答案详解(预热题)
- 教师招聘之《幼儿教师招聘》考试综合练习含答案详解【能力提升】
- 2025年四川宜宾屏山县发展和改革局招聘编外聘用人员4人笔试备考题库及完整答案详解1套
- 2025江西吉安市青原区司法局招聘2人笔试备考题库及答案解析
- 2025年下半年安徽省港航集团有限公司所属企业社会公开招聘22名考试参考试题及答案解析
- 人教PEP版六年级英语上册全册教案
- 固废回收协议书范本
- 热压机说明书范文
- 企业创新体系建设课件
- 全文《中国式现代化》PPT
- 园林绿化景观施工组织设计概述
- Britax宝得适百代适儿童汽车安全座椅推车婴童用品全线产品介绍
- 10kV高压开关柜验收规范标准详
- 英才学院《机械工程测试技术》课件07振动的测试
- 生药学-绪论-第一章
评论
0/150
提交评论