历史上的今天
返回首页

历史上的今天

今天是:2025年06月16日(星期一)

正在发生

2021年06月16日 | 用单片机实现基于I2C串行总线的音频处理系统

2021-06-16 来源:eefocus

目前,消费类电子产品(如彩电、音响等)的功能多样化使得控制电路变得更为复杂。而Philips公司推出的集成电路芯片间总线I2CBUS(Inter ICBUS)是目前众多总线中最简洁有效、使用也为广泛的一种总线格式。I2C总线通常是以硬件来实现的,这就要求所选器件必须具有I2C总线接口,但目前广泛使用的MCS-51系列单片机并不具备I2C总线的专用硬件部分。本文结合笔者采用单片机8031实现对具有I2C总线接口的立体声音频处理芯片TDA7313的控制,介绍了I2C总线以及基于I2C串行总线的单片机应用系统的设计方法和程序。


1 I2C总线简介


1.1 I2C总线的组成


I2C串行总线是用双向数据线(SDA)和串行时钟线(SCL)两根信号线,在连接到该总线的器件之间传送信息。它属于多主控器总线,图1所示是其组成框图。总线上的每个器件均可设置一个唯一地址,然后根据所设的功能进行信息的发送或接收。除了作为发送器和接收器以外,在执行数据传输时,总线的器件还可以设定为主控器和被控器。通常由主控器启动总线上的数据传输,并产生数据传输所需的时钟信号。而被其寻址的其它器件均为被控器,这意味着总线上可连接多个有控制总线的器件。



I2C总线上的数据传输率为100 kbit/s,快速方式下可达400 kbit/s。连接到总线上的器件数仅受400 pF的总线电容的限制。同时,为了避免总线信号的混乱,要求连接到总线上的各器件输出端必须是集电极开路或漏极开路,以便产生“线与”功能。I2C总线上的SDA和SCL线都是双向传输线,它们可通过一个电阻连接到正电源端,当总线处于空闲状态时,两条线均为高电平。


1.2 I2C总线数据传输格式


在I2C总线传输过程中,仅当总线空闲(SCL线和SDA线均为高电平)时,数据传送才能开始,此时总线上的任何器件均可以控制总线。图2所示是两种特定的开始和停止条件,其中当SCL线为高电平且SDA线由高变低时为开始条件(S);而当SCL线为高电平且SDA线由低变高时为结束条件(P)。在数据传送过程中,当SCL线为高电平时,SDA线必须是稳定的高或低电平才能使数据有效。只有当SCL线上的时钟信号为低时,SDA线的状态才能改变,且每位数据需一个时钟脉冲。所有数据都是按字节发送的,每次发送的字节数不限。每发送完一个字节,主控器释放SDA线(呈高电平)并由受控器下拉SDA线,从而使SDA线为稳定的低电平来作为有效应答位以表示传输成功,此时主控器必须产生一个与此位相应的额外时钟脉冲。



图3为I2C总线数据传输格式。其中第一部分为数据传输起始信号,即由此开始进行数据传送;第二部分为受控器地址,用来选择向哪个受控器传送数据;第三部分为读/写控制位,用于指示受控器的工作方式,0表示写,1表示读;第四部分是被主控器选中的受控器向主控器回传的确认信号;第五部分是所传送的数据,每传送一个字节数据,都要求有一个应答位;第六部分是数据传输的结束信号。



每个具有I2C总线接口的受控器件都有唯一固定的地址,当主控器发送数据时,I2C总线上挂接的受控器件都会将主控器发出的、位于起始信号后的8位地址信息与自己的地址进行比较,如果两者相同,则认为该受控器件被选中,然后按照读/写位规定的工作方式接收或发送数据。


2 I2C总线在单片机中的实现


本音频处理系统中所使用的IC控制芯片为TDA7313,它是具有音量、高低音调的左右平衡及前后混频调整的立体声音频数字处理器件,它的输入通道可以选择,并具有相应的外部响度调整函数以及I2C串行总线接口,因此可广泛应用于汽车音响和高保真系统中。TDA7313与单片机8031的连线和基本的管脚定义如图4所示。



由于单片机8031不具有I2C总线硬件接口,因此只能通过编写软件产生串行时钟信号。当系统传输数据时,先由单片机给出一个启始信号;接着送出器件TDA7313的7位地址及读/写控制位并等待应答信号;当收到应答信号后,系统根据访问要求进行相应操作。在实际操作过程中,一般都是通过CPU向TDA7313输入一连串的特定数字命令来实现对整个系统的音频处理,所以对TDA7313的操作主要是写操作。


推荐阅读

史海拾趣

Andersen Laboratories Inc公司的发展小趣事

在不断追求技术创新和市场扩张的过程中,AnalogicTech始终坚持多元化发展战略。公司不仅在LED背光液晶电视市场取得了显著成绩,还积极拓展其他领域,如智能手机、平板电脑等消费电子产品市场。通过不断推出创新产品和解决方案,AnalogicTech成功实现了市场的多元化发展,为公司的长期稳定发展奠定了坚实基础。

这五个故事展示了AnalogicTech公司在电子行业中发展起来的关键阶段和重要举措。凭借其卓越的技术创新、全球化的运营策略、高效的物流配送体系以及市场扩张与多元化战略的推进,AnalogicTech成功地在竞争激烈的电子行业中脱颖而出,成为了一家备受瞩目的企业。

Ark-Les Connectors公司的发展小趣事

Ark-Les Connectors公司从一家小型电子连接器制造商起步,凭借其不断的技术创新,逐渐在行业中崭露头角。公司研发团队致力于开发高性能、高可靠性的连接器产品,满足日益增长的电子设备连接需求。通过对材料科学的深入研究,Ark-Les成功研发出新型耐高温、耐腐蚀的连接器材料,大大提高了产品的使用寿命和稳定性。这一创新不仅赢得了客户的广泛认可,也为公司带来了可观的市场份额。

统宇电研(Coilmaster)公司的发展小趣事

统宇电研公司成立于1995年,初创时期面临着重重挑战。当时,电子行业正值技术革新的关键时期,无源组件市场竞争激烈。统宇电研凭借对技术的敏锐洞察力和对市场趋势的准确判断,决定专注于高性能功率电感等无源组件的研发和生产。公司团队夜以继日地攻克技术难题,不断优化产品设计,最终成功推出了一系列具有竞争力的产品,为公司赢得了市场的认可。

AEL [AEL Crystals Ltd]公司的发展小趣事

AEL Crystals Ltd公司成立于1960年,最初专注于石英频率控制元件的研发与生产。在创立初期,公司面临着技术挑战和市场竞争的双重压力。然而,凭借创始人的远见卓识和团队的不懈努力,AEL Crystals逐渐在石英频率控制领域站稳了脚跟。公司通过持续改进生产工艺和提高产品质量,逐渐赢得了客户的信任和支持。

Analog Microelectronics GmbH公司的发展小趣事

AEL Crystals一直注重技术创新和产品升级。公司拥有一支专业的研发团队,致力于开发具有竞争力的新产品。通过不断引进新技术和新材料,AEL Crystals成功推出了一系列具有高性能和稳定性的频率控制产品。这些产品不仅满足了客户的多样化需求,也进一步巩固了公司在行业内的领先地位。

Davico Industrial Ltd公司的发展小趣事

AEL Crystals Ltd公司成立于1960年,最初专注于石英频率控制元件的研发与生产。在创立初期,公司面临着技术挑战和市场竞争的双重压力。然而,凭借创始人的远见卓识和团队的不懈努力,AEL Crystals逐渐在石英频率控制领域站稳了脚跟。公司通过持续改进生产工艺和提高产品质量,逐渐赢得了客户的信任和支持。

问答坊 | AI 解惑

用PADS2007 选择管脚对pin pair 为什么有的不能选上呢 ?

用PADS2007 选择管脚对pin pair 为什么有的不能选上呢?哪位大侠遇到过这种问题, 请帮忙指点一下。…

查看全部问答>

时尚手机变手镯 Dial Phone美丽创意

由Jung Dae Hoon设计的一款前卫的手镯式概念手机Dial Phone,外形时尚,设计师将手机设计成环形,可以像手镯一样戴在手腕上,相当有创意。该手机的数字键通过手镯边缘透射出来,然后根据手镯上对应的按键拨号,接听来电应该是要靠外接耳机来协助完 ...…

查看全部问答>

模拟电梯控制器(仅供参考,不可抄袭)

一、 模拟电梯控制器 设计基于单片机的电梯模拟器,模拟4层电梯运行,具体要求如下: 1. 采用51系列单片机 2. 采用直流电机驱动  3. 采用光电方法实现楼层精确对位 4. 采用键盘模拟电梯楼层选择(1/2/3/4, ...…

查看全部问答>

ARM的循环问题

小弟刚接触ARM汇编 现在想写个程序求2^n 比如求2^10 我写的代码如下       MOV R0, #10       MOV R1, #1 loop       SUB R0, R0, #1       MUL R1, R1, 2 ...…

查看全部问答>

跪求2007年B题无线识别装置

跪求2007年B题无线识别装置,有没有由西安电子科技大学,作者是闵彪 谢胜祥 周涛,赛前辅导老师:谢楷 的相关资料,跪求了!!!!!!!!!!,感激不尽啊…

查看全部问答>

使用Tornado,启动VxSim时出现错误

启动VxSim时,出现     Connecting to target agent...     Error: rpccore backend client Timed out failed. 请问,这个问题我应该如何解决??…

查看全部问答>

MSP430系列单片机接口技术及系统设计实例

简介:本书详细地介绍了TI公司的MSP430系列单片机。全书共分5章。首先讲述MSP430全系列所涉及的片内外围模块的功能、原理、应有及各个系列的模块构成情况;其次讲述MSP430的开发环境及如何使用汇编语言、C语言进行程序设计;最后例举大量的以MSP430为 ...…

查看全部问答>

是不是处理器的IO口都应该接上电阻(120R~470R)再接外设呀??

是不是处理器的IO口都应该接上电阻(120R~470R)再接外设呀??…

查看全部问答>

自己刚做的底版,协议栈不能运行,请大伙帮忙看看,先谢过了

之前调 系统层 程序的时候,用的是别人的 核心板+底板。现在需要一些其他功能,于是自己按照原来的底板的,又自己制作了一张底板。但是发现在新底板上,程序运行是有问题的。比如说sapi.c中SAPI_Init函数中osal_set_event(task_id, ZB_ENTRY_EVENT) ...…

查看全部问答>

分享MSP430单片机ADC12模块 序列单次采集的 应用范例

转 //****************************************************************************** //MSP430F149 ADC12模块+串行通讯的实验程序 //使用ADC12采集实验,将采集到数据送向PC.(序列单次采集) //P3.4为发送,P3.5为接收 晶体使32768HZ/8MHZ. 串 ...…

查看全部问答>