1、- -*实践教学* XXXXX大学XXXX学院XXX年秋季学期 通信系统综合训练 课程设计题 目:51单片机与PC机串行异步通信设计专业班级:姓 名:学 号:指导教师:成 绩:- word.zl- -摘 要随着计算机技术的迅速开展及其在各领域的广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格廉价,遵循统一的标准等特点,因而成为主要的通信手段。本次设计的任务是给出在分布式控制系统中上位PC机与下位单片机之间进展异步串行通信的解决方案,实现了上位机向多个最多8个下位机发送信息以及下位机接收上位机的数据并能够向上位机发送数据的功能。在软件设计中,采
2、用VC+6.0设计PC上的串口通信程序,在单片机编程上采用接近硬件系统的汇编语言编写通信程序及数据处理程序。关键词:单片机;串行通信;RS-232;异步通信- word.zl- -目 录前 言1第1章 通信原理与系统组成21.1 串行异步通信原理21.2 系统构成3第2章 系统分析62.1 系统设计思路62.2 模块组成8第3章 硬件电路设计93.1 RS-232接口电路设计93.2 MAX232接口电路 113.3 51单片机与PC机串行通信电路11第4章 软件设计13心得体会18参考文献19致 20- word.zl- -前 言随着计算机技术的迅速开展及其在各领域的广泛应用,远程控制以及数
3、据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格廉价,遵循统一的标准等特点,因而成为主要的通信手段。微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。而单片机具有价格低,功能强,抗干扰能力好,以及面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。而单片机具有价格低,功能强,抗干扰能力好,以及面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。因此如何实现PC机与单片机之间的通信具有重要的现实意义。本次设计的任务是给出在分
4、布式控制系统中上位PC机与下位单片机AT89C51之间进展异步串行通信的解决方案,实现了上位机向多个最多8个下位机发送信息以及下位机接收上位机的数据并能够向上位机发送数据的功能。要求在实际运行过程中,简单方便,稳定可靠,较好地解决上位机与下位机之间的通信问题。第1章 通信原理与系统组成1.1 串行异步通信原理 串行通信,是指使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只需要少数几条线就可以在系统间交换信息,特别使用于计算机与计算机、计算机与外设之间的远距离通信。 计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送和接收到的每一个
5、字符实际上都是一次一位的传送的,每一位为1或者为0。 串行通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,异步通信是一种利用字符的再同步技术的通信方式。异步通信所传输的数据格式(串行帧)由1个起始位、7个或8个数据位、12个停顿位(含1.5个停顿位)和1个校验位组成。起始位约定为0;空闲位约定为1。异步通信实质是指甲乙通信双方采用独立的时钟,每个数据均以起始位开场,停顿位完毕,起始位触发甲乙双方同步时钟。 每个异步串行帧中的1位彼此严格同步,位周期一样。所谓异步是指发送、接收双方的数据帧与帧之间不要求同步,也不必同步。同步通信所传输的数据格式(也称同步
6、串帧)是由多个数据帧构成的,每帧有两个同步字符作为起始位以触发同步时钟开场发送或接收数据。空闲位需发送同步字符。因此,同步是指发送、接收双方的数据帧与帧之间严格同步,而不只是位与位之间严格同步。 异步通信比拟灵活,适用于数据的随机发送/接收;而同步通信那么是成批数据传送。异步传输一批数据因每个字节均有起始位和停顿位控制而使发送/接收速度有所降低,一般适用于每秒509600位,而同步传输速度较快,可达每秒80万位。所以本次设计选用串行异步通信。1.2 系统构成 1. AT89C51单片机 在系统设计中使用AT89C51单片机作为下位机,与PC机进展串口通信。AT89C51是美国ATMEL公司生产
7、的低电压,高性能的CMOS8位单片机片,置4Kbytes的可反复擦写的只读程序存储器PEROM和128bytes的随机存储器RAM,器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器CPU和Flash存储单元,功能强大。AT89C51包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线. 本设计中主要是利用AT89C51的异步通信UART模式原理实现单片机与PC机之间的串口通信的。由于CPU与接口间按并行方式传输,接口与外设之间按串行方式传输
8、,因此,在串行接口中,要由接收移位存放器把串行方式转换成并行方式,由发送移位存放器把并行方式转换成串行方式。图1.2 51单片机串行接口图异步模式的帧格式有1位起始位、7位或8位数据位,校验位,1位地址位,1或2位停顿位构成。在异步模式下,AT89C51支持两种多机模式:线路空闲多机模式和地址位多机模式。线路空闲模式下,数据块被一段空闲的时间分割。在字符的第一个停顿位之后收到10个以上的1,表示检测到线路空闲;如果采用两个停顿位,那么第二个停顿位被认为是空闲周期的第一个信号。在使用地址位多机模式时,字符包含一个附加的位作为地址标识,数据快的第一个字符带有一个置位的地址位,用以说明该字符是一个地
9、址。由于已经设置了控制存放器中的MM=1,故在本设计中选择了地址位多机模式。2. RS-232串行接口目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通信中增加通信距离的单端标准。RS-232C总线标准, 是美国电子工业协会(ElectronicIndustryAssociation)的推荐标准。 RS-232C标准中的许多信号是为通信业务联系或信息控制而定义的,在计算机串行通信中主要使用如下信号:数据传输信号: 发送数据(TXD)、接收数据(RXD)。调制解调器控制信号:请求发送(RTS)、去除发送(CTS)、数据通信设备准备就绪(DSR)、
10、数据终端设备准备就绪(DTR)。定位信号:接收时钟(RXC)、发送时钟(TXC)。信号地和保护地。第2章 系统分析 51单片机是一种集CPU,RAM,FLASH ROM,I/O接口和定时中断系统于一体的微型计算机。只要有外加电源和晶体振荡器就可以独立完成对数字信号的算术运算,逻辑控制,串行通信等功能。当需要处理较复杂数据或需要对多个采集数据进展综合处理以及需要进展集散控制时,单片机的算术运算和逻辑运算能力显的缺乏,这时往往需要借助计算机系统。将单片机采集的数据通过串行口传给PC机,由PC机高级语言或数据库语言进展处理,或者实现PC机对远程单片机进展控制。51系列单片机部的串行口具有通信的功能,
11、该串行口可以作为通信接口,利用该串行口与PC机的高级语言或数据库语言进展整理及统计等复杂处理就能满足实际的应用需要。51单片机的开发除了硬件支持外,同样离不开软件。用汇编语言或C语言等高级语言编写的源程序必须转换为机器码才能被执行。2.1 系统设计思路本文要求设计一个51单片机与PC串口间通讯系统,实现单片机与PC机之间的远程通信。设计分发送和接收两大模块,发送局部通过硬件电路的引用。其中包括RS-232接口电路、MAX232接口电路,引用相应的管脚相连,并将相应的软件程序转入电路中,即可运行。当电路是相对独立时,可直接调速电路参数值,其影响和干扰就小。在满足发射和接收模块的要求后可单独对控制
12、进展调整,程序的编入,接收局部相应的结果即以实现,因此实现了PC机对远端单片机的控制。单片机和PC机之间的通信选用异步串行通信。 串行通信方式从原理上可以分成两种:同步串行I/O和异步串行I/O。1异步通信方式异步方式实现简单,在微型计算机量使用异步串行I/O方式,为了防止连续传送过程中的误差积累,每个字符都要独立地 确定起始和完毕位,字符和字符间还可能有长度不定的空间时间。在异步通信方式中,数据或字符是一帧一帧传送的,每一串行帧的格式如图一所示。在帧格式中包含了4个组成局部:起始位,数据位,奇偶位和停顿位。第N个字符712 第N+1个字符 0 0/1 0/1 0/1 0/1 0/1 0/1
13、1 1 1 0 0/1起 奇偶 停顿位 空闲 始 58位数据位 校验 位 位 位 图2.1 异步串行通信的格式 起始位占一位,用逻辑“0表示字符的开场。起始位后面紧接着是数据位,数据位的个数可以是5位,6位,7位或是8位。在数据位传送过程中,规定地位在前,高位在后。数据位发送完后,接下来的是1位奇偶校验位。奇偶校验用于有限过失检测,通信双方约定一致的奇偶校验方式。停顿位在最后,用逻辑值“1表示一个字符传送的完毕。完毕位可以是1位,1.5位或是2位。接收端收到停顿位后,知道上一字符已传送完毕,通信线路上便又恢复逻辑“1状态,直至下一个字符数据的起始位到来。 异步通信方式每传送一个字符都要附加一些
14、标志信息,因此其传输效率低,一般用于低速通信系统。但由于接收方接收每个字符时都重新同步,故少量的漂移不会造成太大的影响。2同步通信方式 在同步通信中,在数据或字符开场传送前用同步字符来指示,由时钟来实现发送端和接收端同步,当检测到规定的同步字符后,就连续按顺序传送数据。同步字符是一种特定的二进制序列,在传送的数据中不会出现。同步传送格式如图2.2所示: 同步 数据 数据 CRC1 CRC2a) 单同步格式同步 同步 数据 数据 CRC1 CRC2 b)双同步格式 图2.2 同步格式 同步传送方式传输效率高,但是硬件复杂,本钱高,一般用于高速率,大容量的数据通信中。在比拟同步通信和异步通信的优缺
15、点之后,我们可以在本次设计中采用异步通信方式。 2.2 模块组成 为实现该系统的生成,主要包含两大模块,即单片机模块和通信模块。1.单片机模块 单片机模块中主要包括单片机、复位电路、晶振电路、上拉电阻和端口扩展等。端口扩展局部可以通过跳线将单片机的I/O口在系统板上的功能释放,并将其连接到扩展上。2.通信模块 通信模块中采用MAX232作为通信电平转换电路、实现RS-232的数据传输,可以直接与PC进展通信。 第3章 硬件电路设计3.1 RS-232接口电路设计由于AT89C51单片机最大工作电压为6V,所以在与PC机进展串口通信的时候需要进展EIA-RS-232逻辑电平转换。EIA-RS-2
16、32 是美国电子工业协会EIA制定的串口通信协议,“C表示标准修第几次修改,其信号电平采用负逻辑,逻辑“1的电平是-5V15V,逻辑“0的电平为+5V+15V,因为其有2V的噪声容限,故最终限制接收器能识别低至+3V的信号作为逻辑“0,高到-3V的信号 作为逻辑“1。因此,实际工作时,应保证电平在(315)V之间。RS-232采用不平衡传输方式,收发端的数据信号是相对信号地。9针串口引脚如表3-1所示。表3-1 9针串口引脚定义9针串口DB9针号功能说明缩写1数据载波检测DCD2接收数据RXD3发送数据TXD4数据终端准备DTR5信号地GND6数据设备准备好DSR7请求发送RTS8去除发送CT
17、S9振铃指示DELL 典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在5V15V,负电平在-5V-15V;在接收数据时,接收器的典型工作电平是3V12V和-3V-12V。串口传输数据只要有接收数据针脚和发送数据针脚就能实现,其连接方式如表3-2所示。表3-2 串口通信连接方式9针9针233255 表3-2是对微机标准串行口而言的,还有许多非标准设备那么需要根据具体情况而定。 当51单片机与PC机通过RS-232标准总线串行通信时,由于RS-232信号电平与51单片机信号电平不一致,因此,必须进展信号电平转换。其常用的方法有两种,一种是采用运算放大器、晶体管、光电
18、隔离器等器件组成的电路来实现,另一种是采用专门集成芯片来实现。下面以MAX232专门集成芯片为例来介绍接口电路的实现。图3.1 RS-232接口电路3.2 MAX232接口电路 MAX232AT89C51 图3.2 MAX232接口电路 MAX232芯片是MAXIM公司生产的具有两路接收器和驱动器的IC芯片,其部有一个电源电压变换器,可以将输入+5V的电压变换成RS-232C输出电平所需的+/-12V的电压。在其部同时也完成TTL信号电平和RS-232信号电平的转换。所以,采用此芯片实现接口电路只需单一的+5V电源就可以。3.3 51单片机与PC机串行通信电路图3.3是由芯片MAX232实现5
19、1单片机与PC机串行通信的典型接线图。图中外接电解电容C1,C2,C3,C4用于电源电压变换,提高抗干扰能力,它们可以取一样数值电容1.0uF/16V.其值一般为0.1UF.选择任一组电平转换电路实行串行通信,如图中选T1in, R1out分别与51单片机的TXD,RXD 相连,T1out ,R1in分别与PC机中RS232 接口的RSD , TSD相连,这种发送与接收的对应关系不能连错,那么不能正常工作。图3.3 用MAX232实现串行通信接口电路 第4章 软件设计 鉴于单片机技术比拟成熟,且开发过程中可以利用的资源和工具丰富、价格廉价、本钱低。故设计用C语言对其编程并烧录到芯片部,C语言表
20、达和运算能力比拟强,且具有很好的可移植性和硬件控制能力,程序可分为发射局部和接收局部。分布式控制系统中的下位机的每台单片机均有唯一的地址。通信开场时,先由PC机呼叫被叫单片机的地址,单片机在接收到PC机的呼叫后,首先判断是不是自己的地址,如果不是就不予理睬。如果是,那么发送呼叫应答信号,并根据上位机的命令进展相应的接收或发送。 串口接收和发送都采用中断方式,设计单片机通信程序时,必须充分发挥单片机的效率,由于单片机多应用于实时性较强的控制场合,因此, 应将及时响应和控制对象的动作放在优先考虑的位置,以尽量减少通信等辅助性操作所占用的CPU时间。基于上述考虑,在设计单片机通信程序时,将中断程序分
21、为接收中断效劳程序和发送中断效劳程序两局部。1、接收中断效劳程序 当有数据收到时,设置一个标志通知主程序有数据到来,当地址位验证无误后,那么开场接收数据。 对于接收中断,程序处于等待状态,当外面有数据到来时那么触发接收,进入接收中断效劳程序,当地址验证正确开场后面的数据,中断从“RxBUF1存放器里读取数据,将读到的数据放到全局缓冲区里,在接收数据之后设置一个标志“nRev_UART1来通知主程序,完成后等待下一中断的到来。接收中断效劳程序包含了对地址位是否匹配的验证。2、发送中断效劳程序 当主程序有数据要发送时,设置一个中断标志进入中断并发送数据。下面为程序代码:对于发送中断,程序一般处于制
22、止等待状态。只有当单片机的发送缓冲区历由数据需要发送,并将发送中断置为允许方式后,发送中断才开场工作。发送时从缓冲区里发送数据,遵守通讯协议:首先发送地址位,然后发送需要传输的数据,最后发送校验以及完毕标志。下面为串口通信程序流程图:接收断点入口断点保护读字符到接收缓冲区N是否接收完指定字符Y重新设置启动定时器置接收完标志关闭接收定时器断点恢复返回断点图4.1 接收中断处理 发送断点入口断点保护Y发送缓冲区是否为空N发送中断关闭发送下一字符发送缓冲区字符减一断点恢复断点返回图4.2 发送中断处理 以上两程序可以看出采用中断有很好的构造,只要在中断效劳程序里理接收和发送数据,然后与主程序进展数据
23、交换,易实现多任务操作,很好利用单片机资源。51单片机与PC机串行异步通信的C程序 :#include #include unsigned char ch;bit read_flag= 0 ; void init_serial( void ) /串口通信初始设定 SCON = 0x50 ; /UART为模式1,8位数据,允许接收 TMOD |= 0x20 ; /定时器1为模式2,8位自动重装 PCON |= 0x80 ; /SMOD=1; TH1 = 0xFD ; /Baud:19200 fosc=11.0592MHz IE |= 0x90 ; /Enable Serial Interrupt
24、 TR1 = 1 ; / timer 1 run TI=1; /向串口发送一个字符 void send_char_( unsigned char ch) SBUF=ch; while (TI= 0); TI= 0 ; /串口接收中断函数 void serial () interrupt 4 using 3 if (RI) RI = 0 ; ch=SBUF; read_flag= 1 ; /就置位取数标志 main() init_serial(); /初始化串口 while ( 1 ) if (read_flag) /如果取数标志已置位,就将读到的数从串口发出 read_flag= 0 ; /取
25、数标志清0 send_char_(ch); 心得体会经过一段时间的学习与研究,至此,本次设计已经全部完成,所设计的接口电路、单片机串行通信、传输模块根本到达预期的目的,顺利地完成了任务。进展循环数据采集,并且误差围非常小,数据采集速度高,能够满足一般多通道数据采集要。在做设计之初,我查了很多关于单片机串行通信、单片机原理与接口技术的设计资料,我发现经了长时间的实践的检验与仔细思考,我端正了自己的态度,同时我也找到了创新点的所在,作好了一切准备工作之后便开场了紧的设计工作。做设计的这段时间是紧的一段时间,也是重新学习努力探索的一段时间,更是充满收获喜悦的一段时间。经过这次设计,我学会了许多新知识
26、,学会了如何查找资料,学会了遇到问题先分析问题解决问题的能力,学会了如何充分的利用网络资源来提高自己的文化知识和专业知识,学会了单片机系统开发的一般流程;也明白了许多不曾明白的道理,明白了求学应当有严谨的作风,并且更应该有锲而不舍、坚强的韧劲。参考文献1 旭涛. 曾现峰. 单片机原理与应用. :理工大学.20062 穆兰. 单片微型计算机原理及接口技术. :机械工业.20023 金岩. 应强. 51单片机数据传输接口扩展技术与应用实例. :人民邮电.20064 胡伟. 季晓衡. 单片机C程序设计及应用实例. :人民邮电.20065 黄智伟. 全国大学生电子设计竞赛系统设计【M】.:航空航天大学
27、. 20066 胡汉才组编. 单片机原理及接口技术. : 清华大学,1996- word.zl- -致 经过三个星期的努力,终于完成了PC机与单片机的串行通信这个设计。在此,我要衷心感我的指导教师教师,在整个设计过程中,他给予了我悉心的指导和无私的帮助,同时还要感同班的许多同学,我们在相互学习和交流中,解决问题共同进步。有了这么多的支持和无私帮助,才使我得以顺利完成毕业设计。衷心感在百忙之中评阅论文和参加辩论的各位教师及所有任课教师,感你们为我们的学习与成才创造的各种条件和付出的辛勤劳动。室友和身边的朋友们在平时的学习、生活中给予了我很大的支持,在此表示衷心的感!最后感家人,是他们给予我精神上的鼓励、生活上的照顾、学业上的支持,使我顺利完成大学学业。- word.zl