《单片机及串口通信.ppt》由会员分享,可在线阅读,更多相关《单片机及串口通信.ppt(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、计应专业综合实训计应专业综合实训串行通信串行通信v一、串行通信与并行通信概念一、串行通信与并行通信概念在微型计算机中,通信(数据交换)有两种方式:在微型计算机中,通信(数据交换)有两种方式:并行通信和串行通信。并行通信和串行通信。并行通信是指计算机与并行通信是指计算机与I/OI/O设备之间通过多条传输线交设备之间通过多条传输线交换数据,数据的各位同时进行传送。一般有多少位数据换数据,数据的各位同时进行传送。一般有多少位数据就有多少要根数据线。就有多少要根数据线。串行通信是指计算机与串行通信是指计算机与I/OI/O设备之间数据传输的各位是设备之间数据传输的各位是按顺序依次一位接一位进行传送。通常
2、数据在一根数据按顺序依次一位接一位进行传送。通常数据在一根数据线或一对差分线上传输。线或一对差分线上传输。计应专业综合实训计应专业综合实训串行通信串行通信串口通信和并行通信示意图如下:串口通信和并行通信示意图如下:计应专业综合实训计应专业综合实训串行通信串行通信串行通信传输速度慢,但使用的传输设备成本低,串行通信传输速度慢,但使用的传输设备成本低,可利用现有的通信手段和通信设备,适合于计算机可利用现有的通信手段和通信设备,适合于计算机远程通信远程通信;并行通信的速度快,但使用的传输设备并行通信的速度快,但使用的传输设备成本高,适合于近距离的数据传送。而且一些差分成本高,适合于近距离的数据传送。
3、而且一些差分串行通信总线,它们的传输距离远,且抗干扰能力串行通信总线,它们的传输距离远,且抗干扰能力强,速度也比较快。强,速度也比较快。v二、串行通信基础二、串行通信基础串行通信主要涉及以下几个方面的概念:单工、半串行通信主要涉及以下几个方面的概念:单工、半双工和全双工,同步通信和异步通信,波特率和收双工和全双工,同步通信和异步通信,波特率和收发时钟频率。下面分别介绍这几个概念。发时钟频率。下面分别介绍这几个概念。计应专业综合实训计应专业综合实训串行通信串行通信1 1、单工、半双工、全双工、单工、半双工、全双工串行通信的方式主要有这三种。串行通信的方式主要有这三种。单工:如果在通信过程的任意时
4、刻,信息只能由一方单工:如果在通信过程的任意时刻,信息只能由一方A A传到另一方传到另一方B B,则称为单工。例如:,则称为单工。例如:BPBP半双工:如果任意时刻,信息既可由半双工:如果任意时刻,信息既可由A A传到传到B B,又能从,又能从B B传到传到A A,但由于两个通信方向使用同一条信道,因此同,但由于两个通信方向使用同一条信道,因此同一时刻只能有一个方向上的传输存在。收发方向主要是一时刻只能有一个方向上的传输存在。收发方向主要是通过软件协议来控制的,接收和发送只能交替进行。例通过软件协议来控制的,接收和发送只能交替进行。例如:无线通话对讲机。如:无线通话对讲机。全双工:如果在任意时
5、刻,线路上存在全双工:如果在任意时刻,线路上存在A A到到B B和和B B到到A A的双的双向信号传输,此时两个方向的信号使用不同的信道,向信号传输,此时两个方向的信号使用不同的信道,计应专业综合实训计应专业综合实训串行通信串行通信 二者不会互相干扰,因此可以同时进行传输。二者不会互相干扰,因此可以同时进行传输。这种方式称为全双工。全双工使用信道划分技术,通信每这种方式称为全双工。全双工使用信道划分技术,通信每一端都包含发送器和接收器,可以同时发送和接收数据。一端都包含发送器和接收器,可以同时发送和接收数据。例如:电话系统。例如:电话系统。2 2、同步通信和异步通信、同步通信和异步通信串行通信
6、中,数据传输的方法有两种,一种是异步通信,串行通信中,数据传输的方法有两种,一种是异步通信,一种是同步通信。一种是同步通信。异步通信:异步通信以帧的形式发送字符数据,每一帧信异步通信:异步通信以帧的形式发送字符数据,每一帧信息由起始位、数据位、奇偶校验位和停止位构成。息由起始位、数据位、奇偶校验位和停止位构成。异步通信中,每传送一个字节就要使用起始位和停止位,异步通信中,每传送一个字节就要使用起始位和停止位,因此传输速度有限,常用于低速场合因此传输速度有限,常用于低速场合。空闲位空闲位起始位起始位数据数据奇偶校验位奇偶校验位停止位停止位空闲位空闲位1111110 00/1 0/1 0/10/1
7、 0/10/10/10/11 1111111计应专业综合实训计应专业综合实训串行通信串行通信起始位:当通信线路上没有数据传送时,通信线路起始位:当通信线路上没有数据传送时,通信线路保持逻辑电平保持逻辑电平1 1,一旦有数据需要发送,发送设备会,一旦有数据需要发送,发送设备会发送一个逻辑发送一个逻辑0 0信号,接收方检测到这个低电平后,信号,接收方检测到这个低电平后,开始接收数据。开始接收数据。数据位:紧跟在起始位后面的就是数据位,数据位数据位:紧跟在起始位后面的就是数据位,数据位长度为长度为5-8bit5-8bit不等,数据传送时,将从数据位的最不等,数据传送时,将从数据位的最低位开始发送。低
8、位开始发送。奇偶校验位:用于有限差错检测,有奇校验和偶校奇偶校验位:用于有限差错检测,有奇校验和偶校验两种。奇校验是指所有数据位和校验位中,验两种。奇校验是指所有数据位和校验位中,1 1的个的个数为奇数,偶校验是指所有数据位和校验位中,数为奇数,偶校验是指所有数据位和校验位中,1 1的的个数为偶数。个数为偶数。计应专业综合实训计应专业综合实训串行通信串行通信停止位:数据帧的最后是停止位,停止位可以是停止位:数据帧的最后是停止位,停止位可以是1 1位、位、1 1位半或位半或2 2位,表示一个字符传输的结束。位,表示一个字符传输的结束。同步通信:同步通信使用数据块传送信息,而不是字同步通信:同步通
9、信使用数据块传送信息,而不是字节,因此省去了每个字节的起始位和停止位等数据,节,因此省去了每个字节的起始位和停止位等数据,提高了通信的速率。同步通信的每个数据块的开始使提高了通信的速率。同步通信的每个数据块的开始使用同步字符,使接收和发送同步。用同步字符,使接收和发送同步。同步通信使用同步字符使接收和发送方时序同步,数同步通信使用同步字符使接收和发送方时序同步,数据连续传送,期间不允许出现空隙,当无数据发送时,据连续传送,期间不允许出现空隙,当无数据发送时,发送同步字符。与异步通信相比,同步通信发送数据发送同步字符。与异步通信相比,同步通信发送数据量大、速度快,常用于传输速率要求较高的场合。量
10、大、速度快,常用于传输速率要求较高的场合。同步字符同步字符SYN1SYN1 同步字符同步字符SYN2SYN2数据数据计应专业综合实训计应专业综合实训串行通信串行通信3 3、波特率和收发时钟频率、波特率和收发时钟频率计算机通信速度的单位称为波特率,波特率是指单位时计算机通信速度的单位称为波特率,波特率是指单位时间内传送的信息量,信息量单位为间内传送的信息量,信息量单位为bitbit时间单位为秒时间单位为秒因此:因此:1 1波特波特=1=1位位/秒秒=1bit/s=1bps=1bit/s=1bps在异步串行通信中,接收方和发送方使用相同的波特率,在异步串行通信中,接收方和发送方使用相同的波特率,才
11、能成功传输数据。才能成功传输数据。收发时钟是指控制通信设备接收或发送字符的时钟信号,收发时钟是指控制通信设备接收或发送字符的时钟信号,通常一个位持续时间中,会有多个收发时钟周期,收发通常一个位持续时间中,会有多个收发时钟周期,收发时钟频率的大小影响同步的准确性。波特率一般为收发时钟频率的大小影响同步的准确性。波特率一般为收发时钟频率的时钟频率的n n分之一。同步传送方式下,分之一。同步传送方式下,n n的值为的值为1 1,异,异步方式下,步方式下,n n值可以被设为值可以被设为1 1、1616、64.64.计应专业综合实训计应专业综合实训串行通信串行通信v三、单片机串口结构三、单片机串口结构S
12、TC12C5A60S2STC12C5A60S2系列单片机具有系列单片机具有2 2个采用个采用UARTUART工作方式的全双工作方式的全双工串行通信接口工串行通信接口(串口串口1 1和串口和串口2)2)。每个串行口由。每个串行口由2 2个数据缓个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。每个串行口的数据缓冲器由率发生器等组成。每个串行口的数据缓冲器由2 2个互相独立个互相独立的接收、发送缓冲器构成,可以同时发送和接收数据。发的接收、发送缓冲器构成,可以同时发送和接收数据。发送缓冲器只能写入而不能读出,接收缓冲器只能读
13、出而不送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以共用一个地址码。能写入,因而两个缓冲器可以共用一个地址码。STC12C5A60S2STC12C5A60S2系列单片机的两个串行口都有系列单片机的两个串行口都有4 4种工作方式,种工作方式,其中两种方式的波特率是可变的,另两种是固定的,以供其中两种方式的波特率是可变的,另两种是固定的,以供不同应用场合选用。用户可用软件设置不同的波特率和选不同应用场合选用。用户可用软件设置不同的波特率和选择不同的工作方式。主机可通过查询或中断方式对接收择不同的工作方式。主机可通过查询或中断方式对接收/发发送进行程序处理。送进行程序处
14、理。计应专业综合实训计应专业综合实训串行通信串行通信 3.13.1、串行口相关寄存器、串行口相关寄存器串口的访问和设置是通过访问其相关特殊寄存器进行串口的访问和设置是通过访问其相关特殊寄存器进行的。与串口相关的特殊寄存器有如下的。与串口相关的特殊寄存器有如下:符号符号地址地址复位值复位值符号符号地址地址复位值复位值BRTBRT9CH9CH0000 0000B0000 0000BIPIPB8HB8H0000 0000B0000 0000BAUXRAUXR8EH8EH0000 0000B0000 0000BIPHIPHB7HB7H0000 0000B0000 0000BSCONSCON98H98H
15、0000 0000B0000 0000BSADENSADENB9HB9H0000 0000B0000 0000BSBUFSBUF99H99Hxxxxxxxx xxxxBxxxxBSADDRSADDRA9HA9H0000 0000B0000 0000BPCONPCON87H87H0000 0000B0000 0000BWAKE_CLKOWAKE_CLKO8FH8FH0000 0000B0000 0000BIEIEA8HA8H0000 0000B0000 0000B计应专业综合实训计应专业综合实训串行通信串行通信3.1.13.1.1串行口控制寄存器串行口控制寄存器SCONSCON(可以位寻址)(可
16、以位寻址)串行控制寄存器串行控制寄存器SCONSCON用于选择串行通信的工作方式和某些控制功能。用于选择串行通信的工作方式和某些控制功能。其格式如下:其格式如下:D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0SM0/FESM0/FESM1SM1SM2SM2RENRENTB8TB8RB8RB8TITIRIRI下面介绍各个位的功能:下面介绍各个位的功能:SM0SM0、SM1SM1为了适应不同通信环境和接口的需要,单片机提供为了适应不同通信环境和接口的需要,单片机提供4 4种不种不同的工作方式,这两位就用于设置串口的工作方式。同的工作方式,这两位就用于设置串口的工作方式。SM0SM
17、0、SM1SM1串串口工作方式的对应关系如下表:口工作方式的对应关系如下表:计应专业综合实训计应专业综合实训串行通信串行通信SM2SM2:串口多机通信控制位。串口多机通信控制位。RENREN:允许串行接收控制。将其置为允许串行接收控制。将其置为1 1时允许接收。时允许接收。RB8RB8:用于保存串口工作方式用于保存串口工作方式2 2和方式和方式3 3情况下接收到的第情况下接收到的第9 9位数据。位数据。TI:TI:串口中断发送标志。当串行口数据发送完毕时置位串口中断发送标志。当串行口数据发送完毕时置位TITI,同时,同时向向CPUCPU发送串口中断请求,发送串口中断请求,CPUCPU响应中断后
18、响应中断后SM0SM0SM1SM1 工作方式工作方式功能说明功能说明0 00 0方式方式0 0同步移位串行方式同步移位串行方式0 01 1方式方式1 18 8位位UARTUART波特率可变波特率可变1 10 0方式方式2 29 9位位UARTUART1 11 1方式方式3 39 9位位UARTUART波特率可变波特率可变计应专业综合实训计应专业综合实训串行通信串行通信 不对该位清不对该位清0 0。必须由软件清零。必须由软件清零。RIRI:串口中断接收标志。当串行口数据接收到一个数据时置位串口中断接收标志。当串行口数据接收到一个数据时置位RIRI,同时,同时CPUCPU发送串口中断请求。发送串口
19、中断请求。CPUCPU响应中断后不对该位清响应中断后不对该位清0 0。必须。必须由软件清零。由软件清零。3.1.2 3.1.2 特殊功能寄存器特殊功能寄存器PCONPCON特殊功能突破口特殊功能突破口PCONPCON仅有高两位与串口有关仅有高两位与串口有关D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0SM0DSM0DSM0D0SM0D0SMODSMOD:波特率选择位。当用软件置位波特率选择位。当用软件置位SMODSMOD,则使串行通信波特率加,则使串行通信波特率加倍。倍。计应专业综合实训计应专业综合实训串行通信串行通信SM0D0:SM0D0:帧错误检测有效控制位帧错误检测有效
20、控制位.当当SMOD0=1SMOD0=1,SCONSCON寄存寄存器中的器中的SM0/FESM0/FE位用于位用于FE(FE(帧错误检测帧错误检测)功能;当功能;当SMOD0=0SMOD0=0,SCONSCON寄存器中的寄存器中的SM0/FESM0/FE位用于位用于SM0SM0功能功能,和和SM1SM1一起指一起指定串行口的工作方式。定串行口的工作方式。3.1.3 3.1.3 串行口数据缓冲寄存器串行口数据缓冲寄存器SBUFSBUF串口中的发送串口中的发送/接收缓冲器接收缓冲器SBUFSBUF实际上共有两个,分别实际上共有两个,分别为发送缓冲器和接收缓冲器,它们在物理上是完全独立为发送缓冲器和
21、接收缓冲器,它们在物理上是完全独立的。因此可以同时进行发送和接收。两个缓冲器共用一的。因此可以同时进行发送和接收。两个缓冲器共用一个内存地址个内存地址99H99H。两个操作作分别对应两个不同的寄存。两个操作作分别对应两个不同的寄存器,器,1 1个是只写寄存器,个是只写寄存器,1 1个是只读寄存器。个是只读寄存器。3.1.4 3.1.4 辅助寄存器辅助寄存器AUXRAUXR辅助寄存器格式及各个位的含义如下表:辅助寄存器格式及各个位的含义如下表:计应专业综合实训计应专业综合实训串行通信串行通信T0 x12T0 x12:定时器:定时器0 0速度设置位速度设置位置置1 1 定时器定时器0 0的速度是传
22、统的速度是传统80518051速度的速度的1212倍。不分频。倍。不分频。T1x12T1x12:定时器:定时器1 1速度设置位速度设置位置置1 1 定时器定时器1 1的速度是传统的速度是传统80518051速度的速度的1212倍。不分频。倍。不分频。如果如果UARTUART串口用定时器串口用定时器1 1做波特率发生器,做波特率发生器,T1x12T1x12位就可位就可以控制以控制UARTUART串口是串口是12T12T还是还是1T1T了了D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0T0 x12T0 x12T1x12T1x12Uart_Uart_Mox6Mox6BRTRBRTR
23、S2SMODS2SMOD BRTx12BRTx12 EXTRAMEXTRAMS1BRSS1BRS计应专业综合实训计应专业综合实训串行通信串行通信Uart_Mox6:Uart_Mox6:串行口模式串行口模式0 0的通信速度设置位的通信速度设置位置置1 UART1 UART串口的模式串口的模式0 0的速度是传统的速度是传统12T12T的的80518051的的6 6倍,倍,2 2分频。分频。BRTRBRTR:独立波特率发生器运行控制位:独立波特率发生器运行控制位置置1 1 允许独立波特率发生器运行。允许独立波特率发生器运行。S2SMODS2SMOD:串口:串口2 2的波特率加倍控制位的波特率加倍控制
24、位置置1 1 串口串口2 2的波特率加倍。的波特率加倍。对于对于STC12C5A60S2STC12C5A60S2系列单片机,串口系列单片机,串口2 2只能使用独立波只能使用独立波特率发生器作为波特率发生器,不能够选择定时器特率发生器作为波特率发生器,不能够选择定时器1 1作作为波特率发生器;而串口为波特率发生器;而串口1 1既可以选择定时器既可以选择定时器1 1作为波特作为波特率发生器,也可以选择独立波特率发生器作为波特率发率发生器,也可以选择独立波特率发生器作为波特率发生器生器计应专业综合实训计应专业综合实训串行通信串行通信BRTx12BRTx12:独立波特率发生器计数控制位。:独立波特率发
25、生器计数控制位。置置1 1 独立波特率发生器每独立波特率发生器每1 1个时钟计数一次。个时钟计数一次。EXTRAMEXTRAM:置置0 0 允许使用内部扩展的允许使用内部扩展的10241024字节扩展字节扩展RAMRAM。置置1 1 禁止使用内部扩展的禁止使用内部扩展的10241024字节扩展字节扩展RAMRAM。S1BRSS1BRS:串行口波特率发生器选择位:串行口波特率发生器选择位置置0 0 串行口波特率发生器选择定时器串行口波特率发生器选择定时器1 1。置置1 1 独立波特率发生器作为串行口的波特率发生器,独立波特率发生器作为串行口的波特率发生器,此时定时器此时定时器1 1得到释放,可以
26、作为独立定时器使用得到释放,可以作为独立定时器使用计应专业综合实训计应专业综合实训串行通信串行通信3.1.43.1.4独立波特率发生器独立波特率发生器BRTBRT独立波特率发生器独立波特率发生器BRTBRT用于保存重装时间常数用于保存重装时间常数3.2 3.2 与串行口中断相关的寄存器与串行口中断相关的寄存器IEIE、IPIP和和IPHIPHIE IE 中断允许寄存器中断允许寄存器 (可位寻址可位寻址)D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0EAEAELVDELVDEADCEADCESESET1ET1EX1EX1ET0ET0EX0EX0EA EA:CPUCPU的总中断允
27、许控制位,的总中断允许控制位,EA=1EA=1,CPUCPU开放中断,开放中断,EA=0EA=0,CPUCPU屏屏蔽所有的中断申请。蔽所有的中断申请。EAEA的作用是使中断允许形成多级控制。即各中的作用是使中断允许形成多级控制。即各中断源首先受断源首先受EAEA控制控制;其次还受各中断源自己的中断允许控制位控制其次还受各中断源自己的中断允许控制位控制计应专业综合实训计应专业综合实训串行通信串行通信ES ES:串行口中断允许位,:串行口中断允许位,ES=1ES=1,允许串行口中断,允许串行口中断,ES=0ES=0,禁止串,禁止串行口中断。行口中断。IPIP:中断优先级控制寄存器低:中断优先级控制
28、寄存器低(可位寻址可位寻址)IPHIPH:中断优先级控制寄存器高:中断优先级控制寄存器高(不可位寻址不可位寻址)NamName eD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0IPIPPPCPPCA APLVPLVD DPADPADC CPSPSPT1PT1 PX1PX1 PT0PT0 PX0PX0NamName eD7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0IPHIPH PPCPPCAHAHPLVPLVDHDHPADPADCHCHPSHPSH PT1PT1H HPX1PX1H HPT0PT0H HPX0PX0H HPS PSH PS PSH 串行口串行口
29、1 1中断优先级控制位中断优先级控制位计应专业综合实训计应专业综合实训串行通信串行通信PSH=0PSH=0且且PS=0PS=0,串行口,串行口1 1中断为最低优先级中断中断为最低优先级中断(优先级优先级0)0)PSH=0PSH=0且且PS=1PS=1,串行口,串行口1 1中断为较低优先级中断中断为较低优先级中断(优先级优先级1)1)PSH=1PSH=1且且PS=0PS=0,串行口,串行口1 1中断为较高优先级中断中断为较高优先级中断(优先级优先级2)2)PSH=1PSH=1且且PS=1PS=1,串行口,串行口1 1中断为最高优先级中断中断为最高优先级中断(优先级优先级3)3)3.33.3 串行
30、口串行口1 1工作模式工作模式1 1:8 8位位UARTUART,波特率可变,波特率可变当软件设置当软件设置SCONSCON的的SM0SM0、SM1SM1为为0101时,串行口时,串行口1 1则以模式则以模式1 1工作。此模式为工作。此模式为8 8位位UARTUART格式,一帧信息为格式,一帧信息为1010位:位:1 1位起位起始位,始位,8 8位数据位位数据位(低位在先低位在先)和和1 1位停止位。位停止位。TxD/P3.1TxD/P3.1为为发送信息,发送信息,RxD/P3.0RxD/P3.0为接收端接收信息,串行口为全双为接收端接收信息,串行口为全双工接受工接受/发送串行口。发送串行口。
31、通常在通常在T1T1被用作串口波特率的设置时,被用作串口波特率的设置时,T1T1常被设置为工常被设置为工作模式作模式2 2,即,即8 8位自动装入初值定时器模式。此时位自动装入初值定时器模式。此时TH1TH1用用于保存定时器初值,于保存定时器初值,计应专业综合实训计应专业综合实训串行通信串行通信 当定时器溢出时,会自动装载初值,无需进行软件处理当定时器溢出时,会自动装载初值,无需进行软件处理串行通信模式串行通信模式1 1的的波特率波特率=2SMOD/32(=2SMOD/32(定时器定时器/计数器计数器1 1溢出率或溢出率或BRTBRT独立波特率发生器溢出率独立波特率发生器溢出率)当当T1x12
32、=0T1x12=0时,定时器时,定时器1 1的溢出率的溢出率 =SYSclk/12/(256=SYSclk/12/(256-TH1)-TH1)当当T1x12=1T1x12=1时,定时器时,定时器1 1的溢出率的溢出率 =SYSclkSYSclk/(256-/(256-TH1)TH1)当当BRTx12=0BRTx12=0时,时,BRTBRT独立波特率发生器的溢出率独立波特率发生器的溢出率 =SYSclk/12/=SYSclk/12/(256-BRT)(256-BRT)当当BRTx12=1BRTx12=1时,时,BRTBRT独立波特率发生器的溢出率独立波特率发生器的溢出率 =SYSclkSYScl
33、k/(256-BRT)(256-BRT)计应专业综合实训计应专业综合实训串行通信串行通信通过前面两个公式可以推导出定时器通过前面两个公式可以推导出定时器/计数器计数器1 1溢出率或溢出率或BRTBRT独立波特率发生器溢出率计算公式。独立波特率发生器溢出率计算公式。当工作在当工作在12T12T模式下模式下:(:(baudbaud是波特率)是波特率)=256-(2SMOD x=256-(2SMOD x SYSclkSYSclk/32/12/baud);/32/12/baud);当工作在当工作在1T1T模式下:模式下:=256-(2SMOD x=256-(2SMOD x SYSclkSYSclk/32/baud);/32/baud);计应专业综合实训计应专业综合实训串行通信串行通信计应专业综合实训计应专业综合实训串行通信串行通信计应专业综合实训计应专业综合实训串行通信串行通信计应专业综合实训计应专业综合实训串行通信串行通信计应专业综合实训计应专业综合实训串行通信串行通信
限制150内