(1)I2c的简介和特性
I2C我是想全面深入的从嵌入式软件工程师的角度做个理解,刚刚还申请了一个专栏,这个好好写.
学习技术从外文文档看起~~
要全面了解I2C,可以从《I2C-bus specification and user manual》看起.I2C最初是由Philips提出的,那么这文档就是由NXP维护的.
I2C总线被全球超过50个公司的1000+个ICs所使用,已然是一个世界标准.另外,I2C总线与多种不同的控制总线是兼容的,比如SMBus(系统管理总线),PMBus(电源管理总线),IPMI(智能平台管理总线),DDC(显示数据通道)以及ATCA(高级电信架构).如果没记错的话,linux中的I2C框架是完全支持SMBus的.
我们接下来要了解I2C总线是如何工作的,在一个具体应用中如何设计.I2C的数据传输,握手以及总线仲裁机制都需要了解.I2C总线在每种操作模式下的时序和电气特性都需要了解,这里还是从嵌入式软件工程师的角度着重了解时序特性.
I2C总线的特性:
在消费电子,通信以及工业电子中,看起来不相关的设计中有很多类似的地方.例如,基本上每个系统都包括:
1.一些智能控制,通常是单芯片的微控制器
2.通用的电路:LCD和LED驱动器,远程IO口,RAM,EEPROM,RTC或者DAC\ADC.
3.面向应用的电路:比如收音机和视频系统的数字调谐和信号处理电路,温度传感器和智能卡.
为了让这些共同之处对于系统设计者和设备厂商都有用,也为了最大化硬件的有效性和电路的简单性,Philips半导体开发了一个简单的双向2线的总线,实现了IC之间的有效控制.这个总线就被称为I2C总线.所有兼容I2C总线的设备都包含一个片上的接口,允许它们直接通过I2C总线进行通信.这个设计解决了在设计数字控制电路时带来的很多接口问题.
下面是I2C总线的一些特性:
1.只需要两根线,一个串行数据线(SDA)额一个串行时钟线(SCL).
2.可以通过软件方式和一个唯一的地址来寻找到每一个连接到总线的设备,简单的主从关系一直存在.主机可以作为主机发送器或者主机接收器.
3.它是真正的多主机总线,如果有两个或多个主机初始化数据传输,可以通过冲突检测和仲裁来防止数据被破坏.
4.串行的8位双向数据传输在标准模式下达到100kb/s,快速模式下是400kb/s,超速模式下是3.4Mb/s.
5.串行的8位单向数据在快速模式下可以达到5Mb/s.
6.片上的滤波器可以保护数据完整性.
7.总线上连接的最大IC数量由总线最大的电容所限制.
系统设计者的好处:
由于I2C总线是个是一个标准的总线,不需要额外的接口.所以在系统升级或者修改时,可以简单的换IC.
厂商的好处:
符合I2C总线的IC不仅帮助了设计者,同样给设备厂商很多好处,因为:
1.I2C只有两根线,所以IC的pin脚会少,PCB的面积会小,成本会降.
2.完整的I2C总线协议不需要地址译码器或其他逻辑电路.
这只是一些好处.另外,符合I2C总线的IC会增加系统设计的灵活性.IC很容易升级,比如需要一个更大的ROM,只需要选择一个有更大ROM的微控制器就可以了.
IC设计者的好处:
微控制器的设计者经常要考虑输出pin脚.I2C协议允许在没有单独寻址信号和芯片使能信号的条件下各种外设的连接.另外,带I2C接口的微控制器在市场上更受欢迎,因为有很多外设可以选.
第一部分就翻译这么多了,英语水平就只能这样了,下次就开始了解I2C总线协议了~
(1)I2c的简介和特性的更多相关文章
- 树莓派4B踩坑指南 - (1)系统简介及特性
系统简介及特性 19年双十一入坑树莓派4B,发现不是一般的坑,对于新出来的4B,从外包装壳,到接口,到内核,很多老的资料已经不再适用,又没有什么特别大的论坛可以讨论,只能自己一点点的摸索. 所以将遇到 ...
- 网络编程Netty入门:Netty简介及其特性
目录 Netty的简介 Netty的特性 Netty的整体结构 Netty的核心组件 Netty的线程模型 结束语 Netty的简介 Netty是一个java开源框架,是基于NIO的高性能.高可扩展性 ...
- AngularJS_简介、特性及基本使用_及其工作原理
转自:angularJS 的工作原理 转自:通过<script>标签引入到 HTML 中,那么此时 Angular 就做为一个普通的 DOM 节点等待浏览器解析 当浏览器解析到这个节点时, ...
- ECMAScript各版本简介及特性
术语 ECMAScript Sun(现在的Oracle)公司持有着“Java”和“JavaScript”的商标.这就让微软不得不把自己的JavaScript方言称之为“JScript”.然后,在这门语 ...
- 反射简介—C#特性和反射
.NET编译器的任务之一就是为所有定义和引用的类型生成元数据描述.除了程序集中标准的元数据外,.NET平台还支持特定(attribute)把更多的元数据嵌入到程序集中. .NET特性扩展了抽象的Sys ...
- I2C协议简介
主从芯片如何传输数据 AT24C02是一个存储芯片,需要把数据从ARM板发给AT24C02,也需要从AT24C02读取数据. I2C是一个主从结构,Master发起传输,slave接收或回应 一主多从 ...
- sqlite嵌入式数据库简介及特性
p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1) } p.p2 { margin: ...
- mongodb简介和特性
1.mongodb是基于文档的(BSON,类似json的键值对来存储),不是基于表格,易于水平扩展,将内部相关的数据放在一起能提高数据库的操作性能.如果你想新建一个新的文档类型,不用事先告诉数据库关于 ...
- 大数据笔记(二十九)——RDD简介、特性及常用算子
1.什么是RDD? 最核心 (*)弹性分布式数据集,Resilent distributed DataSet (*)Spark中数据的基本抽象 (*)结合源码,查看RDD的概念 RDD属性 * Int ...
随机推荐
- How to open .ccproj in VS2010?
Q: How to open .ccproj projects types in VS2010, ccproj file type is a Cloud project i suppose. Plea ...
- Boost 1.62.0 编译参数
# Copyright Vladimir Prus 2002-2006.# Copyright Dave Abrahams 2005-2006.# Copyright Rene Rivera 2005 ...
- 如何获取HttpServletResponse里面的内容
背景:在SPRING 框架之中, 有一个服务端需要提供多种形态的服务,这里的多种形态只是返回值得展示形式(其实 数据内在逻辑完全一样), 比如: 形式1: JSONP({“key1”: value ...
- C++ 数据类型及相关问题 及输出精度控制
1.有哪些数据类型? 2.数据类型在不同的编译器会有不同的位宽,如何得知? 使用如下命令: cout<<sizeof(int)<<endl; cout<<sizeo ...
- Java免费开源数据库、Java嵌入式数据库、Java内存数据库
Java免费开源数据库.Java嵌入式数据库.Java内存数据库 http://blog.csdn.net/leiyinsu/article/details/8597680
- 想弄清楚LIBEVENT和EPOLL之类的关系,不要因为走得太急而迷失了方向
要一步一步构架起整个体系, 来日方长. 系统调用级别的EPOLL和函数库LIBEVENT之间,大体关系应该是如何呢? 网上有说法: ~~~~~~~~~~~~~~ libevent对底层多路复用机制的封 ...
- 服务器部署_nginx的host not found in upstream "tomcat_www.bojinne" 错误解决办法
今天修改了nginx.conf之后,nginx-t报错. 1. 网上多认为此错误需要修改/etc/hosts,添加该域名对应的ip 2. 我自己的解决方案是仔细核对 upstream 后面的字符 和 ...
- http://www.itpub.net/thread-1778530-1-1.html
http://www.itpub.net/thread-1778530-1-1.html
- easyui源码翻译1.32--Messager(消息窗口)
前言 使用$.messager.defaults重写默认值对象.下载该插件翻译源码 消息窗口提供了不同的消息框风格,包含alert(警告框), confirm(确认框), prompt(提示框), p ...
- [jobdu]栈的压入、弹出序列
用一个栈辅助,模拟过程+判断就可以了. #include <iostream> #include <memory.h> #include <stack> #defi ...