有线多机通信系统的设计_第1页
有线多机通信系统的设计_第2页
有线多机通信系统的设计_第3页
有线多机通信系统的设计_第4页
有线多机通信系统的设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

淮北师范大学2012届学士学位论文有线多机通信系统的设计学院、专业信息学院电子信息科学与技术研究方向RS485学生姓名学号指导教师姓名指导教师职称2012年4月18日有线多机通信系统的设计淮北师范大学信息学院235000摘要在多机通信领域.由于单片机具有灵活高效的多机通信功能和价格优势,应用越来越广泛,但由于单片机的收发信号都是TTI电平,驱动能力和抗干扰性有限,实用中常配合其它总线实现互联,RS485总线就是其中之一。RS485总线是平衡差分传输,抗干扰性好,最远可传输4000m,可互联多达128个单片机,非常适台组成多机通信系统。在多机通信中,最重要的是保证通信有条不紊地进行,因此需要严格的通信协议和完善的通信软件,本文将重点介绍应用于某大型工程的单片机多机通信协议和通信软件的设计方法。本文介绍一种利用单片机本身所提供的串行通讯口,采用自定义串行通信协议,加上总线驱动器如MAX481、MAX483、MAX485、MAX487等组合成简单的RS-485通讯网络,完成单片机间的多机通讯。关键词单片机;串行通信;RS-485总线:多机通信协议CablecomputercommunicationsystemdesignSchoolofPhysicsandElectronicInformation,HuaibeiIndustuyTerachersCollege,235000AbstractIncomputercommunicationfield.Becauseofthesinglechipmicrocomputerhasflexibleandefficientcomputercommunicationfunctionandpriceadvantage,usedmoreandmorewidely,butbecauseofthesinglechipmicrocomputertosendandreceivesignalsareTTIlevel,driveandanti-interferenceabilityislimited,practicalcooperationwithotherbusrealizeinInternet,RS485busisoneofthem.RS485busisabalanceddifferentialtransmission,anti-jammingofthegoodandasfaras4000mcouldbetransmitted,interconnectedasmanyas128singlechipmicrocomputer,verycomfortableacompositioncomputercommunicationsystem.Incomputercommunication,themostimportantistoensurethatcommunicationsinanorderlyway,andthereforeneedtostrictcommunicationprotocolandperfectcommunicationsoftware,thispaperwillfocusonintroducesappliedinalargeprojectsingle-chipcomputercommunicationassociationPutthecommunicationsoftwaredesignmethod.Thispaperintroducesamicrocontrolleritselfprovidetheserialcommunicationmouth,usecustomserialcommunicationprotocol,plusthebusdrivesasMAX481,MAX483,MAX485,MAX487combinedintosimpleRS-485communicationnetwork,finishbetweenthesinglechipcomputercommunication.KeywordsSCM;Serialcommunication;RS-485bus:computercommunicationagreement目次第1章绪论第2章硬件设计及原理2.180C51单片机硬件结构2.2最小应用系统设计2.3总线驱动芯片第3章软件设计3.1系统结构3.2通信协议3.3通信软件设计第4章系统仿真结论参考文献附录致谢1绪论RS-485采用平衡发送和差分接收方式来实现通信:在发送端TXD将串行口的TTL电平信号转换成差分信号A、B两路输出,经传输后在接收端将差分信号复原成TTL电平信号。两条传输线通常使用双绞线,又是差分传输,因此有极强的抗共模干扰的能力,接收灵敏度也相当高。同时,最大传输速率和最大传输距离也大大提高。如果以10Kbps速率传输数据时传输距离可达12m,而用100Kbps时传输距离可达。如果降低波特率,传输距离还可进一步提高。另外RS-485实现了多点互连,最多可达256台驱动器和256台接收器,非常便于多器件的连接。不仅可以实现半双工通信,而且可以实现全双工通信。本设计采用MCS-51系列中的80C51单片机。以80C51为控制核心,利用超声波传感器检测道路上的障碍,控制电动小汽车的自动避障,快慢速行驶,以及自动停车,并可以自动记录时间、里程和速度,自动寻迹和寻光功能。80C51是一款八位单片机,它的易用性和多功能性受到了广阔使用者的好评。它是第三代单片机的代表。第三代单片机包括了Intel公司开展MCS-51系列的新一代产品,如8xC152﹑80C51FA/FB﹑80C51GA/GB﹑8xC451﹑8xC452,还包括了Philips﹑Siemens﹑ADM﹑Fujutsu﹑OKI﹑Harria-Metra﹑ATMEL等公司以80C51为核心推出的大量各具特色﹑与80C51兼容的单片机。新一代的单片机的最主要的技术特点是向外部接口电路扩展,以实现Microcomputer完善的控制功能为己任,将一些外部接口功能单元如A/D﹑PWM﹑PCA(可编程计数器阵列)﹑WDT(监视定时器)﹑高速I/O口﹑计数器的捕获/比拟逻辑等。这一代单片机中,在总线方面最重要的进展是为单片机配置了芯片间的串行总线,为单片机应用系统设计提供了更加灵活的方式。Philips公司还为这一代单片机80C51系列8xC592单片机引入了具有较强功能的设备间网络系统总线----CAN(ControllerAreaNetworkBUS).新一代单片机为外部提供了相当完善的总线结构,为系统的扩展与配置打下了良好的根底。2硬件设计及原理2.180C51单片机硬件结构80C51单片机是把那些作为控制应用所必需的根本内容都集成在一个尺寸有限的集成电路芯片上[2]。如果按功能划分,它由如下功能部件组成,即微处理器、数据存储器、程序存储器、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能存放器。它们都是通过片内单一总线连接而成,其根本结构依旧是CPU加上外围芯片的传统结构模式。但对各种功能部件的控制是采用特殊功能存放器的集中控制方式。该单片机中有一个8位的微处理器,与通用的微处理器根本相同,同样包括了运算器和控制器两大局部,只是增加了面向控制的处理功能,不仅可处理数据,还可以进行位变量的处理。片内为128个字节,片外最多可外扩至64k字节,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等,所以称为数据存储器。由于受集成度限制,片内只读存储器一般容量较小,如果片内的只读存储器的容量不够,那么需用扩展片外的只读存储器,片外最多可外扩至64k字节。具有5个中断源,2级中断优先权。片内有2个16位的定时器/计数器,具有四种工作方式。1个全双工的串行口,可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。P1口、P2口、P3口、P4口为4个并行8位I/O口。共有21个,用于对片内的个功能的部件进行管理、控制、监视。实际上是一些控制存放器和状态存放器,是一个具有特殊功能的RAM区。由上可见,80C51单片机的硬件结构具有功能部件种类全,功能强等特点。特别值得一提的是该单片机CPU中的位处理器,它实际上是一个完整的1位微计算机,这个一位微计算机有自己的CPU、位存放器、I/O口和指令集。1位机在开关决策、逻辑电路仿真、过程控制方面非常有效;而8位机在数据采集,运算处理方面有明显的长处。MCS-51单片机中8位机和1位机的硬件资源复合在一起,二者相辅相承,它是单片机技术上的一个突破,这也是MCS-51单片机在设计的精美之处。2.2最小应用系统设计80C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3.180C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:有可供用户使用的大量I/O口线;内部存储器容量有限;应用系统开发具有特殊性。图180C51单片机最小系统2.2.1、时钟电路80C51虽然有内部振荡电路,但要形成时钟,必须外部附加电路。80C51单片机的时钟产生方法有两种。内部时钟方式和外部时钟方式。本设计采用内部时钟方式,利用芯片内部的振荡电路,在XTAL1、XTAL2引脚上外接定时元件,内部的振荡电路便产生自激振荡。本设计采用最常用的内部时钟方式,即用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHZ到12MHZ之间选择。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,CX1、CX2可在20pF到100pF之间取值,但在60pF到70pF时振荡器有较高的频率稳定性。所以本设计中,振荡晶体选择6MHZ,电容选择65pF。在设计印刷电路板时,晶体和电容应尽可能靠近单片机芯片安装,以减少寄生电容,更好的保证振荡器稳定和可靠地工作。为了提高温度稳定性,应采用NPO电容。2.2.2、复位电路80C51的复位是由外部的复位电路来实现的。复位引脚RST通过一个斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1KΩ。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经电阻与电源Vcc接通而实现的。按键手动复位电路见图3.2。时钟频率选用6MHZ时,C取22uF,Rs取200Ω,RK取1KΩ。图280C51复位电路2.3总线驱动芯片MAX481、MAX483、MAX485、MAX487-MAX491以及MAX1487是用于RS-485与RS-422通信的低功耗收发器,每个器件中都具有一个驱动器和一个接收器。MAX483、MAX487、MAX488以及MAX489具有限摆率驱动器,可以减小EMI,并降低由不恰当的终端匹配电缆引起的反射,实现最高250kbps的无过失数据传输。MAX481、MAX485、MAX490、MAX491、MAX1487的驱动器摆率不受限制,可以实现最高2.5Mbps的传输速率。这些收发器在驱动器禁用的空载或满载状态下,吸取的μA。所有器件都工作在5V单电源下。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态,防止过度的功率损耗。接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出。MAX487与MAX1487具有四分之一单位负载的接收器输入阻抗,使得总线上最多可以有128个MAX487/MAX1487收发器。使用MAX488-MAX491可以实现全双工通信,而MAX481、MAX483、MAX485、MAX487与MAX1487那么为半双工应用设计。MAX481/MAX483/MAX485/MAX487-MAX491以及MAX1487是用于RS-485与RS-422通信的低功耗收发器。MAX481、MAX485、MAX490、MAX491以及MAX1487能够以最高2.5Mbps的数据速率发送并接收数据;而MAX483、MAX487、MAX488以及MAX489那么用于最高250kbps的数据速率。MAX488-MAX491是全双工收发器,MAX481、MAX483、MAX485、MAX487以及MAX1487是半双工收发器。另外,MAX481、MAX483、MAX485、MAX487、MAX489、MAX491以及MAX1487中包含驱动器使能(DE)与接收器使能(RE)控制引脚,被禁用时,驱动器或接收器输出为高阻态。与标准RS-485驱动器(最多32个收发器)的单位负载(12kΩ输入阻抗)相比,MAX487与MAX1487具有48kΩ输入电阻,1/4单位负载的接收器输入阻抗,在一条总线上允许最多挂接128个收发器。MAX487/MAX1487与其他RS-485收发器的任意组合可以允许32个收发器或更少的收发器连接在同一条总线上。MAX481/MAX483/MAX485与MAX488-MAX491具有标准的12kΩ接收器输入阻抗。常用的RS-485总线驱动芯片有MAX485、MAX3080、MAX3088、SN75176,MAX485、MAX3080、MAX3088芯片都有一个发送器和一个接收器,非常适合作为RS-485总线驱动芯片,其中MAX3080、MAX3088可以在一条通讯线上连接256只,MAX3088到达10Mbps的通讯速率,下面以MAX485为例介绍其逻辑表。MAX485及其逻辑如图3所示。图3MAX485芯片RS-485方式构成的多机通信原理在由单片机构成的多机串行通信系统中,一般采用主从式结构:从机不主动发送命令或数据,一切都由主机控制。并且在一个多机通信系统中,只有一台单机作为主机,各台从机之间不能相互通讯,即使有信息交换也必须通过主机转发。采用RS-485构成的多机通讯原理框图,如图4所示。图4MAX485典型半双工RS-485网络在总线末端接一个匹配电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。当总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。将总线上差分信号的正端A+和+5V电源间接一个10K的电阻;正端A+和负端B-间接一个10K的电阻;负端B-和地间接一个10K的电阻,形成一个电阻网络。当总线上没有信号传输时,正端A+的电平大约为,负端B-的电平大约为,即使有干扰信号,却很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力。第3章软件设计该多机通信系统的系统结构图如图5所示,系统采用半双工主从通信方式,主机可以读取从机的数据或写数据到从机,并将数据送终端进行显示;从机主要负责对分布的电子设备进行监测或控制,用中断的方式接收主机发来的命令并做出回应。主机RS485接口RS485接口RS485接口RS485接口RS485接口从机n从机2RS485接口RS485接口RS485接口从机n从机2从机1…图5系统结构图该协议的信息格式如下:(1)编码格式:二进制代码。(2)波特率:9600b/s。(3)通信方式:半双工。(4)每个字符由u位组成:1位:起始位(0);8位:数据位;1位:地址/数据识别位(1为地址,o为数据);l位:停止位(1)。(5)字符发送顺序;低位在先。(6)帧结束标志:通信线路空闲3.5ms以上。(7)帧校验方式:数据和(2字节)。(8)主机询问的一般格式见表格1:从机地址码命令码数据个数数据校验码表格1主机询问的一般格式l从机地址码I命令码l数据个数数据l校验和从机地址码;两字节二进制数,后一字节是前一字节的反码。命令码:一字节二进制数,O1H代表主机读,02H代表主机写。数据个数:表示主机要蒺写的字节个数,一字节二进制数。校验和:两字节二进制数,是将从机地址码、命令和数据按字节从头依次相加,生成两字节的校验和。(9)从机应答的一般格式见表格2:返回地址码命令码数据个数数据校验和表格2从机应答的一般格式图中信息段的定义同表格2。本通信协议定时规定如下:(1)帧发送时限;70ms.超过此时限结束发送。(2)主机等待从机应答时限:7rlls,超过此时限,酌情重发。(3)主机重发次数:不超过4次,超过后,判通信失败。一次完整的通信过程分为3个阶段:主机询问、从机应答和链路释放。主机询问阶段,主机以帧的形式将从机地址码、命令、数据和校验码传送到指定从机;从机应答阶段,从机解释接收的命令码,并组织相应帧信息回送到主机;链路释放阶段,从机去除接收缓冲区及相关变量,准备与主机下次通信。任何一次完整的通信过程都是由主机方发起的,从机在被主机寻址前只能处于侦听状态,从机在接收到地址码的第2个字节后,立即判断是否寻址自己,如果是.继续接受下面的数据,否那么不与理睬。在该系统中,从机的主要任务是对被检测设备进行故障检测和故障定位,通信软件的主要功能是接收主机的命令并将检测的结果回送主机。从机通信软件由2局部组成:串行中断效劳程序和定时器TO中断效劳程序。串行中断效劳程序用于接收或发送数据;TO中断效劳程序用于当从机接收完一帧信息后进行解释并启动通信向主机应答,另外也用于当从机发送超时后的一些处理。从机上电后处于侦听状态,当主机寻址时,便进人中断效劳程序,其程序流程图如图6所示。开始开始是否接收中断?是否接收中断?TI=0TI=0RI=0置位接收标置位接收标启动T0发送完否?置位接收标志发送完否?置位接收标志停止T0停止T0保存接收收据恢复应答状态恢复应答状态个数存放器加SM2=1SM2=1是第二个字节?TB8=0TB8=0是寻址本机?发送下一个字节SM2=0停止T0停止T0返回图6申行通信中断效劳程序流程图首先判断是接收中断还是发送中断,假设是接收中断,那么去除RI,同时启动字符间隔定时器TO,并置收发标志为收。当接收完第2个字节后,各从机立即判断是否寻址本机,假设是,那么置SM2为‘0’,继续接收主机送来的数据;假设不是,那么禁止T0定时,不在接收后面的数据。当被寻址从机接收完一帧信息后,字符间隔定时器会产生定时中断,进入TO中断效劳程序。开始开始TF0=0停止T0中断原因?置为接收方式置为接收方式个数累加消零个数累加消零校验和对否?SM2=1SM2=1SM2=1SM2=1主机命令?主机命令?存接收的数据置为接收方式存接收的数据置为接收方式置为应答方式个数累加消零置为应答方式个数累加消零打包应答消息打包应鉴信息打包应鉴信息置为应答信息TB8=0TB8=0TB8=0启动发送启动发送启动发送返回返回图7T0中断效劳程序流程图进入TO中断效劳程序后,首先去除TO中断请求标志,停止TO定时器,接着判断是接收完成还是发送超时,假设是接收完成,再判断校验和是否正确,假设正确,对接收的命令进行解释,看是主机读还是主机写操作,假设是主机读,那么将数据打包,送到专门用于通信的数组,接着,禁止接收,置本机为应答工作方式,最后启动发送,发送第一个字节,同时启动发送时限定时器TO。当一个字节发送完后,便进入通信中断效劳程序,继续发送余下数据。如果在上边判校验和时,发现不正确,那么置SM2为‘1’,恢复本机的侦听状态,以便接收主机的重发信息。3.3.2主机通信软件设计该系统主机的主要任务是循环读取从机的检测结果,并送终端显示,其通信软件由3局部组成:主程序中负责寻址从机的寻址模块、通信中断效劳程序和TO中断效劳程序。寻址模块程序流程图见图8。串口初始化串口初始化从机号置为1从机号置为1启动寻址启动寻址启动T0启动T0通信结束?通信结束?从机号加1从机号加1所有从机完成寻址?所有从机完成寻址?其他操作其他操作图8寻址模块程序流程图对从机寻址是按照从机的编号顺序进行的,即从1号从机开始,主机发送该从机信息帧的第1个字节启动寻址,同时启动发送超时定时器TO,然后检测通信结束标志.当主机成功的接收到该从机的应答信息后,便会置位该标志,完成与该从机的通信。接下来,寻址下一从机,直到所有从机都被寻址。最后,主机完成其它功能后,又从1号从机开始下一循环的寻址。通信中断效劳程序和TO中断效劳程的设计方法与从机的大同小异,在此不再介绍第4章系统仿真掌握Proteus在单片机仿真中的应用,为开发、调试单片机应用系统做准备。Proteus由ISIS和ARES两个软件构成,其中ISIS是电子系统仿真平台,ARES是布线编辑软件。在不需要硬件设备投入的情况下,Proteus可以建立完整的模拟电子、数字电子及单片机应用的学习设计开发环境。系统仿真电路图如下:参考文献1、马忠梅等单片机的C语言应用程序设计北京航空航天大学出版社19982、何立民AVR单片机原理与接口技术北京航空航天大学出版社20023、MAX485数据手册XXX主编,单片机应用技术(汇编语言)结束语本文着重介绍了用RS-485构成网络系统,完成单片机间的多机通讯,以及提高通讯可靠性各种措施,笔者在设计单片机RS485通讯系统时也采纳了这些方法,并取得了良好的效果。在单片机应用日益广泛的今天,开发相对简单、性价比拟高的多单片机系统一定会在开展其迅速的微计算机应用领域占有其一席之地。附录掌握Keil软件在单片机仿真中的应用,为开发、调试单片机应用系统做准备。KeilC51软件集成了文件编辑处理、编译连接、工程管理、窗口、工具引用和软件仿真调试等多种功能,是非常强大的C51开发工具,在KeilC51的仿真功能中,提供了两种仿真模式:软件模拟仿真和目标板调试。主机程序清单如下:#include<reg51.h>#include<absacc.h>#include<intrins.h>unsignedcharcort=0;sbitP3_5=P3^5;/*********************************按键扫描子程序*********************************/key_serial()interrupt0using1{ ++cort;}/*********************************发送子程序*********************************/voidmaster(void){ if(cort==1) { SBUF=0x01; while(TI!=1);TI=0; P3_5=0; SM2=0; while(RI!=1);RI=0; P2=SBUF; SM2=1; P3_5=1; } if(cort==2) { SBUF=0x02; while(TI!=1);TI=0; SM2=0; P3_5=0; while(RI!=1);RI=0; P2=SBUF; SM2=1; P3_5=1; } if(cort==3)cort=1; SM2=1;}/***************主程序****************/voidmain(void){ P2=0xff; TMOD=0x20; TL1=0xfd; TH1=0xfd; PCON=0x00; TR1=1; SCON=0xf8; EA=1; EX0=1; IT0=1; P3_5=1; while(1) { master(); }}从机1程序清单如下:#include<reg51.h>#include<absacc.h>#include<intrins.h>unsignedcharserial_receiver;sbitP3_5=P3^5;/****************************************串行口中断子程序****************************************/voidserial(void)interrupt4using1{ ES=0; RI=0; if(SBUF

温馨提示

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

评论

0/150

提交评论