
总线协议
以实战为线索,详细讲解各种总线协议及驱动实现
猪葛大李
stay_hungry stay_foolish
展开
-
modbus协议详解二
modbus的代码实现有很多开源的版本,比如libmodbus、freemodbus等。下面讲解一下freemodbus的源码,因为freemodbus更适合单片机的应用场景。freemodbus源码下载,源码的讲解从串口接收开始,怎么接收到一帧数据,进而怎么解析,怎么执行动作。一、串口接收部分和定时器部分串口接收状态机://这个函数在串口接收中断中被调用BOOL xMBRTUReceiveFSM( void ){ BOOL xTaskNeedSwitch = FA原创 2020-12-29 23:18:05 · 521 阅读 · 0 评论 -
modbus协议详解一
一、什么是modbus协议?首先必须清楚通信过程中的 物理层协议 和 应用层协议。(如果清楚直接跳过)物理层协议:为了保证传输在物理线路上的数据的正确性而规定的协议。目的是保证通信线路上的数据传输正确。举个例子:uart串口通信协议,就属于物理层协议,它规定了一个字节怎么传输才能保证被正确接收。串口协议规定如下:1、没有开始通信之前,线路上保持高电平,这个时候表示处于空闲状态;2、直到线路上出现一个下降沿,表示要开始进行数据传输了;3、紧接着进行8个bit数据的传输;4、紧接着拉高电平,表示停止原创 2020-12-29 17:12:33 · 1540 阅读 · 0 评论 -
I2C协议之软件模拟(三)-- 实际应用之AT24C02
EEPROM AT24C02的软件I2C读写驱动以ATMEL的AT24C02为例(其他厂商的大同小异,兼容性都非常好的),下面说明设备地址、写操作(以字节为单元和以页为单元)、读操作。AT24C01有16个page,每个page有8个字节。AT24C02有32个page,每个page有8个字节。AT24C04有32个page,每个page有16个字节。AT24C08有64个page,每个page有16个字节。AT24C16有128个page,每个page有16个字节。一、AT24C02读写过程原创 2020-05-11 14:22:53 · 632 阅读 · 0 评论 -
I2C协议之软件模拟(二)-- 实际应用之SHT20
下面利用软件模拟I2C读写SHT20温湿度传感器。一、SHT20通讯定义(1)设备I2C地址:0x40;(2)命令:测量温度和湿度都有两种模式:主机模式和非主机模式,这两种模式的区别在于测量期间(发出测量命令后需要等待一段时间才能读取)是否允许主机与别的I2C设备通信。在保持主机模式下,发出测量命令后,在测量完成之前传感器会一直拉低SCL,迫使主机进入等待状态,传感器内部处理完成会释放S...原创 2020-05-05 23:53:32 · 3921 阅读 · 3 评论 -
I2C协议之软件模拟(一)
I2C(Inter-Integrated Circuit)协议是一种用于同步、半双工、串行总线(由SCL时钟线、SDA数据线组成)上的协议。规定了总线空闲状态、起始条件、停止条件、数据有效性、字节格式、响应ACK信号。有主从机之分,主机master就是掌控SCL时钟信号的一方,并且起始信号和停止信号也由主机发送。一、协议说明(1)总线空闲状态:SCL、SDA均为高电平,此时主从设备都不控制总线...原创 2020-05-05 00:44:09 · 2880 阅读 · 2 评论