基于RS-232C的单片机双机通信系统设计_第1页
基于RS-232C的单片机双机通信系统设计_第2页
基于RS-232C的单片机双机通信系统设计_第3页
基于RS-232C的单片机双机通信系统设计_第4页
基于RS-232C的单片机双机通信系统设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于RS-232C的单片机双机通信系统设计(二)摘要:本文主要设计了一个基于RS-232C单片机双机通讯系统,利用TDN86/51二合一教学实验系统中的51单片机实现两个单片机之间的通讯。通信的结果用数码管进行显示,数码管采用查表方式显示。两个单片机之间采用New-Roman进行双机通信。在通信过程中,使用通信协议进行通信。关键字:RS-232C;数据发送;数据接收;LED显示 ;双机串行通信。0. 前言计算机的发展对通信起了巨大的推动作用,计算机和通信紧密结合构成了灵活多样的通信控制系统,也可以构成强有力的信息处理系统,这样对社会的发展产生了深远的影响。随着电子技术和计算机技术的发展,特别是

2、单片机的发展,使传统的测量仪器在原理、功能、精度及自动化水平等方面发生了巨大的变化,形成了一种完全突破传统概念的新一代测试仪器智能仪器。智能仪器是以微处理器为核心的电子仪器,它不仅要求设计者熟悉电子仪器的工作原理,而且还要求其掌握微型计算机硬件和软件的原理。目前,有很多的传统电子仪器已有相应的替代产品,而且还出现不少全新的仪器类型和测试系统体系。在科学技术高速发展的今天,如何用简单便宜、性能良好的元器件制造出对人类生活有用的产品,已经成为人们研究的主要趋势。在自动化技术中,无论是过程控制技术还是数据采集技术还是测控技术,都离不开单片机,在工业自动化的领域中,机电一体化技术发挥越来越重要的作用,

3、在通信方面,单片机得到了广泛运用。在实现计算机与计算机、计算机与外设的串行通讯时,通常采用标准的通讯接口。所谓标准的通讯接口,就是明确定义若干信号线的机械、电器特性,使接口电路标准化、通用化,这样就能方便地把不同的计算机、外设等有机地连接起来,进行串行通讯。 RS-232C是由美国电子工业协会(EIA)制定的用于串行通信的标准通信接口,利用它可以很方便地把各种计算机、外围设备、测量仪器等有机地连接起来,进行串行通信。它包括按位传输的电气和机械方面的规定,适用于短距离或带调制解调器的通信场合。 RS-232C标准适用于DCE和DTE之间的串行二进制通信,最高的数据速率为19.2Kbit/s,在使

4、用此波特率进行通信时,最大传输距离在20m之内。降低波特率可以增加传输距离。对于RS-232C标准接口的使用是非常灵活的,实际通信中经常采用9针接口进行数据通信。1. 总体方案设计在本次设计中,硬件部分,对于两片89C51,采用RS232进行双机通信,硬件的连接方法如图1所示。电平转换芯片采用MAX232,其连接一般采用双绞线,传输距离一般不超过15m,传输小于20kbit/s。发送方的数据由串行口TXD段输出,经过电平转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,

5、在数码管上显示接收的信息。为提高抗干扰能力,还可以在输入输出端加光耦合进行光电隔离。软件部分,通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB16中的10个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接收。从机收到16个正确数据后送到一个数码管显示。T2IN T2OUT MAX232AR2OUT R2INR2IN T2IN MAX232AT2OUT R2OUTTXDAT89C51RXDTXDAT89C51RX

6、D 图1 RS-232C电平信号传输的连接图2. 硬件电路的设计2.1 单片机系统标准型89系列单片机是与MCS-51系列单片机兼容的。在内部含有4KB或8KB可重复编程的Flash存储器,可进行1000次擦写操作。全静态工作为033MHz,有3级程序存储器加密锁定,内含有128256字节的RAM、32条可编程的I/O端口、23个16位定时器/计数器,68级中断,此外有通用串行接口、低电压空闲模式及掉电模式。AT89C51相当于将8051中的4KB ROM换成相应数量的Flash存储器,其余结构、供电电压、引脚数量及封装均相同,使用时可直接替换。AT89C51在内部采用40条引脚的双列直插式封

7、装,引脚排列如图2所示:图2 AT89C51芯片引脚在自动化测量和控制系统中,各台仪表之间需要不断地进行各种信息的交换和传输,这种信息的交换和传输是通过仪表的通信接口,按照一定的协议进行的。通信接口是各台仪表之间或者是仪表与计算机之间进行信息交换和传输的联络装置。计算机与外界的信息交换称为通信,常用的通信方式有两种:并行通信和串行通信。所谓并行通信是指数据的各位同时在多根数据线上发送或接收,其特点是传输信号的速度快,但所用的信号线较多,成本高,传输的距离较近。串行通信是指将构成字符的每个二进制数据位,依照一定的顺序逐位进行传送的通信方式,其特点是只用两条信号线(一条信号线,再加一条地线作为信号

8、回路)即可完成通信,成本低,传输的距离较远。51单片机内部有一个可编程全双工串行通信接口。该部件不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。51单片机串行接口的结构如下:(1)串行数据缓冲器(SBUF)接受或发送的数据都要先送到SBUF缓存。SBUF包括缓存寄存器和发送寄存器,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,这样可以避免在数据接收过程中出现帧重叠错误。发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路不需要双重缓冲结构。在逻辑上,SBUF只有一个,它既表示发送寄存器,又表示接收寄存器,具有同一个

9、单元地址99H。但在物理结构上,则有两个完全独立的SBUF,一个是发送缓冲寄存器SBUF,另一个是接收缓冲寄存器SBUF。如果CPU写SBUF,数据就会被送入发送寄存器准备发送;如果CPU读SBUF,则读入的数据一定来自接收缓冲器。即CPU对SBUF的读写,实际上是分别访问上述两个不同的寄存器。(2)串行控制寄存器(PCON)串行控制寄存器SCON用于设置串行口的工作方式、监视串行口的工作状态、控制发送与接收的状态等。它是一个既可以字节寻址又可以位寻址的8位特殊功能寄存器。其格式如表1所示: 表1 串行口控制寄存器SCON位地址9FH9EH9DH9CH9BH9AH99H98HSCONSM0SM

10、1SM2RENTB8RB8T1R1SM2:多机通信控制位。REN:接收允许控制位。软件置1允许接收;软件置0禁止接收。TB8:方式2或3时,TB8为要发送的第9位数据,根据需要由软件置1或清0。RB9:在方式2或3时,RB8位接收到的第9位数据,实际为主机发送的第9位数据TB8,使从机根据这一位来判断主机发送的时呼叫地址还是要传送的数据。TI:发送中断标志。发送完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续发送。RI:接收中断标志。接收完一帧数据后由硬件自动置位,并申请中断。必须要软件清零后才能继续接收。SM0,SM1:串行口工作方式选择位,这两位组合成00,01,10,11

11、对应于工作方式0、工作方式1、工作方式2、工作方式3。串行接口工作方式如表2:表2 串行工作方式SM0SM1工作方式功能波特率 0008位同步移位寄存器(用于I/O扩展)fORC/1201110位异步串行通信(UART)可变(T1溢出率*2SMOD/32)10211位异步串行通信(UART)fORC/64或fORC/3211311位异步串行通信(UART)可变(T1溢出率*2SMOD/32)(3)输入移位寄存器接收的数据先串行进入输入移位寄存器,8位数据全移入后,再并行送入接收SBUF中。(4)波特率发生器波特率发生器用来控制串行通信的数据传输速率的,51系列单片机用定时器T1作为波特率发生器

12、,T1设置在定时方式。波特率是用来表示串行通信数据传输快慢程度的物理量,定义为每秒钟传送的数据位数。(5)电源控制寄存器PCON波特率系数控制寄存器PCON的最高位为Smod,仅仅是最高位与串行口有关。在工作方式1工作方式3时,若SMOD=1,则串行口波特率增加一倍。若SMOD=0,波特率不加倍。系统复位时,SMOD=0。PCON字节地址为87H,不能位寻址。PCON的格式如表3表3 特殊功能寄存器PCON的格式PCOND7D6D5D4D3D2D1D0位名称SMODGF1GF0PDIDL(6)波特率计算 串行口每秒钟发送(或接收)的位数称为波特率。设发送一位所需要的时间为T,则波特率为1/T。

13、对于不同方式,得到的波特率的范围是不一样的,这是由定时器/计数器T1在不同方式下计数位数的不同所决定的。串行口工作在方式1或方式3时,常用定时器T1作为波特率发生器,关系式为:波特率=2SMOD×(T1溢出率)/32。2.2 MAX232芯片在电气特性上RS-232C采用负逻辑,要求高、低两信号间有较大的幅度,标准规定为:逻辑1:-5-15V ,逻辑0:+5+15V 。而单片机的信号电平与TTL电平兼容,逻辑1大于+2.4V,逻辑0为0.4V以下。很显然,RS-232C信号电平与TTL电平不匹配,为了实现两者的连接,必须进行电平转换。MAX232C为单一+5V供电,内置自升压电平转换

14、电路,一个芯片能同时完成发送转换和接收转换的双重功能。其引脚如图3:图3 电平转换芯片MAX232 (1) C1+,C1-,C2+,C2-;外接电容端。(2) R1IN,R2IN:两路RS-232C电平信号输入端,可接传输线。(3) R1OUT,R2OUT:两路转换后的TTL电平输出端,可接单片机的RXD端。(4) T1OUT,T2OUT:两路转换后的RS-232C电平信号输出端,可接传输线。(5) T1IN,T2IN:两路TTL电平输入端,可接单片机的TXD端。(6)Vs+,Vs-:分别经电容接电源和地。2.3 整体电路设计 最终设计电路如图4所示,发送方的数据由串行口TXD段输出,经过电平

15、转换芯片MAX232将TTL电平转换为RS232电平输出,经过传输线将信号传送到接收端。接收方也使用MAX232芯片进行电平转换后,信号到达接收方串行口的接收端。接受方接收后,通过P0口在数码管上显示接收的信息。 图4 串行通信电路3 软件设计通过通信协议进行发送接收,主机先送AAH给从机,当从机接收到AAH后,向主机回答BBH。主机收到BBH后就把数码表TAB16中的16个数据送给从机,并发送检验和。从机收到16个数据并计算接收到数据的检验和,与主机发送来的检验和进行比较,若检验和相同则发送00H给主机;否则发送FFH给主机,重新接受。从机收到16个正确数据后送到一个数码管显示。3.1 串行

16、通信软件实现(1)串行口工作于方式1;用定时器1产生9600bit/s的波特率,工作于方式2。(2)功能:将本机ROM中数码表TAB16中的16个数发送到从机,并保存在从机内部ROM中,从机收到这16个数据后送到一个数码管循环显示。(3)通信协议:主机首先发送连络信号(AAH),从机接收到之后返回一个连络信号(BBH)表示从机已准备好接收。(4)通信过程使用第九位发送奇偶校验位。(5)从机接收到一个数据后,立即进行奇偶校验,若数据没有错误,则返回00H,否则返回FFH。(6)主机发送一个数据后,等待从机返回数据;若为00H,则继续发送下一个数据,若为FFH,则重新发送数据。3.2 程序流程图(

17、1) 发送端程序流程图,如图5所示:主程序开始从机是否回答BBH?程序初始化主机发送AAHN主机发送数据,检验和输出完成?N清除标志位 图5 发送端程序流程图(2) 接收端程序流程图,如图6所示:主程序开始检验和相等?程序初始化接收数据,计算检验和N发送00H至主机接收完成?N清除标志位发送FFH,重新接收显示图6 接收端程序流程图 4.联合调试在protues上进行仿真实验。首先使用Keil uVsion 2将编写完成的程序编译生成HEX文件,将HEX文件烧录到两片单片机中,进行仿真实验,结果如图7所示,可以看到,接收端已将接收到的数据完整的显示出来。 图7 仿真图5. 课设小结及进一步设想

18、通过这次紧张的课程设计,我收获颇多,每天面对着电脑,翻阅各种相关资料,体会颇深。短暂的单片机学习,有种意犹未尽之感,在这次课设中,加深了单片机相关知识的理解,之前的模棱两可已经不存在,这种感觉很好。在课设开始的前期,也遇到了麻烦,比如说,由于发送端和接收端的通信协议没有做好,导致数据不能正确的传输,在解决问题的过程中,对于通信协议的协议有了深刻的认知。很感谢徐涛老师的耐心教导,他的幽默让我们觉得亲切,他的认真负责让我们折服。在繁忙的一个学期即将结束之时,我的思想成熟了,这次的课设让我找到了方向,让我懂得了很多,有知识方面的,但大部分还是人格方面的。我相信,只要不放弃,只要努力,就一定可以!由于

19、时间紧促,自身水平有限,本论文还有许多部分未能详细分析,在此仅作简单了解和认识。本文采用的RS-232标准实现单片机与单片机之间的串行通信。RS-232是目前最常用的一种串行通讯接口。由于RS-232-C接口标准出现较早,难免有不足之处。主要表现在:1、接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不容,故需使用电平转换电路才能与TTL电路连接。2、传输速率较低,在异步传输时,波特率为20Kbps。3、接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。4、传输距离有限,最大传输距离标准值为50英尺,实际上也只能用在50米左

20、右。因此建议使用RS-485标准实现,RS-485接口具有良好的抗噪声干扰性,长的传输距离和多站能力等优点就使其成为首选的串行接口。参考文献1 赵茂泰.智能仪器原理及应用.北京: 电子工业出版社,2004.72 张毅刚,刘杰.MCS51单片机原理及应用.哈尔滨: 哈尔滨工业大学出版社,2004.63 何立民.单片机应用技术选编.北京: 北京航天航空大学出版,2002.54 张军,梅丽凤.单片机原理接口技术.北京交通大学出版社,2006.55 张婧武,周灵彬.单片机系统的PROTEUS设计与仿真.北京: 电工出版社,2007.46 周佩玲,彭虎.微机原理与接口技术.北京: 电子工业出版社,200

21、5.47 李群芳,张士军.单片微型计算机与接口技术.北京: 电子工业出版社,2008.5附录I 元件清单元件名称型号数量二合一微机教学实验箱TDN86/511单片机AT89C512LEDArk SM470501K1接口芯片MAX232A2电容1uf8电阻51R1导线 若干附录II 整体电路图附录III 源程序清单;发送数据采用查询方式ORG 0000HAJMP STARTORG 0030HSTART:MOV 30H,#0C0H ;传送的16个数据(0F) MOV 31H,#0F9H MOV 32H,#0A4H MOV 33H,#0B0H MOV 34H,#99H MOV 35H,#92H MO

22、V 36H,#82H MOV 37H,#0F8H MOV 38H,#80H MOV 39H,#90H MOV 3AH,#88H MOV 3BH,#83H MOV 3CH,#0C6H MOV 3DH,#0A1H MOV 3EH,#086H MOV 3FH,#08EH MOV TMOD,#20H ;定时器1置为方式2 MOV TH1,#0F4H ;装载定时器初值,波特率2400 MOV TL1,#0F4H CLR EA SETB TR1 ;启动定时器 MOV PCON,#00H MOV SCON,#50H ;设定串口方式1,且准备接收应答信号LOOP1:MOV SBUF,#0E1H ;发联络信号

23、JNB TI,$ ;等待一帧发送完毕 CLR TI ;允许再发送 JNB RI,$ ;等待2号机的应答信号 CLR RI ;允许再接收 MOV A,SBUF ;2号机应答后,渎至A XRL A,#0E2H ;判断2号机是否准备完毕 JNZ LOOP1 ;2号机未准备好,继续联络LOOP2:MOV R0,#30H ;2号机准备好,设数据块指针初值 MOV R7,#10H ;设定数据块长度初值 MOV R6,#00H ;清校验和单元LOOP3:MOV SBUF,R0 ;发送一个数据字节 MOV A,R6 ADD A,R0 ;求校验和 MOV R6,A ;保存校验和 INC R0 JNB TI,$ CLR TI DJNZ R7,LOOP3 ;整个数据块是否发送完毕 MOV SBUF,R6 ;发送校验和 JNB TI,$ CLR TI JNB RI,$ ;等待2号机的应答信号 CLR RI MOV A,SBUF ;2号机应答,读至A JNZ LOOP2 ;2号机应答”错误“,转重新发送 RET ;2号机应答”正确“,返回 ;接收数据采用查询方式ORG 0000HAJMP STARTORG 0030HSTART:MOV TMOD,#20H ;定时器1置为方式2 MOV TH1,#0F4H ;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论