随着微控制器的价格越来越低,功能越来越强大,电气设计人员发现在单板和多板系统中都使用多个小型控制器是一种更加经济高效的方法。这种辅助处理器能够减轻主处理器在耗时任务上面的处理开销,例如扫描键盘、显示控制器和电机控制。这些控制器也可以配置为各种各样的专用外设。
最近,我接受了一项任务:开发一种能够方便地适用于多种应用的接口(软/硬件),且要符合嵌入式处理器中常用的行业标准。在分析了一些典型应用之后,我们列出了一些针对该硬件接口的设计需求:常用于32位和8位处理器;能够得到常用外设器件的支持;外设接口代码量低于0.5kB;引脚数量少;数据带宽可达10kBps;RAM用量少;一条总线上支持多种外设;方便使用API;不需要外部接口驱动硬件。
由于要求引脚数量少,所以必须采用串行接口。目前处理器中常见的串行接口包括SPI、I2C、USB和RS-232。通过从不同方面权衡比较这些接口,我最终选择了I2C,因为它接口简单,灵活性好,得到了大多数低成本控制器的支持。在不需要很高传输速度的情况下,较少的引脚数和流量控制功能还使得I2C接口相比SPI接口具有更大的优势。
I2C的工作原理
I2C是一种双线双向接口,包括一个时钟信号和一个数据信号(SCL和SDA)。在不增加任何其他信号的情况下,一条I2C总线就可以支持多达12个设备。I2C接口规范包括三种工作速度:100kbps、400kbps和3.4Mbps。大多数常见的控制器只支持100-和400kbps两种模式。I2C总线支持一个主设备多个从设备,或者多个主设备的配置结构。
I2C一个非常重要的特性就是它支持流量控制。如果某个从设备无法保持连续的字节传输,它可以将总线挂起,直到能够跟上主设备的传输速度。这对于包含最小规模的I2C硬件并且必须在固件上支持部分传输协议的从设备来说是非常有用的。I2C总线规范支持7b和10b两种寻址协议。我发现7b寻址模式在大部分应用中的效率更高。
在开始编写代码之前,我们需要很好地了解I2C总线的工作原理。任何情况下I2C总线至少要包含一个主设备,至少要挂有一个或多个从设备。主设备总是由主到从发起数据传输操作。无论有多少个外设挂接在总线上,I2C接口只有两个信号。
两个信号都是集电极开路的,通过大小为2.7k左右的上拉电阻接Vcc电源。SDA信号是双向的,可以由主设备或从设备驱动。SCL信号是由主设备驱动的,但是在一个数据字节的末尾从设备必须保持SCL信号为低,以延迟总线直到从设备开始处理数据。主设备在数据字节的最后一位传输完之后释放SCL信号,然后检查SCL信号是否变高。如果SCL没有变高,那么主设备认为从设备正在请求主设备延迟,直到其开始处理数据。
当通过I2C总线发送数据时,只有当SCL为低电平时才能进行数据变换。当SCL信号为高时,任何方向的数据都应该是稳定的.
当总线空闲时,主设备和从设备都不下拉SDA和SCL信号。在发起一次数据传输时,主设备驱动SDA信号从高电平变成低电平,同时SCL信号为高。一般地,当SCL信号为高电平时,SDA信号的状态保持不变,但启动或停止条件下除外。当SCL信号为高并且SDA信号从低变高时,是传输停止的情况(如图2所示)。
I2C总线以8b为单位传输数据。每传输一个字节时,必须得到数据接收方的确认。所有的数据都是从MSB(最高有效位)开始传输的。
关键字:I2C总线 联网设计
引用地址:
基于I2C总线的处理器的联网设计方案
推荐阅读最新更新时间:2024-05-02 21:50
基于物联网的LED路灯控制器设计
目前,所使用的 大功率LED 路灯大部分都是简单的直接照明,缺少必要的智能控制,或者有些虽然具备有智能控制的功能,但是却不能自动检测路灯的照明状况,也不能方便地对路灯进行远程及本地调控。 并且现有的照明管理系统大都采用有线电缆控制照明灯具,对LED 路灯进行调控,通信协议比较复杂,建设成本和运营成本都比较高。 本文将物联网嵌入式技术引入路灯控制器,实现LED 路灯的智能控制。 物联网,是指将各种信息传感设备,如 射频 识别( RFID ) 装置、红外感应器、全球定位系统、 激光扫描器 等种种装置与互联网结合起来而形成的一个巨大 网络 ,将沟通从任何时间任何地点任何人之间的沟通连接扩展到人与物( Human to Thin
[电源管理]
STM32 I2C总线 自我总结学习
现在打算彻底搞清楚STM32的I2C总线通信----首先是对AT24C02的读写----手上有PCF8574的IO扩展芯片,也是I2C协议的,希望实现多个控制! STM32的I2C有自带的硬件驱动,也可以使用GPIO模拟-----先总结一下硬件驱动下的问题。 ----------------------------------硬件下-----以AT24C02与PCF8574为例--------------- ------第一部分是简单宏定义------- #define I2C_Speed 300000 //传输速率--挂载原件多时要求降低速率,自己在调试过程中出现过这样问题 #define I2C1_OWN
[单片机]
基于I2C总线的CMOS图像传感器接口电路设计
1引言
数码相机等图像消费类电子产品产业正在飞速发展,这使得图像传感器和数码相机专用集成芯片的研制获得巨大的市场支持。目前广泛使用的数码相机图像传感器主要是以下两种:CCD和CMOS。CCD图像传感器具有技术成熟、图像噪声小等优点,但由于制作工艺复杂,与标准工艺不兼容,且需要高电压供电,芯片功耗大,目前仅在高级型数码相机市场上占有一席之地。而CMOS图像传感器采用了CMOS工艺,可以将图像采集单元和信号处理单元集成到同一块芯片上,因而具有集成度高、功耗低、价格便宜的优点,具有很好的发展前景。随着噪声消除技术的改进,目前CMOS图像传感器正由中、低档数码相机向高级型数码相机发展。
现在的CMOS图
[嵌入式]
51proteus仿真:I2c总线和EEPROM2404的读写
仿真电路图: 仿真程序: #include reg52.h #include INTRINS.H #define uchar unsigned char #define uint unsigned int sbit SCL=P1^0; sbit SDA=P1^1; void delay(void) { _nop_(); _nop_(); _nop_(); _nop_(); } void InitI2C(void) { SDA = 1; SCL = 1; } void I2CStart(void) { SDA=1; delay(); SCL=1; delay(); SDA=0; delay(); SCL=0; }
[单片机]
用Verilog HDL实现I2C总线功能
开发FPGA时,利用EDA工具设计芯片实现系统功能已经成为支撑电子设计的通用平台,并逐步向支持系统级的设计方向发展。在软件设计过程中,越来越强调模块化设计。I2C总线是Philips公司推出的双向两线串行通讯标准,具有接口线少、通讯效率高等特点。把I2C总线设计成相应的模块,有利于相关FPCA的开发。 目前有一些介绍相关开发的资料,但都是利用VHDL语言或AHDL语言实现的。本文给出利用Verilog HDL语言设计的I2C总线模块。
1 I2C总线概述
I2C总线系统由两根总线即SCL(串行时钟)线和SDA(串行数据)线构成。这种总线可以设计成很多种通讯配置,但本文只讨论主从系统的应用。主器件控制总线通讯,开始/结束传送
[嵌入式]
I2C总线控制的TV显示处理器TDA9332H及其应用
摘要:TDA9332H是飞利浦公司生产的适合高档彩电的显示处理器,可用于单扫描(50或60Hz)和双扫描(100或120Hz)的电视信号处理。文章介绍了TDA9332H的结构原理和性能特点,同时给出了TDA9332H在高档彩电中的应用方法。
关键词:显示处理器;高档彩电;YUV/RGB;TDA9332H
1 TDA9332H的主要特点
TDA9332H是飞利浦公司为高档彩电设计的显示处理器。它采用44脚QFP封装形式,图1所示是其引脚排列图。此外,该芯片还有以下特点:
●具有YUV输入端和带快速消隐的RGB信号输入端,它的OSD/Text输入端与其它视频信号输入端分开,而且既有快速消隐功能又可混合插入;同时内设RGB控制
[手机便携]
物联网创客指南:MCU设计的最佳实践和除错技巧
在本节中,SiliconLabs将分享在软件开发方面的经验教训。关键词extern,staTIc和volaTIle都是什么?你应该在你的代码中使用递归还是malloc()?下面就随网络通信小编一起来了解一下相关内容吧。 1)查找硬件设备的现有软件示例 开发任何嵌入式解决方案的第一步是找到可以使您的任务更简单的示例。您在自定义解决方案中找到的特定部分的软件示例将帮助您以另一种方式“查看”设备,并帮助您重新解释设备规格,即使这些示例是针对其他计算机架构或软件语言的。 2)编译器的代码 没有完美的计算机软件语言。所有语言都有自己的优势和弱点。用于EFM32家族的Simplicity Studio中使用的软件语言是C。C语言有着
[网络通信]
I2C总线接口扩展技术
1 引言 i2c总线(inter ic bus,又常写作iic总线或i2c总线)是philips公司推出的新一代串行通信标准总线。它与spi、microwire/plus串行接口不同,仅仅依靠两根连线实现了完善的全双工同步数据传送:一根为串行数据线(sda),一根为串行时钟线(scl)。由于i2c总线具有接口电路简单,可进行系统的模块化、标准化设计,灵活性强,可维护性好等特性,目前已成为一种重要的串行通信总线。除了philips公司,像 motorola公司,韩国三星,日本三菱,美国 a/d等许多大公司都陆续推出了带有i2c总线标准接口的产品,涉及微处理器(mcu),通用的外围设备(eeprom,i/o口,a/d,d/a ,
[嵌入式]