1、同步串行通信设计摘要 单片机系统,就是应用单片机作为核心,为围增设一些辅助电路,能够完成一定功能的系统。人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。单片机之间的串行通信,当传输距离小于1.5m时主要采用TTL电平传输;当传输距离在1.5-15m之间时,可以采用RS-232通信协议进行数据传输;当传输距离大于15m而小于1.5km时,可以采用RS-485通信协议进行数据传输。软件用 Keil 8051编译器,它提供了集成开发环境,包括C编译器、宏汇编、连接器、库管理和仿真调试器。利用Keil C uVision编写的程序可直接调用编译器编译,连接后可直
2、接运行。从而完成51单片机与单片机的串口通信。关键词:单片机 串行通信 数据传输目录前言 1第一章 :基本原理 2第二章 系统分析 32.1 单片机 32.2 AT89C51单片机 32.3 MAX 232 单片机 42.4 串口通信 52.5 单片机间接口硬件连接 7第三章 系统设计及调试 93.1 Keil uVision4软件介绍 93.2 Proteus简介 103.3 51单片机中断 103.3.1 中断的概念 103.4 51单片机定时/计数器0,1 113.6 硬件设计 113.7 软件设计 123.8 调试电路图 14设计总结 16前言 随着网络技术的研究开发,网络技术已经成为
3、计算机应用和社会信息化程度的一个重要标志,而这一切必须具备的前提条件则是数据传输接口.计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。 RS-232-C接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。单片机则具有快速及灵活的控制特点,通过单片机的RS-232串行接口与外部设备进行通信。因此如何实现单片机之间的通讯具有非常重要的现
4、实意义。 MCS单片机具有串行口,利用串行口实现数据通信。根据单片机端口内部的结构特点,这些端口的端口线可以直接相连,从而使两个单片机之间并行通信不用另外的硬件电路设备。设计时,也可以根据不同的使用要求采用不同的并行连接方法。 由于计算机与计算机之间的距离可能是近程的(几米之内),也可能是远程的(几百米甚至上千米),那么信息交换的方式可能采用并行通信,也可能采用串行通信;而一般的远程通信需采用串行通信方式。现在单片机与单片机在结构、性能和经济上为实现远程串行通信特别是多机系统提供了很好的条件。本次设计主要是单片机与单片机之间串行通行。 第1章:基本原理 串口通讯,不但可以实现将单片机的数据传输
5、到计算机端,而且也能实现计算机对单片机的控制。由于其所需电缆线少,接线简单,所以在较远距离传输中,得到了广泛的运用。单片机有一个全双工的串行通讯口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口。进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必
6、须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。 本文在研究传统的单片机通信系统的基础上,设计了一种基于MCS51系列单片机AT89S51的多机通信系统。初始时,1号单片机为主机。主机通过串口向从单片机发送指定格式的数据,从单片机收数据并作出响应,主机通过液晶屏显示通信信息,从机通过LED显示通信状态。主机通信结束即转为从机,其他单片机可置为主机,获得总线控制权。1号单片机通过矩阵键盘控制通信过程与显示,2号单片机通过独立按键控制通信状态与主从机切换。在此通信系统中,各个单片机具有平等的权限。仅在初始时,1号单片机
7、被默认置为主机,若不需使2号单片机变成主机,则此通信系统可以作为主从式通信系统。任何时刻,系统只有一片单片机作为主机,其他均为从机。主机发送的信息可以传送到指定从机,各从机之间也不能直接通信。主机发起通信,从机接收到自己的单片机号后,开始与主机通信。 第二章 系统分析2.1 单片机2.1.1 单片机定义 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成
8、为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。2.1.2 单片机的特点单片机主要有如下特点:1.有优异的性能价格比。2.集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。3.制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能
9、及运行速度均高于同一档次的微机。4.低功耗、低电压,便于生产便携式产品。5.外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。6.单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。2.2 AT89C51单片机AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是
10、一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.3 MAX 232 单片机2.3.1 MAX232定义MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片, 由于标准规定, RS232 的电平采用12V,与89C51
11、单片机串行口的TTL电平不一致。因此,采用集成电平转换芯片MAX232进行电平转换成+5v单电源供电,方能实现电压一致性驱动电路。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。 2.3.2主要特点:1、符合所有的RS-232技术标准 2、只需要单一 +5V电源供电 3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V- 4、功耗低,典型供电电流5mA 5、内部集成2个RS-232驱动器 6、内部集成两个RS-232接收器
12、2.3.3 RS232串口标准: 串行通信接口标准经过使用和发展,目前已经有多种;但都是在RS232标准的基础上经过改进而形成的。RS-232标准最初是由美国EIA和BELL公司一起开发并于1969年公布的通信进议,而至1997年,远程工业协会(TIA)又发布了最新的一个版本,命名为TIA/EIA-232-F。而ITF(国际电信联盟)和CCITT(国际电话与电报顾问委员会)发布了一个类似的标准V.28。这些标准都对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通信设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用,不仅被内
13、置于每一台计算机,同时也被内置于从微控制器到主机的多种类型的计算机及其相连接的设备;也就是常说的RS232端口。 PC机的RS232端口与一般单片机上的UART接口从数据收发的时序上看,是一样的协议,不同的是两者用以表达逻辑“1”和“0”的规定是不一样的,即电平是不兼容的。RS232端口用正负电压来表示逻辑状态,与TTL(单片机的UART接口电平)以高低电平表示逻辑状态的规定是不同的。因此,为了能够同计算机接口和终端的TTL器件连接,必需进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。MAX232芯片就是目前应用较为广泛的电平转换器件,它可以实现TTL到EIA双向
14、电平转换;该芯片支持两路串行异步通讯,RIN1为第一路输入,ROUT1为第一路输出;RIN2为第二路输入管脚,ROUT2为第二路输出。2.4 串口通信2.4.1 单片机的串行接口的数据传输方式1、与外界的信息交换称为通讯。基本的通讯方式有并行通讯和串行通讯两种。 并行通信:一条信息的各位数据被同时传送的通讯方式称为并行通信。并行通讯的特点是:各数据位同时传送,传送速度快、效率高,但有多少数据位就需多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。 串行通信:一条信息的各位数据被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:数据按位顺序传送,最少仅需一根传输线即可完成,
15、成本低但传送速度慢。串行通讯的距离可以从几米到几千米。 2、根据信息的传送方向,串行通信可以进一步分为单工、半双工和全双工三种。单工通信:信息只能单向传送为单工;半双工通信:信息能双向传送但不能同时双向传送称为半双工;全双工通信:信息能够同时双向传送则称为全双工。 3、 串行通信又分为异步通信和同步通信两种方式。在单片机中,主要使用异步通信方式。 异步通信:在异步通信中,数据是一帧一帧(包含一个字符代码或一字节数据)传送的,即异步串行通信一次传送一个完整字符.它用一个起始位表示字符的开始,用停止位表示字符的结束。 1)字符帧:字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成。
16、起始位:对应逻辑0(space)状态。发送器通过发送起始位开始一帧字符的传送。 数据位:起始位之后传送数据位。数据位中低位在前,高位在后。数据位可以是5、6、7、8位。奇偶校验位:奇偶校验位实际上是传送的附加位,若该位用于用于奇偶校验,可校检串行传送的正确性。奇偶校验位的设置与否及校验方式(奇校验还是偶校验)由用户需要确定。 停止位:用逻辑1(mark)表示。停止位标志一个字符传送的结束。停止位可以是1、1.5或2位。 2)波特率: 串行通信中用每秒传送二进制数据位的数量表示传送速率,称为波特率。 1波特1bps(位/秒) (2-1) 例如数据传送速率是240帧/秒,每帧由一位起始位、八位数据
17、位和一位停止位组成,则传送速率为: 102402400位/ 秒2400波特 (2-2) 数据异步传输的特点:数据在线路上的传输不连续,传送时,字符间隔不固定,各个字符可以是连续传送,也可以是间断传送,这完全取决于通信协议或双方的约定。间断传送时,在停止位后,线路上自动保持为“1”,表示通信总线“空闲”。在使用数据异步传输时,数据传输的效率并不是很高,当采用一位起始位,8位数据位,1位奇偶位和1位停止位时,有效数据只占到了一次一个字符的73%,如果数据位减少,则传输的效率更低。但这种方式也有优点:硬件电路简单,方便实现各种通信标准的变换。在选择波特率的时候需要考虑两点:首先,系统需要的通信速率。
18、这要根据系统的运作特点,确定通信的频率范围。然后考虑通信时钟误差。使用同一晶振频率在选择不同的通信速率时通信时钟误差会有很大差别。为了通信的稳定,我们应该尽量选择时钟误差最小的频率进行通信。同步通信:是指通信双方同时使用两条通信线,其中一条用于产生时钟,并且要求发送和接收的双方必须保持完全的同步(通常情况下,时钟信号由发送的一端提供),另一条用于传送数据,如果需要同时双向数据传输,则需要再添加两条数据线。数据格式:同步传输时,数据是以数据块的形式进行传输的,每个数据块包括同步字符、数据和校验字符。在同步通信中,在数据开始传送前用同步字符来指示(常约定12个),并由时钟来实现发送端和接收端同步,
19、即检测到规定的同步字符后,下面就连续按顺序传送数据,直到通信告一段落。同步传送时,字符与字符之间没有间隙,也没有起始位和停止位,仅在数据块开始时用同步字符SYNC来指示.在同步传送时,要求用时钟来实现发送端与接收端之间的同步.为了保证接收正确无误,发送方除了传送数据外,还要把时钟信号同时传送.同步传送的优点是可以提高传送速率(达56kb/s或更高),但硬件比较复杂。2.4.2 通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在双方程式设计过程中,有如下约定: 0xA1:单片
20、机读取P0端口数据,并将读取数据返回PC机; 0xA2:单片机从PC机接收一段控制数据; 0xA3:单片机操作成功信息。 在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。当单片机接收到0xA1时,读取P0端口数据,并将读取数据返回PC机;当单片机接收到0xA2时,单片机等待从PC机接收一段控制数据;当PC机接收到0xA3时,就表明单片机操作已经成功。2.4.3 串行通信工作方式 8051单片机的串行通信共有四种工作方式: 1. 串行工作方式0 串行口为同步移位寄存器方式,波特率固定为f晶振/12。该方式主要用于I/O口扩展等,方式0传送数据时,串行数据由RXD(P3
21、.0)端输入或输出,而TXD(P3.1)此时仅作为同步移位脉冲发生器发出移位脉冲。 串行数据的发送和接收以8位为一帧,不设起始位和停止位。 2串行工作方式1(1) 方式传送的数据格式 方式传送一帧为10位的串行数据,包括1位起始位,8位数据位和1位停止位。 (2)方式1数据的发送和接收 方式1的数据发送由一条写入单片机发送寄存器SBUF指令启动。8位数据在串行口由硬件自动加入起始位和停止位组成完整的帧格式。在内部移位脉冲作用下,由TXD端串行输出。发送完一帧数据后,使TXD输出端维持”1”状态并置使TI标志位置1以通知CPU发送下一个字符。接收数据由接收单片机SCON中的REN置1开始,随后串
22、行口不断采样RXD端电平,当采样到RXD端电平从1向0跳变时,就认定是接收信号并开始接收从RXD端输入的数据,并送入内部接收寄存器SBUF中,直到停止位到来之后,并使RI位置1,通知CPU从SBUF中取走接收到的一帧字符。方式1传送数据时发送前应先清TI,接收前应先清RI。 3串行工作方式2 方式2是11位为一帧的串行通信方式,即1位始位,9位数据位和1位停止位。其中第9位数据既可作奇偶校验位,也可作控制位使用。 附加第9位(D8)由软件置1或清零。方式2发送时单片机自动将SBUF中8位数据加上SCON中TB8作为第9位数据进行发送。接收时,单片机将接收到的前8位数据送入SBUF,而在SCON
23、中RB8位中存放第9位数据。4串行工作方式3 方式3通信过程与方式2完全相同。区别仅在于方式3的波特率可通过设置定时的工作方式和初值来设定(与串行工作方式1波特率设定方法相同)。 顺便指出,由于方式1和方式3的波特率设置较为灵活,在单片机串行通信中得到广泛应用。2.5 单片机间接口硬件连接51单片机有一个全双工的串行通讯口,所以单片机和单片机之间可以方便地进行串口通讯。单片机之间的串行通信,当传输距离小于1.5m时主要采用TTL电平传输;当传输距离在1.5-15m之间时,可以采用RS-232通信协议进行数据传输;当传输距离大于15m而小于1.5km时,可以采用RS-485通信协议进行数据传输。
24、由于RS-485与TTL电平传输只是硬件电路不同,基于RS-232电器特性的限制,只能实现一点对一点通信(即单机通信),而TTL电平传输既可以实现单机通信,又可以实现一点对多点通信(多级通信)。假设两个单片机系统为A、B,其中A系统每隔1s向B系统发送一次数据,数据长度为10个字节,其中第一个字节每隔1s增加一个数值,B系统在接收到10个字节的数据后,将第一个字节的数据送到8个发光二极管进行显示。现从MAX232芯片中两路发送接收中任选一路作为接口,应注意发送、接收的引脚要对应。第三章 系统设计及调试3.1 Keil uVision4软件介绍Keil C51是美国Keil Software公司
25、出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(Vision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。Keil 的网站虽然没有中文版本,但是Keil 软件却被中国80%的硬件工程师使用,但凡与电子相关的专业,都会开始从单片机和计算机编程开始学习,而学习单片机自然会用到Keil 软件。国内由米尔科技、亿道电子、英倍特提供Keil 的销售和技术支
26、持服务,他们是ARM公司合作伙伴,也是国内领先的嵌入式解决方案提供商3.1.1 系统概述Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil的优势。下面详细介绍Keil C51开发系统各部分功能和使用。3.1.2 Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,Vision与Ishell分别是C51 for Windows 和for Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然
27、后分别由C51及C51编译器编译生成目标文件(.obj)。目标文件可由LIB51 创建生成库文件,也可以与库文件一起经L51 连接定位生成绝对目标文件(.abs)。abs文件由OH51 转换成标准的hex 文件,以供调试器dScope51 或tScope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。3.1.3 使用独立的Keil仿真器时,注意事项*仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。*仿真器上的复位按钮只复位仿真芯片,不复位目标系统。* 仿真芯片的31脚(/EA)已接至高电平,所以
28、仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。3.2 Proteus简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的ED
29、A工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。 3.3 51单片机中断3.3.1 中断的概念(1)中断发生:当系统正在处理A事件的时候,突然发生了比较紧急的B事
30、件,要求系统迅速做出处理。(2)中断响应和处理:系统暂停当前A事件的处理(保存状态),转去处理B事件。(3)中断返回:事件B处理完毕,系统返回被事件B打断的地方继续处理A事件。以上三个完整的过程称为中断。3.3.2 单片机中断有关的寄存器(1)IE(Interrupt Enable Register)寄存器(2)IP(Interrupt Priority Register)寄存器80C51单片机有两个中断优先级,可实现中断2级嵌套。80C52单片机有4个中断优先级,可实现中断4级嵌套。 (3)TCON(Timer/Counter0,1 Control) (4)SCON(Serial Port
31、Control)3.3.3 Keil中C语言中断服务函数的形式:Void fun(void)interrupt n using n 中断处理程序3.3.4 单片机外部中断 STC89C51单片机包括2个外部中断源:INTO(与P3.2端口复用)和INT1(与P3.3端口复用)。当有外部事件变化时(低电平或下降沿)触发相应的中断。3.4 51单片机定时/计数器0,1在实际的测控系统中,常常需要定时控制或者对外部事件进行计数,定时/计数器可以完成这样的功能。51单片机内部一般存在2-3个定时/计数器,每个定时/计数器都是16位的可编程定时/计数器。可编程定时/计数器的工作方式、定时时长、量程、启动
32、方式等都是由相应指令控制的。3.4.1 定时/计数器0,1的工作原理51单片机的定时/计数器实际上是加1计数器。由单片机外部时钟信号进行的加1操作称为计数器。计数器的作用是对外部脉冲的个数进行计数,外部脉冲的下降沿触发计数器进行计数。应当注意的是,外部脉冲的持续时间应该要大于一个机器周期的时长,否则计数器将不能精确记录外部脉冲的个数。由于51单片机的外部晶振频率精确固定,其内部机器周期也是精确固定的,由51单片机内部时钟进行的加1操作称为定时器。定时器的作用是对某个操作过程进行定时或者计时。一般说来,定时器的加1频率等于单片机一个机器周期的频率,即在每个机器周期单片机定时器自动加1。3.4.2 定时/计数器的设定及使用
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1