STM32第三周/阶段

一、I2C总线

1.1 I2C介绍

        I2C(Inter-Integrated Circuit),集成电路总线,它由飞利浦(现为NXP)公司在20世纪80年代开发,是一种广泛用于嵌入式系统的 同步、串行、半双工通信协议,用于在同一块电路板上的集成电路之间进行通信。

I2C总线:是一种物理通信架构,用于连接多个设备,实现设备之间的数据传输。

I2C协议:是一套规则,定义了IIC总线上数据通信的过程,包括如何启动通信、传输数据、应答信号、结束通信等。

1.2 I2C总线的特点

1.2.1  双线通信  

数据线(SDA): 负责传输数据

 时钟线(SCL): 负责同步数据

1.2.2  同步通信

 数据传输由时钟信号控制,确保同步

1.2.3  串行数据传输

 每次只传输一位数据,通过时间序列完成完整的数据包传输

1.2.4  半双工传输

 在同一时间内,通信双方只能有一个方向的数据传输,即发送方和接收方需要轮流发送和接收数据,而不能同时进行

1.2.5  主从架构

 主设备(Master):控制通信过程,生成时钟信号

 从设备(Slave):被动响应主设备的命令

1.2.6  支持多主多从

 同一总线上可以连接多个主设备和从设备,但需要进行冲突检测和仲裁

1.2.7  从机地址唯一性

 每个从设备都有唯一的7位或10位从机地址,主设备通过从机地址指定要通信的从设备

1.2.8  速度灵活

 标准模式(Standard Mode): 100KHz

 快速模式(Fast Mode): 400 KHz

 高速模式(High-Speed Mode):3.4 MHz

 超高速模式(Ultra-Fast Mode):5 MHz

1.3  I2C的信号:

起始信号:时钟线在高电平期间,数据线从高到低

终止信号:时钟线在高电平期间,数据线从低到高

应答信号:主机发送信号,通过从机地址寻找从机,找到就会有一个应答信号,在时钟为高电平时,数据为低电平

非应答信号:和空闲非常类似,都是时钟线上保持高电平,数据线上也是高电平

起始信号和终止信号只能由主机产生,应答和非应答主机和从机都可以去发。

SDA的可变化时机数据线(SDA)上的数据只能在时钟线(SCL)为低电平时进行改变。

SDA的稳定性SCL为高电平期间,SDA必须保持稳定。在SCL为高电平时,SDA上的数据被视为有效,接收方会在这个时刻对SDA的状态进行采样。



1.4  I2C控制器

I2C 控制器的存在是为了简化 I2C通信的实现,并提高通信的效率、可靠性和灵活性。 支持主模式和从模式。 默认情况下,它以从模式工作。接口在生成起始位后会自动由从模式切换为主模式。

二、SPI

SCK(Serial Clock):由主设备(通常是微控制器)提供时钟信号,用于同步数据的传输。

MOSI(Master Out-Slave In):主设备将数据发送到从设备的线路。

MISO(Master In-Slave Out):从设备将数据发送到主设备的线路。

CS(Chip Select):用于选择特定的从设备进行通信。当片选线被拉低时,表示从设备被选中,可以进行通信;当片选线被拉高时,表示通信结 束或者没有从设备被选中。

通信始终由主器件发起。当主器件通过MOSI 引脚向从器件发送数据时,从器件同时通过 MISO引脚做出响应。这是一个数据输出和数据输 入都由同一时钟进行同步的全双工通信过程。

三、MODBUS-TCP协议

TCP/IP协议基础
TCP(传输控制协议):面向连接的、可靠的传输层协议
IP(网际协议):负责将数据从源主机传输到目标主机的网络层协议
端口:TCP/IP协议中标识应用程序的逻辑地址,Modbus TCP/IP默认使用端口502
套接字:IP地址和端口号的组合,用于唯一标识网络中的应用程序
字节基础与数据表示
位:计算机中最小的信息单位,取值为0或1

字节:8位组成一个字节,范围0-255(0x00-0xFF)

字:16位组成一个字,范围0-65535(0x0000-0xFFFF)

高低字节与字节序
在Modbus协议中,数据通常以16位字为单位传输:

高字节:16位数据中的前8位(高位)

低字节:16位数据中的后8位(低位)

例如:对于数值0x1234

高字节是0x12

低字节是0x34

字节序指的是多字节数据在内存中的存储顺序:

大端序:高字节在前,低字节在后(Modbus协议使用)

小端序:低字节在前,高字节在后(大多数x86架构CPU使用)

寄存器类型与功能
Modbus协议定义了四种不同类型的寄存器,每种寄存器都有特定的用途和地址范围。可以简单理解为四种不同的"数据存储区域",用于不同类型的信息交换。
 

Modbus TCP/IP帧格式

Modbus TCP/IP通信帧基于TCP协议,由以下部分组成:

常用功能码详解

读操作功能码

写操作功能码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值