您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第7章 80C51单片机的串行口通信
7.1串行通信基础知识7.1.1并行通信与串行通信7.1.2串行通信的通信方式7.1.3串行通信的数据传送方向7.1.4通信中的误码问题7.280C51系列单片机的串行接口7.2.1串行接口的结构7.2.2串行接口的控制寄存器7.2.3串口通信的波特率设计7.3串行口工作模式7.3.1模式07.3.2模式17.3.3模式27.3.4模式3目录80C51系列单片机的串行通信7.4串行通信应用举例7.4.1串行口模式0的应用7.4.2串行口模式1的应用7.4.3串行口模式2的应用7.4.4串行口模式3的应用7.5串行通信实用技术7.5.1双机串行通信的硬件连接7.5.280C51单片机的多机通信7.5.3双机串行通信软件编程7.5.4PC机与单片机的点对点串行通信接口设计7.5.5PC机与多个单片机的串行通信接口设计目录80C51系列单片机的串行通信本节内容7.1.1并行通信与串行通信7.1.2串行通信的通信方式7.1.3串行通信的数据传送方向7.1.4通信中的误码问题7.1串行通信基础知识7.1串行通信基础知识5计算机与外部设备或计算机与计算机之间的信息交换称为通信。通信的基本方式:并行通信和串行通信。在现代单片机测控系统中信息交换多采用串行通信方式。7.1串行通信基础知识67.1.1并行通信与串行通信一、并行通信并行通信:将数据字节的各位用多条数据线同时进行传送。(a)并行通信7.1串行通信基础知识7接收设备发送设备询问应答101011008位同时传送通信控制线并行通信的缺点:每一位数据都需要一条传输线,距离较远、位数又多时导致了通信线路复杂且成本高。并行通信的优点:控制简单、传送速度快。并行通信一般适合于短距离的数据传输。8二、串行通信串行通信:所传送的数据按顺序一位接一位地进行传送。因为一次只能传送一位,所以对于一个字节的数据,至少要分8位才能传送完毕。7.1串行通信基础知识(b)串行通信97.1串行通信基础知识接收设备发送设备8位顺次传送D0D7串行通信的优点:需要的数据传输线少,通信线路简单、成本低,适用于远距离通信,且可以利用电话网等现成的设备。串行通信的缺点:是传送速度较慢,数据的传送控制比并行通信复杂。假设并行传送n位数据所需的时间为t,那么串行传送的时间至少为nt,而实际上总是大于nt。本节内容7.1.1并行通信与串行通信7.1.2串行通信的通信方式7.1.3串行通信的数据传送方向7.1.4通信中的误码问题7.1串行通信基础知识117.1.2串行通信的通信方式根据通信协议的不同,串行通信可分为同步通信和异步通信两种基本方式。7.1串行通信基础知识一、同步通信同步通信:是一种连续串行传输数据的通信方式,传送的数据可以是多个字符组成的数据块,每次传送的一帧数据由同步字符、数据字符和校验字符三部分组成。12同步通信传输一帧数据的开头采用附加1~2个同步字符使收发双方实现严格同步,期间不允许出现空隙,没有起始位和停止位,提高了传输速度。无数据传送时,发送同步字符填充。同步通信方式发送的数据量大、速度快,常用于传输速度要求高的场合,但较复杂。7.1串行通信基础知识同步通信方式帧格式:图7-2字符帧的同步串行通信格式14二、异步通信(80C51单片机一般采用的通信方式)异步通信以字符(构成的帧)为单位进行传输。发送的每一字符,都必须先按照通信双方约定好的格式进行格式化,在其前、后分别加上起始位和停止位,用以指示每一字符的开始和结束。7.1串行通信基础知识图7-3字符帧的异步串行通信格式一个字符帧的异步串行通信格式:15图7-3字符帧的异步串行通信格式7.1串行通信基础知识异步通信用一帧表示一个字符,一个字符包括4个部分:起始位:1位(0有效)数据位:5-8位(低位在先,高位在后)奇偶校验位:1位停止位:1位、1位半、2位(1有效)167.1串行通信基础知识111001100101001001发送设备接收设备10100100011110011001间隙任意异步通信不需要同步字符,也不需要发送端保持数据块的连续性。数据在线路上的传送不连续,字符间隔(时间间隔)不定,字符与字符之间的间隙是任意的。各个字符可以连续传送也可以间断传送(停止位后,线路上自动保持为1),完全取决于通信协议或约定。177.1串行通信基础知识同步通信传输速率高,适用于高速率、大容量的数据通信,但硬件复杂。异步通信技术对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送/接收,应用范围广。异步通信但因每个字节都要建立一次同步,在每个数据前后附加起始位、停止位,即每个字符都要额外附加20%的附加数据,占用了传输时间,降低了传送效率。异步通信不要求收发双方时钟的严格一致,实现容易,设备开销较小。如上所述:本节内容7.1.1并行通信与串行通信7.1.2串行通信的通信方式7.1.3串行通信的数据传送方向7.1.4通信中的误码问题7.1串行通信基础知识197.1.3串行通信的数据传送方向数据通信系统一般由数据发送方、数据接收方及数据通路组成的。串行通信的数据是在两个站之间传送的,按照数据的传送方向,串行通信有三种数据通路连接方式:单工方式、半双工方式、全双工方式。7.1串行通信基础知识207.1串行通信基础知识一、单工方式在单工方式下,通信线的一端接发送器,另一端接接收器,形成单向连接。若A为发送端,B为接收端,数据仅能从A端发至B端,如广播、无线寻呼等。(a)单工方式21二、半双工方式在半双工方式下,系统中的每个通信设备都由一个发送器和一个接收器组成,通过收、发开关接到通信线上。数据既可从A端发送到B端,也可以由B端发送到A端,不过在同一时间只能作一个方向的数据传送,如使用同一载波频率的对讲机。7.1串行通信基础知识(b)半双工方式22三、全双工方式在全双工方式下,在同一时间两端既可同时发送,也可同时接收,如普通电话、手机等。80C51单片机使用全双工方式。7.1串行通信基础知识(c)全双工方式本节内容7.1.1并行通信与串行通信7.1.2串行通信的通信方式7.1.3串行通信的数据传送方向7.1.4通信中的误码问题7.1串行通信基础知识7.1.4通信中的误码问题数据在串行传输过程中,由于干扰可能使传输的数据发生错误,这种情况称为出现了“误码”,错误的数据位数与所有传输数据总位数的比率叫做“误码率”,发现传输中的错误叫做“检错”,发现错误后消除错误叫做“纠错”。目前较为流行的方法有奇偶校验、累加和校验、循环冗余码校验几种。7.1串行通信基础知识一、奇偶校验最简单的检错方法是“奇偶校验”,在传送字符的各位之外,再传送1位奇/偶校验位。①奇校验:数据中1的个数与校验位1的个数之和应为奇数。②偶校验:数据中1的个数与校验位1的个数之和应为偶数。在接收字符时,对1的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。奇偶校验无法实现自动纠错,发现错误后只能要求重发,但由于其实现简单,仍得到了广泛使用。7.1串行通信基础知识27二、累加和校验“累加和校验”是指发送方将发送的数据块求和,并将“校验和”附加到数据块末尾。接收方接收数据时也是先对数据块求和,将所得结果与发送方的“校验和”进行比较,相符则无差错,否则即出现了差错。“校验和”的加运算可用逻辑加,也可用算术加。校验和能够检测到比奇偶校验更多的错误。累加和校验的缺点是当字节顺序颠倒时,无法检验出字节位序(或1、0位序不同)的错误。7.1串行通信基础知识28三、循环冗余码校验(CyclicRedundancyCheck,简称CRC)循环冗余码校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。循环冗余码校验的基本原理是将一个数据块看成一个位数很长的二进制数,然后用一个特定的数去除它,将余数作校验码附在数据块后一起发送。接收端收到该数据块和校验码后,进行同样的运算来校验传送是否出错。目前CRC已广泛用于数据存储和数据通信中,并在国际上形成规范,已有不少现成的CRC软件算法。循环冗余码校验纠错能力强,广泛应用于同步通信中。7.1串行通信基础知识本节内容7.2.1串行接口的结构7.2.2串行接口的控制寄存器7.2.3串口通信的波特率设计7.280C51系列单片机的串行接口7.280C51系列单片机的串行接口3080C51系列单片机有一个全双工的串行口,这个口除可以实现串行异步通信,还可以作为同步移位寄存器使用。7.2.1串行接口的结构80C51系列单片机串行口主要由发送数据缓冲器、发送控制器、接收数据缓冲器、接收控制器、输出控制门、输入移位寄存器等组成。31图7-5串行口结构框图7.280C51系列单片机的串行接口串行口结构框图如图7-5所示:由于串行口对外有两条独立的收、发信号线RXD(P3.0)、TXD(P3.1),因此可以同时发送、接收数据,实现全双工通信。≥1SBUF发送控制器接收控制器移位寄存器控制门TIRIATXDRXD去串口中断SMOD01TH1TL1÷2÷16SBUFT1溢出率7.280C51系列单片机的串行接口7.280C51系列单片机的串行接口33MCS-51系列单片机串行通信的基本工作:发送数据时,将CPU发送来的数据转换成一定格式的串行数据,由引脚TXD上按规定的波特率逐位输出;接收数据时,监视引脚RXD,一旦出现起始位0,就将外围设备送来的一定格式的串行数据转换成并行数据,等待CPU读入。本节内容7.2.1串行接口的结构7.2.2串行接口的控制寄存器7.2.3串口通信的波特率设计7.280C51系列单片机的串行接口35寄存器地址名称76543210SCON98H串行口控制SM0SM1SM2RENTB8RB8TIRIPCON87H电源控制SMOD------GF1GF0PDIDLSBUF99H串行口缓存----------------7.2.2串行接口的控制寄存器对串行口的访问和设置是通过访问相关的特殊功能寄存器完成的,与串行口相关的特殊功能寄存器共有3个,如表7-1所示。表7-1串口控制寄存器7.280C51系列单片机的串行接口36一、串行数据缓冲器SBUF串行数据缓冲器SBUF,单元地址99H,既表示发送寄存器,又表示接收寄存器,用指令判断区分。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两者均只能进行字节寻址。7.280C51系列单片机的串行接口377.280C51系列单片机的串行接口数据传输过程中:1)MOVSBUF,A---将数据写入发送缓冲器,启动一次数据发送数据发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送。发送器为单缓冲器,因为发送时CPU是主动的。387.280C51系列单片机的串行接口数据传输过程中:2)MOVA,SBUF---从接收缓冲器读取数据,完成一次数据接收接收时,CPU自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。SBUF具有接收缓冲功能,接收器是双缓冲结构,在第一个字节从寄存器读出之前,可以开始接收第二个字节,但是如果第二个字节接收完毕时,第一个字节仍未读出,其第一个字节将会丢失。391.串行口的数据发送单片机启动发送的方法是:在TI=0的条件下,CPU通过执行一条写SBUF指令(MOVSBUF,A),向输出缓冲器SBUF写入数据,从而启动数据串行发送。在波特率发生器产生的发送时钟控制下,按照预先设置的帧格式由低到高逐位由TXD端输出发送数据,发送结束TI=1。7.280C51系列单片机的串行接口402.串行口的数据接收单片机启动接收的首要条件是REN=1。串行口通过对RXD引脚信号的采样来确认串行数据,若检测到发送数据的起始位(一般为低电平),则其后采样到的数据在接收时钟控制下以移位方式存入输入移位寄存器,当数据接收完成或检测到停止位时,CPU将自动把接收到输入移位寄存器的内容送入接收缓冲器SBUF,并置接收完成标志位RI=1。编程人员可通过中断方式或查询方式
本文标题:第7章 80C51单片机的串行口通信
链接地址:https://www.777doc.com/doc-3797159 .html