您的位置:首页 > 其它

STM8S学习01——SPI&IIC

2016-01-08 15:04 225 查看
1、温习IIC总线协议

1)I2C 总线的一些特征

1> 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL

2> 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地址 主机可以作为主机发送器或主机接收器

3> 它是一个真正的多主机总线 如果两个或更多主机同时初始化数据传输可以通过冲突检测和仲裁,防止数据被破坏

4> 串行的 8 位双向数据传输位速率在标准模式下可达 100kbit/s 快速模式下可达 400kbit/s 高速模式下可达 3.4Mbit/s

5> 片上的滤波器可以滤去总线数据线上的毛刺波 保证数据完整

6> 连接到相同总线的 IC 数量只受到总线的最大电容 400pF 限制

2)起始和停止条件

1> 在 I2C 总线中 唯一出现的是被定义为起始 S 和停止 P 条件,其中一种情况是在 SCL 线是高电平时 SDA 线从高电平向低电平切换;

2> 这个情况表示起始条件,当 SCL 是高电平时 SDA 线由低电平向高电平切换表示停止条件;

3> 起始和停止条件一般由主机产生 总线在起始条件后被认为处于忙的状态 在停止条件的某段时间后总线被认为再次处于空闲状态;

4> 如果产生重复起始 Sr 条件而不产生停止条件,总线会一直处于忙的状态,此时的起始条件 S 和重复起始 Sr 条件在功能上是一样的;

5> 如果连接到总线的器件合并了必要的接口硬件,那么用它们检测起始和停止条件十分简便,但是没有这种接口的微控制器在每个时钟

周期至少要采样 SDA 线两次来判别有没有发生电平切换

2、SPI协议学习

1)SPI总线介绍

1> SPI接口是Motorola首先提出的全双工三线同步串行外围接口,采用主从模式架构,支持多设备应用,一般只支持单主设备;

2> 时钟由主设备控制,数据在时钟脉冲下按位传输,高位在前;

3> 目前应用中的数据速率可达几Mbps

2)SPI总线

1> SPI在一般应用中有4根信号线:MOSI、MISO、SCK、SS;

MOSI:主器件数据输出,从器件数据输入

MISO:主器件数据输入,从器件数据输出

SCK:时钟信号,由主设备控制发出

/SS:从设备选择信号,由主设备控制<根据此信号可以决定连接到总线上从设备的数量>

2> 传输模式:

A、根据时钟极性(CPOL)以及相位(CPHA)不同可以组合成 4 种工作模式:SPI0、SPI1、SPI2、SPI3;

(1)SPI0:CPOL=0,CPHA=0

(2)SPI1:CPOL=0,CPHA=1

(3)SPI2:CPOL=1,CPHA=0

(4)SPI3:CPOL=1,CPHA=1

B、时钟极性(CPOL)定义了时钟空闲状态电平,对传输协议没有重大影响;

(1)CPOL=0:时钟空闲状态为低电平;

(2)CPOL=1:时钟空闲状态为高电平。

C、时钟相位(CPHA)定义数据的采样时间;

(1)CPHA=0:在时钟的第一个跳变沿(上升沿或下降沿)进行数据采样;

(2)CPHA=1:在时钟的第二个跳变沿(上升沿或下降沿)进行数据采样;

3> 优缺点

A、优点:

(1)接口简单,利于硬件设计与实现;

(2)时钟速度快,且没有系统开销;

(3)相对抗干扰能力强,传输稳定

B、缺点:

(1)缺乏流控制机制,无论主器件还是从器件均不对消息进行确认,主器件无法知道从器件是否繁忙,因此,需要软件弥补,

增加了软件开发工作量;

(2)没有多主器件协议,必须采用很复杂的软件和外部逻辑来实现多主器件架构
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: