当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:随着I2C总线应用的越来越广泛,其电路简单,编程方便,易于系统标准化与维护的优点也日益显现出来。 文章在分析了I2C总线的基本概念和工作原理的基础上,重点介绍了基于Wolfson音频SoC的I2C总线接口的系统结 构和程序设计方法。

引言

I2C(Inter-IntegratedCommunication),单线是Philips公司开发的一种高效、简单、双向、两线制同步串行总线,它仅需要两根线(串行数据线SDA和串行时钟线SCL)即可为连接到总线的设备提供简单有效的数据交换方式该总线可将各电路分割成各种功能的模块,并进行软件化设计,各个功能模块电路内部都集成有一个I2C总线接口电路,故可连接在总线上,从而很好地进行众多功能模块与MCU之间的输入输出接口,并使连接方式变得简便,同时可灵活地实现在线配置。本文采用VerilogHDL设计了一个FC总线的控制模块,该模块能够实现FC的所有功能。此外,该模块可作为一个软核来方便地嵌入到音频SoC系统中,这就是当前非常流行的两线总线。

1 I2C总线原理

通常将FC总线主从机之间的一次数据传送称为一帧,一帧数据一般由启动信号、地址码、若干数据 字节、应答信号位以及停止信号等组成。SDA SCL都通过一个电流源或者上拉电阻连接到正的电 源电压,图1所示是rc总线上标准模式器件和快速 模式器件之间的连接电路,由图1可见,当总线空闲 时,这两条线路都是高电平,连接到总线的器件输出 级必须是漏极开路或者集电极开路才能执行“线与” 的逻辑功能。串行8位双向数据传输位速率在rc 总线的标准模式下,其速率可达100 Kb/s,快速模式 下可达400 Kb/s,高速模式下可达3. 5 Mb/s。

基于Wolfson音频SoC的I2C总线接口设计

I2C总线可构成多主和多从系统。在系统结构中,系统通过硬件或者软件仲裁获得总线控制权。在应用系统中,I2C总线多采用主从结构。I2C总线上的设备寻址由器件地址线决定,与总线相连的每个器件都对应一个特定的地址,同时采用软件寻址方式,并且可以通过访问地址最低位来控制W/R方向。I2C总线的数据传输格式如图2所示。

基于Wolfson音频SoC的I2C总线接口设计

I2C总线上发送数据的操作(针对WM8731/8731L类似的设备)过程一般可为4步:

第一步,启动START信号,接着写一个字节的设备地址,地址字节的高7位是设备有效地址,地址字节的最低1位代表准备写(低电平),然后等待ACK应答;

第二步,应继续写一个字节的rc设备内部数据访问地址,然后等待发出ACK;

第三步即可开始发送数据,发送的数据可以是一个字节,也可以连续发送N个字节,每发送完一个字节的数据,都需要等待一个应答ACK信号;

最后发送的是一个STOP信号,以结束发送操作。

在I2C总线上接收数据的操作(针对WM8731/8731L类似的设备)过程如下:

第一步,也是启动START信号,接着写一个字节的设备地址,地址字节的高7位是设备有效地址,地址字节的最低位代表准备写(低有效),然后等待ACK应答;

第二步,继续写一个字节的I2C器件内部数据访问地址,并等待ACK;

第三步,再次启动START信号,此时再写一个字节的设备地址,这个设备地址字节的最低1位若为高电品,则代表准备接收数据;

第四步,开始接收数据,数据可以是接收一个字节,也可以连续接收N个字节。在接收前面的N—1个字节后,每接收一个字节数据,都要产生一个ACK;

第五步,在接收最后一个字节数据前停止控制器生成ACK信号,然后等待最后一个字节的数据就绪后,再读取;

最后,发送一个STOP信号,以停止接收操作。

2 I2C总线的接口设计

2.1  总体内部架构设计

图3所示为rc总线接口中ip核的总体结构。该接口主要包括时钟发生器,字节命令控制器、位命令寄存器、数据I/O移位寄存器、发送与接收寄存器等几部分。

基于Wolfson音频SoC的I2C总线接口设计

时钟发生器可用于产生时钟使能信号,该信号可触发位命令控制器的所有时钟同步操作。

字节命令控制器承担着I2C接口字节数据的传输任务。它从I2C寄存器中的命令寄存器中读取操作命令。这些命令可通过设置该寄存器中的某些位来完成,并且都是以字节为单位。

位命令寄存器负责总线上实际的数据传输工作,包括START和STOPo这些操作可通过控制SCL和SDA线来实现。

数据I/O移位寄存器中存储着当前数据传输所需要的数据。如果是读操作,移位寄存器将接收从SDA线上的逐位数据;如果是写操作,移位寄存器则将该数据逐位发送到SDA线上。

2.2 I2C接口控制器

I2C总线是通过二根线来连在器件之间进行通信的总线,它可根据地址识别每个器件。每个I2C设备都有自己固定的硬件地址。对于芯片WM8731/WM8731L的FC总线它的两个从地址为001_1011和001_1010oWM8731设备的控制操作可以描述为:首先发出该设备地址,和该设备建立连接,再向该设备读或写2个字节的数据,最后发出停止信号以结束I2C通讯。

对WM8731的控制实际上就是控制FC设备读/写数据,本文不涉及读数据而只介绍部分rc总线写数据的关键Verilog程序设计。

2.3  启动与停止程序

检测通讯启动与停止的Verilog程序如下:

always@(posedge mclk or negedge reset_n)

基于Wolfson音频SoC的I2C总线接口设计

在主机方式下,完成启动与地址信号发送后,即开始发送数据。发送数据时,并串数据在SCL的下降沿移位,这样可保证SCL高电平时SDA数据的稳定。发送的进程由WR信号和从机的应答信号启动。为了保证时序正确和控制的可靠,软件程序可采用有限状态机来设计。其Verilog程序如下:

基于Wolfson音频SoC的I2C总线接口设计

基于Wolfson音频SoC的I2C总线接口设计

基于Wolfson音频SoC的I2C总线接口设计

3 仿真结果

设计时,可以釆用Xilinx公司的集成开发工具ISE9.0,仿真工具使用SYNPOSYS的VCS仿真软件,图4所示是其仿真波形,由图可见,该设计是正确的。整个设计可以采用Verilog语言描述在LINUX平台上完成系统的仿真、综合、映射、布局。在得到正确的仿真结果后,通过器件编程(即通过编程器将设计下载到实际芯片中)来进行系统调试,直到最后实现。

基于Wolfson音频SoC的I2C总线接口设计

4  结语

本文介绍了一种简易的音频soc的I2c总线接口的软件设计方法。该设计可以作为一个ip核方便地嵌入音频SoC的系统设计中,以用于对具有I2c接口的芯片ic芯片进行数据读写。目前,本设计已经在实践项目中投片,并已经通过实际系统的测试。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭