C单片机串行通信解读实用.pptx
《C单片机串行通信解读实用.pptx》由会员分享,可在线阅读,更多相关《C单片机串行通信解读实用.pptx(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第8章章 80C51单片机串行通信单片机串行通信8.1 8.1 串行通信基础知识串行通信基础知识8.2 80C518.2 80C51串行口串行口8.3 80C518.3 80C51串行口工作方式串行口工作方式8.4 8.4 串行通信数据传输速率串行通信数据传输速率8.5 8.5 串行通信应用串行通信应用第1页/共73页8.1 串行通信基础知识串行通信基础知识通信:指计算机与外部设备或计算机与计算机之间的信息交换。在计算机系统中,在计算机系统中,CPU与外部通信的基本方式有两种:与外部通信的基本方式有两种:l并行通信并行通信数据的各位同时传送。数据的各位同时传送。l串行通信串行通信数据一位一位
2、顺序传送。数据一位一位顺序传送。基本通信方式示意图 第2页/共73页8.1 串行通信基础知识串行通信基础知识 并行通信的特点:并行通信的特点:各数据位同时传送,传送速度快、各数据位同时传送,传送速度快、效率高。效率高。但有多少数据位就需要有多少根数据线,因此传但有多少数据位就需要有多少根数据线,因此传送成本高。在集成电路芯片的内部、同一插件板上各部件送成本高。在集成电路芯片的内部、同一插件板上各部件之间、同一机箱内各插件板之间等的数据传送都是并行的。之间、同一机箱内各插件板之间等的数据传送都是并行的。并行数据传送的距离通常小于并行数据传送的距离通常小于30米。米。串行通信的特点:串行通信的特点
3、:数据传送按位顺序进行,最少只数据传送按位顺序进行,最少只需一根传输线即可完成,成本低,但速度慢。需一根传输线即可完成,成本低,但速度慢。计算机与远计算机与远程终端或终端与终端之间的数据传送通常都是串行的。串程终端或终端与终端之间的数据传送通常都是串行的。串行数据传送的距离可以从几米到几千公里。行数据传送的距离可以从几米到几千公里。串行通信有同步通信和异步通信两种基本方式。串行通信有同步通信和异步通信两种基本方式。第3页/共73页1.1.异步串行通信异步串行通信 异步串行通信是以字符为单位的间歇传输形式。异步串行通信是以字符为单位的间歇传输形式。传送时按传送时按字符进行包装字符进行包装,为此,
4、在数据位之外要增添,为此,在数据位之外要增添起起始位、奇偶校验位和停止位,构成一个通信帧。始位、奇偶校验位和停止位,构成一个通信帧。下图为下图为异步通信的帧格式。异步通信的帧格式。8.1.1 异步通信和同步通信第4页/共73页 几点说明:几点说明:在串行通信中,信息的两种状态分别以在串行通信中,信息的两种状态分别以mark和和space标标志。其中志。其中mark译为标号,对应逻辑状态译为标号,对应逻辑状态1,在发送器空闲,在发送器空闲时,数据线应保持在时,数据线应保持在mark状态;状态;space译为空格,对应逻译为空格,对应逻辑状态辑状态0。起始位起始位。发送器通过发送起始位而开始一个字
5、符的传输。发送器通过发送起始位而开始一个字符的传输。起始位使数据线处于起始位使数据线处于space状态。状态。数据位数据位。起始位之后传送数据位。在数据位中,低位在。起始位之后传送数据位。在数据位中,低位在前前(左)高位在后左)高位在后(右)。由于字符编码方式的不同,数据右)。由于字符编码方式的不同,数据位可以是位可以是5、6、7或或8位等多种形式。位等多种形式。奇偶校验位奇偶校验位。用于对字符传送作正确性检查,因此,奇。用于对字符传送作正确性检查,因此,奇偶校验位是可选择的,共有偶校验位是可选择的,共有3种可能,即奇校验、偶校验种可能,即奇校验、偶校验和无校验,由用户根据需要选定。和无校验,
6、由用户根据需要选定。第5页/共73页 所谓偶校验,即数据位和奇偶校验位中逻辑所谓偶校验,即数据位和奇偶校验位中逻辑1 1的个的个数加起来必须是偶数数加起来必须是偶数(全全0 0也视为偶数个也视为偶数个1 1)。)。所谓奇校验,即数据位和奇偶校验位中逻辑所谓奇校验,即数据位和奇偶校验位中逻辑1 1的个数的个数加起来必须是奇数。加起来必须是奇数。停止位停止位。停止位在最后,用于标志一个字符传输的结。停止位在最后,用于标志一个字符传输的结束,对应于束,对应于markmark状态。停止位可能是状态。停止位可能是1 1、1.51.5或或2 2位,在位,在实际应用中根据需要确定。实际应用中根据需要确定。位
7、时间。一个格式位的时间宽度。位时间。一个格式位的时间宽度。帧帧(Frame(Frame)。从起始位开始到停止位结束的全部内容)。从起始位开始到停止位结束的全部内容称为一帧。称为一帧。异步串行通信是一帧接一帧进行的,传输可以是连异步串行通信是一帧接一帧进行的,传输可以是连续的,也可以是断续(间歇)的。续的,也可以是断续(间歇)的。第6页/共73页2.同步串行通信同步串行通信 为提高传送速度,把数据传输按相等的时间间隔为提高传送速度,把数据传输按相等的时间间隔分块进行,分块进行,在数据块的开始加一些特殊字符,作为在数据块的开始加一些特殊字符,作为发送和接收双方的同步标志。发送和接收双方的同步标志。
8、由于数据块的位数较由于数据块的位数较多,为防止错位,多,为防止错位,在发送数据时一般同时给出时钟在发送数据时一般同时给出时钟信号,以保持接收与发送的同步,信号,以保持接收与发送的同步,这就是同步串行这就是同步串行通信。同步串行通信的数据传送格式如下图所示:通信。同步串行通信的数据传送格式如下图所示:第7页/共73页同步串行通信的数据格式有如下特点和要求:同步串行通信的数据格式有如下特点和要求:只在数据块传输的开始使用同步字符串,作为发送和只在数据块传输的开始使用同步字符串,作为发送和接收双方同步的标志,而在结束时不需要同步标志。接收双方同步的标志,而在结束时不需要同步标志。数据字符之间不允许有
9、间隔,当线路空闲或没有数据数据字符之间不允许有间隔,当线路空闲或没有数据可发时,可发送同步字符串。可发时,可发送同步字符串。数据块内各字符的格式必须相同。数据块内各字符的格式必须相同。同步串行通信比异步串行通信的传送速度快,但同同步串行通信比异步串行通信的传送速度快,但同步串步串行通信要求收发双方在整个数据传输过程中始终保持同步,行通信要求收发双方在整个数据传输过程中始终保持同步,这将对硬件提出更高的要求,实现起来难度大一些;而异这将对硬件提出更高的要求,实现起来难度大一些;而异步步串行通信只要求在每帧的短时间内保持同步即可,实现起串行通信只要求在每帧的短时间内保持同步即可,实现起来来容易得多
10、。所以同步串行通信适用于数据量大、对速度要容易得多。所以同步串行通信适用于数据量大、对速度要求求比较高的串行通信场合。比较高的串行通信场合。第8页/共73页1.单工形式单工形式 单工单工(Simplex)形式的数据传输是形式的数据传输是单向单向的。通信双方的。通信双方中一方固定为发送端,另一方则固定为接收端。单工形中一方固定为发送端,另一方则固定为接收端。单工形式的串行通信只需要一条数据线,如下图所示。式的串行通信只需要一条数据线,如下图所示。例如,计算机与打印机之间的串行通信。例如,计算机与打印机之间的串行通信。8.1.2 8.1.2 串行通信线路形式串行通信线路形式第9页/共73页2.2.
11、全双工形式全双工形式 全双工全双工(Full duplex)形式的数据传输是形式的数据传输是双向双向的,的,可以同时发送和接收数据,因此,全双工形式的串可以同时发送和接收数据,因此,全双工形式的串行通信需要两条数据线。行通信需要两条数据线。第10页/共73页3.半双工形式半双工形式 半双工半双工(Half duplex)形式的数据传输也是双向的。形式的数据传输也是双向的。但但任何时刻只能由其中的一方发送数据,另一方接收任何时刻只能由其中的一方发送数据,另一方接收数据数据。因此半双工形式既可以使用一条数据线,也可。因此半双工形式既可以使用一条数据线,也可以使用两条数据线。以使用两条数据线。第11
12、页/共73页n近程串行通信近程串行通信 单片机的数据信号在传输线上传送时,由于受到线间单片机的数据信号在传输线上传送时,由于受到线间分布电容和噪声干扰等影响,将引起传输信号的幅度衰分布电容和噪声干扰等影响,将引起传输信号的幅度衰减和波形畸变,极易导致传输错误。加之导线越长电容减和波形畸变,极易导致传输错误。加之导线越长电容越大,所以传输距离就受到一定的限制。越大,所以传输距离就受到一定的限制。由于近距离串行通信不改变数据位波形和频率,所以由于近距离串行通信不改变数据位波形和频率,所以也称为也称为基带传输方式基带传输方式。虽然基带方式实现起来既方便又。虽然基带方式实现起来既方便又经济,但只能用于
13、近程通信。经济,但只能用于近程通信。第12页/共73页对于近距离的串行通信对于近距离的串行通信(例如一个房间内的计算机之例如一个房间内的计算机之间,间,距离不超过距离不超过10 m)10 m),传输中虽有波形畸变产生,但不,传输中虽有波形畸变产生,但不会严会严重到影响使用,仍可使用重到影响使用,仍可使用TTLTTL电平直接传输。近距离电平直接传输。近距离的串的串行通信并不复杂,只需行通信并不复杂,只需将两端串行口直接连接就可进将两端串行口直接连接就可进行行串行数据通信串行数据通信,省去了接口的麻烦,见下图。,省去了接口的麻烦,见下图。第13页/共73页n远程通信远程通信对于远程通信(例如城市之
14、间),不能使用基带传输方式,只能使用对于远程通信(例如城市之间),不能使用基带传输方式,只能使用模模拟信拟信号形式号形式进行,一般使用电话线。进行,一般使用电话线。为了在电话线上进行串行数据传输,需要在发送端把数字信号转变为模为了在电话线上进行串行数据传输,需要在发送端把数字信号转变为模拟信拟信号再进行发送,这种把数字信号转变为模拟信号的过程称为号再进行发送,这种把数字信号转变为模拟信号的过程称为调制调制。在接。在接收端收端应把模拟信号再转变为数字信号,这一过程称为应把模拟信号再转变为数字信号,这一过程称为解调解调。远程通信多采用。远程通信多采用双工双工方式,即通信双方都应具有发送和接收功能。
15、为此在通信线路的两端都方式,即通信双方都应具有发送和接收功能。为此在通信线路的两端都设置设置调制器和解调器,并且把二者结合在一起称为调制解调器调制器和解调器,并且把二者结合在一起称为调制解调器(Modem)。使用电使用电话线作传输线的远程通信连接如下图所示。话线作传输线的远程通信连接如下图所示。第14页/共73页8.2 80C518.2 80C51串行口串行口 为了实现串行通信,需要有硬件电路以解决串行数据为了实现串行通信,需要有硬件电路以解决串行数据传输中的一系列协调问题,这些硬件就是串行接口电路传输中的一系列协调问题,这些硬件就是串行接口电路或简称串行口。或简称串行口。8.2.1 80C5
16、1串行口硬件结构串行口硬件结构 通常把实现异步通信的串行口称为通常把实现异步通信的串行口称为通用异步接收器通用异步接收器/发发送器送器UART(Universal Asynchronous Receiver/Transmitter)。)。80C51的串行口,虽然是既能实现同步通信,又能实的串行口,虽然是既能实现同步通信,又能实现异步通信的全双工串行口,但在单片机的串行数据通现异步通信的全双工串行口,但在单片机的串行数据通信中,最常用的是异步方式,因此,常把它写为信中,最常用的是异步方式,因此,常把它写为UART。串行接口结构如下图所示。串行接口结构如下图所示。第15页/共73页80C51串行口
17、寄存器结构第16页/共73页80C5180C51单片机有两个独立的单片机有两个独立的接收、发送缓冲器接收、发送缓冲器SBUF(SBUF(属属于特殊功能寄存器于特殊功能寄存器),一个用作发送,一个用作接收。,一个用作发送,一个用作接收。发送缓冲器只能写入不能读出;接收缓冲器只能读出不发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入,两者共用一个字节地址能写入,两者共用一个字节地址(99H)(99H)。在发送时,在发送时,CPUCPU由一条写发送缓冲器的指令把数据由一条写发送缓冲器的指令把数据(字符字符)写入串行口的发送缓冲器写入串行口的发送缓冲器SBUF(SBUF(发发)中,然后从中,然后
18、从TXDTXD端端一位位地向外发送。与此同时,接收端一位位地向外发送。与此同时,接收端RXDRXD也可一位位也可一位位地接收数据,直到收到一个完整的字符数据后通知地接收数据,直到收到一个完整的字符数据后通知CPUCPU,再用一条指令把接收缓冲器,再用一条指令把接收缓冲器SBUF(SBUF(收收)的内容读入累加的内容读入累加器。可见,在整个串行收发过程中,器。可见,在整个串行收发过程中,CPUCPU的操作时间很的操作时间很短,使得短,使得CPUCPU还可以从事其他的各种操作还可以从事其他的各种操作(指工作在中断指工作在中断方式下方式下),从而大大提高了,从而大大提高了CPUCPU的效率。的效率。
19、第17页/共73页 80C5180C51串行口通过控制寄存器、中断功能和波特串行口通过控制寄存器、中断功能和波特率设率设置实现串行通信控制。置实现串行通信控制。1.1.串行口控制寄存器(串行口控制寄存器(SCONSCON)98H98HSM0、SM1串行口工作方式选择位。其状串行口工作方式选择位。其状态组合所对应的工作方式为:态组合所对应的工作方式为:SM0 SM100,工作方式,工作方式0;SM0 SM101,工作方式,工作方式1;SM0 SM110,工作方式,工作方式2;SM0 SM111,工作方式,工作方式3。8.2.2 串行口控制机制第18页/共73页 SM2多机通信控制位。多机通信控制
20、位。TB8发送数据位发送数据位8。RB8接收数据位接收数据位8。(这。(这3位用于多机通信)位用于多机通信)因为多机通信是在方式2和方式3下进行的,因此SM2主要用于方式2和方式3。当串行口以方式2和方式3接收数据时,SM2=1,则只有在接收到的第9位数据(RB8)为1时才将接收到的前8位数据送入SBUF,并置位RI产生中断请求;否则将接收到的前8位数据丢弃。SM2=0,则不论第9位数据是0还是1,都将前8位数据装入SBUF中,并产生中断请求。在方式0时,SM2必须为0。第19页/共73页RENREN允许接收位。允许接收位。RENREN0 0;禁止接收;禁止接收;RENREN1 1,允许接收。
21、,允许接收。TITI串行发送中断请求标志。在数据发送过程中,串行发送中断请求标志。在数据发送过程中,当最后一个数据位被发送完成后,当最后一个数据位被发送完成后,TITI由硬件置位。由硬件置位。RIRI串行接收中断请求标志。在数据接收过程中,串行接收中断请求标志。在数据接收过程中,当采样到最后一个数据位有效时,当采样到最后一个数据位有效时,RIRI由硬件置位。由硬件置位。第20页/共73页2.串行中断串行中断 80C51有两个串行中断,即串行发送中断和串行接有两个串行中断,即串行发送中断和串行接收中断。但这两个串行中断共享一个中断向量收中断。但这两个串行中断共享一个中断向量0023H。每。每当串
22、行口发送或接收一个数据字节时,都产生中断请求。当串行口发送或接收一个数据字节时,都产生中断请求。串行中断请求在芯片内部发生,因此不需要引脚。两个串行中断请求在芯片内部发生,因此不需要引脚。两个中断共享一个中断向量,就需要在中断服务程序中对中中断共享一个中断向量,就需要在中断服务程序中对中断源进行判断,以便进行不同的中断处理。断源进行判断,以便进行不同的中断处理。对于串行中断控制共涉及对于串行中断控制共涉及3个寄存器,其中一个就个寄存器,其中一个就是串行口控制寄存器是串行口控制寄存器SCON,用于存放串行中断请求标志。,用于存放串行中断请求标志。另外两个中断允许控制寄存器另外两个中断允许控制寄存
23、器IE和中断优先级控制寄存和中断优先级控制寄存器器IP。第21页/共73页8.3 80C518.3 80C51串行口工作方式串行口工作方式80C51单片机的串行口共有单片机的串行口共有4种工作方式种工作方式,见下表。,见下表。SM0 SM1工作方式功能波特率0 0方式08位同步移位寄存器fosc/120 1方式110位UART可变1 0方式211位UARTfosc/64或fosc/321 1方式311位UART可变第22页/共73页8.3.1 8.3.1 串行工作方式串行工作方式0 0 串行工作方式串行工作方式0是把串行口作为同步移位寄存器使用是把串行口作为同步移位寄存器使用,实实现串行数据的
24、输入现串行数据的输入/输出。移位数据的传输以输出。移位数据的传输以8位为一组,低位为一组,低位位在前、高位在后。在前、高位在后。利用串行工作方式利用串行工作方式0,加上,加上“并入串出并入串出”或或“串入并出串入并出”芯片芯片的配合,的配合,80C51的串行口可实现数据的并行输入的串行口可实现数据的并行输入/输出。输出。方式方式0实现数据并行输入实现数据并行输入/输出,输出,“并入串出并入串出”芯片芯片74LS165、CD4014)用于把并行输入数据通过移位形成位串,传送给)用于把并行输入数据通过移位形成位串,传送给串行串行口;而口;而“串入并出串入并出”芯片(芯片(74LS164、CD409
25、4)则接收串)则接收串行口的行口的串行数据,通过移位形成串行数据,通过移位形成8位并行数据输出。位并行数据输出。第23页/共73页74LS164 CLR为清0端,输出时CLR必须为1,否则74HC164 Q0Q7输出为0。74HC165 S/L端为移位/置入端,当S/L=0时,从Q0Q7并行数据置入寄存器,当S/L=1时,允许从Q端移出数据。第24页/共73页 串行接口工作方式串行接口工作方式0其波特率是固定的,为其波特率是固定的,为fosc(振荡频振荡频率率)的的1/12。1.方式方式0发送发送 数据从数据从RxD引脚串行输出,引脚串行输出,TxD引脚输出同步脉冲。引脚输出同步脉冲。当当一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 串行 通信 解读 实用
限制150内