嵌入式学习——51单片机(下)

UART:

Unervisal Async Recveiver Transmitter,通用异步收发器,全双工 串行 异步

RXD:接收信号线

TXD:发送信号线

单工:

通信时,数据接收方和发送方是固定的,通过一根信号线实现数据收发,数据传输的方向是单一的(只能由发送方发给接收方)
半双工:

通信时,数据接收方和发送方不是固定的(双方都可以发送或接收数据)通过一根信号线实现数据收发,数据传输的方向可以是双向的(同一时刻,数据传输的方向是单一的)

I2C:SCL 时钟线 SDA 数据线
全双工:

通信时,数据接收方和发送方不是固定的(双方都可以发送或接收数据),通过两根信号线实现数据收发,数据传输的方向是双向的

串口发送数据时,遵循LSB 低位先行原则,先发送数据低位,再发送高位

串行:

通过一根信号线将要发送的数据逐个bit逐个bit的进行发送

  1. 传输速度慢

  2. 成本低,实现简单

  3. 传输距离远(RS485 差分 抗干扰性好)

并行:

通过多根信号线同时去传输多个bit

  1. 传输速度快

2.成本高,实现复杂

  1. 传输距离近(30米以内,存在信号偏移、电磁波干扰)

奇校验:

奇校验值为'1',若数据位中'1'的个数加上奇校验中的'1',保持'1'的总个数为

奇数个,则代表奇校验通过

偶校验:

偶校验值为'0',若数据位中'1'的个数加上偶校验中的'0',保持'1'的总个数为偶

数个,则代表偶校验通过

奇偶校验无法判断偶数个bit出错的问题

串口通信参数:

9600 8 N 1

115200 8 E 1

波特率:bits per second,每秒传输bit数量

8:8位数据位

N:None 无校验

O:Odd 奇校验

E:Even 偶校验

1: 1位停止位

同步: 有时钟线,通信双方可以通过时钟线来实现通信频率同步
**异步:**没有时钟线,通信双方无法通过时钟线实现同步

串口是一种异步通信协议,但可以通过波特率实现类似同步

Modbus 协议(主从应答)

主机-> 从机:

起始位 地址码 功能码 数据位1 数据位2 校验码 结束位

0xAA 0x01 0x01 0x42 0x00 0xEE 0xBB

功能码的低四位用来区分控制对象:

01:控制led

02: 控制数码管

03:控制蜂鸣器

04:温度采集

功能码的高四位是数据流向位:

0:主机->从机

1:从机->主机

校验码是前五位数据之和

从机 -> 主机:

起始位 地址码 功能码 数据位1 数据位2 校验码 结束位

0xAA 0x01 0x81 0x42 0x00 0x6E 0xBB

主机下发Modbus协议指令,从机接收指令解析获得功能码,根据功能码完成对外设的控制,并给主机回复应答

ds18b20 (数字温度传感器)

参数:

  1. 量程(测量范围) -55℃ - 125℃

  2. 精度(误差):±0.5℃

  3. 分辨率

9位:0.5℃

10位:0.25℃

11位:0.125℃

12位:0.0625℃

  1. 接口:GPIO 单总线

  2. 工作电压: 3V- 5.5V

线与特性:

多个设备的输出引脚直接连接,实现"与"逻辑。只要有一个设备输出低电平,总线就被拉低

作为数据接收方时,需要释放总线(拉高电平)

DS18B20采集温度的流程:

1、复位

2、发送0xCC,跳过ROM

3、发送0x44,开启温度转换

4、延时1s

5、复位

6、发送0xCC,跳过ROM

7、发送0xBE,读取温度

8、读取2字节温度

主机将总线拉低480us - 960us,代表发送了复位脉冲;

主机释放总线,ds18b20需要再15-60us内检测引脚是否为高电平;

主机再60-240us内检测引脚是否为低电平,如果是低电平,代表ds18b20回复了存在脉冲;

主机释放总线,引脚呈现高电平。

写0时序:

主机将总线拉低至少60us,不超过120us;

ds18b20在60us内来采样引脚电平,若是低电平,则代表主机发送了bit 0;

主机释放总线,引脚变为高电平;

写1时序:

主机将总线拉低大于1us;

释放总线,引脚变为高电平;

ds18b20在45us内对引脚的电平进行采样,若是高电平,代表主机发送了bit 1;

读时序:

主机将总线拉低大于1us;

释放总线,引脚呈现高电平;

主机再15us内对引脚电平进行采样;

若采到一个低电平,代表ds18b20发送了bit0;

若采到一个高电平,代表ds18b20发送了bit1;

DHT11(温湿度传感器)

参数:

测量范围:

温度:0 - 50℃

湿度:20-90%RH

精度:

温度:±2℃

湿度:±5%RH

分辨率:1

供电电压:3 - 5.5V

DHT11传输数据:40个bit,5个字节;先发高位。

1字节湿度整数 + 1字节湿度小数 + 1字节温度整数 + 1字节温度小数+ 1字节校验和

dht11通信时序:

主机发送起始信号:

主机将总线先拉低至少18ms,释放总线,将总线拉高20 - 40us,代表主机向dht11发送了一个起始信号

dht11回复响应信号:

DHT11将总线拉低至少80us,释放总线,拉高80us;最后dht11将总线拉低,准备开始传输数据

dht11传输数据:

传输'0':dht11将总线拉低50us,再将总线拉高持续26-28us左右;

传输'1': dht11将总线拉低50us,再将总线拉高持续60 - 70us左右。

相关推荐
进击的横打1 小时前
【车载开发系列】RH850中的看门狗WDTA
单片机·嵌入式硬件
v先v关v住v获v取2 小时前
ZG-6右箱体双面钻专用机床右主轴箱设计1张总装图+零件图cad+设计说明书
科技·单片机·51单片机
17(无规则自律)2 小时前
【Linux驱动实战】:最简单的内核模块
linux·c语言·驱动开发·嵌入式硬件
今儿敲了吗2 小时前
python基础学习笔记第四章
c++·笔记·python·学习
【数据删除】3482 小时前
计算机复试学习笔记 Day44
笔记·学习
星幻元宇VR2 小时前
VR地震科普学习机|沉浸式防震减灾新体验
学习·安全·vr·虚拟现实
星幻元宇VR2 小时前
VR爱国教育学习机|让红色精神在沉浸体验中代代传承
科技·学习·vr·虚拟现实
逆小舟2 小时前
【SWM320】学习使用UART
单片机·学习·嵌入式软件
单片机设计星球2 小时前
51单片机的【智能家居系统】仿真设计
嵌入式硬件·51单片机·智能家居