嵌入式硬件相关通信协议

1.SPI介绍

1.1 概述

SPI是串行外围设备接口(Serial Peripheral Interface),是Motorola首先在其MC68HCXX系列处理器上定义的。是一种高速的、全双工的和同步的串行通信总线。

1.2 连接线

一个主设备和一个从设备使用4根线进行通信;具有多个从设备时,主设备会给每一个从设备分配一个CS脚,以便于选择相应的从设备经行通信,设备之间要共地。

名称 描述
MOSI 主设备输出,从设备输入,连接MOSI
MISO 主设备输入,从设备输出,连接MISO
SDO 设备输出,连接SDI
SDI 设备输入,连接SDO
SCLK 时钟信号,只能由主设备产生
CS 片选信号,主设备选择从设备经行通信

 

 

 

 

 

 

 

 

1.3 时序

CPOL:时钟极性;为0时,总线空闲时SCLK为低电平;为1时,总线空闲时SCLK为高电平。

CPHA:时钟相位;为0时,时钟前沿采集数据,时钟后沿改变数据;为1时,时钟后沿采集数据,时钟前沿改变数据。

每个带有SPI的模块都会在使用说明里面绘制时序图,根据时序图选择对应的模式。

模式 CPHA CPOL
mode0 0 0
mode1 0 1
mode2 1 0
mode3 1 1

主设备将其中一个从设备的CS设置为有效电平,开始通信;该从设备的CS设置为无效电平,结束通信。通信时序如下图所示。

嵌入式硬件相关通信协议_第1张图片

 

2. IIC介绍

2.1 概述

IIC总线(Inter-Integrated Circuit)即集成电路总线,是PHILIPS公司设计出来的一种简单、双向、二线制、同步串行总线。IIC总线是一个多向控制总线,多个器件(从机)可以同时挂载到一个主机控制的一条总线上。总线上每一个设备都有一个唯一的地址。总线上可以有多个主机,但是同时只能由一个主机进行控制。

2.2 连接线

两个连接线都是开漏模式,需要外接上拉电阻,设备之间要共地。

名称 描述
SDA 数据线
SCL 时钟线,只能由主机产生

2.3 时序

一帧信息由开始信号(Start)、地址、数据、Ack信号、NACK信号和结束信号(Stop)组成。

开始信号:SCL为高电平,SDA由高变低。如下图。

嵌入式硬件相关通信协议_第2张图片

结束信号:SCL为高电平,SDA由低变高。如下图。

嵌入式硬件相关通信协议_第3张图片

 Ack信号:接收方收到8位数据必须回复一个Ack信号。接收方接收到8位数据后,下一个时钟(SCL为高电平)前,把SDA拉低。

 NAck信号:发送方发送8位数据后,下一个时钟,SDA仍然为高(接收方未将SDA拉低),表示发送失败。

Ack信号和NAck信号如下图。

嵌入式硬件相关通信协议_第4张图片

2.4 总线操作

开始信号后面跟着一个字节,由7位的从机地址和一位读写控制位组成,如下图所示。

嵌入式硬件相关通信协议_第5张图片

主设备向从设备写数据。格式如下图所示。

嵌入式硬件相关通信协议_第6张图片

主设备向从设备读取数据。格式如下。

嵌入式硬件相关通信协议_第7张图片

主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者是主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据。格式如下。

嵌入式硬件相关通信协议_第8张图片

 

3 uart介绍

3.1 概述

  uart为通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),为异步通信,可实现全双工通信,具有相同的逻辑电平的器件才能通讯,一般有RS232和TLL等逻辑电平。设置波特率相同才能通信。

3.2 连接线

  设备之间要共地。接收设备RST设置有效电平并且发送设备CTS接收到有效电平时,发送设备才能把数据发送给接收设备,这两个引脚的功能可以选择使用。

名称 描述
RXD 数据输入,连接TXD
TXD 数据输出,连接RXD
RST 请求发送(Require to send),连接CTS
CTS 清除发送(Clear to send),连接RST

 

3.3 时序

  时序如下表。

起始位 数据位 奇偶校验位 停止位

起始位:先发出一个逻辑”0”的信号,表示传输字符的开始。

数据位:数据位的个数可以是4、5、6、7、8等,构成一个字符,一般都是8位。先发最低位,再发最高位

奇偶校验位:

  1. 无校验(no parity):0bit。
  2. 奇校验(odd parity):1bit。如果数据位中‘1’的数目是偶数,则校验位为‘1’,否则为‘0’。
  3. 偶校验(even parity):1bit。如果数据位中‘1’的数目是偶数,则校验位为‘0’,否则为‘1’。

停止位:数据结束标志,可以是1位,1.5位,2位的高电平。 由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。

使用8N1(8位数据位,无校验,1位停止位)发送‘0xf0、0x0f’,二进制为‘11110000、00001111’,如下。

0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 1
起始位 b0 b1 b2 b3 b4 b5 b6 b7 停止位 起始位 b0 b1 b2 b3 b4 b5 b6 b7 停止位


 

你可能感兴趣的:(嵌入式,嵌入式)