嵌入式单板学习笔记

通信篇

1. 关于通信

1.1 串行/并行通信

简单地说,串行通信是数据依次传输,并行通信是几个数据一起传输。

 串行通信占用的通信线更少,成本低,通信速度相对较慢,受干扰影响较小。

并行通信占用的通信线多,成本高,通信速度相对较快,受干扰影响较大。

1.2 全双工/半双工/单工传输

全双工指双方都可以同时收发信息;半双工双方都可以收发信息,但同一时刻只能一方发送信息;单工指只能一方发信息,一方接受信息,通信是单向的。

1.3 同步/异步通信

数据在双方之间传输时,需要制定规则保证数据传输的准确。同步/异步可以根据是否有时钟信号判断是哪种通信方式。

同步通信是加一个时钟信号,发送方和接收方在这个时钟的节拍下传输数据,比如SPI 和 I2C。

异步通信是对数据进行封装,在数据开头加上起始信号,在数据结尾加上终止信号,双方按照规定传输数据,比如UART、l-Wire。

1.4 通信速率

对于同步通信,通信速率由时钟信号决定,时钟信号越快,传输速度就越快。
对于异步通信,需要收发双方提前统一通信速率,这也就是我们串口调试时,波特率不对显示乱码的原因。

1.5  常见通信协议

 2. 通信 - 调试串口

常见通信接口标准:

通信接口电平标准特点
TTL

逻辑1: 2.4V至5V

逻辑0: 0V至0.4V

无需额外电路,引脚直连即可
RS232

逻辑1: -3V至-15V

逻辑0: 3V至15V

需电平转换电路,传输距离大约15m
RS422/RS485

逻辑1: 两线压差为2V至6V

逻辑0: 两线压差为-2V至-6V

需电平转换电路,传输距离大约1200m

嵌入式的MCU和外设模块中都集成有通用同步异步收发器(USART)和通用异步收发器(UART)。常见用途如下:

  • 作为调试口,打印程序运行的状态信息;
  • 连接串口接口的模块(比如GPS模块),传输数据;
  • 通过电平转换芯片变为RS232/RS485电平,连接工控设备;

USART内部结构如图:

 可以把USART分为四个部分:

  1. USART引脚
  2. 波特率发生器
  3. 发送器/接收器控制单元
  4. 数据收发寄存器单元

3. RS232通信

最简单的 RS232 通信由三条数据线组成,即 TXD RXD GND RS232 采用负逻辑电平,即 -15V ~ -3V 代表逻辑“1 ”, +3V ~ +15V 代表逻辑“ 0 ”。这里的电平,是 TxD 线(或者 RxD 线)相对于 GND 的电压。
RS232 最长传输距离为 15 米,通常采用 DB9 接口,有公母之分

DB9有9个针脚,通常RS232只需要TXDRXDGND即可。

 4. RS485通信

RS485 具有支持多节点( 32 个节点)、传输距离远(最大 1219m )、接收灵敏度高( 200mV 电压)、连接简单(在构成通信网络时,仅需要一对双绞线作传输线)、能抑制共模干扰(差分传输)、成本低廉等特点,在多站、远距离通信等多种工控环境中获得了广泛应用。
RS485 通信网络中,通常使用 485 收发器将 TTL 电平转换成 RS485 的差分信号。 MCU 的串口控制器 TxD
发送数据,经 485 收发器转换成差分信号,传输到总线上。接收数据时, 485 收发器将总线上的差分信号转化 成TTL 信号由 RxD 到串口控制器。整个通信网络中,通常只有一个主机,剩下的全部为从机。在 RS485 总线中,通常还需要在总线起止端分别加上约120 Ω的终端匹配电阻,以保证 RS485 总线的稳定性。

5. I2C通信

I2C是一种多主从架构串行通信总线,常用于MPU/MCU与外部设备连接通信、数据传输。

I²C 由两条线组成,一条双向串行数据线 SDA ,一条串行时钟线 SCL 。每个连接到总线的设备都有一个独立的地址,主机可以通过该地址来访问不同设备。因为I²C 协议比较简单,常常用 GPIO 来模拟 I²C 时序,这种方法称为模拟I²C 。如果使用 MCU I²C 控制器,设置好 I²C 控制器 , I²C 控制器就自动实现协议时序,这种方式称为硬件I²C 。因为 I²C 设备的速率比较低,通常两种方式都可以,模拟 I²C 方便移植,硬件 I²C 工作效率相对较高。

 

 

 

 6. SPI通信

SPI是一种全双工同步串行通信接口,用于MCU和各种外围设备以串行方式进行通信以交换信息,主要应用在EEPROM、FLASH、实时时钟、网络控制器、OLED显示驱动器、AD转换器,数字信号处理器、数字信号解码器等设备之间。

SPI通常由四条线组成,一条主设备输出与从设备输入(Master Output Slave InputMOSI),一条主设备输入与从设备输出(Master Input Slave OutputMISO),一条时钟信号(Serial ClockSCLK),一条从设备使能选择(Chip SelectCS)。

 7. CAN通信

CAN通信的特点是可拓展性好、可承受大量数据的高速通信、高度稳定可靠。

高速 CAN 主要应用在发动机、变速箱等对实时性、传输速度要求高的场景。低速 CAN 主要应用在车身控制系统等可靠性要求高的场景,低速CAN 在断掉其任一导线后,仍可以继续接收数据,因此在汽车发生交通事故时,使用低速CAN 能更大提高设备正常接收数据工作的可能性,提高安全性。
CAN 也使用差分信号传输数据。 CAN 总线使用 CAN_H CAN_L 的电位差来表示数据电平。电位差分为显性电平和隐性电平,分别表示逻辑0 1

 

CAN 是一种基于消息广播模式的串行通信总线,即在同一时刻网络上所有节点监测到的数据是一致的,各节点根据报文ID 来甄别是否是发给自己的报文。CAN总线以“帧”( Frame )的形式进行通信。 CAN 总线协议规定了 5 种帧,分别是数据帧、远程帧、错误帧、超载帧以及帧间隔,其中数据帧最常用。

 8. DMA

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值