当前位置: 首页 > 技术资料 > I2C接口在音频控制器中的实现

I2C接口在音频控制器中的实现

QooIC.com 新闻出处:电子市场 | 发布时间:2010/11/18 14:51:52

  0 引言


  音频控制器可用于汽车音响、AV环绕视听音响、电脑周边多媒体喇叭以及其它音响相关的应用。将I2C总线接口集成于音频控制器片内,则无需单独设计接口电路,硬件电路简单,容易实现。


  I2C(In tel 一IntegratedC ircuitBu s)总线是由飞利浦公司开发的一种简单、双向二线制同步串行总线。它可与连接在总线上的器件传送信息。在连接到总线的器件间传递信息每个器件都有一个唯一的地址识别,发送到数据线上的每个字节为8位,每次传输可以发送的字节数量不受限制,每个字节后跟一个响应位。每个连接在总线上的器件都以唯一的地址寻址,建立简单的主1从关系,并且每个器件(主队)都可以作为发送器和接收器。


  本文设计的接口电路中IZC总线包括申行数据SDA线和串行时钟SCI线,SDA和SCL都是双向线路,都通过-个电流源或上拉电阻连接到正的电源电压,当总线空闲时这两条线路都是高电平。本系统的选通地址为88H。


  1 I2C接口设计


  系统主要有两大部分:功能实现部分和控制信号部分。


  功能实现部分要实现将SDA线中串行输人的数据转换为有效的控制信号,需要经过三个步骤:首先将SDA总线中的8位申行数据转换为并行数据,然后根据数据信息选择声道,最后译码输出;控制后续电路中的信号。


  控制信号部分要保证处理数据过程中满足I2C总线要求,这就要求正确的判断开始、结束信号和地址信号,准确地产生响应、清零、输出控制信号。


  由此分析可以设计出电路框图如图1所示。整个系统包括7个模块:S/A (Series/Abreaat)模块,ADD(Address Opinion)模块,SP(Stste Pause)模块,ACK模·块,(S(Channel Select)模块,LCO(left Coding Output)模块和RCO(Rigfit Coding Output)模块。fC总线串行输入的SDA和SCL经过这个控制接口产生的并行信号从LCO和RCO输出,分别控制左右两个声道电阻网络的分压,从而控制音量的变化。


  本文设计的I2C接口电路工作过程可以包括四个阶段:


  第一阶段 ,开始阶段。时钟为高电平,数据下降沿,电路的SP模块便产生一个信号给ACK模块。


  第二阶段 ,地址判断阶段。该阶段数据只在时钟低电平发生跳变,开始信号之后,地址位的数据如果满足88H,则本系统被选中工作,如果开始信号之后的8位数据不满足88H,则本系统未被选中。


  第三阶段 ,数据传输阶段。该阶段数据只在时钟低电平时发生跳变,在每个数据传输完毕时有一个等待时间,在这个等待时间里,功能实现部分产生有效的控制信号以产生0-79dB的音频控制信号,控制信号部分将总线拉低并将触发器清零,以等待下一个数据进人系统。


  第四阶段,数据传输完毕,结束阶段。此时,时钟为高电平,数据出现上升沿。


  下面围绕这四个阶段实现各个模块,并利用ca-dence的spectre工具对各个模块进行仿真。


  2 模块电路设计


  2.1 SP(StatePa use)模块设计


  SP模块设计的目标是区分开始结束信号与传输数据和地址,首先找出开始结束时刻时钟数据位与传输时刻时钟数据位的差别。开始时刻时钟为高电平,数据为下降沿,结束时刻时钟为高电平,数据为上升沿。传输数据时,数据只在时钟低电平发生跳变。从而知道开始结束时刻时钟等待数据的变化,传输数据时刻数据等待时钟的变化。


  那么在这个模块中可以将时钟作为触发器的数据愉入端,数据作为触发器的时钟端,这样就可以判断出数据的跳变沿。又由于开始结束时刻数据跳变方向相反,所以可以在两个触发器时钟端之间加一个反相器,使两个触发器分别判断开始和结束,而不会同时工作。在此基础上设计电路框图如图2所示。


  触发器 A ,B 都为上升沿触发。上电Ana为高电平,A,C,D清零,触发器A的Q为低电平乃为高电平,则C,D的R端都为高。


  开始信号进来时,SCL为高电平,等SDA出现一个上升沿,则触发起A的Q精出为低电平刀输出高电平则D的S精出高电平,又由于触发起A的Q为低电平,故E输出为高电平,从而得出开始时SSO为低电平。


  传输地址或数据的过程中SCL为低电平时SD才会发生翻转,故触发起B始终处于清零状态,于是触发器B的心输出高电平,而Ano始终为高电平,A只有在SDA出现上升沿时才会有输出,且输出Q为高电平,从而得出E摘出为低电平,SSO为高电平。


  结束信号到来时,SCL为高电平,等SDA出现一个下降沿,则触发器B的Q输出为低电平,则E的输出为高电平,进一步得出SSO,为低电平SP 模块的日,ceae瞬态仿真结果如图3所示。


  自上而下的波形分别为:串行输人数据反相(SDA)、时钟(SCL)、开始结束判断结果(SSO), SCL高电平,SDA下降沿时,SSO为低。SCL高电平,SDA上升沿时,SSO为低,其他时刻SSO为高,满足PC接口对开始结束信号的要求。


  2.2 ACK模块设计


  这一模块要产生四个重要的信号:返回确认、清零、输出确认以及非地址确认。电路要想比较理想的工作,那么在收到开始信号和结束信号时应该产生清零信号,使触发器复位。在传输完8位地址后应该产生清零信号和返回确认信号。使得触发器复位。总线拉低,以等待下一个数据的传输。在传输完8位数据之后应该产生清零信号、返回确认信号和’输出确认信号,使触发器复位,总线拉低,同时输出数据。


  这样可以从整个传输过程中抽取出四个特殊的时刻:开始时刻,8位地址后的第9个时钟、8位数据后的第9个时钟、结束时刻。开始结束时刻在SP模块中已经可以判断出来,8位地址后的第9个时钟与8位数据后的第9个时钟可以通过ADR模块和CC模块加以区分。从而可以判断出ACK模块的输人信号包括SSO,Ad irsa,CH ,CPO。


  判断出输人输出端口后通过RS触发器和一些简单的门电路就能够实现功能要求,电路如图4所示。


  开始阶段 ,SSO为低电平,Adr为高电平,则①为低电平;上电cll信号为高电平,则②为高电平;于是ACK为低电平。由于SSO为低,所以R为低。③为低电平,B为高电平。也就是说,开始阶段,有清零信号,没有确认信号和输出信号。


  传输地址阶段。第1一8个时钟内,SSO为高电平,Adr为高,则①为低,则ACK为低。CH信号为高电平,则⑧为高电平,③为低电平,④为高电平,⑤为低电平,⑥为高电平,则R为高。B为高。地址传翰完毕并判断正确后,SSO为高电平,Adr为低,则①为高电平,又由于wait在传输地址的1一8八个时钟为高,第9个时钟为低,所以②保持一个时钟周期为高电平,则ACK在第9个时钟为高。R在第9个时钟高电平时为低,B为高。也就是说,传输地址阶段,没有清零信号,确认信号和输出信号。在地址传输完毕后,先返回一个确认信号,再返回一个清零信号,不返回输出信号。


  传输数据阶段,第1一8个时钟内,SSO为高电平,Adr为高,CH为高,则ACK为高,R为高,B为高。数据传输完毕后,SSO为高,Adr为高,CH为低,则ACK在第9个时钟为高,R在第9个时钟高电平为低,B在第9个时钟高电平为低。也就是说传输数据阶段,没有清零信号,确认信号和输出信号。在数据传输完毕后,先返回确认信号和物出信号,再返回清零信号。


  结束阶段 ,SSO为低Adr为高,CH信号为高电平,则ACK为低,R为低,B为高。也就是说,结束阶段,有清零信号,没有确认信号和箱出信号。


  ACK模 块 的specrte瞬态仿真结果如图5所示。


  自上而下的波形分别为sso,W苗t,Aderse,ACK,R,B。开始时R信号返回低电平,其他返回信号无效。传输完地址后,先返回ACK信号,再返回R信号,但不返回B信号。传输完数据后,先返回ACK和B信号,再返回R信号。结束时,只返回R信号,满足rC时序设计要求。


  2.3 其他模块设计


  S/A(Series/AbiEast)模块通过移位寄存方式实现,将8位申行信号转换为8位并行信号输出。每传递完一个数据,将返回一个响应信号,并将寄存器清零,以等待下一个数据。


  ADD(Adress Opinion)模块用一级与非门和一级或非门实现,只有在地址为SSH时输出才有效。需要注意的是如果传输的数据中也出现一个88H,该如何区分。先观察这两个S8H的不同之处,地址88H紧跟在开始信号之后,数据88H则不会跟在开始信号之后,那么只需要在与非门的输入端给一个非地址确认信号即可,使得判断地址时刻与非门开,其他时刻与非门关,这样就能实现功能。


  CS(Channel Select)模块,最终是要产生8种控制信号二OFF.静音、左声道一1dB、左声道一lOdB、右声道一1dB、右声道一lO B、双声道一1dB、双声道一lOdB,这a种控制信号是相互独立的,不能够同时有效。


  LCO (Left Coding Output)模块和RCO(RightG -oding Output)模块内部结构完全相同,通过CS模块控制进行译码输出,产生控制一ldB/阶、一lOdB/阶和静音的三路独立信号。产生的信号通过控制门电路来对电阻网络进行分压,最终实现0-一79dB的音频控制信号。


  3 系统仿真结果


  整个I2C接口电路仿真结果见图6所示。仿真使用的是cadence中的specae工具,采用的仿真模型为无锡上华的0.6mn double poly混合工艺spectre模型。设置上升时间为4ns,下降时间为5ns,通过结果可知电路满足I2C时序要求,能够准确地判断出开始、结束信号,并在地址和数据传输完毕后作出正确的响应。


  4 结束语


  本文设 计的I2C接口输出0-76dB接口两声道音量控制信号,配合电阻分压网络可以实现音量的精确控制。能自动排除无效信号。若地址信号与数据相同,也能够正确地加以区分。电路无延时,能满足设计要求。