当前位置:文档之家› 第4章通信接口

第4章通信接口


在SPI通信中,数据
的高位先发。图中为几种 情况下的SPI时钟与信号 线的仿真波形,其中所用 的晶振为4MHz,选用SPI 时钟为Fosc/16,即每位 时间为4Tcy=4μs,图中 的横向每格为2μs。4种 情况均为发送0x8B,即 0b10001011的波形图。
应用举例
应用举例
SPI通用子程序:发送或接收1个字节数据
//若当前为发送方,将要发送的数据由形参A 代入,返回值无效。 //若当前为接收方,由形参代入的发送数据 无效,称之为哑数据,任意数值均可!return 返回接收到的有效数据。
char SPI_WRITE(char A) { char BUF;
SSPBUF=A; //把要发送的数据A送入SSPBUF寄存器,即
SSPSTAT,同步串行状态寄存器
地址:0X94
位 位名称
功能
值 复位 值
说明
7
SMP
SPI的采样控制,在SPI从动方式下, 此位须为0,只有SPI主动方式有效
0
1 在数据信号的末端采样 0 在数据信号的中间采样
6
CKE 时钟沿选择
5-1 与I2C有关,与SPI无关,
0
BF
接收缓冲区滿标志
1
在CKP=1时:下降沿发送数据 在CKP=0时:上升沿发送数据
SPI模式:SCK、SDO、SDI、SS为串行口引 脚
0
相应的引脚为一般的IO脚
4
CKP
时钟的极性选 择
0
1 0
空闲时钟为高电平 空闲时钟为低电平
寄存器名称:SSPCON 地址:0X14

位名 称
功能
复位 值
说明
3 SSM3
2 SSM2 MSSP工作 模式选择
1 SSM1
0 SSM0
0 0000:SPI主控模式, 时钟为Fosc/4 0001:SPI主控模式, 时钟为Fosc/16
0
0
在CKP=1时:上升沿发送数据 在CKP=0时:下降沿发送数据
1 接收缓冲区滿 0
0 接收缓冲区空
4.11.2 SPI工作原理与操作
硬件连接
两个具有相同SPI接口芯片相连,是将一方的SDO与另一 方的SDI相连,将双方的SCK、SS(低电平有效)相连
在从动选择模式下,通过SS引脚,可以将多个从动模式 器件和一个主控模式器件连接在一起工作。
同步串行通信、SPI、I2C通信
王骞 2015.10
4.11 SPI接口通信
SPI接口与I2C是主同步串行接口(MSSP) 中的通信方式,它们主要用于单片机与其他 芯片间或单片机间的通信,如常用的各种串 行通信芯片、数字传感器等。
SPI是Serial Peripheral Interface的缩写, 是摩托罗拉公司定义的一个通信标准。
初始化编程(双方)
①正确设置TRISC和TRISA: SDI 定义成输入; SDO 定义成输出; 主控方:SCK 、SS定义成输出; 从动方:SCK、SS 定义成输入;
即主控方TRISC=0b**010***, TRISA5=0 从控方TRISC=0b**011***, TRISA5=1
②使能串行口:将使能位SSPEN位置位。
由于有了时钟线在起着协调发送、 接收双方的时间的作用,因此在同步通 信中不需要起始位和停止位,所以通信 的效率相对较高。
根据时钟线的发送方不同,同步串行通信 分为主控和从动方式,控制时钟线的一方称 为主控方,另一方则为从动方。
主控方式又分为主控发送方式和主控接收 方式,从动方式又分为从动发送方式和从动 接收方式。
相关引脚:
RC5/SDO,引脚24,串行数据输出 (SDO: Serial Data Output);
RC4/SDI,引脚23,串行数据输入 (SDI: Serial Data Input);
RC3/SCK,引脚18,串行时钟 (SCK:Serial Clock);
RA5/SS,从动选择 (SS:Slave Select),当工 作在从动模式时,可能还需要此引脚。
SPI通信与异步/同步串行通信的 另一个不同点是,SPI发送时是高位 (位7)先发。
4.11.1 与SPI有关的寄存器介绍
除了端口方向、中断控制外,与SPI有关的 寄存器有SSPCON、SSPSTAT、SSPBUF。
在SPI通信中,发与收的缓冲寄存器都是 SSPBUF,相当于USART中的RCREG和TXREG。
SSPCON寄存器(只给出与SPI有关的部分)
寄存器名称:SSPCON
地址:0X14
位 位名称
功能
复位 值

说明
7
WCOL
发送缓冲区冲 突检测
1 0
0
发生了冲突操作 无冲突操作发生
6
SSPOVቤተ መጻሕፍቲ ባይዱ
接收缓冲区溢 出标志
1 0
0
接收溢出 未发生接收溢出
5
SSPEN
使能MSSP模块, 启用SPI或I2C
0
1
0 0010:SPI主控模式, 时钟为Fosc/64 0011:SPI主控模式, 时钟为TMR2 输出/2
0100:SPI从动模式, 时钟为SCK引脚,使能 0 SS引脚控制
0101:SPI从动模式, 时钟为SCK引脚,禁止 0 SS引脚控制,SS可用作I/O引脚
SSPSTAT寄存器(只给出与SPI有关的部分)
相关主题