毕业设计(论文)单片机串行协议通信设计.doc
目 录摘要IAbstractII前言III第1章 绪论11.1 课题背景11.2 目的和意义11.3 系统设计思想1第2章 单片机概述32.1 单片机的发展历史32.2 单片机的特点32.3 单片机的应用42.4 AT89C51单片机简介52.5 本章小结9第3章 单片机的串行接口103.1 基本概念103.2 MCS-51的串行和控制寄存器103.2.1 串行口和控制寄存器103.2.2 串行口工作方式123.3 本章小结12第4章 串行通讯技术及硬件基本组成134.1 硬件的基本组成134.2 串行通信原理134.3 双机通信连接方法134.4 本章小结14第5章 软件的设计和调整过程155.1 程序流程图155.2 通信协议155.2.1 串行口控制寄存器SCON的设置155.2.2 定时器的初始化设置155.2.3 波特率计算165.3 程序演示175.4 本章小结17结论18致谢19参考文献20附录A21附录B25附录C26附录D27附录E29附录F31附录G32单片机串行通信协议设计摘 要本文介绍了89C51单片机的发展历史和简单介绍,并展望了它们的前景。着重介绍了单片机串行接口技术,指出了它们的重要性并阐述了其实现原理。根据串行通讯原理结合RS232串口设计了串行通讯协议,利用汇编语言为基础,编写了一个基于RS232串口的通信程序,实现了单片机-PC机的双机通讯。在硬件上测试完好,测试表明,在基于设计的通信协议上的单片机-PC机的通讯状况良好。首先分析数据通信协议数据包的一般格式,然后采用有限状态机的算法实现单片机与上位机之间的串行通信协议,包含上下位机的数据发送接受和协议的解析实现,并给出具体的实现方法。关键词 89C51单片机;串行通讯原理;RS232串口;串行通讯协议;51单片机串口通信协议上位机下位机Monolithic integrated circuits design communication protocol for serialAbstractThis article describes the development and give a brief history of the 89C51 microcontroller and look forward to their future.Focused on single-chip serial interface technology, pointed out the importance of them and described the principles of its realization. Serial communication in accordance with the principle of combining the design of a serial RS232 serial Communication protocol, Based on the use of assembly language, the preparation of a RS232 serial communication based on the procedure, to achieve a single-chip dual-PC machine communication. Well-tested in hardware, testing showed that the single-chip-PC communications machine based on the design of communication protocols in good condition. Firstly analyzes the data communication protocol, and the general form packet finite-state machine algorithm between SCM and PC, including serial communication protocol and send and receive data bits of the agreement, and the analytical method was given.Key words 89C51 microcontroller principle of serial communication RS232 serial port serial communication protocol 51 SCM serial communication protocol PC machine前 言在工业监测及自动控制系统种,串行通信是微机与单片机之间进行数据交换的主要方式。而在现代社会中,短距离的双机通信,最常用的就是串口通信。目前存在的一些通信协议(如RS-232,RS-484等),仅对通信线路的电气特性进行了约定,并没有涉及通信内容的格式,类型等信息。针对这一现象,我对于RS-232接口设计了比较规范的串行通信协议,实现了上位单片机与下位计算机的串行通信。通过实验室测试表明该串行通信协议是可靠可行的。本文着重介绍了单片机串行接口技术,指出了它们的重要性并阐述了其实现原理。根据串行通讯原理结合RS232串口设计了串行通讯协议,利用汇编语言为基础,编写了一个基于RS232串口的通信程序,实现了单片机-PC机的双机通讯。在硬件上测试完好,测试表明,在基于设计的通信协议上的单片机-PC机的通讯状况良好。首先分析数据通信协议数据包的一般格式,然后采用有限状态机的算法实现单片机与上位机之间的串行通信协议,包含上下位机的数据发送接受和协议的解析实现,并给出具体的实现方法。在当今信息社会,通信的重要性无庸质疑。它使我们的工作效率大大提高。而串行通信作为一种基本的通信方式,现今也在各个领域被广泛应用。本课题研究串行通信系统,也是为了应用于远程控制系统。而要实现远程控制,通信是必不可少的,通信的速率与正确性直接影响到整个系统的性能。因此,在整个远程控制系统实现的过程中,对串行通信的研究具有非常重要的意义。本课题将研究一台PC机与一台单片机之间的通信。着重研究当今流行的串行通信协议和串行通信电路的设计和纠检错算法的实现。先介绍串行通信的基本知识和单片机串行接口的工作方式。再根据本控制系统的要求,对RS-232通信协议和CRC循环冗余码纠检错算法做深入的研究。最后结合硬件设计部分,通过C51编程来实现空调远程控制系统的通信传输。第1章 绪论1.1 课题背景在当今信息社会,通信的重要性无庸质疑。它使我们的工作效率大大提高。而串行通信作为一种基本的通信方式,现今也在各个领域被广泛应用。本课题研究串行通信系统,也是为了应用于远程控制系统。而要实现远程控制,通信是必不可少的,通信的速率与正确性直接影响到整个系统的性能。因此,在整个远程控制系统实现的过程中,对串行通信的研究具有非常重要的意义。本课题将研究一台PC机与一台单片机之间的通信。着重研究当今流行的串行通信协议和串行通信电路的设计和纠检错算法的实现。先介绍串行通信的基本知识和单片机串行接口的工作方式。再根据本控制系统的要求,对RS-232通信协议和CRC循环冗余码纠检错算法做深入的研究。最后结合硬件设计部分,通过C51编程来实现空调远程控制系统的通信传输。1.2 目的和意义在工业控制及测量领域较为常见的PC机与单片机组成的多机串行通信系统,一般以单片机为从节点(又称下位机),负责现场控制和实时数据采集;PC机为主节点(又称上位机),负责对各从节点发来的数据进行分析、处理,并向各从节点发布命令,以实现对工业现场的集中监控与管理。由于主从节点间需不断进行信息交流,因此通信成为系统重要而基本的功能,一般以总线方式连接,采用RS-485/RS-422标准进行数据通信,这种系统结构可以十分方便地将许多设备组成一个控制网络。在通信过程中,PC机可以向单片机发送数据,单片机也可以向PC机发送数据。随着计算机技术尤其是单片机微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制PC机具有强大的监控和管理功能,而单片机则具有快速灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。因此如何实现PC机与单片机之间的通讯具有非常重要的现实意义。1.3 系统设计思想设计分为两个部分,硬件部分和软件部分。硬件部分介绍:单片机串行通信系统电路的设计,单片机AT89C51的功能和其在电路的作用。介绍了AT89C51的管脚结构和每个管脚的作用及各自的连接方法。AT89C51与MCS-51兼容,4K字节可编程闪烁存储器,寿命:1000次可擦,数据保存10年,全静态工作:0HZ-24HZ,三级程序存储器锁定,128*8位内部RAM,32跟可编程I/O线,两个16位定时/计数器,5个中断源,5个可编程串行通道,低功耗的闲置和掉电模式,片内震荡和时钟电路,P0和 P1 可作为串行输入口,P3口因为其管脚有特殊功能,可连接其他电路。介绍了串行串行口控制寄存器,电源管理寄存器PCON,中断允许寄存器IE,还介绍了数码显示管的工作方式、组成,共阳极和共阴极数码显示管的电路组成,有动态和静态显示两种方式,说明了不同显示方法与单片机的连接。软件部分:在了解电路设计原理后,根据原理和目的画出电路流程图,列出数码显示的断码表,计算波特率,设置串行口,在与接受机设置相同的通信协议的基础上编写显示和传递程序。编写完程序还要进行编译,这就必须会使用编译软件。介绍了编译软件的使用和使用过程中遇到的问题,在软件调试过程中将详细介绍调试遇到的问题,例如:通信协议是否相同,数码管是否与芯片连接对应,计数器是否开始计数等。第2章 单片机概述单片机也被称作“单片微型计算机”、“微控制器”、“嵌入式微控制器”。单片机一词最初是源于“Single Chip Microcomputer”,简称SCM。随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。国际上逐渐采用“MCU”(Micro Controller Unit)代替,形成了单片机界公认的、最终统一的名词。为了与国际接轨,以后应将中文“单片机”一词和“MCU”唯一对应解释。在国内因为“单片机”一词已约定俗成,故而可继续沿用。2.1 单片机的发展历史 如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:第一阶段(19761978):单片机的探索阶段。以Intel公司的MCS-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机”一词即由此而来。第二阶段(19781982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。1.完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。2.CPU外围功能单元的集中管理模式。3.体现工控特性的地址空间及位操作方式。4.指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。第三阶段(19821990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。第四阶段(19901993):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将是进一步向着CMOS化,低功耗化,低电压化,低噪声与高可靠性,大容量化,高性能化,小容量,低价格化,外围电路内装化和串行扩展技术。随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小和功能将更强。2.2 单片机的特点 单片机主要有如下特点:1.有优异的性能价格比。2.集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。3.制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。4.低功耗、低电压,便于生产便携式产品。5.外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。6.单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。2.3 单片机的应用 由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现在以下几个方面:1.单片机在智能仪表中的应用。2.单片机在机电一体化中的应用。3.单片机在实时控制中的应用。4.单片机在分布式多机系统中的应用。5.单片机在人类生活中的应用。单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能通过单片机来实现了。这种用软件代替硬件的控制技术也称为微控制技术,是对传统控制技术的一次革命。A:由单片机组成控制器的结构和特点: 单片微型计算机是微型计算机发展中的一个重要分支,是把构成一台微型计算机的主要部件如中央处理器(CPU)、存储器(RAM/ROM)和各种功能I/O接口集成在一块芯片上的单芯片微型计算机(Single Chip Micro Computer),简称单片机。由于它的结构与指令功能都是按工业控制要求设计的,且近年来单片机着力扩展了各种控制功能如A/D、PWM等,因此我们更多时候称其为一个单片形态的微控制器(Single Chip Micro Controller),或直接称其为微控制器(Micro Controller)。B:用单片机组成的微机控制系统具有以下特点:1.受集成度限制,片内存储器容量较小。一般片内ROM小于48K字节,片内RAM小于256字节;但可在外部进行扩展,如MCS51系列单片机的片外可擦可编程只读存储器(EPROM)、静态随机存储器(SRAM)可分别扩展至64K字节。2.可靠性高。单片机芯片本身是按工业控制环境要求设计的,其抗工业噪声的能力优于一般通用CPU。程序指令及其常数、表格固化在ROM中不易破坏。常用信号通道均在一个芯片内,故可靠性高。3.易扩展。片内具有计算机正常运行所必须的部件,芯片外部有许多供扩展用的总线及并行、串行输入/输出端口,很容易构成各种规模的微机控制系统。4.控制功能强。为了满足工业控制要求,单片机的指令系统中有极丰富的条件分支转移指令、I/O口的逻辑操作以及位处理功能。一般来说,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。5.一般的单片机内无监控程序或系统管理软件,软件开发工作量大。但近年来已开始出现了片内固化有BASIC解释程序及FROTH操作系统的单片机,使单片机系统的开发提高了一个新水平。此外,单片机成本低、集成度高、控制功能多,可灵活地组装成各种智能控制装置,并能有针对性设计成专用系统,解决从简单到复杂的各种需要,实现最佳的性价比。特别是单片机与传统机械产品相结合,使原有机械产品的结构简化、控制智能化。如数控机床就是典型实例。近年来,单片机发展极快,其产量占微机产量的70%以上。目前,至少有50个系列400余种机型,性能和结构各不相同,INTEL、MOTOROLA、ZILCG等公司都有系列单片微型计算机。国内普及的几乎都是INTEL公司的产品。2.4 AT89C51单片机简介 AT89C5是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片内4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领域。其管脚如图2-1所示。图2-1 单片机AT89C51管脚图主要性能参数:·与MCS-51产品指令系统的全兼容。 ·4k字节可重擦写Flash闪速存储器。·1000次可擦写周期。·全静态操作:0Hz-24MHz。·三级加密程序存储器。·128×8字节内部RAM。 ·32个可编程I/O口线。·2个16位定时/计数器。·6个中断源。·可编程串行UART通道。·低功耗空闲和掉电模式 。2.4.1 AT89C51功能特性描述AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。(1)AT89C51引脚功能说明:·Vcc:电源电压。·GND:地。·P0口:P0口是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。·P1口:P1口是一个内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流(I)。Flash编程和程序校验期间,P1口接收8位地址。·P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输入缓冲极可以驱动(输入或输出电流)4个TTL逻辑门电路。对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部存储器或1位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口线的内容(也既特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高地址和其他控制信号。·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如表2-1所示。P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。表2-1 AT89C51的端口及第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)·RST:复位输出。当震荡器工作时,RST引脚出现两个机器周期以上高电平使机器复位。 ·ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访问外部字节,ALE仍时钟震荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。要注意的是:每次访问外部存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还要输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令可激活。此外,此引脚会被微弱拉高,单片机执行外部程序时,应该置ALE无效。·PESN:程序存入允许(PESN)输出的是外部程序存储器的读选通信号,当AT89C51由外部程序取指令(或数据)时,每个机器周期两次PESN有效,既输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PESN信号不出现。·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V的编程电压Vpp。·XTAL1:震荡器反向放大器及内部时钟的输入端。·XAAL2:震荡器反向放大器的输出端。·时钟震荡器:AT89C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电路如图2-2所示。外接石英晶体(或陶瓷震荡器)及电容C1、C2接在放大器的震荡回路中构成并联震荡电路。对外接电容C1、C2虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF±10pF,而如果使用陶瓷谐振器建议选择40pF±10pF。用户还可以采用外部时钟,采用外部时钟如图2-3所示。在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。 图2-2 内部震荡电路图 图2-3 外部震荡电路图由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求,如表2-2所示。表2-2 AT89C51寄存器寄存器内容寄存器内容PC0000HTMOD00HACC00HTCOM00HB00HTH000HPSW00HTLO00HSP07HTH100H0DPTR0000HTH100HP1P30FFHSCON00HIPxxx00000SBUF不定IE0xxx00000PCON0xxx00000·Flash闪速存储器的编程:AT89C51单片机内部有4K字节的Flash PEROM,这个Flash存储存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。程序接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式,适用与用户在线编程系统。而高电平模式可与通用EPROM编程程序兼容。·编程方法:编程前需设置好地址、数据及控制信号,编程单元的地址就、加在P1口和P2口的P2.0P2.3(11位地址范围为0000H0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平设置见表。PSEN为低电平,RST保持高电平,EA/Vp 引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)编程时可采用420MHz的时钟震荡器AT89C51的编程方法如下:1.0 在地址线上加上要编程单元的地址信号。1.在数据线上加上要写入的数据字节。2.激活相应的控制信号。3.在高电压编程时,将EA/Vpp端加上+1V编程电压。4.每对Flash存储阵列写入一个字节,加上一个ALE/PROG编程脉冲。(2)AT89C51控制信号:RST/VPD(9脚)复位信号时钟电路工作后,在引脚上出现两个机器周期的高电平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,P1P3口输出高电平,初始值07H写入堆栈指针SP、清0程序计数器PC和其余特殊功能寄存器,但始终不影响片内RAM状态,只要该引脚保持高电平,89C51将循环复位,RAT/VPD从高电平到低电平单片机将从0号单元开始执行程序,另外该引脚还具有复用功能,只要将VPD接+5V备用电源,一旦Vcc电位突然降低或断电,能保护片内RAM中的信息不丢失,恢复电后能正常工作。AT89C81通常采用上电自动复位和开关手动复位,我们采用的是手动复位开关如图2-4所示。图2-4 手动复位开关电路图手动开关未按下之前,电容正极处于家电状态,当按键按下去后,VCC与GND导通,电容放电,从而实现放电。2.5 本章小结本章介绍了单片机的发展历史,共四个阶段,分别为单片机的探索阶段,单片机的完善阶段,单片机向微控制器发展的阶段,以及微控制器的全面发展阶段。同时还介绍了单片机的发展趋势和特点。单片机在智能仪表,机电一体化,实时控制和分布式多机系统等中的应用。更加详细的描述了AT89C51单片机的主要性能参数和功能特性。第3章 单片机的串行接口 MCS-51单片机内部有一个全双工的串行接收和发射缓冲器(SBUFF),这两个在物理上独立的接收发射器,即可以接收也可以发射数据,但接收缓冲器只可以读出不能写入,而发送缓冲器只能写入不能读出,它们的地址是99H。这个通信口即可以用于网络通信,亦可以实现串行异步通信,还可以构成同步移位寄存器使用。如果在串行口的输入输出引脚上加上电平转换器,就可以方便的构成标准的RS-232接口。下面我们分别介绍。3.1 基本概念 数据通信的传输方式:常用于数据通信的传输方式有单工、半双工、全双工和多工方式。单工方式:数据仅按一个固定的方向传送。因为这种传输方式的用途有限,常用于串行口的打印数据传输与简单系统间的数据采集。双工方式:数据可以实现双向传送,但不能同时进行,实际的应用采用某种协议实现收发开关转换。全双工方式:允许双方同时进行数据双向传送,但一般全双工电路的线路和设备比较复杂。多工方式:以上三种传输方式都是同一线路传输一种频率信号,为了充分的利用线路资源,可通过使用多路复用器或多路集线器,采用频分、时分、或码分复用技术,即可实现在同一线路上资源共享功能,我们称之为多工传输方式。串行通信的两种通信形式:A.异步通信 在这种通信方式中,接收器和发射器有各自的时钟,他们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:一个起始位,紧接着是若干个数据位,图是传输45H的数据格式。B.同步通信 同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步传输中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送的数据量较大的。C.串行数据通信的传输速率: 串行数据传输率有两个概念,既每秒传送的位数bps(Bit per second)和每秒符号波特率(Baud rate),在具有调制解调器的通信中,波特率与调制速率有关。3.2 MCS-51的串行和控制寄存器3.2.1 串行口和控制寄存器 MCS-51单片机为串行口专用寄存器。SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发射器寄存器,可以实现全双工通信。但这两个寄存器具有同一地址(99H)。MCS-51的串行数据传输很简单,只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。此外,接收缓冲器前还加上一级输入移位寄存器,MCS-51这种结构的目的在于接收数据时避免发生重叠现象,文献称这种结构为双缓冲结构。而发送数据就不需要这样设计,因为发送时,CPU是主动的,不可能出现这种情况。A:串行通信寄存器在上一节我们已经分析了SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H,其结构格式如表3-1所示。表3-1 SCON寄存器结构 寄存器SCON结构SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H下面我们对每个控制位功能介绍如下:(1)SM0、SM1:串行口工作方式控制位 SMO SM1 工作方式 功能说明 0 0 方式0 移位寄存器方式(用于I/O扩展) 0 1 方式1 8位UART,波特率可变(T1溢出率/ n) 1 0 方式2 9 位UART,波特率为fosc/64或fosc/321 1 方式3 9位UART,波特率可变(T1溢出率/ n) (2)SM2:多机通信控制位多机通信是工作方式2和方式3,SM2位主要用于方式2和方式3。接收状态,当串行口工作方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收的前8位数据送入SBUF,且置位RI发出中断申请,否则会将收到的数据放弃。当SM2=0时,只有在接收到有效停止位时才启动RI,若没接收到有效停止位,则RI清“0”。在方式0中SM2应该为“0”。REN:允许接收控制位。由软件置“1”时,允许接收;软件置“0”时,不许接收。TB8:在方式3和方式3中要发送的第9位数据,需要时用软件置位和清零。TB8:在方式2和方式3中是接收到的第9位数据。在方式1时,如SM2=0,RB8接收到的停止位。在方式0中,不使用RB8。TI:发送中断标志。由硬件在方式0发送完第8位时置“1”,或在其它方式中串行发送停止位的开始时置“1”。必须由软件清“0”。RI:接收中断标志。由硬件在方式0串行发射第8位结束时置“1”。B:特殊功能寄存器PCONPCON:主要是是CHMOS型单片机的电源控制而设置的专用寄存器,单元地址为87H其机构格式如表3-2所示。表3-2 特殊功能寄存器PCON PCOND7D6D5D4D3D2D1D0位符号SMODGF1GF0PDIDL在CHMOS型单片机中,除SMOD位外其它位均为虚设的,SMOD是串行波特率倍增位,当SMOD=1时串行口波特率加倍,系统复位默认为SMOD=0。C:中断允许寄存器IE中断允许寄存器这里重述一下对串行口有影响的位ES。ES为串行中断允许控制位,ES=1允许串行中断,ES=0,禁止串行中断。中断允许寄存器如表3-3所示。表3-3 中断允许寄存器符号EAESET1EX1ETOEX0位地址AFHAEHADHACHABHAAHA8HA8H3.2.2 串行口工作方式串行口具有4种工作方式,我从应用和毕业设计的角度,重点讨论方式1发送。串行口定义为方式1时传送1帧数据为10位,其中1位起始地址、8位数据位(先低位后高位)、1位停止位方式1的波特率可变,波特率=(T1的溢出率)。3.3 本章小结 本章介绍了数据通信的传输方式分为单工、半双工、全双工和多工方式。也介绍了串行通信的两种通信形式分别为异步通信和同步通信。MCS-51单片机串行口专用寄存器SCON,它是一个可寻址的专用寄存器,用于串行数据通信的控制,单元地址是98H。同时介绍了,SM0、SM1为串行口工作方式控制位;SM2为多机通信控制位。以及串行口的工作方式。第4章 串行通讯技术及硬件基本组成 通常情况下,人们是通过外部设备使用计算机的,但是由于种种原因,外设往往不能与CPU直接相连,它们之间的信息交换需要一个中间环节(或界面),我们称之为接口电路。接口是CPU与外界的连接部件(电路)。串行接口是计算机的一种接口标准。在实验和工业应用中,串口是常用的计算机与外部串行设备之间的数据传输通道,同时,串行接口也可以用来实现短距离的双机通信。串行通信具有连接简单、使用灵活方便、数据传递可靠等优点。4.1 硬件的基本组成 单片机89C52,11.059M晶振,30pF电容,22uf/10V电容,1K电阻,MAX232转换器,DB9接口,按键。4.2 串行通信原理 所谓“串行通信”是指外设和计算机间或者两台计算机之间使用了数据线、控制线和地线进行连接,数据在数据线上一位一位地进行传输,每一位数据都占据一个固定的时间长度。在计算机系统中,每个字符一般使用一个8位二进制代码表示。在数据通信中,通常将待传送的每个字符的二进制代码按照由低位到高位的顺序依次发送的方式成为串行通信,如图4-1所示。 发送方接收方b7 b6 b5 b4 b3 b2 b1 b0图4-1 串行通信的示意图4.3 双机通信连接方法 对于DB-9串口,3线连接法只使用电缆中的3条线,一条作为信号地线,一条作为发送线,一条作为接收线。在连接这种电缆时需要注意,电缆中的发送线和接收线需要交叉,也就是说,一台计算机的RS-232发送引脚需要和另一台计算机的