几种最常用的串行数据传输总线(2)-I2C

2018-11-07 15:16:36 来源:电路设计技能
标签:

 

我第一次知道I2C总线是1995年,项目中用到电视机高频头(也叫调谐器、Tuner),能够方便买到的高频头要么是飞利浦(Philips)的,要么是日系厂商的,但日系厂商联系起来比较费劲。Tuner其实就是通过I2C总线送控制字来改变其本振频率(LO)选择你需要的频段,当时知道I2C的鼻祖就是飞利浦半导体(NXP-恩智浦半导体的前身),也是第一次使用MC34063这颗后来如同555一样扑街的开关稳压芯片,用来产生高频头所需要的12V DC。
 
典型的电视机调谐器,采用I2C来进行调谐
 
板子上的器件之间也需要Talk
器件和器件之间的也需要沟通信息,尤其是需要MCU/DSP等对其它外设进行控制的时候。工程界的大神们基于MCU/DSP开发了一系列的协议比如UART、USART、SPI、I2C、CAN等. . . .每种协议都有各自擅长的地方,也有其局限性,因此要做系统设计的硬件工程师就应该对每种接口协议有大概的认识(即便没有机会吃猪肉,也要知道各种猪是如何跑的),这样才能够帮助你在做方案选择的时候能够选用最合适的协议接口方式,这也是你需要阅读我写的文章的原因。
 
在同一个PCB板子上的不同器件之间进行通信最常用的有三种形式 - SPI、I2C和UART,上篇文章我们简单介绍了SPI,今天就来看看I2C,我们先看一下I2C最基本的一些特性,然后再跟其它的通信协议方式进行一下比较。 
 
两条通过上拉电阻吊在电源的线,上面可以挂多个器件进行通信
 
简约而不简单的I2C总线
I2C来自于英文inter–integrated circuit,有时也写为IIC,字面意思也可以理解为IC之间进行交流用的,跟SPI对比,I2C没有天生的主、从之分,也就是说挂在两根线(数据线SDA和时钟线SCL)上的所有器件都是生而平等的。这个协议最早由飞利浦半导体推出来,几年后Intel又弄了一个SMBus(系统管理总线)协议,其实基本跟I2C一模一样,算是其扩展吧,一丢丢的差别而已。 
 
I2C总线传输时序
 
有哲学家说 - 越是看起来简单的东西,背后处理的问题越复杂。I2C其实也是如此,虽然我们看到的是2根线能挂起一大串的器件,但就像一个没有了老师的课堂,没有一个好的管理机制一定会出现乱哄哄的局面,要让任何两个同学之间进行有序地交流,没有明确的协议是肯定会乱掉的。
 
最简单的情况就是在这个系统中有1主1仆,但如果有多个仆(从设备)呢?如果多个“从设备”不知道哪个是“主设备”呢?如果出现了多个“主设备”呢?如果一个“主设备”正由“从设备”获取数据,中途由于种种原因突然挂了怎么办呢?一个“从设备”正发着数据挂掉了怎么办呢?一个“主设备”获取了总线使用权用以数据的发送,在释放使用权之前崩溃了怎么办呢? 
 
这种看似非常简单的结构其实会遭遇各种可能
 
在实际的运行环境中会有各种意外导致系统出现问题,我们在学习使用I2C的时候一定要做到心中有数 - 简单的架构背后有着复杂的结构来保证这个协议的顺利执行,才能让其成为灵活、可扩展、鲁棒、极少管脚的串行通信方案。
 
示波器上捕捉到的I2C总线上的数据读取
 
关注与非网微信 ( ee-focus )
限量版产业观察、行业动态、技术大餐每日推荐
享受快时代的精品慢阅读
 

 

继续阅读
PCB设计中为什么尽量用地平面?
PCB设计中为什么尽量用地平面?

前面3篇关于去耦电容的文章引起了很多硬件工程师的兴趣,这期的直播课程中讲述了“电源、地、去耦电容”,感觉很多网友对于在PCB设计中如何处理“地”一样是一头雾水,网上太多的经验贴其实都让人消化不良,我觉得有必要对PCB上对“地”的处理再补充说明一下。

将来5G网络出现,我们手机还有用吗?
将来5G网络出现,我们手机还有用吗?

5G是一次重大的科技革命,引入了很多技术创新,不是在4G网络上修修补补。

去耦电容(3)- 电容该如何布局布线?
去耦电容(3)- 电容该如何布局布线?

前面两章讲述了电容在电源去耦中的神奇作用以及针对具体的应用应该选用什么类型、多少容值的电容,今天我们来讲一下选定的电容该放在什么位置?

去耦电容(2)- 电容该如何选用?
去耦电容(2)- 电容该如何选用?

上一篇文章我们讲述了一下为什么要对电路板上每一个局部的器件进行电源去耦- 平滑掉本区域电流的瞬间需求导致的电源线上的波动,从而保证本区域器件的正常工作,并且不会将本区域的波动通过电源线传递(耦合)到相邻的其它区域的电路上去。

PCB的调试、测试和报告 - 最考验你综合能力的环节

硬件工程师完成了PCB设计,让PCB加工厂去按照设计文件加工成绿油油的板子,以为大功告成了?No、No、No,也许你的噩梦才刚刚开始。

更多资讯
如何测量开关电源(SMPS)中的噪声?

开关模式电源(SMPS)上的噪声有时会变得很糟糕。

CAN一致性测试-容错性测试

CAN总线各节点质量的不一致引发的系统瘫痪、错误、死机等问题,CAN一致性测试已成为保证CAN网络安全运行的重要手段,本文将对CAN总线一致性测试中的容错性测试进行介绍。

TT Electronics推出业内首批无铅厚膜高压电阻器

一间全球性能关键型应用工程电子产品供应商——推出业内首批完全不含铅(Pb)的厚膜高压晶片电阻器,让制造商不再依赖《限制有害物质指令》(RoHS)豁免政策,能够设计出永不过时的医疗和工业设备。

如何在电压控制电路中使用FET?

之前讨论的FET电路属于压控信号幅度电路。也就是说,输入信号的幅度可以通过控制信号在输出端改变,该信号可以是DC信号,也可以是调制信号。请注意:输入信号电平应保持在150mV峰峰值以下,以避免图29至32中的失真。

电动汽车锂电池对比和关键材料解读

电动汽车,是解决能源、环境、城市交通等问题的一个主流趋势,也是未来汽车产业发展的一个主要方向。

电路方案