本章主要介绍串行接口的工作模式,串行接口的控制和基本应用,以及几种常用的串行总线。
1.单片机串行接口的基本概念和4种工作模式
串行接口是8051单片机之间以及与其他计算机之间实现通信的接口。8051中的串行接口是一个全双工(Full Duplex)通信接口,具有发送缓冲器和接收缓冲器。其数据发送端为TXD,接收端为RXD。串行口的接收和发送均是通过特殊功能寄存器SBUF的操作完成的,要发送的数据写入SBUF,接收的数据从SBUF读取。
串行接口的4种工作模式由串行接口控制寄存器SCON控制。采用定时器T1作为波特率发生器,特殊功能寄存器PCON控制波特率的倍率。
2.串行接口的控制和基本应用
串行接口控制寄存器SCON在SFR中的物理地址为98H,是可位寻址的特殊功能寄存器,用于通信方式的选择,接收和发送控制通信状态的指示。需要加以理解和注意的是,TB8用于存储发送数据的第9位,RB8用于存储接收数据的第9位,它们都是在模式2、3中作为编程校验位使用。SM2为多机通信控制位。
工作模式0主要用于单片机I/O口的扩展,在数据的输入和输出控制中,RXD作为数据线,TXD输出同步时钟脉冲。而且在模式0下,以8位数据为一帧,不设起始位和停止位,先发送或接收最低位。波特率固定为晶振频率的1/12。
模式1为10位数据被发送(从引脚TXD)或接收(从引脚RXD):1个启动位,8个数据位,1个停止位。在接收时,停止位被送入特殊功能寄存器SCON的RB8位。波特率是可变的。
模式2和3的数据帧格式都是11位,其中1个启动位,8个数据位,可编程的第9个数据位,1个停止位。可编程位(D8)可以由软件赋予0或1,存放在TB8中,发送时连同8位数据共同通过通信总线发出。接收端收到数据后,接收的D0~D7数据在接收SBUF内,发送的可编程位存入RB8中。模式2的波特率可为1/32或1/64晶振频率;模式3的波特率是可变的,可通过定时器T1设定。(www.xing528.com)
3.目前单片机应用系统中常用的几种串行总线接口
SPI是一种高速全双工同步通信总线,支持这种总线的器件很多,包括I/O扩展,EEP- ROM、ADC、DAC、时钟以及LCD显示驱动器件等,SPI串行通信接口需要使用4条线,对应的信号如下:
MOSI——主器件数据输出,从器件数据输入
MISO——主器件数据输入,从器件数据输出
SCLK——时钟信号,由主器件产生
SS——从器件使能信号,由主器件控制
I2C总线是PHILIPS公司推出的一种串行总线,简单的操作特性被广泛地应用在各式各样基于微控器的专业、消费与电信产品中。I2C总线只有两根双向信号线,一根是双向数据线SDA,另一根是时钟线SCL。所有连接到I2C总线上的串行器件,其数据线都连接到总线的SDA上,时钟线则连接到总线的SCL上。多个符合I2C总线标准的器件都可以通过同一条I2C总线进行通信,它们之间通过器件地址来区分,而不需要额外的地址译码器。
1-Wire总线是一种特殊串行数据通信方式,它将地址线、数据线、控制线合并为一根信号线,允许在这根信号线上挂接多个1-Wire总线器件,如ADC、DAC、EEPROM、Flash等器件,具有节省I/O资源、结构简单、成本低廉、便于总线扩展和维护等优点。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。