您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > chap7单片机串行通信系统
单片机原理与应用--单片机串行通信系统内容概要•串行通信基本概述•串行口的基本工作原理•与串行口有关的特殊功能寄存器•串行口的4种工作方式•串行口通信的应用编程重点内容:MCS-51单片机串行接口的工作原理及工作方式MCS-51单片机串行接口应用程序设计方法难点内容:MCS-51单片机串行接口的工作原理及工作方式MCS-51单片机串行接口应用程序设计方法概述单片机应用于数据采集或工业控制时,往往作为前端机安装在工业现场,远离主机,现场数据采用串行通信方式发往主机进行处理,以降低通信成本,提高通信可靠性。如下图所示。什么是通信?计算机通信是指计算机与外部设备或计算机与计算机之间的信息交换。通信方式并行通信串行通信并行通信通常是将数据字节的各位用多条数据线同时进行传送。接收设备发送设备询问应答101011008位同时传送并行通信特点:控制简单、传输速度快;由于传输线较多,长距离传送时成本高且通信线路复杂。适合于近距离传输。例如:计算机并口,打印机,8255等串行通信串行通信使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。接收设备发送设备8位顺次传送D0D7串行通信的特点:传输线少,长距离传送时成本低,且可以利用电话网等现成的设备,但数据的传送控制比并行通信复杂。合适于远距离通信。例如:微型机与计算中心之间,单片机之间,单片机与PC之间同步串行通信方式串行通信的两种基本方式串行通信有同步和异步两种方式同步通信时要建立发送方时钟对接收方时钟的直接控制,使双方达到完全同步;一般一次传送一个数据块,每一个数据块的开头以同步字符SYN加以指示;每次传送的一帧数据由同步字符、数据字符和校验字符三部分组成;SYN字符1SYN字符2数据1数据2….数据n连续传送n个数据校验7.1串行通信基础同步串行通信方式串行通信的两种基本方式串行通信有同步和异步两种方式传输数据块的各字符之间没有起始位和停止位,不留间隙。空闲位需发送同步字符。SYN字符1SYN字符2数据1数据2….数据n连续传送n个数据校验7.1串行通信基础同步串行通信方式串行通信的两种基本方式串行通信有同步和异步两种方式同步通信传输速度较快,但要求有准确的时钟来实现收发双方的严格同步,对硬件要求较高,适用于成批数据传送。SYN字符1SYN字符2数据1数据2….数据n连续传送n个数据校验7.1串行通信基础异步串行通信方式异步通信对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送/接收,但因每个字节都要建立一次同步,即每个字符都要额外附加两位,所以工作速度较低,在单片机中主要采用异步通信方式。异步串行通信是指通信的发送与接收设备使用各自的时钟控制数据的发送与接收过程。以字符(构成的帧)为单位进行传输,字符与字符之间的间隙(时间间隔)是任意的;每个字符中的各位是以固定的时间传送的,即字符之间是异步的,但同一字符内的各位是同步的。数据帧(一帧数据):在异步传送中的一个字符称为数据帧数据帧由4部分组成:起始位(“0”电平)、数据位、奇偶校验位、停止位(“1”电平)1/01/01/01/01/01/01/01/01/001一帧数据起始位数据位奇偶位停止位01/01/01/0起始位数据位11/0停止位第n个字符第n+1个字符LSBMSB为逻辑“0”信号,占用一位,用来通知接收设备,一个新的字符开始了数据位:起始位:奇偶位:5~8位。传输时数据的最低位在前,最高位在后。紧跟在最高位之后,占用一位,奇偶校验时,根据协议置“1”或“0”,可省略。停止位:为逻辑“1”信号,占用1位、1位半或2位,当接收端收到停止位时,表示一帧数据结束。在异步串行通信中,通信双方事先应该做好以下约定:字符格式双方要实现约定字符的编码形式、奇偶校验形式及起始位和停止位的规定。波特率波特率:串行通信中数据的传送速率,其含义为每秒传送的二进制位数,单位为位/s(b/s).注:在异步通信中,发送端与接收端的波特率必须一致。串行通信的校验奇偶校验在发送数据时,数据位尾随的1位为奇偶校验位(1或0)。奇校验时,数据中“1”的个数与校验位“1”的个数之和应为奇数;偶校验时,数据中“1”的个数与校验位“1”的个数之和应为偶数。接收字符时,对“1”的个数进行校验,若发现不一致,则说明传输数据过程中出现了差错。数据在串行传输过程中,由于干扰可能使传输的数据发生错误,这种情况称为出现了“误码”。为了使系统能够可靠、稳定地通信,在编程时应当设计通信协议,并应考虑数据的纠错,一般在通信时采取数据校验的办法,可有效保证数据传输的可靠性,目前较为流行的方法有奇偶校验、累加和校验、循环冗余码校验几种:循环冗余校验这种校验是通过某种数学运算实现有效信息与校验位之间的循环校验,常用于对磁盘信息的传输、存储区的完整性校验等。这种校验方法纠错能力强,广泛应用于同步通信中。代码和校验代码和校验是发送方将所发数据块求和(或各字节异或),产生一个字节的校验字符(校验和)附加到数据块末尾。接收方接收数据同时对数据块(除校验字节外)求和(或各字节异或),将所得的结果与发送方的“校验和”进行比较,相符则无差错,否则即认为传送过程中出现了差错。单工通信一方固定发送,一方固定接收;半双工通信双方都可以收发,但是只能收或者发,不能同时进行;全双工通信双方可以同时进行收发;——串行通信的传输方向串行通信模式在串行传输中,通信的双方都按通信协议进行,所谓通信协议就是通信双方必须共同遵守的一种约定,约定包括数据的格式、同步的方式、传送的步骤、检纠错方式及控制字符的定义等。串行接口的基本任务:接收器串行输入并行输出时钟复位发送器并行输入串行输出时钟控制部件控制信号控制信息状态信息串口主要功能2)格式信息的插入和滤除格式信息:异步通信格式中,启始位、奇偶校验位、停止位等。串化过程:将格式信息插入,和数据位一起构成完整数据帧。反串化过程:滤除格式信息,保留数据位。3)错误检验检验数据通信过程是否正确。1)数据的串化、反串化数据串化:将并行数据变为串行数据;(发送器)数据反串化:将串行数据变为并行数据;(接收器)所有串行接口电路都是以并行数据形式和CPU接口;以串行数据形式和外部通信接口。7.2MCS-51的串行口简介51系列单片机内有一个全双工的异步串行通信接口,它可作UART(通用异步收发器)用,也可作同步移位寄存器。通过对串行接口写控制字可以选择其数据格式,同时内部有波特率发生器,提供可选的波特率,可完成双机通信或多机通信。51单片机异步串行口特点:可编程的全双工的异步通讯串行口4种工作方式,波特率由片内定时器/计数器控制每发送或接收一帧数据,均可发出中断请求除用于串行通讯,还可用来扩展并行I/O口有两个物理上独立的串行数据缓冲寄存器SBUF(属于特殊功能寄存器):发送控制器接收控制器输入移位寄存器串行控制寄存器SCON若干控制门电路7.2.1MCS-51串行口结构串行数据缓冲器SBUF:发送缓冲器:接收缓冲器:7.2.1MCS-51串行口结构两个缓冲器共用一个特殊功能寄存器字节地址(99H)只能写入不能读出,用于存储发送信息只能读出不能写入,用于存储接收到的信息数据的发送与接收:7.2.1MCS-51串行口结构MOVSBUF,A将A中的数据送入发送缓冲寄存器SBUF,并启动一次数据发送;MOVA,SBUF将接收缓冲寄存器SBUF中的数据送入A中,完成一次数据接收;shiftMOVA,SBUF串行数据CPUCPUSBUFSBUFshiftMOVSBUF,A并行数据并行数据甲方(发送)乙方(接收)甲方发送时,CPU执行指令MOVSBUF,A,启动了发送过程,数据并行送入SBUF,在发送时钟shift的控制下由低位到高位一位一位通过TXD引脚发送,甲方一帧数据发送完毕,置位发送中断标志TI为1,该位可作为查询标志(或引起中断)。串行通信的传送过程用下面简图说明shiftMOVA,SBUF串行数据CPUCPUSBUFSBUFshiftMOVSBUF,A并行数据并行数据甲方(发送)乙方(接收)乙方接收时,在接收时钟shift的控制下通过RXD引脚由低位到高位顺序进入移位寄存器,然后再并行送入接收SBUF。乙方一帧数据到齐即接收缓冲器满,置接收中断标志RI为1,该位可作为查询标志(或引起接收中断),通过MOVA,SBUF,CPU将这帧数据并行读入。串行通信的传送过程用下面简图说明shiftMOVA,SBUF串行数据CPUCPUSBUFSBUFshiftMOVSBUF,A并行数据并行数据甲方(发送)乙方(接收)由上述可知:甲、乙方的移位时钟频率应相同,即应具有相同的波特率,否则会造成数据丢失。发送方是先发数据再查标志,接收方是先查标志再收数据。CPU通过指令和SBUF并行交换数据,并不能控制数据的串行移位,它只能查询标志位来确定数据的移位是否完成。串行通信的传送过程用下面简图说明shiftMOVA,SBUF串行数据CPUCPUSBUFSBUFshiftMOVSBUF,A并行数据并行数据甲方(发送)乙方(接收)由上述可知:在进行下一帧数据的接受(或发送)时,一定要先将RI(或TI)用软件清0;串行通信的传送过程用下面简图说明SBUF:串行数据缓冲寄存器SCON:串行口控制寄存器PCON:电源控制寄存器7.2.2相关寄存器SBUF(99H)发送时:数据写入SBUF,经过TXD引脚发送出去接收时:存储的是从RXD接收到的数据串行通信控制寄存器SCON(98H)字节地址为98H,可位寻址,位地址为98H~9FHSM0SM1SM2RENTB8RB8TIRISCON(98H)D7D0SM0、SM1:串行口工作方式选择位,如表所示000移位寄存器方式(用于I/O扩展)波特率为fosc/120118位UART,波特率可变(由定时器控制)1029位UART,波特率为fosc/32或fosc/641139位UART,波特率可变(由定时器控制)SM0SM1方式功能表串行口工作方式SM0SM1SM2RENTB8RB8TIRISCON(98H)D7D0允许接收控制位。由软件置“1”时,允许接收,置“0”时,禁止接收。REN:TB8:在方式2和方式3中作为要发送的第9位数据;在通信协议中,可作为奇偶校验位使用;在多机通信中,作为地址帧或数据帧的标志:1:地址帧,发送的是地址0:数据帧,发送的是数据需要时由软件置位或复位。TI:发送中断标志。在方式0串行发送第8位结束时由硬件置“1”,或在其他方式中串行发送停止位后置“1”,必须由软件清“0”。RI:接收中断标志。在方式0接收数据第8位结束时由硬件置“1”,或在其他方式中接收到停止位时置“1”,必须由软件清“0”SM0SM1SM2RENTB8RB8TIRISCON(98H)D7D0RB8:在方式2和方式3中要接收的第9位数据;在方式1时,如SM2=0,RB8是接收到的停止位;在方式0中,不使用RB8。SM0SM1SM2RENTB8RB8TIRISCON(98H)D7D0SM2:多机通信控制位主要用于方式2或方式3中。当串口以方式2或方式3接收时,如果SM2=1,则只有当接收到的第9位数据(RB8)为“1”时,才使RI置“1”,产生中断请求,并将接收到的前8位数据送入SBUF。当接收到的第9位数据(RB8)为“0”时,则将接收到的前8位数据丢弃。当SM2=0时,则不论第9位数据是1还是0,都将前8位数据送入SBUF中,并使RI置1,产生中断请求。在方式1时,如果SM2=1,则只有收到有效的停止位时才会激活RI。在方式0时,SM2必须为0。其字节地址87H,没有位寻址功能。PCON(87H)SMODSMOD:波特率选择位。在串行口方式1、方式2、方式3时,当SMOD=1时,波特率提高一倍。当SMOD=0时,波特率不加倍。电源控制寄存器PCON(87H)7.3串行通信工作方式及应用SM0、SM1:串行口工作方式选择位,由软件置位或清零。000移位寄存器方式(用于I
本文标题:chap7单片机串行通信系统
链接地址:https://www.777doc.com/doc-2905162 .html