基于RS485多机通信设计.docx

上传人:夺命阿水 文档编号:845384 上传时间:2023-12-24 格式:DOCX 页数:9 大小:34.89KB
返回 下载 相关 举报
基于RS485多机通信设计.docx_第1页
第1页 / 共9页
基于RS485多机通信设计.docx_第2页
第2页 / 共9页
基于RS485多机通信设计.docx_第3页
第3页 / 共9页
基于RS485多机通信设计.docx_第4页
第4页 / 共9页
基于RS485多机通信设计.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于RS485多机通信设计.docx》由会员分享,可在线阅读,更多相关《基于RS485多机通信设计.docx(9页珍藏版)》请在课桌文档上搜索。

1、课程设计报告课程单片机系统及其应用题目基于RS485多机通信设计院系年级专业学号学生姓名指导教师设计时间2023.122023.01-、方案选择与说明1.1 设计方案选择方案一:基于AT89S52的单片机网络的单片机多机通信协议;系统网络拓扑结构采用总线型:网络接口电路采用端口转发的形式等进行单片机多机通信系统的设计方案二:利用51单片机自身的串行通信口设计基于RS485的多机通信系统,实现2个通信终端之间互相通信的功能。经过比拟:方案一的系统易于扩展且提高了稳定性能实现从机与主机间的通信,以及从机与从机间的通信;方案二通信距离远、抗干扰能力强也可实现主机与从机的通信,虽不能实现从机之间的通信

2、但对于本课题来说已足够,所以采用方案二。1.2 设计方案说明RS-485方式构成的多机通信系统采用主从式结构:主机控制多个从机,作为从机的单片机不主动发送命令或数据,一切都由主机单片机控制;并且在一个多机系统中,只有一台主机,各台从机之间不能相互通信,即使有信息交换也必须通过主机转发。采用RS-485构成的多机通信系统原理。在总线末端接一个匹配电阻,吸收总线上的反射信号,使得正常传输信号无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。在总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。将总线上的差分信号的正端A+和负端B-之间接一个IOK的电阻;负端B-和地间接一个IOK的电阻,形

3、成一个电阻网路。当总线上没有信号传输时,正端A+的电平大约为3.2V,负端B-的电平大约为L6V,即使有干扰信号,也很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力。二、结构框图与工作原理2.1结构图图2-1结构图2.2工作原理多机通信中,要保证主机与从机实现可靠通信,必须通信接口具有识别功能,而m片机的串行口控制存放器SCoN中的SM2就是满足这一要求而设置的。在串行口以方式2或方式3工作时一,发送和接收的每一帧信息都是11位,其中第9数据位是可编程位,通过对SCON的TB8赋1或0,来区别发送的是地址帧还是数据帧(规定地址帧的第9位为1,数据帧的第9位为0)。假设从机的控制位SM2

4、=1,那么当接收的是地址帧时,数据装入SBUF,并置RI=I;假设接收的是数据帧,那么不置RL信息将抛弃;假设SM2=0,那么无论是地址帧还是数据帧都产生Rl=I中断标志,数据装入SBUF。多机通信过程如下:(1)使所有从机的SM2位置1,处于只接收地址帧的状态。(2)主机发送一帧地址信息,其中包含8位地址,第9位为地址、数据标志位,第9位置1表示发送的是地址。(3)从机接收到地址帧后,各自将所接收的地址与本从机的地址相比拟。对地址相符的从机,使SM2清0以接收主机随后发来的所有信息;对于地址不相符合的从机,仍保持SM2=1状态,对主机随后发送的数据不予理睬。(4)当主机改为与另外从机联系时一

5、,可再发地址帧寻址其从机,而先前被寻址过的从机,恢复SM2=1三、硬件设计3.1 芯片和单片机简介MAX485芯片简介本系统采用MAX485芯片为RS-485总线驱动芯片,MAX485芯片内部含有一个驱动器和接收器,用于实现RS-485的半双工通信。MAX485采用单一电源+5V工作,额定电流为300uA,完成将TTL电平转换为RS-485电平的功能。MAX485的A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0,在MAX485的A和B端之间需要连接一个匹配电阻,一般可选120欧的电阻。AT89C51单片机80C51单

6、片机是把那些作为控制应用所必需的根本内容都集成在一个尺寸有限的集成电路芯片上。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能存放器。它们都是通过片内单一总线连接而成,其根本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能存放器的集中控制方式。(1)微处理器该单片机中有一个8位的微处理器,与通用的微处理器根本相同,同样包括了运算器和控制器两大局部,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。(2)数据存储器片内为128个字节,片外最多可外扩至64k字节,用

7、来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。(3)程序存储器由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,那么需用扩展片外的只读存储器,片外最多可外扩至64k字节。(4)中断系统具有5个中断源,2级中断优先权。(5)定时器/计数器片内有2个16位的定时器/计数器,具有四种工作方式。(6)串行口1个全双工的串行口,具有四种工作方式。可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。(7) Pl、P2、P3、P4为4个并行8位I/O。(8)特殊功能存放器共有21

8、个,用于对片内的个功能的部件进行管理、控制、监视。实际上是一些控制存放器和状态存放器,是一个具有特殊功能的RAM区。由上可见,80C51单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位澈计算机有自己的CPU、位存放器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。3.2 80C51管脚图图3-280

9、C51管脚图四、软件设计4.1 系统结构该多机通信系统的系统结构图如图1所示,系统采用半双工主从通信方式,主机可以读取从机的数据或写数据到从机,并将数据送终端进行显示;从机主要负责对分布的电子设备进行监测或控制,用中断的方式接收主机发来的命令并做出回应。4.2通信协议信息格式该协议的信息格式如下:Q)编码格式:二进制代码。(2)波特率:9600bs,(3)通信方式:半双工。(4)每个字符由U位组成;1位:起始位(0);8位:数据位;1位:地址/数据识别位(1为地址,。为数据);1位:停止位(1)。(5)字符发送顺序;低位在先(6)帧结束标志:通信线路空闲3.5ms以上(7)帧校验方式:数据和(

10、2字节)(8)主机询问的一般格式见图2:图2主机询问的一般格式1从机地址码I命令码1数据个数数据1校验和从机地址码;两字节二进制数,后一字节是前,字节的反码。命令码:一字节二进制数,OIH代表主机读,02H代表主机写。数据个数:表示主机要疾写的字节个数,一字节二进制数。校验和:两字节二进制数,是将从机地址码、命令和数据按字节从头依次相加,生成两字节的校验和。(9)从机应答的一般格式(如图3)图3从机应答的一般格式图中信息段的定义同图2。定时与重发本通信协议定时规定如下:(1)帧发送时限;70ms.超过此时限结束发送。(2)主机等待从机应答时限:7r11s,超过此时限,酌情重发。(3)主机重发次

11、数:不超过4次,超过后,判通信失败。通信过程一次完整的通信过程分为3个阶段:主机询问、从机应答和链路释放。主机询问阶段,主机以帧的形式将从机地址码、命令、数据和校验码传送到指定从机;从机应答阶段,从机解释接收的命令码,并组织相应帧信息回送到主机;链路释放阶段,从机去除接收缓冲区及相关变量,准备与主机下次通信。任何一次完整的通信过程都是由主机方发起的,从机在被主机寻址前只能处于侦听状态,从机在接收到地址码的第2个字节后,立即判断是否寻址自己,如果是.继续接受下面的数据,否那么不与理睬。4. 3通信软件设计从机通信软件设计在该系统中,从机的主要任务是对被检测设备进行故障检测和故障定位,通信软件的主

12、要功能是接收主机的命令并将检测的结果回送主机。从机通信软件由2局部组成:串行中断效劳程序和定时器TO中断效劳程序。串行中断效劳程序用于接收或发送数据;TO中断效劳程序用于当从机接收完一帧信息后进行解释并启动通信向主机应答,另外也用于当从机发送超时后的一些处理。从机上电后处于侦听状态,当主机寻址时I便进人中断效劳程序,其程序流程图如图4所示。图4申行通信中断效劳程序流程图首先判断是接收中断还是发送中断,假设是接收中断,那么去除RI,同时启动字符间隔定时器T0,并置收发标志为收。当接收完第2个字节后,各从机立即判断是否寻址本机,假设是,那么置SM2为,0,继续接收主机送来的数据:假设不是,那么禁止

13、TO定时,不在接收后面的数据。当被寻址从机接收完一帧信息后,字符间隔定时器会产生定时中断,进入TO中断效劳程序。图5是TO中断效劳程序流程图。图5TO中断效劳程序流程图进入TO中断效劳程序后,首先去除TO中断请求标志,停止TO定时器,接着判断是接收完成还是发送超时,假设是接收完成,再判断校验和是否正确,假设正确,对接收的命令进行解释,看是主机读还是主机写操作,假设是主机读,那么将数据打包,送到专门用于通信的数组,接着,禁止接收,置本机为应答工作方式,最后启动发送,发送第一个字节,同时启动发送时限定时器T0。当一个字节发送完后,便进入通信中断效劳程序,继续发送余下数据。如果在上边判校验和时,发现

14、不正确,那么置SM2为T,恢复本机的侦听状态,以便接收主机的重发信息。主机通信软件设计该系统主机的主要任务是循环读取从机的检测结果,并送终端显示,其通信软件由3局部组成:主程序中负责寻址从机的寻址模块、通信中断效劳程序和TO中断效劳程序。寻址模块程序流程图见图6。图6寻址模块程序流程图对从机寻址是按照从机的编号顺序进行的,即从1号从机开始,主机发送该从机信息帧的第1个字节启动寻址,同时启动发送超时定时器T0,然后检测通信结束标志.当主机成功的接收到该从机的应答信息后,便会置位该标志,完成与该从机的通信。接下来,寻址下一从机,直到所有从机都被寻址。最后,主机完成其它功能后,又从1号从机开始下一循

15、环的寻址。通信中断效劳程序和TO中断效劳程的设计方法与从机的大同小异,在此不再介绍。五、结果调试5. 1电路6. 2实物连接六、使用说明七、总结与体会历时几个月的毕业设计已经告一段落。经过自己不断的搜索努力以及XXX老师的耐心指导和热情帮助,本设计已经根本完成。在这段时间里,刘老师为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励,刘老师严谨的治学态度和热忱的工作作风令我十分钦佩,他不仅授我以文,而且教我做人,他的指导使我受益非浅。对刘老师的感谢之情是无法用言语表达的。通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也理解了理论联系实际的含义,并且检验了大学三年的学习成果。虽然在这次

16、设计中对于知识的运用和衔接还不够熟练。但是我将在以后的工作和学习中继续努力、不断完善。这几个月的设计是对过去所学知识的系统提高和扩充的过程,为今后的开展打下了良好的根底。由于个人自身水平有限,设计中一定存在很多缺乏之处,敬请各位老师批评指正,我也会努力改良取得进步!八、参考文献1、马忠梅等单片机的C语言应用程序设计北京航空航天大学出版社19982,何立民AVR单片机原理与接口技术北京航空航天大学出版社20023. MAX485数据手册4. XXX主编,单片机应用技术(汇编语言)附录主机程序清单如下:#include#includeabsacc.hftincludeunsignedcharcor

17、t=O;sbitP3_5=P35;按键扫描子程序keyserial()interrupt0using1+cort;发送子程序voidmaster(void)if(cort=l)SBUF=OxOI;while(TI!=l);TI=0;P3_5=0;SM2=0;While(RIi=I);RI=0;P2=SBUF;SM2=1;P3_5=1;if(cort=2)SBL=0x02;While(TIi=I)JI=O;SM2=0;P3_5=0;while(RI!=l);RI=0;P2=SBUF;SM2=1;P3_5=l;if(cort=3)cort=l;SM2=1;IlllIlJI彳【JIjWtlSCSlt

18、CIeSl/voidmain(void)P2=0xff;TM0D=0x20;TLl=Oxfd;THl=Oxfd;PCON=OxOO;TRl=I;SC0N=0xf8;EA=I;EXO=I;ITO=I;P3_5二1;while(l)master();/发送从机1程序清单如下:#include#includeabsacc.hftincludeunsignedcharserial_receiver;sbitP3_5=P35;串行口中断子程序voidserial(void)interrupt4using1ES=O;RI=0;if(SBIF=OxOI)P3_5=l;SM2=0;Pl=OxlO;SBUF=O

19、xIO;While(TIi=I);TI=0;SM2=1;ES=I;P3_5=0;/*主程序*/voidmain(void)Pl=OxOO;TM0D=0x20;TLl=Oxfd;THl=Oxfd;PCON=OxOO;TRl=I;SCON=OxfO;EA=I;ES=I;P3_5=0;while(l)_nop_();从机2程序清单如下:#includeincludeAincludeQntrins.hunsignedcharserial_receiver;sbitP3_5=P35;串行口中断子程序voidserial(void)interrupt4using1ES=O;RI=0;if(SBUF=OxOZ)P3_5=1;SM2二0;Pl=0x80;SBL=0x80;While(TIi=I);TI=0;SM2=1;ES=I;P3_5=0;IlIIllIHlJJfClfSStCsCSlCSSISCvoidmain(void)Pl=OxOO;TM0D=0x20;TLl=Oxfd;THl=Oxfd;PCON=OxOO;TRl=I;SCoN二OXfO;EA=I;ES=I;P3_5=0;while(l)_nop_();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号