版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科学生毕业论文论文题目:RS485总线通信系统的设计与实现学院:年级:专业:姓名:学号:指导教师:摘要无论是工业控制还是信号测试领域,实现不同通讯协议的数据融合都有着迫切需要。但是目前市场中存在的协议转换器只能满足两种协议之间的转换,如RS485转RS232,USB转RS485等,但是经常存在着多种数据总线并存的情况,因此研制多种总线协议转换的设备有着比较大的实际意义。除此之外,目前接口标准的RS485总线通信协议不统一,需设计一个高效稳定的通信协议。基于以上原因,本论文提出一种基于高速RS485的多总线通信系统。整个系统包含多个RS485节点,各个节点包含的通讯接口包括RS232,RS485和USB,从而实现这三类总线的通讯协议的转换。设计并实现了一种适用于微机和单片机之间串行通信的通信协议,采用RS485简便,通信可靠性高总线标准,可用于工业测控和控制现场。实验结果表明,该通信协议是切实可行的,达到了预期的设计要求。关键词RS485总线;主从式;多机通信;通信协议AbstractWhetherinthefieldofindustrialcontrolorsignaltest,theachievementofdatafusionwhichisbasedondifferentmunicationprotocolisurgentneeded.However,inthecurrentmarket,protocolconvertercanonlyachieveconversionbetweentwoprotocols,suchasRS485toRS232,USBtoRS485andsoon.Casesofcoexistencedatabus,ithasgreatpracticalsignificancetodevelopanequipmentforprotocolconversionamongdifferentbuses.Basedonthereasonsabove,ahigh-speedRS485-basedmulti-busmunicationsystemispresentedinthispaper.TheentiresystemwhichisusedtorealizethethreecategoriesofbusmunicationprotocolconversionconsistsofsomeRS485nodes,eachnodecontainsthemunicationinterfacesincludingRS232,RS485andUSB.Inthepracticalapplication,thenumberofnodescanbechangedasrequiredtoformsystem,forachievementofdatafusionbetweenavarietyofbusmunicationprotocol.KeywordsRS485bus;SerialBus;ProtocolConversion;municationprotocol目录摘要IAbstractII第一章绪论11.1研究背景及意义11.2RS485总线通信系统研究现状2第二章RS485介绍42.1RS485标准42.2MAX485芯片介绍42.3RS485总线组网方式52.4RS485方式构成的多机通信原理5第三章系统协议及硬件设计73.1RS485通信协议设计73.1.1物理层设计73.1.2数据链路层设计83.1.3应用层设计83.1.4通信协议83.2系统硬件设计103.2.1PC与RS485总线的接口103.2.2RS485方式构成的多机通信103.2.3单片机与PC机串行通信系统构成11第四章系统的软件实现124.1上下位机的关系134.2下位机通信软件的设计144.3上位机通信软件的设计164.3.1通信协议设计164.3.2多机传输174.3.3差错控制184.4程序设计19第五章系统问题解决措施205.1总线隔离205.2失效保护205.3电磁干扰问题20结论22参考文献23致24第一章绪论所谓通信,不仅仅要实现数据的传输,更应该体现准确性,也称可靠性传输,最好具有一定的纠错和检错能力。RS485通信标准的电器协议是差分、多点传输,在现代社会被广泛应用。RS485通信系统被大量应用在自动化生产中,许多智能设备应用RS485通信协议进行通信。RS485系统多数以半双工形式通信,具有超强的可靠性、抑制噪声能力,数据传输速率非常高,电缆长度特别长。RS485系统常用的芯片有很多种,本文采用MAX485芯片。RS485接口以平衡方式传输,多点之间进行通信。在工业控制和信号测试领域中,常常需要将不同通讯协议进行融合,在这个过程中协议转换器发挥着重要作用,如RS485转RS232,USB转RS485等,可以实现两种协议的转换。本文采用USB转RS485进行转换。最近几年,计算机技术的发展日新月异,发展迅猛,普遍性高,智能测量、系统控制大多采用上位机与下位机采用主从式工作方式,现场控制单元可以实现遥测、遥调、遥控、遥信功能。由此可知,上位机与下位机的串行通信需要达到一定的可靠性,对实现智能化测控至关重要。主机与分机串行通信主要包括:硬件设计、设计通信协议和软件设计。本文简述PC机与单片机串行通信的组成设计,包括硬件设计、协议设计、软件设计以及通信时需要考虑的问题。1.1研究背景及意义在计算机技术发展迅猛的今天,信息量日益增大,交互速度日益加快,系统各个模块信息交互日益复杂,这对总线体系发展起到了推动性作用,使得信息交互更加简洁,即使信息量庞大,也能轻松实现。随着系统数据处理量的增大,对速度的要求也不断提升,并行总线具有时钟同步和串码等的缺陷,不能满足系统数据交换的条件。高速串行总线采用低压差分技术,电路的结构简单、可扩展、传输速度快,逐渐取代了并行总线成为主流总线电路方案[1]。由于嵌入式等技术的发展,高速串行总线可编程资源骤增,也可满足系统集成要求,提高了系统的灵活性和适应性。这一技术的研究对于促进智能化信息系统的发展、进一步提高现代生产、生活效率有着重大意义。自动控制系统技术和信息交互技术的发展迅速,信息化、数字化、网络化、微型化、分散化、智能化成为信息系统发展的主流方向,随着接口编码技术的发展和系统的逐渐壮大,一系列数据格式和接口信息不同的高速总线出现在市场中。即使是同一设备可能使用不同的总线接口,多总线之间的数据通讯及其协议转换,使信息系统从设计、运行、维护等多通讯协议的转换,简化复杂系统结构和提高系统工作可靠性都至关重要[2]。在现代生产和生活中,信息传输以及交互量大,交互速度高,同时,现场工作条件使其重量、体积受限,提升设备的运行速度和可靠性迫在眉睫。为此,本文设计了一种基于RS485的分布式多总线通信系统,由基于高速RS485的总线节点组成,节点中具有RS485总线及USB的通讯功能,且分布式系统的总线节点个数可灵活删减,应运而生。从而可以满足对多个RS485和USB接口设备进行通讯及控制等。本论文为对进一步研究通用化、模块化、可编程化及标准化的信息控制系统和信息处理系统有着重要意义[3]。随着计算机技术的发展,微机的价格大幅度下降,PC机和各种单片机在工业和各行业应用日益广泛。在现场中,各种测量仪表往住采用单片机做数据处理和控制单元,而在主控室,由微机对整个生产过程的数据进行统一的显示、存储,并可以完成打印报表、参数设定等工作。这样,就由微机和单片机构成了小型分布式的测量系统。在这样的系统中,微机与单片机的通讯就显得尤为重要。一般微机上都有RS232串行接口,但由于RS232使用的是非平衡的电信号,电气性能不佳,存在着传输速率低、传输距离短、接口处信号容易产生相互干扰等问题,难以在工业现场中得到应用。近年来出现的RS485总线,其收发电平为差动方式,大大提高了通讯的速率、距离和可靠性,并且适合多机通讯。在通讯的波特率小于100kbPs时,允许电缆长度为1200米,一般可以满足现场的要求。1.2RS485总线通信系统研究现状许多年以前,工业控制领域已经出现总线技术,总线发展的方向主要有串行、高速及采用嵌入式方案等[2]。现如今,总线技术通常为多种总线并存,应用领域不断扩展且总线网络结构趋于简单化。下面重点介绍RS485总线通信系统的发展历程。RS485标准由电子工业协会于1983年制订并发布,后由通讯工业协会修订,并命名为TIA/EIA-485-A。RS485采用平衡驱动差分接收电路,采用半双工工作方式,传输距离最高可达到1200m,传输速率不少于52Mbps,挂载总线节点数最多为32个[3],基于以上参数分析,RS485总线可应用于远距离高速传送数据和信息。2009年清华大学,精密仪器与机械学系王鹏,成等采用FPGA与RS485收发器结合,采用CRC校验算法,实现了通讯距离为200m,速率为20Mbps,总线误码率为10-11的RS485总线。2007年周立功公司采用外置UART芯片SC16IS762结合MAX485芯片的方案实现5Mbps高速RS485总线方案。RS485是由RS232发展而来的接口标准,包括点对多点和多点对多点的网络,RS485总线网络凭借可靠性高、分布围较大、组建成本低等特点,在智能家居、远程控制等领域得到广泛应用。第二章RS485介绍RS485通信系统有主从式和总线式两种通信方式。在工业控制常用主从式通信方式,总线通信具有更好通用性和可扩展性,在总线通信协议也容易建立一个主从式RS485通信网络。RS485总线网络的网络简单,成本低,但总线协议至今尚未统一。在基于RS485总线网络系统,经常临时设计RS485总线通信协议,在系统的可移植性和效率稳定性方面存在一些问题[4]。总之,设计一个高效和稳定统一的通讯协议作为协议标准对信息的处理和传递是十分有必要的,本文第三章简单介绍了高效稳定的通信协议。2.1RS485标准在计算机网络控制系统中,通常使用串行通信进行信息交换,无论是OSI七层协议模型还是一个简化的三层(或四层)的网络,第一层均为物理层,RS485是物理层协议标准,也是串行通信接口标准,它可以很容易地把各种计算机,外围设备,测量仪器有机地连接,以构成测控系统。1977年开发的新标准的EIARS449,它定义了10种电路功能的RS232C,它的传输速率高,传输距离远,RS485是RS422的变体[5]。2.2MAX485芯片介绍MAX485是用于RS485通信的收发器,功率较低,芯片部含有1个接收器和1个发射器,具体特性如表2-1所示。表2-1MAX485芯片介绍通信方式低功耗关机接收器使能静态电流/mA数据率/Mbps转换率限制管脚数半双工NOYES3002.5NO8MAX485芯片8个管脚的功能如下:(1)RO脚,即为输出端:若A比B小100mV,RO为低,若A比B大100mV,RO为高。(2)RE脚,即为接收器输出使能端):当RE为高时,RO为高阻状态,只有RE为低时,RO才有效。(3)DE脚,即为驱动器输出使能端:若DE为低,它们成高阻状态,若DE为高,驱动输出A和B有效;若为高阻状态时,RE为低,它们作线接收器用,若驱动器输出有效,器件作为线驱动器用。(4)DI脚:即为驱动器输入:若DI为高,输出Y为高,Z为低,若DI为低,Y为低,Z为高。(5)GND脚:即为接地作用。(6)B脚:反相驱动器输出和反相接收器输入。(7)A脚:同相驱动器输出和同相接收器输入。(8)VCC:即为电源正极。2.3RS485总线组网方式RS485总线网络组建并不复杂,通常采取两线或者四线方式。所有RS485节点全部挂在一对RS485总线上,此处GND以及VCC可以不接,接线时RS485总线不能开叉。从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低,RS485总线网络的终端有PC机和嵌入式设备[6]。2.4RS485方式构成的多机通信原理实际应用系统中,往往分散控制单元数量较多,分布较远,现场存在各种干扰,所以可能有以下两个问题出现,一是通信数据收发的可靠性问题,二是在多机通信方式下,一个节点的故障(如死机),往往会使得整个系统的通信框架崩溃,而且给故障的排查带来困难。针对上述问题,作者对485总线的软硬件采取了具体的改进措施。在由单片机构成的多机串行通信系统中,一般采用主从式结构:从机不主动发送命令或数据,一切都由主机控制。并且在一个多机通信系统中,只有一台单机作为主机,各台从机之间不能相互通讯,即使有信息交换也必须通过主机转发。在总线末端接一个匹配电阻,吸收总线上的反射信号,保证正常传输信号干净、无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。当总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。将总线上差分信号的正端A+和+5电源间接一个10K的电阻;正端A+和负端B-间接一个10K的电阻;负端B-和地间接一个10K的电阻,形成一个电阻网络。当总线上没有信号传输时,正端A+的电平大约为3.2V,负端B-的电平大约为1.6V,即使有干扰信号,却很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力。现以8031单片机自带的异步通信口,外接75176芯片转换成485总线为例。其中为了实现总线与单片机系统的隔离,在8031的异步通信口与75176之间采用光耦隔离。第三章系统协议及硬件设计3.1RS485通信协议设计在工业控制,所有下位机相互独立,同时受主计算机的管理和控制,通过使用通信技术向多个下位机传输资料和控制命令。个人计算机系统中,为了实现下位机的实时监控,当前PC的数据和控制命令传递给下位机。许多大型监测网络,不适合于小企业使用,大部分成本高。RS485总线为基础的通信系统中,是一个可靠的、简单的、低成本系统,在对数据传输速率要求不太高、传输数据不太远时可以广泛应用[7]。可以很容易地构建小型工业监测网络。根据OSI(开放系统互连)模型规和实际工作需求,在这个系统中,可以把RS485总线通信协议分为三层:物理层,数据链路层和应用层。3.1.1物理层设计物理层用来规定RS485系统的时间特性、功能特性、机械特性和电气特性,隐藏当前层的信息细节,以提供上一层的服务。JKW-L06型485转换器常被用来实现数据采集系统从点到多点的通信。RS485采用差分接收和平衡发送的方式实现通信:在TXD发送端将串行端口TTL电平信号转换为差分信号AB两端输出,经过传输后,在接收端将差分信号恢复到一个TTL电平信号[8]。如果降低传输速率,传输距离可以进一步提高。RS485最多连接32台设备和32台接收器。RS485通讯接口是基于标准的异步通信协议,如图3-1所示的基本协议的帧格式。图3-1异步通信协议基本字节格式在本系统中规定1个起始位、1个停止位、无奇偶校验位、8位资料位、波特率38。4Kb/s,通信复用1,其地址为0x3F8,1对应中断号为IRQ4,中断地址0x0C。在通信过程中接收资料以中断方式接收,发送资料以查询方式发送。3.1.2数据链路层设计RS485总线上的每一个下位机都有一个唯一的本机地址,最多有32个。上下位机的通信方式是:上位机轮流询问,下位机应答。下位机可以接收来自上位机的消息,只能发出应答信息,下位机与下位机无法实现通信。PC机每发送一次命令,命令帧启动一次,下位机收到命令后,判断地址是否与本机相同,相同则发出应答消息,不同则没反应。在数据链路层中的数据帧以实现正确的命令,以创造一个传输格式帧所需的信息被发送到物理层。数据采集系统中的帧格式分为:发送消息帧格式和响应消息帧格式,从上至下发送命令信息的称作:发送信息帧格式,如表3-1所示。表3-1发送信息帧格式STXADDRDLENDATACRCCR02H1B1B1B0~250B1B0DH起始字节目的字节命令字节资料长度数据字节校验字节终止字节3.1.3应用层设计在网络层中还有对端口进行起始位、资料位、停止位、波特率设置的初始化函数及对端口进行关闭的Close函数(程序代码略)。当一个特定的命令传输时,若想把数据正确地发送到RS485总线网络时,它必须验证物理层到网络层传输的比特流。在这一层,提供整个程序,在流程中调用数据链路层中提供的接口进行资料的收发工作。在网络层中还对端口进行起始位、停止位、资料位以及波特率设置的几种函数(程序代码略)。3.1.4通信协议一、通信波特率为9600bit/s,晶振为12MHz通信的数据格式如前所述,共11位:1位启动位,8位数据位(低位在前),1位可控的第9位和1位停止位。下位机的地址用1个字节定义,用16进制表示,如1号机地址为01,10号机地址为0A。约定上位机的地址为00,系统广播地址为FF。二、上位机监控程序运行时,上位机开始以时间间隔Δt对下位机进行轮询以查验下位机的状态,依次向下位机发送查询指令。XX为轮询到的下位机地址,01为上位机查询指令;00为上位机地址,02为下位机回复查询指令。对轮询到的下位机,上位机根据下位机回复查询指令查询其状态字,判断其是否有通讯请求,如果没有,就对该下位机发出通讯授权标志,若在预定的时间有应答,则上位机建立与该下位机的通信信道;在预定的时间下位机无应答,则置该下位机不在线标志,然后轮询下一位置的下位机,如此反复。三、上位机与下位机建立通信信道,上位机按照上位机指令优先的原则下,根据下位机的状态字和上位机的状态字,向下位机发出准备接受信息指令。下位机的动作包括登陆、提交实验信息;上位机的动作有发送实验题目、开始实验、中断实验、恢复实验及查询下位机的实验状况等,在通信协议中都将这些动作进行通讯标志编码,如上位机查询下位机状态指令通讯标志编码为01,开始实验指令编码为0A,下位机登陆指令编码为04。XX为与上位机通讯的下位机的地址,YY为上位机功能指令。特别地,上位机发送开始实验指令时,XX可以是下位机地址,也可以是系统的广播地址FF。当XX为FF时,用于向所有实验终端统一发送开始指令。当YY为0A,表示系统中所有的下位机能够同步接收上位机发送的开考指令。数据域是否存在和上位机的功能指令类型有关,如当上位机功能指令为发送实验题目指令时,数据域的容即为要发送的相关容;当功能指令为开始实验指令时,数据域为空。在通信过程中,当在一个预定的时间,上位机没有向下位机发送指令(上位机优先原则失效),这时下位机可向上位机发送指令,00为上位机的地址,YY为下位机功能指令,根据YY的不同,数据域的容也是不同的,如在下位机请求登陆时,YY为04,数据域为学生、学号。四、上位机即PC机能够按照教学的需要生成难易程度不同的实验题目,二进制化后通过发送功能指令发送给通讯中的下位机。发送以实验为单位,组织格式为实验题号、嵌入式控制器控制字、发送容长度和实验容;实验结束后,下位机将实验信息以预定的数据格式通过提交指令发送到上位机。3.2系统硬件设计3.2.1PC与RS485总线的接口PC机的串行接口为RS-232或USB总线,本文采用USB转RS485总线,采用51单片机进行RS-485进行串行通信,只需要将TTL电平的串行接口通过芯片转换为RS-485串行接口,这种转换比较简单,本系统采用的是MAX485芯片。原理图如图3-2所示。图3-2系统总体连接框图3.2.2RS485方式构成的多机通信PC与单片机组成的系统中采用主从式结构:即多个从机受主机控制,从机单片机不发送命令,一个系统有且只有一台主机,从机之间不能实现通信,若要进行信息交换,则需通过主机进行控制。在总线末端接一个匹配电阻,吸收总线上的反射信号,使得正常传输信号无毛刺。匹配电阻的取值应该与总线的特性阻抗相当。在总线上没有信号传输时,总线处于悬浮状态,容易受干扰信号的影响。将总线上的差分信号的正端A+和负端B-之间接一个10K的电阻;负端B-和地间接一个10K的电阻,形成一个电阻网路。当总线上没有信号传输时,正端A+的电平大约为3.2V,负端B-的电平大约为1。6V,即使有干扰信号,也很难产生串行通信的起始信号0,从而增加了总线抗干扰的能力。3.2.3单片机与PC机串行通信系统构成直接利用了单片机上的串行通讯接口,其中Pl.0用于通讯控制,PI.0输出高电平时,为“收”状态,Pl.0为低电平时为“发”状态,由于采用的是主从式通讯方式,微机处于“发”状态,而单片机处于“收”状态。系统共线配置方案:凡为平衡电阻,接于总线两端。总线上最多可挂32个物发器。电缆用双芯屏蔽端连接到设备机壳。为了避免干扰,每个设备应接地。为了减少反射的影响,在线路两端接上与之相匹配的特性阻抗。并且应使支线与主线的距离尽可能短。单片机选用AT89C51,由40个管脚构成。芯片MAX813是专门的看门狗,它的工作原理是:它有部的时钟,上电后它就开始倒计时,计满时间约为1.6s,在此期间,如果WDI引脚的电压有变化,它就新开始计时,如果没有变化,它在RE-SET引脚输出高电平,给CPU复位,然后再计数,如此反复[9]。第四章系统的软件实现由于采用的是主从式通讯方式,各从机间不能互相通讯,主机需要依次查询各个分机,与各从机进行通讯,MCS系列的具有多机通讯功能,可把其串口设置为通讯方式3,微机上的8250不具有多机通讯能力,但通过对其奇偶校验位的设置,可使其具有多机通讯能力。使8250奇偶校验位为1的指令:MOVDX,3FSHMOVAL,ZBHOUTDX,AL使8250奇偶校验位为0的指令:MOVDX,3FBHMOVAL,3BHOUTDX,AL。为了提高通讯效率,数据块的长度和格式是固定的。从机被访问,此处采用的是定时查询的方式[10]。由于采用的主要是主从通讯方式,各个从机间不能相互通讯,由主机依次查询各个从机,与各个从机进行通讯。MCS系列的UNAL具有多机通讯功能,可把其串口设置为通讯方式3,微机上的8250不具有多机通讯能力,但通过对其偶校验位的设置,可使其具有多机通讯能力。使8250奇偶校验位为1的指令:MOVDX,3FSHMOVAL,ZBHOUTDX,AL使8250奇偶校验位为0的指令:MOVDX,3FBHMOVAL,3BHOUTDX,AL。为了提高通讯效率,数据块的长度和格式是固定的。(当然也可以设定)主机通过定时查询的方式依次对从机进行访问。由于RS-485通讯是一种半双工通讯,发送和接收共用同一物理信道。在任意时刻只允许一台单机处于发送状态。因此要求应答的单机必须在侦听到总线上呼叫信号已经发送完毕,并且没有其它单机发出应答信号的情况下,才能应答。半双工通讯对主机和从机的发送和接收时序有严格的要求。如果在时序上配合不好,就会发生总线冲突,使整个系统的通讯瘫痪,无常工作。要做到总线上的设备在时序上的严格配合,必须要遵从以下几项原则:一、复位时,主从机都应该处于接收状态。SN75176芯片的发送和接收功能转换是由芯片的RE*,DE端控制的。RE*=1,DE=1时,SN75176发送状态;RE*=0,DE=0时,SN75176处于接收状态。一般使用单片机的一根口线连接RE*,DE端。在上电复位时,由于硬件电路稳定需要一定的时间,并且单片机各端口复位后处于高电平状态,这样就会使总线上各个分机处于发送状态,加上上电时各电路的不稳定,可能向总线发送信息。因此,如果用一根口线作发送和接收控制信号,应该将口线反向后接入SN75176控制端,使上电时SN75176处于接收状态。另外,在主从机软件上也应附加若干处理措施,如:上电时或正式通讯之前,对串行口做几次空操作,清除端口的非法数据和命令。二、控制端RE*,DE的信号的有效脉宽应该大于发送或接收一帧信号的宽度。在RS-232,RS-422等全双工通讯过程中,发送和接收信号分别在不同的物理链路上传输,发送端始终为发送端,接收端始终为接收端,不存在发送、接收控制信号切换问题。在RS-485半双工通讯中,由于SN75176的发送和接收都由同一器件完成,并且发送和接收使用同一物理链路,必须对控制信号进行切换。控制信号何时为高电平,何时为低电平,一般以单片机的TI,RI信号作参考。在485芯片的通信中,尤其要注意对485控制端DE的软件编程。为了可靠的工作,在485总线状态切换时需要做适当延时,再进行数据的收发。具体的做法是在数据发送状态下,先将控制端置“1”,延时1ms左右的时间,再发送有效的数据,一包数据发送结束后再延时1ms后,将控制端置“0”。这样的处理会使总线在状态切换时,有一个稳定的工作过程。三、总线上所连接的各单机的发送控制信号在时序上完全隔开。为了保证发送和接收信号的完整和正确,避免总线上信号的碰撞,对总线的使用权必须进行分配才能避免竞争,连接到总线上的单机,其发送控制信号在时间上要完全隔离。总之,发送和接收控制信号应该足够宽,以保证完整地接收一帧数据,任意两个单机的发送控制信号在时间上完全分开,避免总线争端。4.1上下位机的关系(1)下位机不可与下位机传输通信,只能上位机与下位机之间传输。(2)PC机发起传输命令,单词只能与一台下位机通信,上位机传输的命令代码对下位机进行控制。(3)PC如果发现下位机的请求代码,则立即通信,否则空闲时,上位机巡检。(4)图3所示的帧格式是上下位机通信方式,SOC196KC单片机是16位地址或数据线,自带A/D转换器的数量是8路,是Intel研制的高性能微处理器,可在异步通信模式下在16MHz晶振下运行,集成了事件处理器阵列和外设事务服务器。此型号单片机的串口输人输出电平均设为TTL电平,不能直接与RS485通信,必须使用转化电平转换成统一制式方可实现,本系统具体实现方式详见硬件连线见第2节[11]。RS485的通信方式为半双工,若想要知道他的工作状态,需要经由使能端,由于51单片机是从机,须设置MAX485芯片的使能端为接收状态,而且RE为低电平有效,发送使能端DE为高电平有效,本系统的命令语句如下:andbportl,#11111011b:使能接收orbprod,#OOOOOl00b;使能发送本系统的波特率设为9600,用异步模式1作为通信模式,下位机的晶振为12MHz。下面给出51单片机串行通信的程序框图及接受超时处理程序清单,供设计者参考。接收超时处理程序pushf;进栈1dbsptemp,sp_stat;保存状态寄存器容ldbdelaytimel,#2;超时寄存器赋初值确性。Idbdelaytime2,#0Pd1ooreassptemp,6,readl;未超时接收,则转入readdjnzdelaytime2,read:等待接收完毕djnzdelaytimel,loopsjmpreturn;超时,则跳离中断readl:stbsbuf,[rxbuf};将接收到的数据存入接收单元return:popf;出栈ret4.2下位机通信软件的设计51单片机的始祖是Intel,目前是应用最为广泛的8位单片机之一,它是基础入门的也是应用广泛的一种单片机,自带8路A/D转换器,集成了事件处理器阵列,以及先进的外设事务服务器,可在16MHz晶振下运行,在异步通信模式下,波特率最高可达1Mn7080C196KC单片机串口输人输出电平为TTL电平,必须通过转化电平转换才能与RS485接口通信,本系统采用MAM483进行电平转换[12]。RS485串行接口通信采用半双工的通信方式,必须由使能端来决定其处于发送状态还是接收状态,由于80C196KC单片机是从机,必须先将MAX813芯片的使能端设置为接收状态[14]。MAX813的接收使能端RE为低电平有效,发送使能端DE为高电平有效,本系统采用P1。2口控制其发送和接收,命令语句如下:andbportl,#11111011b;使能接收orbprot1,#00000l00b;使能发送本系统中80C196KC微处理器的串行通信采用中断方式进行,便于上位机随时对下位机进行监控和管理。下位机晶振为12MHz,通信模式采用异步模式1,波特率为9600。下面给出80C196KC单片机串行通信的程序框图及接受超时处理程序清单,供设计者参考。接收超时处理程序Pushf;进栈1dbsptemp,sp_stat;保存状态寄存器容ldbdelaytimel,#2;超时寄存器赋初值确性。loop:1dbdelaytime2,#0read:ssptemp,6,readl;未超时接收,则转入read1djnzdelaytime2,read;等待接收完毕djnzdelaytimel,loopsjmpreturn;超时,则跳离中断readl:stbsbuf,[rxbuf];将接收到的数据存入接收单元return:popf;出栈retPushf;进栈1dbsptemp,sp_stat;保存状态寄存器容ldbdelaytimel,#2;超时寄存器赋初值确性。loop:1dbdelaytime2,#0read:ssptemp,6,readl;未超时接收,则转入read1djnzdelaytime2,read;等待接收完毕djnzdelaytimel,loopsjmpreturn;超时,则跳离中断readl:stbsbuf,[rxbuf];将接收到的数据存入接收单元return:popf;出栈ret4.3上位机通信软件的设计上位机Windows环境下的通信软件用C:+Builder编写。一般来说,在Windows平台上进行串行通信编程,不外乎两种方式:直接利用Windows,API或使用控件。用API能编写出灵活的程序,但比较繁琐。本系统使用MSm控件进行上位机通信软件的编制。使用MSm控件进行串口通信时,首先要设置串口的基本参数,然后可使用Output发送数据,Input接收数据,MSm事件处理数据。上位机的通信流程限于篇幅,具体编程不予介绍[15]。4.3.1通信协议设计为保证通信进行,首先做到单片机的串行口与主控机串行口的设置保持一致,即数据格式一致、通信波特率相同。如果是多点通信,每个从机要分配一个地址码。系统中协议有3种帧格式:呼叫帧、应答帧和数据帧。呼叫帧由主机发出。应答帧只能由从机发出。当从机收到呼叫帧后,把本机地址和当前状态回发给主机。设置开机自检、自诊断程序,机器不能带病工作;如果需要,还可以设置在工作空闲时或定时自检程序。PC机与单片机构成的多机通信系统采用主从式结构。数据通信总是由主机发起。主机处于发送状态“说”时,从机总是出于“听”状态。若主机发送的地址信息与本地从机相符,则接收该数据,否则,继续“听”总线上的数据。若从机需要发送数据,则必须等到主机轮询本地从机时,才可提出请求。这种网络模式下从机不会“侦听”其他从机对主机的响应,这样就不会对其他从机产生错误的响应[16]。主从式多机通信协议中,通信速率设为19.2kb/s。系统上电或复位后,使所有从机的SM2位置1,处于只接收地址帧监听状态。主机向从机发送一帧地址信息,从机接收到地址帧后,将其与本地地址比较,判断是否一致。若与本地地址相符,则清除SM2,同时发送应答帧,进入通信状态;其他与本地地址不相符的从机则保持SM2位不变,继续监听。主从机均以中断方式进行通信,程序流程如图4-1所示。(a)帧发送流程(b)帧接收流程图4-1帧通信流程4.3.2多机传输多机发送时的分时说、听多机传送时,通信协议要合理地协调总线的分时共用,通信波特率的计算要有冗余。采用RS485总线连接的多个站点,由于485总线是异步半双工的通信总线,在某一个时刻,总线只可能呈现一种状态,即任意时刻只有一个站点在“说”,其他站点只能处“听”状态。如果有多个站点在“说”,则数据将在通信总线时碰撞,结果是处于接收状态的站点不能收到正确的数据。在RS485总线通信网络中,必须控制好每个站点的“听、说”状态,即收、发状态,对总线的使用权必须进行分配,以使各从机的发送控制信号在时间上完全隔离,保证能及时、正确地传输数据。要做到总线上设备在时序上的严格配合,必须要遵从以下几点:(1)复位时,主从机都应该处于接收状态。(2)控制端RE,DE的信号有效脉宽应该大于发送或接收一帧信号的宽度。(3)总线上所连接的各从机的发送控制信号在时序上完全隔开。通信方式一般主节点循环轮询各个从节点。各个从节点都有自己的网络通信识别号,即本机地址。当主节点的轮询信息中包含自己的网络通信识别号,此从节点对此帧进行应答,其他节点则忽略此帧,不做处理。4.3.3差错控制差错控制用于传输数据的错误检查和错误纠正,以保证数据传输的准确性。当主机发出呼叫帧后,如果在规定的时间没有收到从机的应答帧,则主机认为帧丢失并重发呼叫帧;如果发送3次仍没有收到应答帧,则系统认为该从机处于关机状态,开始执行其他任务。在数据帧发送时,本系统采用应答方式进行差错控制,即接收方向发送方回发特殊的控制命令码,作为传输是否正确的确认;发送方收到确认后就可知道是否正确发送,以决定是否重发。如果传输中帧完全丢失,则发送方进行超时处理。即发送方发送数据后超过一定时间,发送方认为帧丢失,需要重发。本系统约定最大重发数为3次,超过3次系统就认为串行通信出现故障,主机进行故障报警。另外,为避免通信频繁后旧的数据未发出去,而新的数据产生时可能会掉原来的数据,造成数据丢失,在系统中采用了数据备份存储的方式,即将长度为N的数据缓冲区,扩展为长度为2N的数据缓冲区。要传送的新数据先放在原来的缓冲区,检测旧的数据是否发送成功,如果发送成功,则将新的数据复制到扩展缓冲区;如果未发送成功,则继续发送,发送成功后再备份新的数据。此时进来的如果是中断数据,只是更新原有的缓冲区,备份缓冲区的数据不会被中断数据更新掉。这种方法很好地解决了通信过程数据存储出错、丢失的问题,使得通信的可靠性得到很大的提高[17]。4.4程序设计单片机用汇编语言编程,根据通信协议,通信串行口工作于方式2,用定时器T1作为波特率发生器,T0工作于方式2,帧格式为1位起始位,8位校验位,一个可编程的第9位,1个停止位。用T1定时器产生2400波特率,晶体振荡器的频率为12MHz,T1的计数初值为E6H,中断入口地址0023H,程序流程如图2所示。在程序中主程序并不执行任何功能,实际上PC机与单片机之间的通信只是单片机的部分功能,单片机在执行其他功能时,管理员对单片机写入预定常数,或读出指定地址的数据进行监测和控制,这需要调用中断,并不影响主程序的正确执行。在此基础上可以在主程序上附加其他功能模块。分布式的数据采集系统,由各个从机完成参数测量及控制任务,由主机完成统一的操作显示的任务,比较适合于小型的测控系统。数字通讯相对于模拟通讯具有较大的通讯容量和较高的可靠性,这使得整个系统的性能有了较大程度的提高,更适合现代工业生产的要求,是今后小型数据采集系统的发展方向。第五章系统问题解决措施5.1总线隔离RS485总线为并接式二线制接口,一旦有一只芯片故障就可能将总线“拉死”,因此对其二线口VA,VB与总线之间各串接一只PTC电阻,同时与地之间各跨接5V的TVS二极管,以消除线路浪涌干扰。此外应该合理选用芯片。例如,对外置设备为防止强电磁冲击,建议选用防雷击芯片[18]。5.2失效保护RS485标准规定接收器门限为±200mV。这样规定能够提供比较高的噪声抑制能力,但也带来了一个问题:当总线电压在±200mV中间时接收器输出状态不确定。由于UART以一个前导“0”触发一次接收动作,所以接收器的不定态可能会使UART错误地接收一些数据,导致系统误操作。当总线空闲、开路或短路时都有可能出现两线电压差低于200mV的情况,必须采取一定措施避免接收器处于不定态。传统的作法是给总线加偏置,当总线空闲或开路时,利用偏置电阻将总线偏置在一个确定状态(差分电压>200mV)。但这种方法仍然不能解决总线短路问题。为此,有些器件制造商间将接收门限移到-200mV/-50mV,巧妙解决了这个问题。例如Maxim公司MAX3080系列RS485接口,不但省去了外部偏置电阻,而且解决了总线短路时的失效保护问题[19]。5.3电磁干扰问题驱动器输出信号中的共模部分需要一个返回通路,如果没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。因此,尽管是差分传输,对于RS485网络来讲,一条低阻的信号地还是需要的。一条低阻信号地将两个接口的工作地连接起来,使共模干扰电压VGPD被短路[20]。这条信号地可以是额外的一对线(非屏蔽双绞线)或者是屏蔽双绞线的屏蔽层。但是,这种做法仅对高阻型共模干扰有效,由于干扰源阻大,短接后不会形成很大的接地环路电流,对于通信不会有很大的影响。当共模干扰源阻较小时,会在接地线上形成较大的环路电流,影响正常通信。笔者认为,可以采取以下3种措施:(1)如果干扰源阻不是非常小,可以考虑在接地线上加限流电阻限制干扰电流。接地电阻的增加可能会使共模电压升高,但只要控制在适当的围就不会影响正常通信。(2)采用浮地技术,隔断接地环路。当共模干扰电阻很小时上述方法已不能奏效,此时可以考虑将引入干扰的结点(例如处于恶劣工作环境的现场仪表)浮置起来,也就是系统的电路地与机壳或隔离,这样就隔断了接地环路,不会形成很大的环路电流。(3)采用隔离接口。有些情况下,出于安全或其他方面的考虑,电路地必须与机壳或相连,不能悬浮,这时可以采用隔离接口来隔离接地回路,但是仍然应该有一条地线将隔离侧的公共端与其他接口的工作地相连。结论本文根据具体的项目需求以及多总线通信系统的特点等,研制了基于高速RS485的分布式多总线通信系统,其中包含的设备接口包括USB,RS232和RS485接口。本多总线通信系统可以实现各个设备接口的数据的融合,且可以利用上位机对与其连接的各个设备进行检测和控制。本高速多总线通信系统结合了嵌入式技术、数字电子技术、总线技术、信息处理技术等,应用性和综合性较强。现对本文完成的工作做如下总结:(1)针对课题的应用背景,分析了多总线通信系统的设计需求,并通过对课题中的重点问题的分析与研究,确定了系统的总体软硬件设计方案,明确了多总线通信系统和上位机的协调设计关系。(2)在确定系统的总体设计架构基础上,详细分析了系统的硬件构成和选型,对可选的硬件设计方案特别是电源及电磁兼容性设计等进行对比并选择最优方案,采用模块化设计。的思路设计了各硬件电路模块,增强系统的设计灵活性。完成了对多总线通信系统主要的电路板,包括总线节点电路、母板电路及前面板电路的原理图设计和PCB设计。(3)基于硬件电路平台进行软件设计,主要是为各功能模块设计底层驱动和应用程序,包括CRC校验算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026宣城单招面试题及答案
- 2026药学相关面试题及答案
- 2026疫情社区面试题型及答案
- 2026中国智能家居协议标准统一与全屋互联生态构建
- 2026中国印刷机械行业市场供需分析及工业制造投资评估规划分析研究报告
- 2026人工智能行业应用领域及商业化研究分析
- 2026汽车尾气催化转换行业市场供需分析及投资评估规划分析研究报告
- 2026人工智能芯片产业链分析研究报告机遇与风险白皮书
- 2026石油化工产品行业当前市场供需情况分析及投资价值评估规划分析研究报告
- 2027届绵阳市三台县数学六年级第一学期期末联考模拟试题含解析
- 新版gmp指南培训课件
- 2025年湖南岳阳市平江县润恒自来水有限公司招聘笔试参考题库含答案解析
- 完整版八年级物理浮力压强计算题(含答案)
- DB50T 703-2016 电梯无脚手架安装工艺安全操作规范
- 医院获得性肺炎预防与控制
- 消毒供应室专科护士培训汇报
- 2023年湖南省娄底市双峰县林业局公务员考试《行政职业能力测验》历年真题及详解
- JT-T-1211.1-2018公路工程水泥混凝土用快速修补材料第1部分:水泥基修补材料
- 第七章-建构主义与人本主义学习理论
- 包装可回收评估报告
- 单招考试培训的时间安排和学习计划
评论
0/150
提交评论