串行通信方式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
0:表示当前没有检测到停止位; 1:表示当前检测到了停止位(单片机复位时改为位0)。
Bit5/D/A:数据/地址标志位(I2C总线规范有效)。 0:当前接收或发送的字节是地址; 1:当前接收或发送的字节是数据。
Bit6/CKE:I2C总线输入电平规范选择位或SPI时钟沿选择位。 在I2C主控和被控方式下: 0:输入电平遵循I2C总线规范; 1:输入电平遵循SMBus总线规范。
Bit7/WCOL:写操作冲突检测位。 当发生冲突时,I2C总线的状态还没有准备好时,试图向SSPBUF缓 冲器写入数据,WCOL = 1,必须用软件清零。
0:未发生冲突; 1:发生冲突。
3.SSPADD从地址/波特率寄存器
在I2C主控工作方式下,该寄存器被用作波特率发生器的定时常 数装载寄存器。在I2C被控器工作方式下。
名称 特点
用途
常见的串行通信协议
USART
PPCC与与MMCCUU
USB
PC与MCU
I2C
MCU之间
SPI
MCU之间
特点
简单
快, 可靠
简单 复杂,可靠
串行输出原理
串行输入原理
F877单片机主要配置有2种形式的串行通信模块:
主控同步串行通信MSSP
(Master Synchronous Serial Port)

Bit6/SSPOV:接收溢出标志位,被动参数。 0:未发生接收溢出; 1:发生接收溢出。
注意:所指的接收溢出是缓冲器SSPBUF中数据还未取出时,移位 寄存器SSPSR中又收到新的数据,原SSPSR中的数据丢失。
Bit7/WCOL:写操作冲突检测位,被动参数。 在SPI从动方式下: 0:未发生冲突; 1:发生冲突。
Bit7/SMP:I2C总线传送率控制位或SPI采样控制位,主动参数。 在I2C主控和被控方式下: 0:传送率为快速速度模式(400kHz); 1:传送率为标准速度模式(100kHz)。
2.SSPCON同步串口控制寄存器
SSPCON用来对MSSP模块的多种功能和指标进行控制:
Bit3-Bit0/SSPM3-SSPM0:同步串口MSSP方式选择位
9.1 SPI串行通信模块
SPI(Serial PeHale Waihona Puke Baiduipheral Interface)是一种单 片机外设芯片同步串行扩展接口,由摩托罗拉公司推 出。采用SPI接口外围器件的特点是引脚性价比高等优 点,因而在市场上得到了广泛的应用。
10.1.1 SPI模式下相关寄存器
在SPI模式下,有关的寄存器共有10个,其中无 编址的只有一个SSPSR。这10个寄存器中有6个寄存器 是与其它模块共用的。另外有4个寄存器与MSSP模块相 关,它们是与I2C模式共用的。
Bit4/CPK:时钟极性选择位。 0:表示空闲时时钟停留在低电平; 1:表示空闲时时钟停留在高电平。
Bit5/SSPEN:同步串口MSSP使能位。
在SPI模式下时,有关引脚必须正确的设定为输入或输出状态 。
0:关闭串行端口功能,且设定SCK、SOD、SDI和SS为普通数
字I/O脚;
1:允许串行端口工作,且设定SCK、SOD、SDI和SS为SPI接口专用
4. 同步串口控制寄存器2-SSPCON2
主要是为增强MSSP模块I2C总线模式的主控器功能 而新增加的。
Bit0/SEN:启动信号时序发送使能位。 0:不在SDA和SCL引脚上建立和发送启动信号时序; 1:在SDA和SCL上建立并发送一个启动信号(被硬件自动清零)。 Bit1/RSEN:重启动信号时序发送使能位。
1:使能接收模式。 Bit4/ACKEN:应答信号时序发送使能位,在I2C主控接收方式下:
0:表示不在SDA和SCL引脚上建立和发送应答信号时序; 1:表示在SDA和SCL上建立和发送一个带ACKDT的应答信号(被硬件自动清零)。
送一个停止P信号时序,结束整个通信过程,并且释放总线,使总线返回空 闲状态。
9.2.2 I2C总线模式下相关的寄存器
❖ 与I2C总线有关的寄存器共有12个。其中,有6个寄存器(INTCON 、PIR1、PIE1、PRI2、PIE2、TRISC)是与单片机其他模块共用 。
❖ 属于I2C总线专用的两个寄存器SSPCON2和SSPADD。
【例题9-2】在电路原理图8-5基础上,对其电路结构稍作调 整,以便外扩展一个静态128KEPROM数据存储器。利用RC3、RC4、 RC5引脚组成一个SPI同步串行方式,通过164移位产生17位寻址功 能,实现对HM628128的并行数据传送(RD端口)。
编程要求:首先将256个数据00H-FFH存入EPROM单元0000H00FFH中,然后再将这些单元中的数据逐个取出,送往数码显示区 的最后两位显示数据内容,每个数显示停留1秒种。
1.SSPSTAT同步串口寄存器
SSPSTAT用来记录MSSP模块的各种工作状态:
Bit0/BF:缓冲器已满标志位,被动参数。 在I2C总线方式下接收时: 0:缓冲器SSPBUF还为空; 1:缓冲器SSPBUF已经满。 在I2C总线方式下发送时: 0:数据发送已完成(不含应答和停止位),缓冲器SSPBUF已经空; 1:数据正在发送(不含应答和停止位),缓冲器SSPBUF还是满的。
9.2 I2C串行通信模式
1980年PHILIPS公司首创I2C(Inter Integrated Circuit Bus)总线规范,已成为一种串行总线事实上的工业标准。I2C总 线是一种高性能芯片间串行同步传输总线,被大量的用作系统内 部的电路板级总线。
它定义了两根信号线,串行数据线SDA和串形时钟线SCL,可 实现双工同步数据传输,能够极其方便的构成多机系统和外围器 件扩展系统。
注意:当WCOL=1, 正在发送前一个数据时,又有新数据写入 SSPBUF,必须用软件予以清零。
4.SSPSR移位寄存器
直接从端口引脚接收或发送数据,将已经成功 接收到的数据送到缓冲器SSPBUF中,或者从缓冲器 SSPBUF读取将发送的数据。
9.1.2 SPI模式工作原理
要发送的数据通过数据总线送入发送缓冲器,然后 自动传送到移位寄存器中;移位寄存器接收到数据自动 传送到接收缓冲器,然后由程序读取收到的数据;移位 寄存器有移入和移出两个端口,分别与收和发两条通信 线路连接,负责收发数据。
0:不在SDA和SCL引脚上建立和发送重启动信号时序; 1:在SDA和SCL上建立并发送一个重启动信号(被硬件自动清零)。 Bit2/PEN:停止信号时序发送使能位。 0:不在SDA和SCL引脚上建立和发送停止信号时序; 1:在SDA和SCL上建立并发送一个停止信号(被硬件自动清零)。 Bit3/RCEN:接收使能位。 0:禁止接收模式工作;
Bit4/CKP:时钟极性选择位(对于SPI模式而言)。 在I2C被控方式下,SCL时钟使能位(I2C主控下没有用): 0:将时钟线拉低并保持,以延长时钟周期,来确保数据建立时间; 1:时钟正常工作。
Bit5/SSPEN:同步串口MSSP使能位。 0:不允许关闭串行端口工作,设定SDA和SCL为普通数字I/O引脚; 1:允许串行端口工作,设定SDA和SCL为I2C总线专用引脚。 Bit6/SSPOV:接收溢出标志位。 当接收溢出时,SSPBUF前一个数据还没被取走,又收到了新数据; 在发送方式下此位无效,必须用软件清零。 0:未发生接收溢出; 1:发生接收溢出。
主控器向被控器写数据
主控器向被控器读数据
10位地址格式
•其中A9、A8是10位地址的高2位。
2.I2C地址设定
在I2C总线系统中的器件,一般都有一个专用的7位 从器件地址码。地址码分为两部分,A6、A5、A4、A3为 器件类型码。如存贮器为:1010,LCD点阵显示器启动 器为:0111等等,不可更改统一规定。A2、A1、A0可由 器件改变,所以同一类器件在I2C总线系统中最多能接8 个。
在I2C被控方式下: 0:写操作; 1:读操作。 在I2C主控方式下: 0:不在进行发送;
1:正在进行发送。
Bit3/S:启动位,用于I2C总线方式,当SSPEN = 0, MSSP被关闭,该位被自 动清零。
0:当前没有检测到启动位; 1:当前检测到了启动位(单片机复位时改为位0)。
Bit4/P:停止位,仅用于I2C总线方式,当SSPEN = 0,MSSP被关闭时,该 位被自动清零。
1.SSPBUF(收/发数据缓冲器) •2.SSPSTAT(同步串口状态寄存器)
Bit0/BF:缓冲器满标志位,被动参数。 仅仅用于SPI接收状态下:
0:缓冲器空; 1:缓冲器满。 Bit6/CKE:SPI时钟沿选择和I2C总线输入电平选择位。
在CKP = 0,静态电平为低时: 0:SCK的下降沿发送数据; 1:SCK的上升沿发送数据。 在CKP = 1, 静态电平为高时: 0:SCK的上升沿发送数据; 1:SCK的下降沿发送数据。
通用同步/异步收发器USART
(Universal Synchronous/Asynchronous Receiver Transmitter )

MSSP模块主要应用于系统内部近距离的串行通信扩 展,如SPI、I2C模式。USART模块主要应用于系统之间的 远距离串行通信,在外围接口电路及计算机通信中应用 相当广泛。
Bit7/SMP:SPI采样控制位兼I2C总线转换率控制位。 在SPI主控方式下: 0:在输出数据的中间采样输入数据; 1:在输出数据的末尾采样输入数据。 注意:在SPI从动方式下,SMP位必须置位。
3.SSPCON(同步串口控制寄存器)
Bit3-Bit0/SSPM3-SSPM0:同步串行口MSSP方式选择位。
SPI模式电路的基本结构
SPI工作原理示意图
【例题9-1】如图9-5为8位数码显示和16个键盘电路,利用 F877的SPI同步串行功能实现数码管数据串行传送,并通过8个 74LS164组成的移位电路,达到数码数据的静态显示。而16个键盘 组成矩阵电路,采用RD口高低四复合选通。
请编写相应的应用程序,要求:在系统复位后8位数码管全 暗,接着1、2、3…7分别从数码管的最高位到最低位依次点亮, 最后直接进入系统的监控状态,以在最高位出现“-”为标志。
9.2.1 I2C串行通信模式
I2C总线的数据传输过程,在一次通信过程中,如主控器为 发送器则称主控发送器,而被控器为接收器则称被控接收器;如 主控器为接收器则称主控接收器,而被控器为发送器则被控发送 器。
1.I2C数据格式
I2C数据格式有五部分组成:启动信号( SCL=1,SDA从高到低);被控器地址(可7位或10位) ;R/ W信号;若干个数据字节;停止信号(SCL=1, SDA从低到高)。
3.数据传递
❖主控器发送数据,被控器接收数据的通信过程如下: ❖主控器在检测到总线空闲的状况下,首先发送一个启动S信号; ❖接着发送一个地址字节(包含着7位地址码和一位读/写位,假设= 0 ); ❖在被控器收到地址字节后回送一个应答信号ACK = 0; ❖在主控器收到该应答位后开始发送第一个数据字节; ❖在被控器收到第一个数据字节后又回送一个应答位ACK = 0; ❖在主控器收到应答位后开始发送第二个数据字节; ❖被控器收到第二个数据字节后再返送一个(非)应答位(NACK=1)ACK=0; ❖在主控器将所需发送的全部数据(在此假设是两个字节)发送完毕后,就发
串行通信方式
什么是通信
两个设备之间交换数据的过程我们称之为通信
•单
•A 工•双
•B

❖ 从同时传输的数据位数来分为:
1、并行通信(Parrel) 2、串行通信(Serial)
通信的方式
串并行方式各自特点
速度
价格 距离
并行
相对快 •贵 •短
串行
•相对慢 •廉价 •远
串行通信帧格式
•帧的概念:起始位,数据位,速率(波特率),应答位或停止位。
Bit1/UA:地址更新标志位(I2C总线10位寻址方式),由硬件自动设置。 0:不需要更新SSPADD寄存器中的地址; 1:需要更新SSPADD寄存器中的地址。
Bit2/R/W:读写信息位(仅用于I2C总线方式)。 该位记录最近一次地址匹配后,从地址字节中获取的读/写状态信息
。它与SEN、RSEN、PEN、RCEN或ACKEN位一起,将用于显示MSSP是否处于空 闲状态。该位仅仅从地址匹配到下一个启动位或停止位或非应答位被检测到 的期间有效。
相关文档
最新文档