《单片机串口通信.ppt》由会员分享,可在线阅读,更多相关《单片机串口通信.ppt(46页珍藏版)》请在优知文库上搜索。
1、向下向下向上向上未页未页首页首页返回返回第第10章章 串行通信及接口串行通信及接口 向下向下向上向上未页未页首页首页返回返回 串行通讯技术是单片机系统开发中常用的技术之一,串行口也是单片机常规内部集成的功能。近几年来,虽然新的通讯技术、手段不断出现,但串行通讯技术由于它技术成熟、开发方便而一直都被广泛应用于工控场合。 向下向下向上向上未页未页首页首页返回返回l51系列单片机中一般也集成了全双工的串行端口。一般通过定时器来设定通讯的波特率,通过设置几个寄存器来设定工作方式等等。向下向下向上向上未页未页首页首页返回返回串行口的结构:介绍与串行通讯相关的寄存器以及工作模式等串行通讯的原理:主要介绍同
2、步,异步通讯的原理通讯协议:介绍常用的通讯协议的设计与实现单机通讯:介绍单片机与PC机、单片机与单片机之间的串行通讯多机通讯:介绍单片机多机通讯的原理和多机通讯协议的设计 通讯程序的调试:介绍如何调试通讯程序 向下向下向上向上未页未页首页首页返回返回10.1 10.1 串行口的结构 51系列单片机内部有全双工串行口,提供了4种工作方式。波特率可由软件设置,由片内的定时器/计数器产生。接收、发送均可工作在查询方式或中断方式,使用十分灵活。串行口除了用于数据通讯外,还可以非常方便地构成一个或多个并行输入/输出口,或作串,并转换,或用来驱动键盘和显示器。 向下向下向上向上未页未页首页首页返回返回串行
3、口控制寄存器SCON:该寄存器的字节地址为98H,可位寻址。SCON格式为: 10.1.1 10.1.1 串口控制寄存器串口控制寄存器 SCON SM0 SM1 SM2 REN TB8 RB8 TI RI 位 地9F 9E 9D 9C 9B 9A 99 98 D7 D6 D5 D4 D3 D2 D1 D0 向下向下向上向上未页未页首页首页返回返回 SM0、SM 1:控制串行口的工作方式。 SM 2:允许方式2和方式3进行多机通讯控制位。在方式2或方式3中,如SM 2=1,则接收到第9位数据。 EN:允许串行接收控制位。由软件置位时允许接收,软件清零时停止接收。 TE8:是工作在方式2和方式3时
4、,要发送的第9位数据。 RB8:是工作在方式2和方式3时,接收到的第9位数据。向下向下向上向上未页未页首页首页返回返回 TITI:发送中断标志位。由片内硬件在方式发送中断标志位。由片内硬件在方式0 0串行发送第串行发送第8 8位结束时置位,或在其他方式位结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件串行发送停止位的开始时置位。必须由软件清零。清零。 RI RI:接收中断标志位。由片内硬件在方式接收中断标志位。由片内硬件在方式0 0串行接收到第串行接收到第8 8位结束时置位,或在其他方位结束时置位,或在其他方式串行接收到停止位的中间时置位,必须由式串行接收到停止位的中间时置位,必
5、须由软件清零。软件清零。向下向下向上向上未页未页首页首页返回返回PCON:其字节地址a7H、没有位寻址功能。PCON的格式如下,其中与串行接口有关的只有D7。 D7 (SMOD)是波特率加倍位,为1的时候,波特率加倍。 10.1.2 10.1.2 特殊功能寄存器特殊功能寄存器 PCON D7 D6 D5 D4 D3 D2 D1 D0 SMOD 向下向下向上向上未页未页首页首页返回返回51系列单片机有4种工作方式,通过SCON中的SM1、SM0来设置 10.1.3 10.1.3 串口工作方式串口工作方式 功能说明001101010123移位寄存器方式(用于扩展I/O口)8位UART,波特率可变(
6、T1溢出率/n)9位UART,波特率为fosc/64或fosc/329位USRT,波特率可变(T1溢出率/n)SM0 SM1方式向下向下向上向上未页未页首页首页返回返回方式方式0 0 在方式0状态下,串行口为同步移位寄存器方式,其波特率是固定的,为fosc/12。数据由RXD端出入,同步移位脉冲由TxD端输出,发送、接收的是8位效据,不设起始比和停止位,低位在前,高位在后。 在方式0的发送状态,当一个数据写入串行口发送缓冲器SBUF时,串行口将数据以fosc/12的波特率由低位到高位从TxD引脚输出,发送完中断标志TI置1,TxD引脚输出同步脉冲。 向下向下向上向上未页未页首页首页返回返回该方
7、式下串行口作为同步移位寄存器使用,可以利用移位寄存器进行并行I/O扩展。这时以RxD端作为数据移位的输入、输出口,而出TXD端提供移位时钟脉冲。在方式0的接收状态下,设置REN=1和RI=0,串行口就处于允许接收状态,此时RxD为串行输入端,TXD为同步脉冲输出端。串行接收的波特串为fosc/12。当接收完一帧数据(8位)后,控制信号复位,中断标志RI被置位,呈中断申请状态。每次接收完成时,必须通过软件将RI清零,以启动下一次接收。 向下向下向上向上未页未页首页首页返回返回方式方式1 1 此时串行口为8位异步通讯接口。数据长度为10位:含1位起始位,8位数据位(低位在先)和1位停止位。TxD为
8、发送端,RxD为接收端。串行口以方式1发送时,数据由TxD端输出,发送完10位数据后,发送中断标志置1。 向下向下向上向上未页未页首页首页返回返回当REN=1时,串行口便以所选波特率的16倍速率采样RxD引脚状态,当采样到RXD端从1到0的跳变时就进行接收,接收的值是3次采样中至少二次相同的值,以保证数据可靠无误。在起始位,如果接收到的值不为0,则起始位无效,重新接收,当再次接收到一个由l到0的跳变时,重新启动接收。如果接收值为0,起始位有效,串行口开始接收数据位的其余信息(10位),接收完成后,RI被置位。方式1的波特率是可以通过软件进行设置的,其计算公式如下: 向下向下向上向上未页未页首页
9、首页返回返回 所谓的溢出率是指单位时间内T1的溢出次数,假设定时器的初值为N则,溢出率为=fosc/12*(2n-N)。其中n为定时器的定时位数,例如,将T1设置为工作模式2,即8位自动重装的模式,则n=8,溢出率为=fosc/12*(28-N)。 方式 1 波特率= 定时器 T1 的溢出率 2SMOD 32 向下向下向上向上未页未页首页首页返回返回假如fosc=11.0592MHz,想得到9600的拨特率,此时,定时器T1初值的计算方法为:N=28-(2SMOD*11.0592*106)/(9600*32*12) 如果SMOD=1则N=FAH。 向下向下向上向上未页未页首页首页返回返回方式方
10、式2 2 串行口工作在方式2时,为9位异步通讯口,数据长度为11位,1位起始位、8位数据位(低在先)、1位可编程位(第9数据位)和1位停止位。在方式2发送时,数据由TxD端输出,附加的第9位数据为SCON中的TB8;送完一帧信息后,TI被置1。在发送下一帧信息之前,TI必须清零。 向下向下向上向上未页未页首页首页返回返回在方式2接收时,数据由RxD增输入,接收11位信息。接收完成后设置相应的中断标志位。方式2的波特率是固定的,其计算公式如下: 方 式 2 波 特 率 = fosc 2SM OD 64 向下向下向上向上未页未页首页首页返回返回方式方式3 3 方式3为波特串可变的9位异步通讯方式,
11、除了波特率外,方式3和方式2相同,方式3的波特率由下式确定: 方式 3 波特率= 定时器 T1 的溢出率 2SMOD 32 向下向下向上向上未页未页首页首页返回返回 相对与并行通讯来说,串行通讯硬件代价、结构简单,传输距离上也要比并行通讯长的多;但由于数据是一位位传送的,所以在速度上比并行通讯要慢,如图10-1、10-2所示为并行通讯示例和串行通讯示例。 向下向下向上向上未页未页首页首页返回返回并行通讯 串行通讯 向下向下向上向上未页未页首页首页返回返回串行通讯在通讯方式上分为单工、半双工和全双工三种。l 单工:通讯双方为A、B;在单工方式下只能由A-B,或者只能由B-A。l 半双工:通讯双方
12、为A、B;可以互相传送,但在某个时间内,只能由A-B,或者只能由B-A。全双工:通讯双方为A、B;可以互相传送,在任何时间内都可以A-B和B-A可以同时进行。 向下向下向上向上未页未页首页首页返回返回串行通讯在数据传输上的方式分为了异步通讯和同步通讯两种。u 异步通讯异步串行通讯规定了字符数据的传送格式,即每个数据以相同的格式传送。一般的格式如图10-3所示。 图10-3异步通讯数据帧结构 向下向下向上向上未页未页首页首页返回返回每一帧信息由起始位、数据位、奇偶校验位和停止位组成。l 起始位:在通讯线上没有数据传送时处于逻辑“1”状态。当发送设备要发送数据时,首先发出一个逻辑“0”信号,这个逻
13、辑低电平就是起始位。起始位通过通讯线传向接收设备,当接收设备检测到这个逻辑低电平后,就开始准备接收数据位信号。因此,起始位所起的作用就是表示字符传送开始。l 数据值:当接收设备收到起始位后,紧接着就会收到数据位。数据位的个数可以是5、6、7或8位的数据。在字符数据传送过程中,数据位从最小有效位(最低位)开始传送。向下向下向上向上未页未页首页首页返回返回l 奇偶校验位:数据位发送完之后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通讯双方在通讯时须约定一致的奇偶校验方式。就数据传送而言,奇偶校验位是冗余位,但它表示数据的一种性质。这种性质用于检错,虽有限但很容易实现。l 停止位:在奇偶位或数据
14、位(当无奇偶校验时)之后发送的是停止位是一个字符数据的结束标志,可以是1位、1.5位或2位。由于异步通讯每次都必须发送起始位,结束位等等,所以在数据传输速度上有限,一般应用于低速场合 向下向下向上向上未页未页首页首页返回返回u 同步通讯同步通讯不像异步通讯那样靠起始位在每个字符数据开始时使发送相接收同步,而是通过同步字符在每个数据块传送开始时使收/发双方同步,一般格式如图10-4所示。 图10-4同步通讯数据结构 向下向下向上向上未页未页首页首页返回返回与异步通讯相比,同步通讯传输的数据量大,速度也快,常用于高速传输的场合中。通讯速度是用波特率来表示的。波特率表示的是单位时间内传输数据的位数,
15、单位为bps。例如,前面所说的波特率为9600bps,这表示,在这种工作状态下,单片机的串行口每秒钟能发送或者接受9600位的数据,也就是1.2K字节的数据。波特率设置在异步通讯中是非常重要的;只有当通讯双方以相同的波特率发送或者接收数据,传输才能够正确。 向下向下向上向上未页未页首页首页返回返回10.3 10.3 通讯协议通讯协议 通讯协议是通讯双方事先约定,共同遵守的通讯协议是通讯双方事先约定,共同遵守的一个协议。在通讯中,只有双方同时满足协议一个协议。在通讯中,只有双方同时满足协议要求,才能进行通讯。一般说来,通讯协议分要求,才能进行通讯。一般说来,通讯协议分为了电气协议和软件协议两个部
16、分。为了电气协议和软件协议两个部分。 电气协议主要规定了通讯的电气特性,对电气协议主要规定了通讯的电气特性,对接口、信号等做出了详细的说明。串行通讯协接口、信号等做出了详细的说明。串行通讯协议主要有:议主要有:RS-232CRS-232C、RS-485RS-485、RS-449RS-449、RS-RS-422422、RS-423RS-423。其中,应用最为广泛的是其中,应用最为广泛的是RS-RS-232C232C和和RS-485RS-485。 向下向下向上向上未页未页首页首页返回返回 电气协议仅仅是对通讯的电气特性进行规定,换句话说,它仅仅只能保证硬件上的正确性,能完成数据的传输,但究竟这次传输数据的正确与否这个协议就无法保证了但究竟这次传输数据的正确性这个协议就无法保证了。因此在电气协议之外,还必须设计软件协议。 软件协议的主要内容包括了数据格式、错误检测与处理;还可以包括各种通讯中的命令、控制字等。在一个工作环境恶劣的、或者通讯距离比较长的应用中,设计一个软件协议是非常重要的,它可以保证数据传输的正确性。 向下向下向上向上未页未页首页首页返回返回 根据环境和对数据正确性要求的不同,