首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IIC总线架构 之 IIC协议

简介 I2C 是一种串行通信总线,使用一主多从架构,最初设计目的为了让主板、嵌入式系统或手机用来连接低速周边设备。多用于小数据量的场合,有传输距离短,任意时刻只能有一个主机等特性。...I2C设备器件发送的数据 IIC硬件连接结构图 ? IIC硬件连接主要包括IIIC主机、IIC从机、IC总线及上拉电阻。...IIC主机:一条总线中一般只会有一个IIC主机,一般为可编程芯片。通过软件编程控制主机连接在IIC总线上的GPIO电平,生成符合IIC总线协议的时序。...IIC从机:具备IIC接口的设备器件(例如AT24C02)。硬件连接好后,等待IIC总线访问。 IIC总线协议 ?...IIC总线上所有的IIC从机设备对应一个唯一的地址。

1.4K20

IIC

IIC 简介 IC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。...I2C总线产生于在80年代,最初为音频和视频设备开发,如今主要在服务器管理中使用,其中包括单个组件状态的通信。例如管理员可对各个组件进行查询,以管理系统的配置或掌握组件的功能状态,如电源和系统风扇。...下图是一个嵌入式系统中处理器仅通过2根线的IIC总线控制多个IIC外设的典型应用图 ?...IIC 通信协议 IIC 串行总线一般有两根信号线,一根是双向的数据线 SDA ,另一根是时钟线 SCL ,其时钟信号是由主控器件产生。...所有接到 IIC 总线设备上的串行数据 SDA 都接到总线的 SDA 上,各设备的时钟线 SCL 接到总线的 SCL 上。对于并联在一条总线上的每个 IIC 都有唯一的地址。

1K11
您找到你想要的搜索结果了吗?
是的
没有找到

IIC协议

IIC是半双工,而不是全双工)。 b.每个连接到总线的器件都可以通过唯一的地址和其它器件通信,主机/从机角色和地址可配置,主机可以作为主机发送器和主机接收器。...c.IIC是真正的多主机总线,(而这个SPI在每次通信前都需要把主机定死,而IIC可以在通讯过程中,改变主机),如果两个或更多的主机同时请求总线,可以通过冲突检测和仲裁防止总线数据被破坏。...一个典型的IIC接口如下图(1)所示 ? 图(1) (3)IIC的协议层 IIC的协议层才是掌握IIC的关键。...设备里写东西,然后再紧接着写入IIC设备里的寄存器地址,而我直接写入了0x68,导致出错},每次数据传送总是由主机产生的终止信号结束。...即使是含有IIC硬件的单片机(如stm32 103系列)也有一定的缺陷,所以一般也会模拟IIC的时序。现将具体时间截图如下: ?

1.1K10

IIC实测波形入手,搞懂IIC通信

本文将从实测的IIC波形入手,带你看到真实的IIC样子,进而去理解IIC的通信原理。...1 IIC基础知识 首先复习一下IIC基础知识,这部分看不懂的请先带着疑问,然后我们通过分析IIC的真实波形,这些疑问可能就豁然开朗了~ 1.1 IIC是什么 IIC(Inter Integrated...Circuit,集成电路总线)是一种由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。...在 CPU (单片机)与IIC模块之间、IIC模块与IIC模块之间进行双向传送。...因为IIC应答是一种相互关系,单片机发数据给IIC器件,IIC器件要进行应答,表示收到了数据,同样,单片机接收IIC器件的数据后,也要给IIC器件一个应答。

2.6K41

ARM(十五).IIC with IRQ

前言 ARM 处理器是英国 Acorn 有限公司设计的低功耗低成本的一款 RISC 微处理器 ARM 全称为 Acorn RISC Machine 因为价格与能耗上的明显优势,在手持设备与嵌入式领域有大规模的应用...,可以说目前的绝大部分便携或手持电子消费品都是用的 ARM 芯片 前面一篇简单地对 ARM 裸机开发、平台环境与工具、创建项目、看门狗的控制与基础进行了演示 这里再对IIC协议转输进行探究 ---- 概要...---- IIC协议转输 要求 使用 IIC 协议在 ARM 板上24C02芯片中存取数据 IIC 原理图 IIC总线连接方式 AT24C02A电路原理图 创建项目 创建项目的总体过程就是 新建文件夹...B iic_int_24c04 ;收到ISR_IIC_Handle中断会跳转到iic_int_24c04进行处理 ISR_UART0_Handle B Default_IRQ_ISR...= 1; //收到IIC中断后,给f_nGetACK置1 ClearPending(BIT_IIC); //清掉IIC中断 }

95420

嵌入式开发概述

功能、成本、开发效率等条件决定了嵌入式设备的选材多样化,软件硬件可裁剪:当不需要某项功能时,可以去除相关的软硬件。...这形成了明显的技术特点:基于操作系统、以网络、通信为主的“非嵌入式底层”应用──除要完成的功能比较特殊、性能比较苛刻外,嵌入式应用软件的开发已经与普通软件开发没有差别。...ARM处理器的文档非富,各类嵌入式软件大多(往往首选)支持ARM处理器,使用ARM开发板来学习嵌入式开发是个好选择。...缺点是它支持的硬件相对较少,并且源代码不开放,需要专门的技术人员进行开发和维护,并且授权费比较高。 Windows CE是微软公司针对嵌入式设备开发的32位、多任务、多线程的操作系统。...在文章的最后,首先介绍嵌入式处理器特别是ARM处理器的一些常识,然后比较了运行在它上面的各类嵌入式操作系统。 本教程需要在开发板上实践,我们推荐了一些开发板。

1.8K20

2.1 IIC协议的FPGA实现(一)IIC 总线规范简介

2.1 IIC协议的FPGA实现 2.1.1 IIC 总线规范简介 1) IIC 总线特性介绍   在现代电子产品开发过程中,为了简化系统,提高系统的可靠性,缩短产品开发周期,增加硬件构成的灵活性,推出了一种高效...、可靠、方便的 IIC串行总线。...所谓硬件 ID 就是 IIC 设备的辨识 ID,硬件 ID 会随着厂商还有设备的种类而有所改变。开发板上的 IIC 设备是某厂商的 IIC 储存器,即 24LC04,硬件 ID 为 4’b1010。...至于硬件地址就是 IIC 设备在总线上辨识地址,默认下为 3 位,即同类的 IIC 设备在同一条 IIC总线上仅允许占据 8 个而已。然而,开发板上的 24LC04 为 3’b000。...总结来说,设备地址除了访问方向以外,前七位一般都是固定的,例如常见的开发板的 IIC 储存器 24LC04,设备地址就是 8’b1010_000_×。

1.5K10

2.1 IIC协议的FPGA实现(二)IIC协议的FPGA实现

2.1 IIC协议的FPGA实现 2.1.2 IIC协议的FPGA实现               图2 13 IIC模块的建模图   图2 13是 IIC 储存模块的建模图,左边是顶层信号,右边则是沟通用的问答信号...IIC 总线的起始位也就类似串口或者 PS/2 等传输协议的起始位,然而不同的是, IIC 总线的起始位是 SCL 拉高 TR + TSU_STA + THD_STA + TF 之久,换之 SDA 则是拉高...图2 15 结束位   图2 15是结束位的时序图, IIC 设备的操作好坏一般都取决结束位。...对此, Verilog 可以这样表示,结果如代码2 3所示:           代码2 3 IIC结束位代码实现 1. begin 2....接下来是仿真验证,结果如下:           图 2 22 IIC总线仿真时序图   结合上述仿真波形图和程序可以看出:   起始位:SCLK为高电平时,SDAT由高到低,指示IIC总线传输数据的开始

1.4K40

嵌入式开发环境搭建

现在叫lede,全名Linux嵌入式开发环境项目(Linux Embedded Development Environment) openwrt干嘛用的 答案:漏洞挖掘 嵌入式正向开发 硬件的基本结构...构建Openwrt开发环境(SDK) 嵌入式系统结构 Bootloader基础结构与移植(基于uboot源码分析) Kernel基础结构解析(Linux内核源码与关键对象分析,设计KLM模块) 文件系统的宏观与微观结构...应用程序开发技巧(Web、脚本、后门、流量分析) 嵌入式逆向破解与漏洞挖掘 硬件的破解流程 固件的解析流程 确定漏洞攻击面 Fuzzing向量监控(Tools & 自定义脚本) 漏洞挖掘流程与技巧 漏洞利用脚本设计...嵌入式设备权限驻留 嵌入式后门与功能模块设计 嵌入式跳板程序设计 WIFI攻击(Air Crack) 首先感谢朋友的指导 下面的朋友的推文 嵌入式开发环境部署 搭建环境 openwrt(虚拟机) 安装好...这里的选项可以看下朋友的推文 嵌入式开发环境部署 编译命令 make V=s #编译 ? 搭建个环境都这么痛苦 ? ?

1.9K40

嵌入式Linux:如何进行嵌入式Linux开发

嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 1、裸机开发 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。...与基于操作系统的开发相比,裸机开发更加接近硬件层面,对硬件的了解和控制能力要求更高,但也允许开发者更精细地管理硬件资源和性能。...2、SDK开发 为了方便开发者快速进行设计,芯片厂商设计了专门的软件开发工具包来创建应用程序。SDK通常包含编译器、调试器、硬件驱动程序、API(应用程序编程接口)以及其他有助于开发的工具和文档。...在嵌入式Linux SDK开发中,开发者可以利用Linux系统的强大功能和灵活性,同时针对特定的硬件平台进行优化和调整,以满足嵌入式设备的特定需求。...3、驱动开发 驱动开发是指为嵌入式Linux系统编写设备驱动程序的过程。在这个过程中,开发者需要深入理解Linux内核架构,学会如何在Linux内核环境下编写、调试和维护设备驱动程序。

40000

如何分分钟成为Java嵌入式开发人员

用Java开发下一代嵌入式产品 在我10年的Java布道师生涯里,没有哪次Java新版本发布能让我如此兴奋。...Java 8的发布不仅在语言本身加入了些不错的新特性,还在嵌入式开发上加入了很棒的功能,进行了优化,还有简洁的开发文档。...在你开始嵌入式开发之前,你需要知道你具体想要开发出什么,以及你打算在哪运行你的程序。这十分重要,因为得根据目的选择不同版本的Embedded Java。...集成开发环境 使用Java ME SDK和NetBeans IDE是创建嵌入式应用不错的选择。...总结: 我们通过演示如何使用GPIO和IIC设备的真实案例学习了如何创建Java嵌入式应用。现在是时候轮到你自己在树莓派上连接更多设备了,希望你喜欢树莓派嵌入式Java开发

1.3K10
领券