2020机器人技术等级考试六级课程第五章01 I2C基础 机器人包老师

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本章目录

I2C基础 姿态传感 液晶显示 SPI基础

数据通信

数据通信是通信和计算机相结合,通过传输信道将数据终端与计算机联结起来使不同地点数据终端实现软、硬件和信息资源共享。

I2C接口串行通信

嵌入式系统常用的串行通信方式有:UART、I2C和SPI

I2C 简介

I2C(Inter-Integrated Circuit)总线是由Philips公司在20世纪80年代开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息,用于主控制器间及其外围设备之间的通信。因为连接线少,控制简单,在通信控制领域中得到广泛应用。

I2C总线协议采用两根数据线:串行数据线(SDA)和串行时钟线(SCL)

特征:(1)在硬件上,I2C总线只需要一根数据线和一根时钟线两根线,总线接口已经集成在芯片内部,不需要特殊的接口电路,而且片上接口电路的滤波器可以滤去总线数据上的毛刺.因此I2C总线简化了硬件电路PCB布线,降低了系统成本,提高了系统可靠性。因为I2C芯片除了这两根线和少量中断线,与系统再没有连接的线,用户常用IC可以很容易形成标准化和模块化,便于重复利用。

特征:

(2) I2C总线是一个真正的多主机总线,如果两个或多个主机同时初始化数据传输,可以通过冲突检测和仲裁防止数据破坏,每个连接到总线上的器件都有唯一的地址,任何器件既可以作为主机也可以作为从机,但同一时刻只允许有一个主机。数据传输和地址设定由软件设定,非常灵活。总线上的器件增加和删除不影响其他器件正常工作。

特征:

(3)I2C总线可以通过外部连线进行在线检测,便于系统故障诊断和调试,故障可以立即被寻址,软件也利于标准化和模块化,缩短开发时间。(4)连接到相同总线上的IC数量只受总线最大电容的限制,串行的8位双向数据传输位速率在标准模式下可达100Kbit/s,快速模式下可达

400Kbit/s,高速模式下可达3.4Mbit/s。

特征:

(5)总线具有极低的电流消耗.抗高噪声干扰,增加总线驱动器可以使总线电容扩大10倍,传输距离达到15m;兼容不同电压等级的器件,工作温度范围宽。

不同从设备的地址不能相同。理论上最多可以连接127个I2C从设备

I2C主设备从设备及引脚:

通信时,主设备负责启动PC总线上的器件有主设备(Master) 和从设备(Slave)之分。并且响应主设备的通信请和终止数据传送,同时还要输出时钟信号;从设备会被主设备寻址,求。

不同从设备的地址不能相同。理论上最多可以连接127个I2C从设备

I2C主设备从设备及引脚:

在I2C通信中,通信速率的控制,由主设备完成,主设备会通过时钟线(SCL) 引脚输出时钟信号,供总线上的所有从设备使用。

I2C是一-种同步、半双工通信方式,总线上的设备,通过数据线(SDA)传输数据,数据的发送和接收由主机控制切换进行。

不同从设备的地址不能相同。理论上最多可以连接127个I2C从设备

I2C主设备从设备及引脚:

不同主控板,I2C协议数据线SDA和时钟线SCL对应的引脚不同。ESP32提供了两个I2C接口,ESP32 for Arduino默认的数据线SDA对应的引脚为21,时钟线SCL对应的引脚为22。

基于Arduino Atmega328平台的Uno、Nano 主控板, 数据线SDA对应的引脚为A4,时钟线SCL对应的引脚为A5。

寄存器:

I2C的工作机制是主从模式,为了和设备相互交流,12C 使用寄存器机制。寄存器是设备上一个很小的存储空间,用来存储数据,寄存器中的数据可以被读取或写入。例如,项目-读取姿态传感器的加速度值,该传感器将测得的加速度值保存到指定寄存器,主设备从相应寄存器中读取数据,而不是直接读取加速度传感器的值。

寄存器:

所以在主从设备间读写数据时,需要明确以下几点: ■从机地址

■寄存器编号

■操作类型:读取或者写入

■接受数据的长度

I2C 库及库函数:

ESP32 for Arduino提供的I2C类库文件为Wire.h。在Wire.h中定义了相应的成员函数。I2C主机设备和从机设备之间是通过对从机设备的寄存器进行读写操作,实现数据的写入和读取。Wire库函数的成员函数具有对寄存器读写功能。

I2C 库及库函数:

常用的成员函数如下:

begin()函数 write()函数 read()函数beginTransmission()函数endTransmission()函数requestFrom()函数 available()函数

本小节内容复习:5-6级教材P109-P113 本小节作业思考:5-6级教材P107题1-6

相关文档
最新文档