嵌入式系统学习

Lecture11-12

主要学习

➢ 总线基础

➢ UART协议

➢ I2C协议

➢ SPI协议

1.总线的基础 protocol 协议

总线只是一组导线的集合,在嵌入式板上的所有其他主要组件(包括I/O子系统、内存子系统和主处理器)之间传输各种数据信号、地址和控制信号(时钟信号、请求、确认、数据类型等)

有三条与处理器相关的内部总线:数据总线、地址总线和控制总线。这三者共同构成了“系统总线”

并行通信

当使用并行数据传输发送数据时,多个数据位(data bits)同时(at the same time)通过多个信道(channel)传输

串行通信

串行数据传输通过单个通道一个接一个(one after another)(按特定顺序(at special order))发送数据位

simultaneous同时的

二者作比较

哪种通信更适合总线系统  当然是串行通信

因为更少的花费 更少的连接 而且总线数据量不大

而并行通信使用在传输数据量大 对时间要求比较严格(time-sensitive)

比如 视频流

串行通信 两种分类:同步(synchronous)和异步(asynchronous)

同步传输:

▪ 数据位通过主时钟(master clock)在时间上以连续流的形式传输。

▪ 数据发射器(transmitter)和接收器(receiver)都使用同步时(synchronized clock)钟频率工作。

 异步传输:

▪ 数据位可以在任何时间点发送。

▪ 需要停止位和开始位

idle:怠速发动机或其它机械装置的怠速状态

二者比较

USRT协议

Universal Asynchronous Reception and Transmission (UART)

Protocol for Asynchronous communication in BUS system

TX: Transmitter

RX: Receiver

One connection for data transmission

 Frequently used in conjunction(结合) with the RS-232 standard

在没有时钟的情况下,RX如何正确理解数据?

 Start bit — indicates the beginning of the data word ▪

Stop bit(s) — indicates the end of the data word

 Data length — how many bits does TX transmit

 Transmission speed (Baud rate波特率) — the bit rate of the serial port (bits/second)

发送

数据长度:8 bit 开始位(start bit)都是低的 终止位都是高的

传输速度(transmission speed)是保证接受数据正确的基础

否则就会

优势

✓ 操作简单,有很好的文档记录,因为它是一种广泛使用的方法,有很多在线资源

✓ 不需要时钟

✓ 允许错误检查的奇偶校验位

▪ 缺点:

✓ 不能用于多个主系统和从系统

✓ 每个UART的波特率必须在彼此的10%以内,以防止数据丢失。

✓ 低速

2.I2C协议

I2C是什么

内部集成电路(I2C

▪ 总线系统中的同步通信协议

▪ 遵循主/从层次结构

▪ 一主多从

▪ 只有主机可以启动数据传输

▪ 广泛用于需要许多不同部件的项目

(例如传感器、引脚、扩展和驱动器)协同工作

▪ 标准数据传输速率为100kbits/s,而快速模式传输速率为400kbits/s。

Inter-integrated-circuit (I2C)

▪ Protocol for Synchronous communication in BUS system

▪ Follows a master/slave hierarchy

▪ One master, multiple slaves

▪ Only master can initiate a data transmission

▪ Widely used for projects that require many different parts

(e.g. sensors, pin, expansions and drivers) working together

▪ The standard data transfer rate is 100kbits/s while the Fast Mode transfer rate is 400kbits/s.

I2C结构

串行数据线(serial data line)(SDA):传输数据、地址和

控制信号

串行时钟线(serial clock line)(SCL):用于同步

数据长度是8位

启动条件:

✓ 始终发生在传输开始时,并由主设备启动

✓ 唤醒总线上的空闲从属设备

SDA线路从高状态转换为低状态,而SCL为高状态

停止条件与之相反,但同样由主设备发出

地址字节

✓ 从机地址以8位字节格式发送

✓ 上7位构成从机地址

✓ 第8位用作读/写命令位

0:写入从机;1:从从从机读取

Address Byte:

✓ A slave address is sent in 8-bit byte format

✓ the upper 7 bits, constitute the slave address

✓ the 8th bit serves as a READ/WRITE# command bit

✓ 0: write to a slave; 1: read from a slave

确认(acknowledge)和不确认位(Not acknowledge)(ACK/NACK

✓ 在每个字节传输之后,接收设备发送一个ACK或NACK位。

✓ ACK用于表示字节(地址或数据)已成功发送和接收

✓ NACK表示某个地方发生了错误

由接收器产生的ACKSDA低和SCL

数据位

✓ 8位字节格式

✓ 从地址字节开始

✓ 每个字节必须在ACK/NACK之后

✓ SDA线上的数据在高时钟周期内必须保持稳定。

✓ 接收器仅在SCL高时读取数据位

✓ 仅当时钟信号低时,才允许更改数据线。

在时钟信号是高位时 数据信号是稳定的

SPI协议

▪ 串行外围接口(SPI)

▪ 总线系统中的同步通信协议

▪ 遵循主/从层次结构

▪ 一个主设备,一个/多个从设备

▪ 全双工,可同时发送和接收数据

Serial Peripheral Interface (SPI)

▪ Protocol for Synchronous communication in BUS system

▪ Follows a master/slave hierarchy

▪ One master, one/multiple slaves

Full-duplex, where data can be sent and received simultaneously

四种逻辑信号

SCLK: Serial Clock, set by Master 时钟信号

 MOSI: master output, slave input 输入信号

 MISO: master input, slave output 反馈信号

 SS (or CS): slave select or chip

select (slaves are daisy-chained) daisy-chained 菊花链

第一步主机输出时钟信号

第二步主电源将SS/CS引脚切换至低电压状态,从而激活从电源:

第三步:主设备沿MOSI线路一次向从设备发送一位数据。从机在接收位时读取位

第四步如果需要响应,从机将沿MISO线一次向主机返回一位数据。主机在接收位时读取位

SPI中的两个时钟参数

✓ 时钟极性(clock polarity)(CPOL)-设置空闲状态下时钟信号的极性

✓ 时钟相位 (clock phase)(CPHA)-选择时钟相位

四种不同组合

Clock idle state 是0  数据在时钟从低到高转换时采样

Clock idle state是0 数据在时钟从高到低转换时采样

剩下的情况分别是从高到低和从低到高

优势

✓ 无启动和停止位,因此数据可以连续传输而不中断

✓ 没有像I2C这样复杂的从寻址系统

✓ 数据传输速率高于I2C(几乎是I2C的两倍)

✓ 分开的MISO和MOSI线路,因此可以同时发送和接收数据(全双工)

缺点

✓ 使用四根导线(I2C和UART使用两根导线)

✓ 未确认数据已成功接收(I2C有此功能)

✓ 没有像UART中的奇偶校验位那样的错误检查形式

✓ 仅允许单个主控形状

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值