多通信接口的mbus主站中继器的设计与实现

多通信接口的mbus主站中继器的设计与实现

ID:18461724

大小:5.40 MB

页数:84页

时间:2018-09-18

上传者:xinshengwencai
多通信接口的mbus主站中继器的设计与实现_第1页
多通信接口的mbus主站中继器的设计与实现_第2页
多通信接口的mbus主站中继器的设计与实现_第3页
多通信接口的mbus主站中继器的设计与实现_第4页
多通信接口的mbus主站中继器的设计与实现_第5页
资源描述:

《多通信接口的mbus主站中继器的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

学校代号10532学号S1009W205分类号TP391密级公开工程硕士学位论文多通信接口的M_BUS主站/中继器的设计与实现学位申请人姓名戴祖鹏培养单位电气与信息工程学院导师姓名及职称吴桂清副教授段仁君高工学科专业电子与通信工程研究方向嵌入式系统及应用论文提交日期2012年4月20日 学校代号:10532学号:S1009W205密级:公开湖南大学工程硕士学位论文多通信接口的M_BUS主站/中继器的设计与实现学位申请人姓名:戴祖鹏导师姓名及职称:吴桂清副教授段仁君高工培养单位:电气与信息工程学院专业名称:电子与通信工程论文提交日期:2012年4月20日论文答辩日期:2012年5月21日答辩委员会主席:王玲教授 TheDesignandImplementationofMulti-configurationDataAcquisitionModulebyDaiZupengB.E.(HunanNormalUniversity)2010AthesissubmittedinpartialsatisfactionoftheRequirementsforthedegreeofMasterofScienceinElectronicScienceandTechnologyintheGraduateSchoolofHunanUniversitySupervisorViceProfessorWuGui-qingMay,2012 湖南大学学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密□,在______年解密后适用本授权书。√2、不保密□。(请在以上相应方框内打“√”)作者签名:日期:年月日导师签名:日期:年月日III 多通信接口的M_BUS主站/中继器的设计与实现摘要人类进入21世纪以来,计算机科学技术、信息科学技术和自动化控制技术被广泛的应用于现场的工业生产中,而数据传输是工业生产的重要环节,数据传输的质量直接影响到生产效益。数据集中器被用在数据传输环节,传统的数据集中器由于功能单一、总线接口过少、无数据处理能力等缺点已逐渐跟不上时代发展,新型的数据传输系统的研究迫在眉睫。多通信接口的M_BUS主站/中继器运用了欧洲仪表总线M_BUS技术,代替传统的RS485总线技术,在数据传输方面有着极大优势。由于PROFIBUS总线、CAN总线、MBUS总线和以太网技术,它们技术成熟、稳定性能高、应用范围广,在工业生产的数据传输环节应用极为广泛,而嵌入式技术作为当今的新型技术的代表,也在生产实践中被广泛运用,所以多通信接口的M_BUS主站/中继器将PROFIBUS、CAN总线技术、MBUS总线技术和以太网技术与嵌入式相结合,以NXP公司的LPC2387作为核心控制芯片,成功的实现了M_BUS从节点的数据与PROFIBUS、CAN总线和以太网之间的数据双向传输。多通信接口的M_BUS主站/中继器的下行接口采用的是MBUS总线技术,上行接口采用了Profibus总线、CAN总线和以太网通信技术,考虑到多功能性,还设计了MBUS中继器接口,增加了MBUS从机的数据传输距离。多通信接口的MBUS主站/中继器的设计弥补了传统数据传输系统的不足,通过系统功能测试,多通信接口的MBUS主站/中继器符合实际使用要求,可以用于各种工业生产场合。关键词:M_BUS;PROFIBUS;CAN;以太网;LPC2387III 多通信接口的M_BUS主站/中继器的设计与实现AbstractAsmankindentersthe21stcentury,computerscienceandtechnology,informationscienceandtechnologyandautomationandcontroltechnologyiswidelyusedinthesceneofindustrialproduction,thedatatransmissionisanimportantpartofindustrialproduction.Traditionaldataconcentratorfeaturesasinglebusinterfaceistoosmall,theshortcomingsofthedataprocessingcapacityhasgraduallykeepupwiththetimes,thenewdatatransmissionsystemisimminent.CommunicationinterfaceM_BUSmaster/repeateruseEuropeaninstrumentthebusM_BUStechnology,insteadofthetraditionalRS485bus,hasagreatadvantageintermsofdatatransmission.ForPROFIBUS,CANbusM_BUSbusandEthernettechnologies,theirtechnologyismature,stableandhigh-performance,widerangeofapplicationsintheindustrialproductiondatatransmissionlinkapplicationsisextremelybroad,andembeddedtechnologyastoday'snewtechnologiesonbehalfofwidelyusedalsoinproductionpracticesoPROFIBUS,CANbustechnology,M_BUSbusandEthernettechnologyandembeddedcombinationofLPC2387ofNXPasthecorecontrolchip,thesuccessfulrealizationofdataM_BUSfromthenodetwo-waytransmissionofdatabetweenthePROFIBUS,CANbusandEthernet.ThecommunicationinterfaceM_BUSmaster/repeaterdownlinkinterfaceisMBUSbustechnology,theuplinkinterface,Profibusbus,CANbusandEthernetcommunicationstechnology,takingintoaccounttheversatilityofdesignM_BUSrepeaterinterface,increasingthethetheMBUSslavedatatransmissiondistance.CompensateforthelackofconventionaldatatransmissionsystemforthedesignofthecommunicationinterfaceMBUSmaster/repeatersystemfunctionaltesting,communicationinterfacetheMBUSmainstation/repeaterinlinewithactualrequirements,canbeusedforavarietyofindustrialproductionoccasions.Keywords:M_BUS;PROFIBUS;CAN;Ethernet;LPC2387III 工程硕士学位论文目录学位论文原创性声明I学位论文版权使用授权书I摘要IIAbstractIII第一章绪论31.1课题背景及意义31.2国内外研究现状及发展现状41.3相关通信接口的简介51.3.1M_BUS总线简介51.3.2Profibus总线简介71.3.3CAN总线简介91.3.4以太网简介101.4中继器的介绍121.5本文总体结构13第二章多通信接口的M_BUS主站/中继器的总体设计142.1系统整体概述142.2多通信接口的M_BUS主站/中继器的主控芯片介绍162.2.1TinyArm2387嵌入式工控模块概述162.2.2TinyArm2387嵌入式工控模块硬件资源172.3多通信接口的M_BUS主站/中继器系统的需求与分析182.3.1多通信接口的M_BUS主站/中继器系统硬件功能需求192.3.2多通信接口的M_BUS主站/中继器系统软件功能需求192.3.3多通信接口的M_BUS主站/中继器系统性能需求202.4本章小结2075 工程硕士学位论文第三章多通信接口的M_BUS主站/中继器硬件设计与实现213.1硬件整体概述213.2M_BUS收发电路的设计223.2.1M_BUS发送电路223.2.2M_BUS接收电路233.3多通信接口的设计253.3.1M_BUS中继接口的设计253.3.2CAN接口电路的设计263.3.3Profibus接口电路的设计273.3.4以太网接口电路的设计293.3.5调试辅助接口电路设计303.4其它模块电路的设计313.4.1电源模块313.4.2J-TAG接口电路323.4.3复位电路与ISP电路333.5系统pcb图343.6本章小结34第四章多通信接口的M_BUS主站/中继器软件设计与实现354.1系统主程序设计354.1.1配置模式设计364.1.2CAN通信模式的软件设计384.1.3Profibus-DP通信模式的软件设计424.1.4以太网通信模式的软件设计474.1.5中继器通信模式的软件设计514.2相关通信接口的帧结构534.2.1M_Bus帧结构534.2.2CAN帧结构5475 工程硕士学位论文4.2.3Profibus帧结构554.2.4以太网帧结构574.3本章小结58第五章系统运行及测试595.1中继器模式通信测试595.2CAN模式通信测试605.3Profibus-DP模式通信测试635.4以太网模式通信测试665.5本章小结67总结与展望68参考文献70致谢72附录A攻读学位期间发表的学术论文73附录B攻读学位期间参加的科研项目7475 工程硕士学位论文第一章绪论1.1课题背景及意义近年来,随着现代化生产的持续发展,科学技术不断的进步,我国的电、气、水用量日益增加,与此同时,对水、气、电用户的管理日益增强。传统的手工抄表由于耗费大量人力物力,已经不再适应时代的需要。我国水、电、气事业与人们的生活息息相关,如何解决水、电、气三大系统与用户之之间的协调管理,将直接影响到国民的生活水平,间接影响到我国的经济发展。伴随着生活条件的不断改善,住宅的智能化要求日益提高,一户一表的推行,对费率水价的实施以及用水管理部门对用水量统计及收费管理的需要,推动着自动化抄表技术在水表领域的不断发展,最初由计量工人挨家挨户的直接读取到今天的智能化自动抄表技术的完善,种种迹象表明我国已经加快了现代化的步伐。但是,由于某些方面的原因,远程抄表系统并未完善,即便是新型的RS485总线传输技术代替了原有的手工抄表,但是还是有很多问题亟待解决[1]。传统的RS485总线通信设备容量少,最多接入数量不超过128个,不适合现代化的楼宇之间的信息传输;通信速率非常容易受距离的限制,当通信距离超过数百米时,其可靠的通信速率小于1200bps;非隔离的方式使得RS485芯片不能应用于长距离户外通信,隔离方式需要提供隔离电源,成本较高;不能给从设备供电,从设备需要单独外加电源供电;布线拓扑只能为串行布线,不能构成星形等任意分支,但是串行布线对小区的实际布线设计难度太大;远距离通信时,RS485芯片容易损坏。M_BUS总线是欧洲新型的仪表总线,是由德国Paderborn大学的Ziegler和德国TechemAG公司、TexasIntrument公司共同开发的,基于ISO/OSI模型四层模型,用到了其中的物理层、数据链路层、网络层和应用层,其中数据链路层协议采用IEC870标准,应用层协议采用EN1434-3标准。在欧洲,M_BUS总线由于其特有的总线供电模式而被广泛的应用于水、电、气远程抄表系统,并且由于其实时性相对较好可以广泛用于智能化控制总线和火灾报警系统。M_BUS通信高速稳定(2400m,可靠传输波特率为4800bps)、静态功耗低、可接入站点容量大、使用普通双绞线、抗干扰能力强、总线拓扑任意、预留多种通信协议,扩展极为方便。传统的RS485数据集中系统传输速度慢、实时性差、安装麻烦、抗干扰能力弱等已经难以适应现现代数据集中的要求,而基于M_BUS总线传输的数据集中器具有所有M_BUS的优点。并且,传统的RS485数据集中器一般只是针对某种总线传输的进行设计,当工业生产中数据传输总线接口发生改变时,传统的数据中继系统由于接口不匹配,不能适应现有的总线接口,导致原有的RS48575 工程硕士学位论文数据中继系统不能使用,造成工业生产的浪费,不利于企业发展[2,3]。针对传统RS485数据集中器的不足,研究和讨论了一种新的数据集中系统的设计方案。系统采用综合设计的思想,提出了一种具有多通信接口的高速数据采集系统设计方案,该数据采集系统结合了嵌入式工控模块T2387(LPC2387集成在工控模块中)、M_BUS总线、Profibus总线、CAN总线、中继器技术、以太网技术;以ARM微处理器LPC2387为核心,M_BUS为数据采集总线,将采集到的数据,经过核心芯片处理后,可通过Profibus总线、以太网口、CAN总线传输到相应的总线上,实现多种总线上数据的传输。另外,由于该系统设计有中继接口,所以该系统还可以作为中继器,实现数据在M_BUS主站与从站之间的远距离通信。1.2国内外研究现状及发展现状随着微型计算机技术、智能控制技术和嵌入式技术的不断进步,数据集中器也得到了长足的发展。工业化生产的过程中,需要将工业数据通过传感器或者其他采集装置采集,然后通过数据集中器上传至相应的数据传输通道,便于实现数据处理等,实现了数据从源端到目的端的数据交换。可以说,数据传输是工业生产不可或缺的一个部分,所以数据集中器就显得尤为重要。数据集中系统产生于上个世纪50年代,由美国率先运用在军事上,将采集到的侦察数据进行集中后在传输到监控室,这一数据传输技术运用在军事领域,为军事情报部门提供了准确实时的作战数据。这标志着二次世界大战之后,美国已经将信息传输技术率先运用在军事领域,并且将在日后取得了不断的突破。20世纪70年代,随着微计算机技术的发展,微计算机技术与数据传输相融合,将用传统方法不能实现的数据传输采用新的技术手段,成功的实现了数据传输,使得数据传输技术上了一个新的台阶。20世纪90年代到今天,由于大规模集成电路技术的发展,数据集中器的成本得到降低,节省了印刷板的空间,数据集中器已经可以由原来的体积大、智能化程度低逐渐转变为体积小,智能化程度高。特别是随着嵌入式技术的出现,可以将一块体积很小,功能很强大的芯片应用于各种智能化的系统,这一技术应用在数据传输领域,使得原先数据集中系统的功能增加,扩大了数据集中器的运用场合。我国目前及今后的一段时间内,数据集中器将得到飞速的发展,原先的数据集中器没有MCU,仅仅由收发电路和传输接口组成,由于高速ARM、DSP、FPGA和大容量的存储芯片的出现,将使得数据集中器不仅仅具有数据处理能力,还可以将数据进行存储,进而进一步处理、而且强大的上位机开发软件也慢慢和数据集中系统结合起来,如JAVA等,75 工程硕士学位论文使得数据集中和监控有机结合,更加方便现场工作人员对数据的分析和掌握。数据集中系统近年来也逐渐向高精度、高速化、网络化、模块化、通用化的方向发展。而且随着工艺等方面的改进,成本和价格将会下降,使得数据集中系统运用更加普及到普通工业领域。另一方面,数据集中系统采用SoC、ARM、DSP等嵌入式微处理器、RS485双绞线、CAN总线和Profi-bus总线等,支持多种通信接口,可广泛运用于工业现场数据传输和控制等领域。同时,伴随着局域网技术的飞速发展,一个工厂管理层局域网和车间层局域网的底层设备网络能够连接到一起,这样可以通过这些网络将多台数采设备有效的联接在一起,实现在线对生产设备运行状态数据的实时采集和监控。1.3相关通信接口的简介1.3.1M_BUS总线简介M_BUS总线,全称Meter-bus,是一种专门用于各类仪表或装置的远程读数或读取相关信息的网络系统结构。采用远程读数的欧洲抄表总线标准,广泛运用于水、电、气等部门的远程抄表系统,这种总线对楼宇自动化事业及相关的应用有着极端的重要作用。现阶段我国建设部门推广的水、电、气三表合一,采用的就是这种总线标准。M_BUS总线有着其显著的特点:1、两根双绞线或电缆实现无极性远程数据传输。2、主机可远程供电给从机。3、结构拓扑简单。4、总线长度可以达到1km。5、主从式半双工数据传输。将M_BUS仪表总线用于各类消费性相关装置,可将相关数据或信息编码收集并传递至M_BUS主站,然后再通过各类方式传送至上位机进行相应的处理,这样可以实现远程数据的实时采集、巡检和监控等功能[4,5,6]。M_BUS总线构成的抄表系统应用于居民小区,则可实现远程计量、抄表、报警、智能化的控制和管理等,M_BUS总线的运用对于构建智能化住宅小区和公共事业管理部门的现代化建设具有重要的意义。M_BUS通信是由主机发起通信,从机应答,从机之间没有信号传输,从机之间通过地址编码区分。M_BUS总线主机对从机36V的电压供电,并通过总线远程传输数据给从机,主机到从机的信号传输采用电压调节方式,即36V代表逻辑1;24V代表逻辑0。主机通过在M_BUS总线上不断的改变电压值将信号传输到M_BUS从机。75 工程硕士学位论文图1.1主机到从机传输的数据码流M_BUS从机到主机之间的信息传输采用的是电流调制。一般在设计M_BUS从机的时,可选用等过TexasInstruments公司生产的TSS721芯片作为从机的收发芯片。TSS721是根据M_BUS通信标准(EN1434-3)制作的终端收发芯片,TSS721由M_BUS总线供电和数据传输,具有抗极性颠倒能力,它与从机的微处理器之间可以有多种连接方式,对从机微处理器的供电方式多种多样,有总线供电方式、电池供电方式和后备电池供电方式。从机到主机的数据交换采用的是电流调制,从机中TSS721向主机发送的是一系列的电流脉冲。在稳态时,从机和主机无数据交换式,每个从机消耗掉电流为1.5mA,该电流值表示逻辑1;当从机向主机传输逻辑0时,由从机增加一个11~20mA的电流,总线上的电流消耗就增加了11~20mA,这样主机很容易检测到逻辑0信号。M_BUS总线数据链路图1.2由从机向主机传输的(电流)数据码流层规定:M_BUS数据传输为11个字节,其中1位起始位,8位数据位,1位数据校验位和1位停止位。图1.3为M_BUS总线的比特流传输格式。M_BUS的数据链路层传输协议基于IEC870-5,M_BUS数据链路岑协议采用的是异步串行的传输方式,传输的每个字节有8个位,8位之前加上一个起始位和之后加上一个校验位和一个结束位构成十个位来传输,总线在静止状态的时候为高电平,用逻辑1(MARK)表示,因此每个字节的起始为必须为低电平,即逻辑0(SPACE),结束位为高电平,即逻辑1(MARK)表示该字节的信息的结束[7,8]。作为M_BUS从设备到M_BUS总线的接口电路,TSS721大大降低了从节点的设备成本。TSS721不仅可以按照M-BUS总线规范来收发数据,还具有从设备与微处理器之间的电平转换电路,用来实现微处理器和从节点设备的通信。另外,TSS721还具有75 工程硕士学位论文总线电压故障指示和极性接反的保护等功能。图1.3M_BUS比特流传输格式1.3.2Profibus总线简介现场总线是一种连接智能现场设备和自动化系统的开放式、数字化双向多点通信的底层控制网络[9]。Profibus(ProcessFieldbus)是面向工厂自动化、流程自动化的一种国际性的现场总线标准,是一种具有头广泛应用范围的、开放的数字通信系统,适合于快速、时间要求严格和可靠性要求高的各种通信任务,基于分布式控制思想发展而来的、最初的设计构想是基于扩展的MAP/MMS标准的思想,建立一个基于客户/服务器结构的、面向对象的、使用能够与工厂上下各层的工业通信系统。在德国,有90%的工厂自动化检测和控制设备上都配有Profibus的标准接口。凭借这Profibus标准中涵盖了各种需求的各个自己规约的优势,如DP、PA、Profinet等,其技术已经发展到了全面成熟的阶段,Profibus产品覆盖了各行各业。Profibus总线自1997年进入中国后,市场发展非常迅速。据CPO对北京周边300多家企业的调查结果显示,Profibus的市场占有率为40%~50%,而在全国市场至少有30%~40%以上的占有率。Profibus是唯一全集成H1和H2的现场总线解决方案,是一种不依赖制造商的开放式总线标准。目前国际上通用的现场总线标准之以其独特的技术特点、严格的认证规范、开放的标准、众多厂家的支持和不断发展的应用行规已成为最重要的现场总线技术。Profibus总线的特点是不同制造商生产的设备不用对接口进行特别的调整就可以直接通信,且特别适用于高速且对时间要求比较高的复杂通信场合。Profibus按照应用范围可以划分为[10,11,12]:Profibus_FMS、Profibus_DP和Profibus_PA。四个版本虽然应用场合不同,但是版本兼容。Profibus-FMS主要解决车间级通行任务,完成中等速度的循环和非循环通信任务,广泛用于电气传动、传感器、纺织工业和楼宇自动化,一般构成实时多主网络系统。Profibus_DP是一种优化的高速通信连接,用于自动可控制系统和设备及分散I/O只见到通信设计,还可用于分布式控制系统的高速数据传输。Profibus_PA数据传输采用扩展的Profibus_DP协议,另外还是用了描述现场设备行为的PA规范,并可以使使现场设备通过总线供电,采用分段耦合器,Profibus_PA设备可以很方便的集成到Profibus_DP网络上。一般Profibus_FMS和Profibus_DP一起使用,有三种类型75 工程硕士学位论文传输方式:DP和FMS的RS485传输、PA的ICE1158-2传输和光纤传输。DP和FMS的485传输技术:RS485采用屏蔽的双绞线,共用一根导线对,适用于需要高速传输和设备简单而又便宜的各个领域。在不使用中继器时,每段最多有32各站点,使用中继器最多可以扩展到127个站点。总线的传输速率可选用9.6kbps到12Mbps,一旦设备投入运行,全部设备据需选用同一个传输速率。电缆的可靠传输距离与传输速率有着很大的关系,见表1.1:表1.1电缆长度与传输速率的关系波特率(kbit/s)9.619.293.75187.5500150012000距离/m1200120012001000400200100PA的IEC1158-2传输技术:IEC1158-2传输技术可以满足石油化工的要求,可保证本质安全性和现场设备通过总线供电[13]。IEC1158-2是一种位同步协议,可进行无电流的数据连续传输。在没有使用中继器时,每段最多有32个站;使用中继器时,最多可以有126个站点。传输速率为31.25kbit/s。光纤传输技术:在电磁干扰很大的场合,一般运用光纤传输数据。一种专用的总线插头可以将RS485信号转换成光纤信号或者是将光纤信号转换成RS485信号,这使得在同一系统中,可同时使用RS485和光纤传输技术。为了使不同的设备生产厂家的从站设备能够很方便的挂接在Profibus总线上进行通信,必须创建一个GSD文件,GSD文件以电子文档形式记录了对应从站设备的各种参数,从某种意义上来说,GSD文件是从站设备的一个电子版使用说明书,用户在实际上创建一个Profibus应用系统时,由组态软件工具在主站上读入该从站设备的GSD文件,在主站上建立一个缓冲区,且再通过网络将初始化参数赋给从站设备。PI组织为GSD文件定义了大量的标准字,通过这些标准化的描述,使得不同厂商生产的主站能够从GSD文件中读取从站信息。GSD文件一般可以分成三个部分[14]:总规范:包括了生产厂商和设备名称、支持的波特率、软硬件的版本、总线插头的制定、监视的时间间隔等。与DP有关的规范:包括与主站相关的一些参数,如该主站所允许的从站个数、主站的上传和下载的能力。与DP从站相关的规范:输入和输出的通道数、类型、诊断数据等。1.3.3CAN总线简介CAN总线全称是controllerareanetwork,即控制器局域网[15,16]。在国际上,CAN作为现场总线的一种应用很广泛。CAN总线是串行通信总线的一种,最初被设计应用在汽车工业中的微控制器通信。由于CAN的设计独特且可靠性高、在多主系统中的实用性等方面的优势很明显,CAN总线已经广泛的被应用于现代75 工程硕士学位论文汽车工业、航天工业等领域,CAN总线是目前为止唯一一种成为国际通用标准的现场总线,它被认为是目前最有前途的现场总线之一。CAN通信介质:双绞线、同轴电缆或者光缆,通信速率可以达到1Mbit/s,通信距离可达10km。CAN总线的最大特点废除了传统的依靠站地址来编码,取而代之的是对通信数据块进行编码,使其网络上的节点数在理论上不受限制。另外,由于CAN总线的纠错能力很强、并且支持差分收发,因而适合高干扰环境,并具有较远的传输距离。CAN总线的特性[17]:1、CAN总线是一种串行通信网络,它优先支持分布式、实时控制。2、CAN协议遵循ISO/OSI参考模型,用到了ISO/OSI模型的物理层、数据链路层和应用层。3、CAN总线节点可达110个。4、CAN数据链路层采用的是短帧结构,每帧数据位占8字节,易于纠错。CAN节点在严重错误的情况下,可以自动关闭,不会影响总线其它节点。5、CAN总线传输速率随距离改变而改变,两个站点最远的直接距离最远可以达到10km(传输速度为5kbit/s);最高通信速率可达1Mbit/s(传输距离40m)。表1.2为CAN总线通信速率与传输速度之间关系波特率/Kbps通信最大距离/m5100001067002033005013001006201255302502705001301000406、CAN可以多主方式工作,本质上也是一种CSMA/CD方式。在任意时刻,网络上的任意一个CAN节点可以主动地向CAN总线上的其它的CAN节点发送信息,而不分主从,由于节点之间依靠优先级区分,因而通信方式颇为灵活。7、CAN总线采用的非破坏性逐位仲裁技术,使优先级高的先发送,极大地节省总线冲突仲裁时间。即使是重负载的情况下,CAN网络也可以采用一点对多点或点对点方式收发数据。8、CAN信号调制解调方式采用不归零编码/解码方式,并采用插入填充技术,75 工程硕士学位论文数据位具有显性位“0”和隐形位“1”两种逻辑电平CAN总线的数据通信具有可靠性突出、实时性好、灵活性能高,其总线规范已经成为国际标准,被公认为几种最有前途的总线之一。由于其性能卓越现已广泛应用于工业自动化、交通工具、医疗仪器、多种控制设备以及建筑、环境控制等众多部门。控制器局部网将在我国迅速普及推广。1.3.4以太网简介以太网[18,19,20],英文名为Ethernet,是当今世界上应用范围最广的一种网络技术。以太网这个术语是一种技术规范,而不是某种具体的网络,一般是指20世纪80年代初期,由Xerox公司、英特尔公司和DigitalEquipment公司联合公布的一个标准,以太网技术是TCP/IP协议所采用的主要的局域网技术。以太网是应用最为广泛的局域网,包括标准的以太网(10Mbit/s)、快速以太网(100Mbit/s)和10G(10Gbit/s)以太网,符合IEEE802.3规范。早期以太网连接采用总线拓扑结构,现在但由于它存在的固有缺陷,已经逐渐被以交换机和集线器为核心的星型网络所代替。以太网采用一种称作带冲突检测的载波侦听多路访问(CarrierSense,MultipleAccesswithCollisionDetection)的访问控制方法,简称CSMA/CD,指的是以太网的联网技术如何操作和运行。CSMA/CD技术规定了多台设备共享一个通道的方法,因为所有的通信信号都在共用线路上传输,即使信息只是拉给其中的一个终端(destination),某台设备发送的消息都将被所有其他终端接收。在正常情况下,网络接口卡会滤掉不是发送给自己的信息,接收目标地址是自己的信息时才会向CPU发出中断请求。以太网的数据格式是数据包,源主机向目的主机发送数据包时,数据包TCP/IP分层模型中的传输过程图1.4所示。在应用层将要发送的数据打包后,将打包后的数据发送到传输协议层,在该层加上标识符,标明自己的目标地址和身份。在传输层的数据打包完后,把打包好的数据传给网络层,加上一个标题,以符合网络IP层的要求;在网络层将数据处理完成之后,将封装好的IP数据包传送至了下面的数据链路层;在数据链路层中,该数据包会被加上一个包头和一个包尾来完成IP包的最终的封装工作。被封装好的数据包将会被发往的物理层,变成数码流的形式,通过网络媒介到达宿主主机中。宿主主机会按照上述相反的方向对数据进行接收,然后分别在各层实现拆包的工作,最后提取出来的原始发送的数据或者控制命令。75 工程硕士学位论文图1.4以太网数据包传输过程图以太网中的某台主机要进行数据包传输,过程如下[21]:1、首先监听信道上是否处于忙状态,即是否有信号在传输。如果监听到有信号传输的话,表明信道处于忙状态,就继续监听到信道空闲为止;2、若没有监听到任何信号,表示总线当前空闲,就进行数据包传输;3、在数据传输的时候继续对信道进行监听,如发现有别的数据包在传输,就表示发送冲突,将执行退避算法,然后随机等待一段时间后,重新执行监听信道上是否处于忙状态。如果监听到有信号传输的话,表明信道处于忙状态,就继续监听到信道空闲为止;4、若没有发现冲突,则表示发送成功。M_BUS主站通过网口要向一台主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,M_BUS主站则会向网络发送一个ARP请求报文,里面包含了M_BUS主站的IP地址和物理地址和B的IP地址,并请求主机B回答自身的物理地址。在帧被传送到网络上后,所有主机包括B都可以收到ARP请求,但是只有主机B识别自己的IP地址,于是便向M_BUS主站发送一个包含B的MAC地址的ARP响应报文。M_BUS主站在接收到B的ARP响应报文后,就会将本地的ARP缓存表更新。然后M_BUS主站可以使用B的MAC向B发送数据(MAC是由网卡附加的)。1.4中继器的介绍由于存在线路损耗,在线路上传输的信号会逐渐衰减,衰减到一定程度时将造成信号失真,因此会导致接收方的数据接收错误,中继器就是为解决这一问题而设计的。中继器(REPEATER)作为网络物理层上面的连接设备,适用于完全相同的两类网络的互连,主要功能是网络信号以推动,通过对数据信号75 工程硕士学位论文放大、再生,达到远距离传输信号的目的。中继器连接同一个网络的两个或多个网段。如以太网常常利用中继器扩展总线的电缆长度,标准细缆以太网的每段长度最大185米,最多可有5段,因此增加中继器后,最大网络电缆长度则可提高到925米。一般来说,中继器两端的网络部分是网段,而不是子网。中继器是连接在两段局域网之间的电缆,可以将电缆上的数字信号放大、再生,然后发送。这些功能是OSI模型中的物理层的功能[22,23,24]。使用中继器可以适当的增加局域网的覆盖范围。例如,按照以太网的规定标准,单段信号传输电缆的最长只能为500米,但如果使用了中继器连接4段电缆之后,以太网中信号传输可以达到2000米。但是中继器只是简单的将某段电缆上的数据发送到另一段电缆上,而不管数据是否出错误数据或者数据是否不适应于网段的传输。从理论上讲中继器的使用是无限的,网络也因此可以无限延长。事实上这是不可能的,因为网络标准中都对信号的延迟范围作了具体的规定,中继器只能在此规定范围内进行有效的工作,否则会引起网络故障。中继器的优点:(1)扩大了通信距离。(2)增加了网络节点的最大数目。  (3)可以使各个网段通信速率不同。 (4)大大提高了数据传输可靠性。 (5)系统性能得到改善。  中继器的缺点:(1)中继器的工作机理对收到被衰减的信号再生(恢复)到发送时的状态,并转发出去,这就加大了数据传输的时延。  (2)当网络上的数据传输量大和速度很快,导致网络传输超负荷时,中继器可能由于缓冲区的存储空间较小,而发生数据溢出丢失,产生帧丢失的现象。中继器若出现故障,对相邻两个子网的工作都将产生影响。1.5本文总体结构本论文对多通信接口的M_BUS主站/中继器系统的通信服务器作了较为详细的描述与介绍。论文主要内容如下:第1章是绪论,主要介绍了数据集中技术的的发展及其特点,并对多通信接口的M_BUS主站/中继器系统所涉及的通信接口总线进行了详细的介绍。第2章对系统的设计所采用的一些关键技术作了详细的介绍,对系统的整体功能需求和软硬件功能需求做出了详细讲解,并将要达到的成果做出了详细的介绍。第3章介绍了多通信接口的M_BUS主站/中继器系统的硬件的设计及实现。75 工程硕士学位论文详细的说明了系统硬件的组成、实现的功能。第4章介绍了多通信接口的M_BUS主站/中继器系统的软件的设计及实现,给出了程序流程图并对部分关键代码作了详细解析。给出了程序流程图及部分代码。第5章对系统各个功能做了详细的功能测试。最后是结论,对论文所作工作进行总结,并对多通信接口的M_BUS主站/中继器系统测试及实际使用情况作了介绍,对多通信接口的M_BUS主站/中继器系统的不足进行了思考,探讨了多通信接口的M_BUS主站/中继器系统需要改进的问题。75 工程硕士学位论文第二章多通信接口的M_BUS主站/中继器的总体设计完整的数据监控系统通常由监控终端、数据采集装置和控制系统等几大部分组成。系统设计在需求分析的基础上,结合考虑系统功能、功耗、成本及可靠性稳定性等因素,完成系统的总体设计。本章首先从整个系统的整体出发简单介绍系统各组成部分的功能及其在系统中的作用,然后着重介绍多通信接口的M_BUS主站/中继器功能需求和实现方式。2.1系统整体概述完整的工业生产系统,是由多种不同功能的系统有机组成的,其中数据监控处理系统是不可缺少的,数据监控处理系统,又包含了数据采集、集中和上位机的监控处理。实时性好、可靠性高的数据对工业生产的好坏起到决定性的作用。工业数据,如水位、烟雾、温度、振动等,通过各类传感器采集之后,转换成电压信号,通过MCU的处理,经过数据集中控制系统传输到监控装置,监控人员根据传输上来的数据做出科学的分析之后,做出相应的处理。或者是工厂根据自己的需要,需要对终端进行相应的控制,直接在监控室输入控制命令,经通道传输到终端,终端做出相应的反应。Profibus和CAN总线均为现场总线,CAN总线是目前为止唯一成为国际标准的现场总线。Profibus是一种相当有影响力的现场总线技术,通信协议属于国际标准IEC61158的子集,属于欧洲标准EN50170,已经被采用为CHINA国家标准。profibus总线从技术开发到控制网络应用都较为活跃。它们对现场总线的发展有着重要的影响。被广泛运用在工业自动化和网络技术的研究与开发。profibus总线是一种广泛范围的、开放的数字通信系统,适合于快速、时间要求严格和可靠性要求高的各种通信任务。CAN总线支持分布式控制的串行通信网络。相当于RS485总线构成的分布式控制系统,有着太多的优点。CAN总线废除了对站地址的编码,采用对数据块的编码,可以使CAN网络上的不同节点接收到相同的数据,有效的增强数据传输的实时性。CAN控制器芯片和接口芯片完全可以实现CAN的通信协议,大大降低系统开发难度,缩短了开发周期,这些是RS485总线不能比拟的。与其他的现场总线相比,CAN总线的通讯速率高、易实现、且性价比高已经逐渐形成标准的现场总线。以太网作为一种基带局域网规范,随着网络技术的不断进步,由标准以太网逐渐发展为万兆以太网,数据传输量巨大,是目前采用最为广泛的数据传输方式,几乎工业过程自动化的数据传输都会用到以太网进行传输。且以太网拓75 工程硕士学位论文通信介质多样,可以采用光纤、双绞线、同轴电缆等。极大的节约了通信线路的成本。由于Profibus总线、CAN总线和以太网众多优点及广泛的应用领域,固选择其作为系统的通讯接口,可以使多通信接口的M_BUS主站/中继器应用于多种场合。多通信接口的M_BUS主站/中继器是用来解决在工业生产中数据传输环节的数据集中与控制。可以将M_BUS从节点上的传输的数据进行集中、存储,然后转换成与上位机通信的通信总线的帧格式进行传输,也可以接收总线上传输的控制命令,然后跟据控制信息对M_BUS从机进行相应的控制。多通信接口的M_BUS主站/中继器设计思想:由于在工业生产中,工业控制是核心环节,而数据传输是核心中的核心,考虑到传统的M_BUS数据集中器由于接口不匹配导致原有的M_BUS数据集中系统不能使用,造成工业浪费。另外,传统的数据集中系统不带CPU,仅仅由M_BUS切换电路和RS232通信接口组成,在接收到数据后,不能进行数据存储、处理,导致系统不能进行复杂的工作。多通信接口的M_BUS主站/中继器针对原有数据集中器的不足,采用应用广泛、实时性很好的现场总线Profibus和CAN总线,外加传输数据量大的以太网技术作为对上位机通信数据的接口,与下位机进行通信的总线接口使用仪表采集领域使用广泛的M_BUS仪表总线传输技术,整个系统的通用性强、实时性好、传输数据量大,外加M_BUS中继接口的设计,可以增加数据传输的距离。整个系统功能强大,即可作为M_BUS主站使用,又可作为中继器使用。图2.1系统连接示意图整个系统由工控模块、M_BUS电平转换电路、电源系统和四种通信接口电路75 工程硕士学位论文四部分组成。主控系统T2387,主要负责配置四种接口模块、收发下位机数据、收发上位机数据、响应用户命令、升级用户软件等。M_BUS总线主要负责从机采集到的数据向多通信通道数据采集系统进行传输和用户传输的数据经过该采集系统向从机传输配置命令、收发命令,用户可以用自己配置的命令通过该数据采集系统想从机进行命令传输,从机接到命令后作出相应动作。T2387主要用来接收、处理和发送用户和从机之间的数据,还可以通过软件配置还可以实现数据的透明传输,即从机向用户发的数据和用户向从机发送的数据不经过任何处理直接进行传输,此时,该数据采集系统相当于以一个透明的通道,可作为中继器来增加信号传输距离。选用的四种总线通信接口,分别为CAN总线接口、Profibus总线接口、以太网接口和M_BUS中继接口,在现今阶段应用相对成熟,且应用范围广,可实现数据从MBUS从机和四种通信通道间的数据传输。多通信接口的M_BUS主站/中继器有两种模式:M_BUS主站模式和中继器模式。其中M_BUS主站模式,依据对上位机的通信接口不同分为:CAN通信、以太网通信、Profibus通信。在M_BUS主站模式下,主站下挂在一定量的M_BUS从站,对上位机通信可以选择CAN总线通信、PROFIBUS总线通信、以太网通信。中继器通信模式,对M_BUS主站通信时,自身相当于一个M_BUS从站,对M_BUS从机进行通信时,自身相当于一个M_BUS主站,对M_BUS主站和从站都通过M_BUS总线进行通信。2.2多通信接口的M_BUS主站/中继器的主控芯片介绍2.2.1TinyArm2387嵌入式工控模块概述主控模块选用广州致远公司的TinyARM系列T2387嵌入式工控模块,片上集成NXP公司的LPC2387。TinyARM系列T2387嵌入式工控模块是TinyARM23系列中功能强大的一款型号[25],它内部配置2MB内存,集成LPC2387微控制器最小系统。产品内置有商业化TCP/IP、USB、CAN协议栈、SD总线驱动、文件管理系统和底层基础驱动函数库等固件。用户只需要简单地调用API函数,而无需了解以太网、USB、CAN等协议栈和文件系统和ARM内部寄存器,即可实现相应的功能。在线升级功能界面,简单和可靠的现场升级,大大提高了产品的市场竞争力。功能强大,易于使用的软件开发平台,大大降低了开发门槛,使设计的产品可以迅速可靠地上市。T2387是一个45mm×32mm的核心模块,通过分布在模块边缘的2组15x3排针将T2387的通信接口、GPIO、电源等所有引脚引出。该芯片丰富的串行接口使得其外围电路设计变得简单。75 工程硕士学位论文2.2.2TinyArm2387嵌入式工控模块硬件资源该芯片基于ARM@CortexTM-m332位的RISC内核,工作频率最高为72MHz,内置高速存储器(高达256K字节的FLASH和64K字节的SRAM),6路10位A/D转换器,单通道转换时间低至2.44μs;USB设备控制器;1路10位D/A转换器,转换时间低至1μs;包含标准的通信接口:4个异步串行口(UART)接口、CAN总线控制接口、片上集成10M/100M以太网控制器并提供以太网接口、工业级PHY、SD/MMC总线控制器、12MHz工业级有源晶振以及复位电路。可以在外围电路上设计2M的Flash接口。工控模块硬件图如图3.2。图2.2T2387硬件结构图T2387的硬件资源[26]:处理器:NXP公司的LPC2387。一般情况下,默认运行频率48MHz,支持72MHz的最高运行频率;存储系统:504KBytes片内无需等待程序存储器,可实现硬件加密程序代码空间,保护开发者的知识产权,另带98KBytes的高速片内SRAM,;可选配256KB~2MB字节的数据Flash;支持SD/MMC卡。通信接口:1、内部集成工业级10/100M以太网PHY芯片;2、集成2路CAN-bus接口;3、4路UART控制器(UART1符合16C55075 工程硕士学位论文工业标准,UART3支持IrDA模式);4、1路USB2.0全速设备接口(12Mbps);5、2路高速I2C总线,数据传输速度0~400Kbit/s;6、2路带缓冲的SSP总线。A/D:6路10位A/D转换器,单通道转换时间低达2.44μs;D/A:1路10位D/A转换器,转换时间低达1μs;内部集成高精度基准电压源。定时器/计数器:4个32位定时器/计数器,支持捕获、匹配输出功能;PWM:6路单边沿PWM输出,或3路双边沿PWM输出。2.3多通信接口的M_BUS主站/中继器系统的需求与分析通过对传输数据的工作环境参数的采集、处理和传输,多通信接口的M_BUS主站/中继器实现了对整个工业生产过程的数据传输。多通信接口的M_BUS主站/中继器是数据传输的关键环节。多通信接口的M_BUS主站/中继器包含了硬件功能需求和软件功能需求,在实现其相应功能的基础上也对各项性能指标提出了相应的要求。本系统的研究目标是完成多通信接口的M_BUS主站/中继器的设计与开发,结合数据采集技术、信号处理技术、信号传输技术,对在工业现场的数据进行采集,可使用多种总线接口上传数据,可以使远程监控人员对现场工作状态进行实时监控,并及时发现问题,确保工业生产的运行稳定。本系统的研究内容及预期达到的最终目标是:(1)多通信接口的M_BUS主站/中继器可以做M_BUS中继器使用,通过串口配置下发配置命令选择M_BUS中继器模式,具有数据集中功能,放大再生信号,可透明传输数据,提高了数据传输质量,增加从站的接入数目。(2)多通信接口的M_BUS主站/中继器可以作为M_BUS主站使用,通过四种通信接口,可以将M_BUS从站的数据上传至不同的总线。本系统支持波特率配置,选取了当今工业领域应用广泛的Profibus、CAN现场总线,有利于数据传输的实时性,配上以太网口,增加了数据的传输量。(3)支持本地配置,为增加系统灵活性,即当外界需求变化时,通过串口下发配置命令,可以实现数据在不同的总线上传,同时可以根据用户需要调整通信速率。(4)数据管理能力需求,多通信接口的M_BUS主站/中继器进行数据处理、储存。(5)提供配套的配置命令,可以简单的使用串口进行数据配置。系统整体开发需求:75 工程硕士学位论文(1)稳定性与安全性。系统需要采用成熟可靠的技术和设备,从硬件、软件等方面考虑如何设计出高稳定性与安全性的系统,以保证系统稳定运行的时间长,系统尽量避免发生故障,以及在发生故障时方便尽快修复或恢复。(2)系统升级的便捷性。嵌入式技术是不断的进步的,用户的实际的需求也会不断的变化。因此在进行系统设计时,应考虑系统的功能性的扩展与改版,保证系统自动升级维护功能。(3)兼容性。实现系统的标准化设计,程序功能模块化设计,提高系统性能,保证系统兼容性。2.3.1多通信接口的M_BUS主站/中继器系统硬件功能需求(1)多通信接口的M_BUS主站/中继器提供多种通信接口,既可以作为主站使用,又可以简单的作为数据中继器使用。(2)多通信接口的M_BUS主站/中继器的CAN、PROFIBUS接口采用总线隔离技术,可隔离2200V的电压,保证系统在高压环境下的电路模块不被高压损坏。(3)数据可采集的范围广泛,采集包括:温度数据、湿度数据、水位数据、烟雾数据、震动数据等其它。(4)提供M_BUS总线保护技术,选取具有热关断保护的OPA549作为M_BUS发送电路的主芯片。2.3.2多通信接口的M_BUS主站/中继器系统软件功能需求(1)系统模式配置主要功能:通过串口配置通信模式,可以实现系统的四种通讯模式。(2)系统的主要功能:采集M_BUS从机的数据,使M_BUS从机上的数据可以在PROFIBUS、以太网和CAN总线上传输。具有中继器功能,放大和再生M_BUS从机上的信号,使得信号传输距离更远,弥补数据传输受到距离限制的不足。(3)数据通信主要功能:整个M_BUS主站/中继器可以再生和放大信号。在中继器模式下,该系统上接M_BUS主站、下接若干M_BUS从站,相当于一个透明的数据通道,实现从机和主机之间的实时通信,增加通信距离。在M_BUS主站模式下,可以多通道与上位机通信,根据相应的控制命令可以实现对M_BUS从站广播通信和点对点的通信。(4)总线的保护功能:在检测到电流很大的时候,自动触发LPC2387的中断,关闭输出电流,保护整个电路的元器件不被烧毁。(5)数据存储的主要功能:可以存储2M的数据。(6)系统的通信功能:能在四种不同的通信通道中传输数据,在不同的传输距离和不同的波特率的条件下,数据能够很好的传输。75 工程硕士学位论文2.3.3多通信接口的M_BUS主站/中继器系统性能需求时间特性要求:1、不间断运行时间≥30·24小时;2、服务时间≥95%;3、操作响应时间≤1秒。灵活性要求:说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,提供扩充接口,能够对外提供数据;输入输出要求:系统通过CAN总线采集机车的工况数据信息与输出控制信号;数据管理能力要求:可以存储2M的数据量系统的负载能力:500mA的电流系统的中继功能传输距离:中继距离可以达到1000m以上,具有信号放大再生能力。2.4本章小结本章首先简单介绍了多通信接口的M_BUS主站/中继器的整体结构框架,分别从物理结构上和功能结构上给出了相应的构成原理,并简单阐述各个部分在系统中所起的作用和系统整体实现的功能,以及具体所用到的相关设备。接着给出了多通信接口的M_BUS主站/中继器其软硬件件技术设计指标和性能指标,这也是项目初期进行系统需求分析时所提出的各项要求。最后简单地给出了多通信接口的M_BUS主站/中继器的整体框架和整个系统大致工作流程,这也是本文后面的章节中将要重点讨论的。75 工程硕士学位论文第三章多通信接口的M_BUS主站/中继器硬件设计与实现3.1硬件整体概述嵌入式微处理器是嵌入式系统的核心[27,28],担负着协调、控制系统工作的重要任务,使宿主设备设计灵活、操作简单,可以实现宿主设备的智能化。一个合理、高效的嵌入式微处理器的性能指标直接影响着整个嵌入式系统的性能,它的类型决定了使用的操作系统和相应的软件。在嵌入式系统的硬件设计中,如何选择合适的微处理器,使它在适当存储设备的协助下表现出最优的性能,成为系统设计的关键。一般来说,嵌入式处理器和其控制所需要的相关外外部设备,称为硬件平台。目前而言,嵌入式处理器的主流是32位,主频大多都在在40MHz以上,当然也有超过500MHz和主频更高的高端处理器。随着集成电路设计技术不断发展,市面上出现了越来越多的面向嵌入式应用的处理器,基本都是RISC体系结构。在嵌入式领域,以ARM为核心的处理器,有着非常广泛使用范围,而且软件支持性很好,技术相对来说较为成熟。包括Linux,μC/OS-II在内的很多嵌入式操作系统都有成熟的针对ARM的移植版本[9]。目前ARM由于其的众多优点,已经成为手机和工业控制领域内的标准处理器之一,也是嵌入式处理器中的最有代表性的体系结构。所以选择ARM处理器作为嵌入式产品开发的硬件平台,将会大大提高产品的各方面性能。多通信接口的M_BUS主站/中继器被应用到工业领域目的是完成现场采集设备和监控设备之间的数据交流换,实时监控工业生产,保证工业生产的稳定运行。多通信接口的M_BUS主站/中继器是集CAN总线数据采集技术、Profibus总线技术、以太网技术、M_BUS仪表总线技术、嵌入式技术于一体的系统,它采用新型的TinyArm23系列的ARM嵌入式工控模块TinyArm2387作为系统的控制核心,可以分析数据,实时处理数据,通过不同的总线接口将数据上传,克服了传统数据集中器功能单一、低数据处理能力的缺点。另外,由于采用的通信接口技术在通信行业技术成熟、可靠性高,故该系统被应用较为广泛。多通信接口的M_BUS主站/中继器的硬件结构如图3.1所示。主要以嵌入式工控模块TinyARM2387为核心,包括中继接口、串行接口,网络接口、CAN总线接口、PROFIBUS接口等接口电路,还包括电源模块,M_BUS收发电路等,这里设计相应的电路将这些模块集成到一块大的印刷电路板,提高了系统的稳定性,同时采用模块话的设计,也便于整个系统的安装;上位机或者M_BUS主站与系统通过相应的总线接口连接,负载的M_BUS从机可以采集不同的数据,将数据传输到系统进行集中和处理,然后系统将处理过的数据数据通过与上位机相连的75 工程硕士学位论文图3.1系统框图总线接口将数据发送出去,上位机在收到数据之后将相应的数据进行存储、分析和处理,按照用户的要求传输相应的控制命令以完成整个系统的监控。3.2M_BUS收发电路的设计本系统的一个重要的组成部分就是M_BUS的电平转换电路,如何将M_BUS电平转换成TTL电平是整个采集系统数据进行传输的关键。为此,本系统设计了M_BUS总线与LPC2387工控模块之间的电平转换电路,该电路成功的实现了数据在M_BUS总线与LPC2387之间的双向传输。3.2.1M_BUS发送电路选用OPA549作为M_BUS发送电路的核心部件,其内部相当于一种高电压大电流功率运算放大器,输出电流大,峰值电流可达10A;转换效率(压摆率)最高为9V/μs,适合M_BUS的各种波特率,有过热关闭功能。对负载可以提供卓越的低级的信号精度和高输出电压和电流。可以双电源和单电源供电。单电源:+8V到+60V。双电源:±4V到±30V。OPA549片内集成对超温条件和电流过载的保护电路。此外,OPA549提供准确用户选择的电流限制。不同于其他设计,OPA549可以使用限流的电阻,可以使得输出电流从0A至10A进行调整。另外该器件可以设置是否开启热关断模式,当热关断功能开启的时候,它可以迫使输出级和有效负载断开。当M_BUS总线短路的时候,电路的电流很大,发热功率大,OPA549[29]会自动关闭输出电流,从而起到电路保护作用。选取合适的外围元器件,进行相应的电路配置,可设计出M_BUS的发送电路。当数据集中器需要将数据发送到M_BUS总线上进行传输,采用电压变换的方式进行信号传递。在系统中,LPC2387主控芯片通过UART2向M_BUS75 工程硕士学位论文总线上发送逻辑“0”时,LPC2387的发送串口P0.10/TXD2会出现一个TTL低电平,该电平值为0.2V,使得光耦TLP521-1的发光二极管导通,电阻R3和R6并联与电阻R2分压,此时总线上电压值Vspace,计算方法如公式3.1。(3.1)为21.4V,选取适合的R6、R3和R2可以调整Vspace的值为34.6V,LPC2387主控芯片发逻辑“1”的时候,串口出现3.3v左右的高电平,光耦TLP521-1内部的发光二极管的导通电压不能达到,故光耦的内部未能导通,R30没有接地,对整个电路相当于未接入,故只有电阻R2与电阻R3进行分压,输出电平Vmark,计算方法如公式3.2。算出电压值为34.6V,完全满足了M_BUS(3.2)主机往从机发送逻辑电平Vspace和Vmark之间的差值大于12V的要求,实现了LPC2387的串口电平和M_BUS电平主机到从机部分的电平转换。图3.3为数据集中器的M_BUS发送电路。图3.3M_BUS发送电路3.2.2M_BUS接收电路由于M_BUS从机到主机之间的通信是采用电流调制的方式进行的,一般在静态的时候,每个从机消耗1.5mA的电流。当从机向主机发送逻辑“1”的时候,总线电平几乎无变化;但是当从机向主机发送逻辑“0”的时候,一般从机会产生一个11mA-20mA的拉电流,这样总线上的电流就会增加11mA-20mA[30]。可以检测总线上的电流来进行数据的接收,但是电流检测起来不是很方便,而电压检测比较方便的,所以在M_BUS75 工程硕士学位论文总线上接入一个采样电阻R4,将电流的变化值转化为电压的变化值,这样我们只需要检测采样电阻R4两端的电压,就可以检测出当从机数据传输到主机时的电压变化情况,通过对采样的电压处理可以接收到从机上传的信号。在整个M_BUS接收电路中,由阻值为30欧的电阻R4进行采样,采样得到的电压值通过R8、R9、R10、R11和A1A组成1:1放大的差分电路输入,该电路可以抑制共模干扰,净化采样电压值。采样电压值Usam在A1A的输出端由R15和R16进行分压,通过主控芯片的A/D采样端口P0.23/M_BUS进行电压采样,然后将采集的电压加上一个33mv的数字电压值,通过主控芯片传递到D/A端口P0.26/AOUT进行16倍放大,得出的模拟电压值Usub与Usam进行减法并放大,得到电压Uout为:(3.3)得到的电压值Uout再与R18和R24分压得到的门限电压Uref送到A2B进行比较,高于Uref时,P0.11/RXD2口将会接收到3.3V的高电平,低于Uref时,P0.11/RXD2将会接收到低电平。这样该电路就实现了M_BUS从机到主机的发送电平转换。其中D34A、D34B是起到保护作用的钳制二极管,其钳制电图3.4M_BUS接收电路压达4.4V,工控模块LPC2387兼容3.3V-5V的电压,故可以很好的保护好芯片不会因为电流过载而烧毁,同时也保证了从机的逻辑电平到主控芯片接收的串口电平的转换。图3.4为M_BUS75 工程硕士学位论文接收电路。另外,该电平转换电路设计了总线保护功能。当M_BUS总线短路时,就会在M_BUS总线上产生很大的电流,经过采样电阻R4,在A1A的输出端口上产生很高的电压,而P0.23/M_BUS作为A/D采样口,采集R16上的分压,当检测到电压高于设定的门限电压值时,将LPC2387的P1.22/DOWN拉低,光耦TLP-521导通将OPA549电压输入端口+IN拉低至0V,从而输出电压为0V,有效地保护系统内的其它模块不会因为M_BUS总线短路而烧毁。3.3多通信接口的设计多通信接口的M_BUS主站中继器的主要特点就是,提供了多种通信接口,使得该系统可以挂在在不同数据总线上,实现数据多总线传输,提高了系统的通用性能。另外,选取的几种总线都是当今世界上应用范围比较广,且技术成熟的的通信总线,所以很大程度上的增强了系统的应用范围。另外我们采用模块化的设计思想,不仅减小了系统的开发周期,降低了工作人员的工作量,更提高了系统的稳定性和数据传输的可靠性。3.3.1M_BUS中继接口的设计系统中继接口的设计是为了实现系统的M_BUS中继器功能,系统可以负载一定数量的M_BUS从机。选取了TexasInstruments公司生产的TSS721作为M_BUS的终端收发芯片。该芯片根据M_BUS通信标准(EN1434-3)设计,可完成M_BUS主机与从机的通信功能。TSS721可以通过M_BUS总线供电和传输数据,具有防止极性颠倒,它与从机的微处理芯片有多种连接方式,对微处理器的供电有单独总线供电,单独电池供电和后备电池供电四种。依据从机不同的供电75 工程硕士学位论文图3.5中继接口电路方式,TSS721相应的连接方法也不同,本系统采用的是外部电源供电的连接方式。TSS721的两个BUSL引脚可分别通过两个220Ω限流电阻连接到M_BUS总线上,RX1端和TX1端分别连接微处理器的信号输出端和接收端。图3.5给出了为中继接口连接图。BUSL1和BUSL2通过220Ω的保护电阻连接M_BUS总线上,完成TSS721和M_BUS总线之间的数据交换,TX和RX负责和从机处理器之间进行数据交换。SC为采样电容连、接,保证了TSS721在标准的状态下,能够很好的获取静态电流。STC为供电电容接入端,表3.1TSS72功能引脚管脚名称功能1BUSL2接MBUS仪表总线,无极性2VB信号端3STC电流值调节电容4RIDD电流值调节电阻5PF供电欠压指示引脚6SC调节电容7TX1接收信号TC3比较结果的反向值,接至微处理器8TX接收信号经TC3比较后的结果输出端,接至微处理器9BAT电池供电端10VS微处理器由总线供电时,提供电压的比较功能11VDD微处理器由总线供电时的电源端12RX信号的接收端13RXI反向信号的接收端14RIS恒流源电流值的调节电阻15GND接地端16BUSL1接M_BUS仪表总线,无极性在总线空闲状态下提供附加脉冲电流。VDD为稳压输出端,可提供3.3V的电压维持从机供电。VS为总线或电池供电选择端。3.3.2CAN接口电路的设计本系统CAN总线接口电路采用PCA82C250作为CAN协议控制器和物理总线的接口。实现CAN总线的物理层传输,对总线提供差动驱动,对CAN控制器提供差动接收,且抗电磁干扰和宽频段的共模干扰能力强,速率可高达1Mbps,不上电时其节点对CAN总线无影响。由于CAN接口采用的是差分传输方式,有着较强的抗共模干扰能力,但如果共模电压超过CAN驱动器可以承受极限接收75 工程硕士学位论文电压时,CAN驱动器将会出现故障,以至于无法正常工作,严重时会烧毁芯片和设备。因此,为了增强CAN接口的抗干扰能力和满足工业更高的性能要求,有必要对挂载在CAN总线上电通信节点进行电气隔离。选用ADI公司的ADuM1201芯片作为电气隔离芯片[31],它采用的iCoupler技术是基于芯片尺寸的变压器,替代了光电耦合的隔离技术,由于取消了光电隔离的过程,有着光电耦合所不能替代的性能优势。隔离电压由B0505VV芯片产生,B0505vv为电源隔离芯片,内部集成DC-DC电源转换装置,由采集系统中7805芯片产的+5V电源供电,经过DC-DC隔离,产生+5V的电压为ADUM1201和PCA82C250供电,防止采集系统由于外部影响,造成电压过高,产生很大的电压扰动,不利于总线的数据传输。图3.6为CAN总线接口电路。PCA82C250完全符合和“ISO11898”标准,最高通信速率可达到1Mbps,具有抗汽车环境中的瞬间干扰,保护总线能力,防止电池和地之间的发生短路,低电流待机模式,未上电的节点对总线无影响,斜率控制,降低射频干扰(RFI);差分接收器,抗宽范围的共模干扰,抗电磁干扰(EMI);热保护;可连接110个节点。图3.6CAN接口电路示意图3.3.3Profibus接口电路的设计在进行PROFIBUS通信接口电路设计的时候,选用了广州致远公司的XGate-DPS10模块,该模块采用PROFIBUS-DP协议[32],符合EN50170V2和IEC61158标准,支持DP-V1;单电源5V供电,最大工作电流≤80mA,可实现PROFIBUS-DP用户参数化功能,提高总线效率,串行UART接口,波特率可自设置,适用于在嵌入式系统中方便快捷地开发与PROFIBUS-DP相适应的接口电路,该模块自适应主站波特率,支持高达12Mbps通信速率和244Byte输入、244Byte输出,集成增强的ESD保护,可以保护用户设备在严酷的工业环境下75 工程硕士学位论文正常工作,3.3V-5V系统兼容,外形尺寸:DIP24封装,体积极小,更适合嵌入式设计,由于Xgate_dps10具有的众多优点,其被广泛的运用在工业控制、现场通信、装备自动化、冶金工业、汽车制造、远程监控、智能仪表、科研机械、电力交通、设备制造、楼宇自控、邮政通信、地铁,轨道交通、军工、石化工业、船舶航海、医药食品制造业、纺织烟草制造业等领域。图3.7Profibus通信接口示意图图3.7是Profibus接口的外围连接电路。U7是XGate-DPS10模块,本设计使用UART接口与T2387相连接,波特率设为可以自适应。在使用其它波特率可以将ISP/CFG引脚拉低,利用配置软件进行配置波特率,ISP/CFG引脚同时用于在线升级固件,如果不使用该引脚配置时ISP/CFG则必须上拉到VCC。另外,XGate-DPS10模块需配套总线隔离收发器使用。选用广州致远公司生产的隔离收发器RSM485P,隔离电压高达3000V,该芯片提供总线终端电源,内置增强的ESD保护。U7的引脚TXD/MOSI、RXD/NSS分别连接到T2387的RXD、TXD,INT75 工程硕士学位论文连接到T2387的外部中断。上电或复位T2387,等待主控芯片的握手信号。在握手信号到来后,T2387对XGATE模块进行初始化,包括输入输出的数据长度,用户参数等。在接收、应答均没有错误的情况下,进入数据交换,实现主机与从机之间的通信数据通信;而当上位机向用户传输数据时,必须触发T2387的外部中断,进行数据传输。3.3.4以太网接口电路的设计T2387工控模块集成了以太网控制器,所以只需简单的选用网络隔离的物理芯片,通过调用广州致远公司提供的文件系统模板,调用提供的API接口函数便可以实现本机与以太网口的通信。本设计选用网络变压器HR601680,作为T2387工控模块与RJ45连接芯片,其内部具有差模耦合的电感线圈,将T2387的差分信号耦合滤波,增加信号的传输距离,还可以隔离连接的不同网络设备的不同电平,防止电压不兼容损坏设备。另外HR601680具有防1500V电压的隔离作用,对设备起到一定的防雷保护作用。图3.8为以太网的接口电路。芯片的TX+_NET、TX-_NET、RX+_NET、RX-_NET.与HR601680的1、3、6、8相连接,T2387芯片的AVDDT_NET和HR601680的2、7脚分别与高压电容C1、C2相连接地。R20、R21、R22、R23为网口为网口匹配电阻。HR601680内部的差分耦合线圈将T2387发送的数据通过差模耦合线圈耦合滤波,通过内部的电磁转换电路转换成网络需要的电平,通过RJ45的TX发送出去;接收信号时,通过差模耦合电路和电磁感应原理把网络信号的电平转换成芯片所能识别的信号电平。这样就完成了本系统的数据在以太网上双向传输的功能。图3.8以太网接口电路75 工程硕士学位论文3.3.5调试辅助接口电路设计RS-232-C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准[37]。选用美信公司的MAX3232芯片作为异步串行口的电平转换芯片。该芯片采用3.3v电压供电,内部集成了RS232驱动器和接收器,将TTL电平转换成RS232电平。异步串行口一般采用双工通信,通常一条接收线,一条发送线,一条地线,即可实现数据的串行收发。MAX3232外接四个0.1μF的电容,这四个电容与芯片内部的电路构成电荷泵,该电荷泵具有升压、反转电图3.9调试辅助接口电路压极性功能,产生+12v和-12v电源,提供RS232串口的电平。接收发送逻辑“1”时,RS232标准电平为-12V;接收发送逻辑“0”时,RS232标准电平为+12V,由于驱动器可以负载2500PF电容,所以通信距离收到电缆所带电容量的影响,一般来说,选用电容量不同的电缆,所传输的距离不一样,MAX3232转换成RS232电平属于单端传输,受到共地噪声和不可抑制的共模干扰,一般传输距离小于20m。图3.9为调试辅助接口电路示意图,T2387的UART0与MAX3232的T1IN和R1OUT连接,通过D9物理接口与电脑连接,实现数据的双向传输,该通信通道可与PC相连接,作为调试和发送命令的接口。3.4其它模块电路的设计3.4.1电源模块系统要进行正常工作,必须要有供电系统,所以供电系统的设计在本系统中至关重要,在设计电路电源的时候,不仅要考虑电源的电气参数,而且必须考虑到电源的稳定性和安全性,如电磁兼容性能、安全设计、温度范围、耐压值等因素,任何一个因素可能导致整个系统无法正常工作[34]。本设计共有四种电源:直流+36V,+24V,+5V,+3.3V。图3.10为电源电路框图。市电220V通过外接电源转换器得到36V电源,整个采集系统电源由外部接入36V直流电源转换而来。24V由外部接入的36V电源经三75 工程硕士学位论文端稳压芯片LM7824转换得到。5V也由36V经开关稳压芯片LM7805转换得到,模拟3.3V和数字3.3V是通过两片SPX1117M3-3.3转换的来,其中两路3.3V电源之间用磁珠隔离。36V为OPA549提供电源,24V为M_BUS接收电路提供电源,5V为CAN总线收发部分B0505VV供电、Profibus收发电路的Xgate_DPS10和RS485P供电,数字3.3V为RS232异步串行口的MAX3232芯片和CAN总线的电气隔离芯片ADUM1201供电,模拟3.3V和数字电压3.3V为T2387主控模块供电。图3.10电源电路框图图3.1124v和5v电源系统图3.123.3v电源系统LM7824、LM7805、SPX1117几款芯片有体积小,重量轻,电源转换效率和稳定性高等优点,在进行电源设计的时候,要考虑到匹配阻抗,滤波等方面的因素。在3.3V的数字和模拟电源之间,数字地和模拟地之间要用磁珠75 工程硕士学位论文或者0欧姆电阻隔离。图3.11和图3.12为电源模块电路图。3.4.2J-TAG接口电路JTAG(JointTestActionGroup)(联合测试行为组织)接口电路是一个在线调试和下载的接口,传统的JTAG口只是用于对芯片进行检测,不支持在线调试,本模块设计了JTAG调试接口,不仅可以用于下载程序还可以用于在线调试程序,用户可以通过配套的软件H-Jtag将程序和数据下载到T2387的FLASH芯片中去。图3.13为Jtag接口电路。相关JTAG引脚的定义为[35]:图3.13Jtag接口电路TCK—时钟输入引脚;TDI—为数据输入引脚,数据通过TDI引脚输入JTAG接口;TDO—为数据输出引脚,数据通过TDO引脚从JTAG接口输出;TMS—为测试模式选择引脚,通过设置该脚,可以知道JTAG处于哪种测试模式;nTRST为测试复位,输入引脚,低电平有效。3.4.3复位电路与ISP电路在进行系统设计的时候,无论是在单片机、DSP还是ARM系统都会涉及到复位电路。复位电路的好坏直接影响到整个系统工作的有效性,系统复位电路广泛被运用于防止程序跑飞、系统死机等情况。复位电路用来给CPU和系统各个部件一个确定的初始状态,使得整个系统从确定的初始态开始运行。复位电路通常有两种:手动复位电路和上电复位电路。图3.10是本系统的手动复位电路。T2387工控模块自带复位电路,复位门槛电压为2.93V[36]。如果VDD3.3电源电压低于2.93V时,CPU将一直处于复位状态,只有高于2.93V75 工程硕士学位论文时才能够脱离复位状态。如果用户需要手动复位,只需在SYS_RST与DGND之间连接一个按键即可,电路如图3.10所示。按键被按下后,强制拉低CPU复位引脚,从而达到系统复位的目的。并联的ESD保护器件PESD5V0S1UB用来保护工控模块,以免复位引脚受到静电干扰而产生意外复位。当用户需要擦除TinyARM工控模块的加密位或者程序时,就要使用ISP功能,因此用户必须在底板设计ISP电路,如图3.14所示。如果在系统复位期间ISP跳线短接,那么模块将运行自身的Boot代码,而不会运行用户程序。当用户需要运行自己的程序时,在复位期间,必须断开跳线连接。在使用JTAG调试程序期间,建议短接该跳线。程序调试完毕后脱机运行时,跳线必须要断开。图3.14复位电路与ISP电路3.5系统pcb图图3.15所示的是系统的模块的PCB图。采用双层板设计,在设计过程中,使用了贴片和直插式封装2种形式,采用串口和PC连接,在PC上使用JTAG75 工程硕士学位论文图3.15PCB实物图对编写的软件进行调试和下载,白色的线为JTAG接口线,右边四个接口由上至下分别为串口、以太网口、CAN总线接口、PROFIBUS接口和M_BUS接口,右边由上至下为M_BUS中继接口和电源接口,中间的直插的多脚模块为T2387,下方白色的电阻为水泥电阻。在焊接过程中,需要安装支架,并采取隔热措施,保证该控制板能正常运行。本电路板采用的电源转换芯片有3个,有1路输入电压36V,由于在实际运行中,芯片发热问题严重,需要适当采取相应的散热措施。3.6本章小结本章详细介绍了多通信接口的M_BUS主站/中继器硬件设计及实现方案。在给出了系统硬件总体设计的基础上介绍了各硬件模块设计方案和工作原理,详细介绍了系统四种通信接口电路、M_BUS收发电路以及各个相关的功能模块的设计与实现。硬件的设计在一定程度上与软件功能是密切相关的,某些具体的硬件模块设计是出于整个系统的功能和软件的设计的需要。75 工程硕士学位论文第四章多通信接口的M_BUS主站/中继器软件设计与实现系统的软件流图按顺序和层次可划分为:系统的通信模式配置和系统的主程序设计。在进行主程序设计前,对每种通信总线的帧结构有必要做出详细的解析,为的是后面进行数据处理的时候,能够直观清晰、知道整个主程序设计结构和流程。另外,由于本系统的接口较多,根据不同的通信接口可划分为:CAN、Profibus、以太网和中继器通信模式。在进入相应的通信模式之前必须要通过调试辅助接口对系统进行配置,配置的目的是为了是系统进入相应的通信模式。为了软件设计思路清晰,流程清楚,软件结构紧凑,设计时尽量采用调用API接口函数来进行,这样写出的代码通俗易懂、便于移植,有利于日后的维护与升级。软件平台是软件的基础,在进行系统软件设计的时候,有必要介绍系统的软件开发平台,这是软件进行编写和调试的平台,但是软件平台不是重点,所以只需要简要介绍。4.1系统主程序设计软件是基于硬件来编写的,为了更好的使用户对各种模式的软件的设计进行了解,采用的是模块化的方式对每种通信模式下的软件流程进行设计。由于MBUS总线为主从通信模式,所以系统的程序设计思想是:系统接收到总线上的命令之图4.1系统通信模拟图后,分析该命令,并将命令转换成M_BUS帧格式,下发至M_BUS从机。M_BUS从机在接收到命令之后,响应上位机的命令,系统在接收到M_BUS75 工程硕士学位论文从机的响应后,将数据解包封装成相应的总线帧结构返回给通信总线。整个M_BUS软件部分分别为CAN、Profibus、以太网和中继器模式四种通信模式。图4.1为系统通信模拟图,多通信接口的M_BUS主站/中继器主要的任务就是命令分析和数据封装。4.1.1配置模式设计多通信接口的M_BUS主站/中继器有四种模式:在中继器模式下,由M_BUS收发电路、T2387和TSS721构成,通过M_BUS收发电路与M_BUS从机相连接,图4.2系统配置模式流程图通过TSS721与M_BUS主站连接,可以放大再生信号,采用异步串行中断方式收发数据。另外,多通信接口的M_BUS主站/中继器依据与上行接口通信可以分为:Profibus、CAN、以太网三种模式。Profibus、CAN、以太网接口与上位机75 工程硕士学位论文或其他节点通信,使用M_BUS收发电路与M_BUS从站进行通信。多通信接口的M_BUS主站/中继器做主站的时候,主芯片需要处理数据,将M_BUS从站的数据打包上传至上位机,还要接收上位机下发的指令,将指令存储,按照制定的通信协议将命令下发,同时,T2387片上集成2M的NandFlash,可以存储大量的数据。在用户使用该系统前,需要进行相应的系统配置,整个系统软件的设置模式如图4.2。利用调试辅助接口进行模式选择,下发相应的配置命令,进行模式的选择配置,命令码如下:0x10:CAN模式0x20:Profibus模式0x30:以太网模式0x40:中继器模式发送的配置格式为:0xAA+命令码+0x16。其中,0xAA为起始字节,0x16为结束符。例如,用户要选择CAN通信模式,则下发的配置数据(十六进制)为:AA1010。系统在接收到该数据,且进行配置成功后,将会返回AA1016,通知用户,系统模式配置成功;否则报错。如果在上电后的30ms内,用户不进行配置,则默认为上次断电时,系统的配置模式。例如,用户的上行接口为CAN接口,且经过30ms后,一般在进行初次使用时,必须要进行配置,否则系统无法完成初始化,便无法使用。软件实现的部分代码如下:If(ReceiveDataLen=0)//表示无配置数据{Modle=ReceiveDataLen_last;//读上次配置数据switch(Modle){case:0x10:enter(modle_CAN);break;case:0x20:enter(modle_Profibus);break;case:0x30:enter(modle_Ethernet);break;case:0x40:enter(modle_repeater);break;default:break;}else//表示接收到配置数据{MessagePZ=ReceDataBuf[0];switch(MessagePZ){75 工程硕士学位论文case:0x10:enter(modle_CAN);break;case:0x20:enter(modle_Profibus);break;case:0x30:enter(modle_Ethernet);break;case:0x40:enter(modle_repeater);break;default:break;}以下为中继器模式选择子函数,其余的模式选择子函数以类似中继器模式选择子函数的方式进行编写。中继器模式选择子函数,包含了很多函数的嵌套,比如:开启自身模式,停止其它模式,写入标识符等等。enter(modle_Repeater)//模式选择子程序{Stop(modle_CAN);//停止模式CANStop(modle_PROFIBUS);//停止模式PROFIBUSStop(modle_Ethernet);//停止模式CANEthernetOpen(modle_Repeater);//开启模式RepeaterRepeater=0x40;ReceiveDataLen_Last=0x40;Return(Ethernet);//返回配置成功,中继器配置成功返回为0x40}4.1.2CAN通信模式的软件设计4.1.2.1CAN模式下的初始化系统上电后,初始化串口1、串口2、设置串口中断优先级、串口接收模式、AD采样频率、CAN控制器,包括工作方式、接收滤波方式、接收代码寄存器、接收屏蔽寄存器、波特率参数和中断允许寄存器。初始化部分代码:charUartArg[]="BaudRate=4800RxBufSize=512TxBufSize=256FifoLen=8";UartInit(UART1,UartArg,NULL);charUartArg[]="BaudRate=4800RxBufSize=512TxBufSize=256FifoLen=8";UartInit(UART2,UartArg,NULL);charpucCanArg[]="BaudRate=1000000RxBufSize=10Mode=0";CanInit(CAN1,pucCanArg,NULL);          WDTInit(WDT0,Wdtpara,NULL);SetVICIRQ(WDT0_IRQ_CHN,6,(uint32)WDT0_ISR);ADCInit(ADC0,adc_para,NULL);SetVICIRQ(ADC0_IRQ_CHN,7,(uint32)ADC0_ISR);//AD中断设置75 工程硕士学位论文4.1.2.2CAN与上位机的报文处理流程CAN总线通信程序是指在嵌入式工控模块T2387的控制下,M_Bus主站将M_Bus从站传输的数据通过总线发送给上位机或者其他的CAN节点使用,以及接收由上位机或者其他主站发送给本模块的保温并将其存入Flash中。由于报文传输的过程随机性很高,为了节省CPU的开销,防止其不停的查询报文接收状态图4.3can报文的处理流程图标志采用中断来接收CAN总线上传来的报文,我们采用中断方式接收报文。因为发送报文的过程是有CPU控制的,所以采用查询方式发送报文。并且开辟了CAN报文缓冲区,防止在少数特殊的情况下,由于报文的大量涌入而造成报文丢失。CAN网络中的通信方式是主从模式:即命令/响应通信方式:通信由CAN总线上的主站发起、接收到命令帧的从机返回响应帧。初始化完成之后,等待上位机的CAN75 工程硕士学位论文报文,根据对验收滤波方式的设置,如果CAN报文中的目的地址与CAN的节点地址是否一致,如果不一致,则丢弃报文;如果一致,则将接收到的报文存储到FIFO,并产生硬中断通知CPU接收处理报文。在接收到报文之后,判断是发送方与CAN节点否建立连接,如果没有建立连接,则丢弃该报文,同时异常响应,发送响应报文;如果建立了连接,则验证功能码,功能如果为非法功能码,则异常响应,发送相应报文。如果为功能码有效,执行相应的操作,返回正常响应的报文,一般正常响应的返回报文为功能码字段与接收的命令帧的功能码字段相同,异常响应返回功能码的值为(0x0F)。4.1.2.3CAN接收上位机的报文流程CAN报文接收采用的是中断方式,即从机的ID与命令帧的目的ID一致,通过了验收滤波器,将数据存储在FIFO中,产生接收中断,从机立即开始读取接收缓冲区内的报文,释放接收缓冲区,进行响应的命令参数分析,并判断缓冲区内的是否为空,如果为空,则推出中断,不为空则继续接收缓冲区内的报文。图4.4CAN报文接收流程75 工程硕士学位论文4.1.2.4CAN对上位机报文发送流程M_BUS主站向上位机发送CAN报文,采用的是查询方式,即从机节点检测总线上是否空闲,如果空闲,则向总线发送数据报文。数据的发送由CAN控制器根据CAN协议规范自动完成。MCU将要发送的数据传送到发送缓冲区并置位命令寄存器的TR(发送请求)位。报文发送流程如图4.5所示。图4.5CAN报文发送流程4.1.2.5CAN模式系统流程图在进入CAN通信模式后,等待上位机的CAN中断,中断到来之后,接收命令帧,提取命令码和地址码,将其封装为0xAA+地址+命令+0x16的形式,下发至M_BUS从机,然后等待M_BUS从机上传数据。在接收到数据之后,将数据封装成为CAN总线的帧格式,通过CAN发送接口上传至CAN总线。75 工程硕士学位论文图4.6CAN模式系统流程图4.1.3Profibus-DP通信模式的软件设计4.1.3.1Profibus-DP的初始化在进行prodibus-DP通信的时候,首先M_BUS主站/中继器进该模式后,初始化串口1、串口2、设置串口中断优先级、串口接收模式、AD采样频率,等待XGATE_DPS模块发送握手信号“U”给T2387;T2387在接收到握手信号“U”后,形成初始化报文并发送给XGATE_DPS模块;XGATE_DPS模块在接收到初始化报文后,返回一个响应,通知T2387初始化是否成功,如果失败,则T2387重新形成初始化报文,并向XGATE_DPS模块发送新形成的初始化报文,继续等待初始化应答;如果初始化成功,则进入数据交换。初始化报文里面包含必要的一些参数,这些参数决定了Profibus的身份和属性,只有将模块正确的初始化了,才能将M_BUS主站连接到Profibus总线上进行通信75 工程硕士学位论文。初始化的参数包含了数据集中器/主站的站地址、ID号、I/O口的配置数据长度和配置数据、接收数据长度、发送数据长度、用户参数长度。其中,站地址可以是1-126,。每一个PI认证的产品都有一个唯一的ID号,ID号必须和GSD文件中的ID号一致。收发数据长度是指:在数据交换状态下,XGATE_DPS接收用户输入数据和XGATE_DPS模块向用户输出的最大字节数。图4.7Profibus初始化流程图#defineDevice_Address((UBYTE)8)/*从站地址#defineDevice_ProductID((UWORD)0x0f01)/*ID#defineDevice_SD_In_Len((UBYTE)36)/*输入数据长#defineDevice_SD_Out_Len((UBYTE)6)/*输出数据长#defineDevice_User_Prm_Data_Len((UBYTE)0x03)/*用户参数长度以上代码设置从站地址为8,ID号为0X0f01,输入数据长度为36,输出数据长度为6,无用户参数输入,要想设置用户参数输入,格式是:用户参数长度+3。组织初始化数据。初始化部分代码如下:WDTInit(WDT0,Wdtpara,NULL);SetVICIRQ(WDT0_IRQ_CHN,6,(uint32)WDT0_ISR);75 工程硕士学位论文ADCInit(ADC0,adc_para,NULL);SetVICIRQ(ADC0_IRQ_CHN,7,(uint32)ADC0_ISR);//AD中断设置charUartArg[]="BaudRate=4800RxBufSize=512TxBufSize=256FifoLen=8";UartInit(UART1,UartArg,NULL);charUartArg[]="BaudRate=4800RxBufSize=512TxBufSize=256FifoLen=8";UartInit(UART2,UartArg,NULL);XGate_dev.attribute.Address=Device_Address/*从站地址temp=Device_ProductID;XGate_dev.attribute.ProductID[0]=(UBYTE)tempXGate_dev.attribute.ProductID[1]=(UBYTE)(temp>>8)/*ID高字节XGate_dev.attribute.IO_CFG_LEN=pother->cfglen;memcpy((XGate_UIN8_PTR)XGate_dev.attribute.Cfg_Data,(XGate_UIN8_PTR)pother->cfgdata,pother->cfglen);XGate_dev.gen_data.cfg_data=(UNION_CFG*)XGate_dev.attribute.Cfg_Data;XGate_dev.attribute.SD_In_Len=Device_SD_In_LenXGate_dev.attribute.SD_out_Len=Device_SD_out_Len4.1.3.2Profibus-与上位机数据交换流程在说明整个Profibus模式下的系统工作流程之前,介绍系统与上位机方向上的数据处理流程。Profibus模式下的通信采用主/从模式,在进入M_BUS主站/中继器和上位机进入数据交换之后,每个M_BUS主站/中继器作为Profibus从站挂在在总线上,被主站轮询时,每隔一定的时间向M_BUS主站/中继器询问是否有数据交换。在非周期通信的过程中,M_BUS主站/中继器作才能接到主站的新的命令,主站在接收到命令之后,进行处理,继续周期性的有主站进行数据交换。在进行数据交换的时候,可以调用接口函数可以方便的实现,T2387与Xgate_DPS模块之间的通信,75 工程硕士学位论文图4.8Profibus与上位机通信流程图发送程序如下:unsignedcharSerial_Send(STRUC_UART*serial,STRUCT_CMD*pData){#ifdefC_51UBYTEdataret_value;#elseUBYTEret_value;#endif/*打包并发送各帧*/serial->send.frame.SD=0x68;/*发送帧的起始字符serial->send.frame.CMD=pData->CMD;/*发送帧的响应码;serial->send.frame.SpeByte=0;/*错误指示位75 工程硕士学位论文serial->send.frame.SpeByte&=~Error_bit;/*错误指示位if(pData->Clr_AL_ACK){serial->send.frame.SpeByte|=Alarm_Ack_bit;/*Alarm_Ack指示位}else{serial->send.frame.SpeByte&=~Alarm_Ack_bit;/*Alarm_Ack指示位}/*以下代码发送帧的响应信息码*/serial->send.frame.CMDinfo=pData->LEN/*此响应帧包含serial->send.frame.SpeByte|=(1<<0X04);/*本次信息帧包括的帧个数serial->send.frame.SpeByte|=1/*该帧是本次全部数据的第i帧memcpy((XGate_UIN8_PTR)serial->send.Data,(XGate_UIN8_PTR)&serial->send.frame.SD,4);/*以下代码发送帧的数据*/memcpy((XGate_UIN8_PTR)&serial->send.Data[4],(XGate_UIN8_PTR)pData->pDATA,pData->LEN);/*以下代码发送帧的CRC校验值*/serial->send.Data[pData->LEN+4=CRC_Crc8((XGate_UIN8_PTR)serial->send.Data,pData->LEN+4);/**发送该帧*/ret_value=Send_Process(serial,5+pData->LEN);returnret_value;}4.1.3.3Profibus模式系统流程在PROFIBUS通信模式下,上位机通过非周期数据交换下发命令帧,M_BUS主站/中继器在接收到命令帧后,提取功能字段和地址字段,将其封装为0xAA+地址+命令+0x16的形式,下发至M_BUS从机,然后等待M_BUS从机上传数据。在接收到数据之后,将数据按照PROFIBUS的SD2帧格式封装,上传至PROFIBUS总线。75 工程硕士学位论文图4.9Profibus模式系统流程图4.1.4以太网通信模式的软件设计4.1.4.1以太网模式下的系统初始化在以太网模式下,系统将初始化初始化串口1、串口2、设置串口中断优先级、串口接收模式、AD采样频率、定时器、网关地址、IP地址、端口号、子网掩码。初始化部分代码如下:uint8MCU_IP[4]={192,168,0,253};uint8MCU_Mark[4]={255,255,255,0};uint8MCU_GateWay[4]={192,168,0,254};uint16MCU_Port=1200;uint8PC_IP[4]={192,168,0,131};uint16PC_Port=2200;75 工程硕士学位论文uint8MyIp[]={192,168,0,235};//本低IP地址uint8MyGateWay[]={192,168,0,1};//网关uint8MyMark[]={255,255,255,0};//子网掩码charUartArg[]="BaudRate=4800RxBufSize=512TxBufSize=256FifoLen=8";charUartArg[]="BaudRate=4800RxBufSize=512TxBufSize=256FifoLen=8";TCP_IPInitial(MyIp,MyGateWay,MyMark);//TCP/IP初始化UartInit(UART1,UartArg,NULL);SetVICIRQ(UART1_IRQ_CHN,9,(uint32)UART1_ISR);UartInit(UART2,UartArg,NULL);SetVICIRQ(UART2_IRQ_CHN,9,(uint32)UART2_ISR);WDTInit(WDT0,Wdtpara,NULL);SetVICIRQ(WDT0_IRQ_CHN,6,(uint32)WDT0_ISR);ADCInit(ADC0,adc_para,NULL);SetVICIRQ(ADC0_IRQ_CHN,7,(uint32)ADC0_ISR);//AD中断设置4.1.4.2系统与服务器的TCP/IP通信流程在进行网口通信软件的设计中用到了TCP/IP协议,利用里面提供的以太网通信的API接口函数,可以方便的实现以太网的通信。在进行客户机与服务器通信的之前,必须将系统进行初始化,初始化的内容:初始化客户机和服务器的IP地址、网关和端口号。在初始化完成之后,服务器和客户机将会创建各自的套接字,套接字是TCP/IP网络通信的基本构建模块,实际是一个可以关联名字的通信端点。套接字有两种类型:流套接字和数据包套接字。在套接字创建后通过Bind()函数将已经创建了但是没有连接的SOCKET绑定本地的IP和服务端口号。这时候,TCP服务器将调用LISTEN()函数进入监听模式,并设定监听的连接数。此时,客户端将调用CONNECT()函数与服务器进行连接,连接成功双方都返回连接序号。双方在连接成功之后,便根据得到的序号进行数据交换。数据交换完毕,调用函数CLOSE()关闭双方的连接,并删除套接字,通信结束。图4.14为TCP/IP通信流程图。75 工程硕士学位论文图4.10TCP通信的流程图cliaddr.sin_family=0;//设置MCU(客户端)的IP地址和端口getlocalip(cliaddr.sin_addr,0);cliadr.sin_port=MCU_Port;servadr.sin_family=0;//设置PC(服务端)的IP地址和端口servadr.sin_addr[0]=PC_IP[0];servadr.sin_addr[1]=PC_IP[1];servadr.sin_addr[2]=PC_IP[2];servadr.sin_addr[3]=PC_IP[3];servaddr.sin_port=PC_Port;for(i=0;i1300){cliaddr.sin_port=1200;}Temp=connect(s[i],(structsockaddr*)&servaddr,sizeof(servaddr));if(Temp!=SOCKET_ERROR){TCPLinkFlag[i]=1;TCPNo[i]=Temp;}4.1.4.3以太网模式下的系统流程在进入以太网通信模式后,等待服务器的网口中断,中断到来之后,接收数据包,提取数据包命令码和地址码,将其封装为0XAA+地址+命令+0X16的形式,下发至M_BUS从机,然后等待M_BUS从机上传数据。在接收到数据之后,将数据打包成以太网的帧格式,上传至服务器。75 工程硕士学位论文图4.11以太网模式系统流程图4.1.5中继器通信模式的软件设计4.1.5.1中继器模式下的初始化在中继器模式下,系统将初始化初始化串口1、串口2、设置串口中断优先级、串口接收模式、AD采样频率、定时器。初始化部分代码如下:UartInit(UART1,UartArg,NULL);SetVICIRQ(UART1_IRQ_CHN,9,(uint32)UART1_ISR);UartInit(UART2,UartArg,NULL);SetVICIRQ(UART2_IRQ_CHN,9,(uint32)UART2_ISR);WDTInit(WDT0,Wdtpara,NULL);75 工程硕士学位论文SetVICIRQ(WDT0_IRQ_CHN,6,(uint32)WDT0_ISR);ADCInit(ADC0,adc_para,NULL);SetVICIRQ(ADC0_IRQ_CHN,7,(uint32)ADC0_ISR);//AD中断设置4.1.5.2中继器模式下的系统流程选择中继器模式之后,进行串口通信。M_BUS通信是异步、半双工模式。采用中继器的串口1与下位机M_BUS从机进行通信,选择串口2作为中继器与M_BUS主机进行通信。系统初始化,设定看门狗,初始化串口的波特率,收发缓存区的大小,自动匹配波特率。初始化成功之后,UART1和UART2均处于接收数据的状态,等待外部串口中断,UART1和UART2均等待数据中断,在中断到来后,将数据读入,每次读取一个字节,并将该字节发送至对方的接收buf寄存器,对方将接收到该字节并将其发送至M_BUS总线。在发送完成后,必须将发送中断标志位软件清0,将发送的串口设置为接收状态。图4.12中继器流程图75 工程硕士学位论文4.2相关通信接口的帧结构由于每种数据通信接口的帧结构不同,而对帧的处理是系统软件设计的重中之重。为了便于理解,在进行系统介绍之前,介绍下每种通信总线的帧结构。本系统设计为通用的数据集中控制装置,系统参考了相应的标准通信总线帧结构,以下分别介绍相关通信结构的帧结构。4.2.1M_Bus帧结构1.M_BUS从机应答帧结构本系统制定了标准的M_BUS应答帧结构,在M_BUS从机将数据上传至M_BUS主站中继器的时候,M_BUS主站/中继器将会按照这种指定的协议来接收数据帧,接收时,检测到0x68表示一帧数据的开始,检测到0x16表示一帧数据的结束。,在设计M-Bus的应用层回应方向的数据协议的时候,参照了数据交换标准EN1434-3中的标准化应用层协议。M-BUS通信回应方向的协议帧格式如图4.1所示。图4.13M-BUS回应方向的帧格式每个M_BUS帧由帧起始符、仪表类型、从站地址、控制码、数据长度、数据域、校验码及帧结束符等8个域组成,每个域由若干字节组成。ST:表示一帧信息的开始,固定为0x68。仪表类型 :是指参与通信的从站属于哪种类型的计量仪表。10H—19H为水表,20H—29H为热量表,30H—39H为燃气表,40H-FFH用户自定义地址域  :由1个字节组成,广播地址为FFH。回应的控制码:由一个字节构成01h——查询从机是否存在;02h——启动从机定时发送数据;03h——禁止从机定时发送数据;04h——主机读取某个从机节点的数据;05h——读所有从机采集的数据;75 工程硕士学位论文06h——读从机地址;07h——更改通信速率;08h-ffh:用户可以自己定义数据长度:用户数据字段的长度,读数据时数据长度小于或等于64H。写数据时数据长度小于或等于32H。数据长度等于零表示无数据。校验码:从ST字段(包括ST)到CS字段之前的所有数据不进位按位和得出的结果。2.M_BUS从机命令帧结构M_BUS主站在接收到总线上下发的命令后,通过分析,检测出指令,然后将指令转换成为M_BUS命令帧的形式。命令帧由四个字节组成,顺序为命令帧起始字符0xAA、一字节地址、一字节控制命令、一字节结束符0x16。格式:0xAA+地址+控制码+0x16。控制码如下:01h——查询从机是否存在;02h——启动从机定时发送数据;03h——禁止从机定时发送数据;04h——主机读取某个从机节点的数据;05h——读所有从机采集的数据;06h——读从机地址;07h——更改通信速率;08h-ffh:用户可以自己定义4.2.2CAN帧结构一个标准的CAN帧有13个字节:第一个字节包含了CAN的标识符和本帧的数据长度:FF标识该帧为扩展帧或是标准帧:FF=0时,该帧为标准帧;FF=1时,该帧为扩展帧。75 工程硕士学位论文RTR表明该帧为远程帧或是数据帧:RTR=0时,该帧为数据帧;RTR=1时,该帧为远程帧。BIT6、bit5为保留位,不能写入数据。接下来四个字节为CAN帧的ID,扩展帧的ID有效位为29位,标准帧的ID有效位为11位。最后的八个字节为数据字段,有效的数据长度由首字节标识字段的D1、D2、D3、D4位决定。考虑到CAN的扩展性和通用性,采用扩展帧作为本系统CAN的传输帧格式,一个标准的远程帧的帧结构:图4.14CAN帧格式帧标识的含义:byte2(D21——D28):目标节点的地址(0-63);(广播地址地址为0xFF)byte3(D13——D20):本机节点的地址byte4(D10——D12):功能码三个位,默认为000。byte4(D5——D9) :本次传输的帧总数byte5(D0——D4) :本帧是当前第几帧byte6-byte13:本帧的数据字段CAN帧的命令格式与CAN帧回应方向的帧格式相似,功能码字段也为000。为了方便命令功能扩展,将CAN的命令字段放在CAN帧数据段的第2个字节,第一个字节放M_BUS从机的地址。目标地址段放M_BUS主站/中继器的地址、源地址放命令方的地址。这样的双地址结构,可以有利于发送命令方直接通过M_BUS主站中继器访问M_BUS从机。4.2.3Profibus帧结构Profibus标准由Profibus-DP、Profibus-fms、Profibus75 工程硕士学位论文-PA四种版本构成构成。本系统设计Profibus通信接口,采用的是Profibus-DP协议,是一种低成本、高速度的通信方式,规定了用户数据如何在Profibus总线与主站进行通信。主/从应答帧结构实现通常的数据通信,数据的通信由主机发起,称为命令帧;从机接收到后进行应答,称为响应帧。命令帧/响应帧使用物理独立的两个存贮空间。图4.15Profibus帧格式SYN同步时间,最小33个空闲位;SD1~4开始界定符,区别不同的帧格式;SD1=0x10,SD2=0x68,SD3=0xA2,SD4=0xDCLE/LEr8位位组长度,一般LE=LEr,其允许值位4-249DA目的地址,只是接收该帧的站点SA源地址FC帧控制字节,包含用于该帧服务和优先权等的详细说明DATA_UNIT数据字段,包含有效的数据信息FCS帧校验字节,和校验ED帧结束界定符号L信息字段长度SC短帧应答(0xE5)Profibus-dp通信有5种帧结构:SD1、SD2、SD3、SD4和SC(短帧应答)。SD1帧(请求/应答帧)是主站在轮询从站是否接入站点时使用,通信之初,主站向所属126个从站轮流发出SD1帧,如果从站挂在在总线上,则作SD1出相应的应答,表示已经接入,可以通信75 工程硕士学位论文;如果没有挂在在总线上,则不作应答,该帧的起始符为0x10。SD2与SD3帧功能一样,都是作为有数据段的请求响应帧帧,唯一不同是SD2的数据单元长度可变0~244字节,而SD3的数据字段固定只有8字节;通常SD2帧因为其数据单元长度可变,而使用较多,SD2起始字符为0x68、SD3起始字符为0xA2。SD4令牌帧,主站在抢夺总线控制权的时候,使用该帧,该帧只有源地址和目的地址,只在主站之间循环,主从通信不适用该帧,该帧起始字符为0xDC。SC常作为短帧应答,譬如主站对从站进行参数传递,从站在接收到参数后,可以返回0xE5作为短帧应答。Profibus帧的命令格式与Profibus帧回应方向的帧格式相似,同CAN总线帧格式一样,为了方便命令功能扩展,采用SD2帧,在非周期数据交换中,将Profibus的命令字段放在Profibus帧数据段的第2个字节,第1个字节放M_BUS从机的地址。目标地址段放M_BUS主站/中继器的地址、源地址放命令方的地址。4.2.4以太网帧结构以太网的通信主要依靠光纤收发器作为转换设备,以光纤作为远距离通信的传输介质以太网(Ethemet)上发送的数据是按一定格式进行的,此数据格式称为帧,以太网的帧有多种格式,其中由RFC826文档定义的帧格式结构简单,应用广泛。帧结构如下图:图4.16以太网帧结构RFC8941、在MAC帧开始之前有56位同步位和8位帧首界定符,56位特殊的位串位于实际的以太网帧开始之前,8位帧界定符以10101011结尾,表明了目的地址域的开始,56个同步位和8位帧首界定符不作为长度的一部分,同步位用来同步收发双方的时钟,并且指明了信息的传输速率;以太网中,一帧数据的开始是由帧首界定符来表示的;75 工程硕士学位论文2、帧的目的地址,长度为6个byte,就是该帧信息最终要发送到目的主机的MAC地址,如果为FFFFFFFFFFFFH就是任何网卡可接收的广播地址;也可以是组地址,最多每组可有64个节点接收同一帧信息;3、起始地址,发送端的MAC地址:4、类型,表明该信息帧的类型,如0800H代表的是IPv4协议,0806H代表ARP(地址解析协议),8035H代表RARP(逆向地址解析协议)等等;其中ARP请求/应答字段和逆向ARP(RARP)请求/应答字段的内容为:2字节的硬件类型、2字节的协议类型、1字节的硬件地址长度、1字节的协议地址长度、2字节的操作数、6字节的发送方硬件地址、6字节的发送协议地址、6字节的目标硬件地址、2字节的目标协议地址.5、数据段,数据域的长度在46—1500字节之间。6、数据校验位,由网卡计算出结果并附加到帧里。4.3本章小结本章对主要介绍了M_BUS主站/中继器的软件设计部分,分别对程序的主体部分设计、通信协议及帧结构的设计、对实现几种总线模式通信等方法进行了较深入的探讨。软件设计是整个系统设计的重点和难点,所花费的时间也是最多的,本章的内容只是对软件设计在整体和重点内容上进行了深入的介绍,在实际的开发中还会遇到更的细节问题,比如字符串处理,TCP/IP自动连接等问题。75 工程硕士学位论文第五章系统运行及测试系统在设计完成后,必须进行相应的功能测试。系统将在不同的通信模式下进行测试:1、中继器模式。2、CAN模式3、Profibus模式4、以太网口通信在每种通信模式下,测试通信是否正常,即挂接在M_BUS主站/中继器上的M_BUS从机是否可以将采集到的数据通过M_BUS主站中继器的不同接口上传至相应的数据通道上。MBUS从机可以采集的数据类型很多,有水位、烟雾、温度等。考虑到实验条件,采用常温测试,测试温度数据书否能够通过多通信接口的M_BUS主站/中继器上传至相应的总线上。M_BUS从机以热电偶作为传感器,采集温度。由于是常温,每个温度值只用一个字节表示,因为一个字节可以表示00H—FFH(十进制0—256),温度值=十六进制数*系数0.25,即可以表示的温度值从0到64℃,而常温的温度不可能超过64℃,所以每个温度设定为一个字节。M_BUS主站每次可以接收32个温度数据(4块温度采集板,每块温度采集板上面采集8个温度值)。5.1中继器模式通信测试在进行中继器通信测试时,系统下接4个M_BUS从机,每个M_BUS从机挂接8个温度探头,采集温度数据,每个温度数据占1个字节,每个从机消耗电流为30mA。首先进入中继器模式,主站下发广播模式命令:AA000056(该命令为要求M_BUS从机上传数据),通过中继器将数据图5.1中继器连接实物图75 工程硕士学位论文传至M_BUS从机,M_BUS从机在接收到主机的命令后,将每个采集板采集的温度顺序上传,每个从机之间上传温度数据间隔为50ms。图5.1为中继器测试连接实物图,图5.2为温度采集板通过MBUS主站/中继器上传上来的数据。图5.2测试数据上传的数据按照M_BUS标准帧格式:0x68为起始字符,20h为仪表类型,02h为从机站号,05h为控制命令,08h为数据长度,后面为转换后,取整的十进制温度值,0x16为结束符号。5.2CAN模式通信测试在进行M_BUS主站CAN模式通信测试时,通过系统的CAN通信接口与广州致远公司生产的CANNET-200调试模块相连接,下接4个M_BUS从机,每个M_BUS从机挂接8个温度探头,采集温度数据,每个温度数据占1个字节。首先进入CAN模式,主站下发广播模式命令:AA000056(该命令为要求M_BUS从机上传数据),通过多通信通道的MBUS主站/中继器将数据传至M_BUS从机,M_BUS从机在接收到主机的命令后,将每个采集板采集的温度顺序上传,每个从机之间上传温度数据间隔为50ms。图5.3和图5.4分别为CAN测试模拟图和实物图。图5.3测试CAN接口模拟图75 工程硕士学位论文图5.4测试CAN模式通信实物图CANET-200是广州致远电子有限公司开发的嵌入式网络设备,它内部集成了两路CAN-bus接口CANET-200和EtherNet接口以及TCP/IP协议栈,用户利于它可以轻松完成CAN-bus网络和EtherNet网络的互连互通,进一步拓展CAN-bus网络的范围。在进行测试时候,首先要设置CANNET与PC在一个网段,CANNET在出厂时设置了一个默认的IP地址(192.168.0.178)和子网掩码(255.255.255.0),所以用户在进行测试时,必须将CANNET设置与PC机一个网段或者是将PC机IP设置与CANNET的IP一个网段。在设置完成后,点击打开主机面点击:搜索,就会弹出搜索到的CANNET的IP和MAC地址。图5.5CANNET配置1双击后,右边的属性栏就会列出该设备的所有设置值。75 工程硕士学位论文图5.6CANNET配置2在IP配置和工作方式栏中修改相应的值。IP配置中:该值可以更改,最长是9位,可以使用a~z、A~Z、0~9等字符。IP地址和子网掩码是指CANNET的IP和子网掩码。在工作方式栏中:工作端口为CAN的通信端口,默认为4001。可以填入任意值:1~65535。IP地址为PC机的IP。目标端口:即收发数据的PC机的UDP协议端口,只有该端口才能对CANET-100/CANET-200适配器进行数据的收发,而CANET-100/CANET-200适配器接收到CAN-bus的数据也会通过以太网发送到该端口,可填入的值1~65535。图5.7CAN测试数据在各项设置完成后,上电复位系统,利用串口配置CAN通信模式,下发温度采集广播命令,在接到命令后,将温度值顺序上传值M_BUS主站,M_BUS75 工程硕士学位论文主站将数据封装成CAN帧的形式,通过CAN总线上传至CANNET,在PC机上显示,如图5.7为CAN测试的数据显示。上传的数据按照M_BUS标准帧格式:0x68为起始字符,20h为仪表类型,02h为从机站号,05h为控制命令,08h为数据长度,后面为转换后,取整的十进制温度值,0x16为结束符号。5.3Profibus-DP模式通信测试在进行M_BUS主站Profibus-DP模式通信测试时,通过系统的profibus通信接口与广州致远公司生产的PROFIBUS-Assist调试模块相连接,系统下接4个M_BUS从机,每个M_BUS从机挂接8个温度探头,采集温度数据,每个温度数据占1个字节,每个从机消耗电流为30mA。首先进入PROFIBUS模式,主站下发广播模式命令:AA000056(该命令为要求M_BUS从机上传数据),通过多通图5.8Profibus连接实物图信接口的M_BUS主站/中继器将数据传至M_BUS从机,M_BUS从机在接收到主机的命令后,将每个采集板采集的温度顺序上传,每个从机之间上传温度数据间隔为50ms。图5.8为profibus系统连接示意图。首先设置主站站点地址为0x64,从站地址为0x08,在主站地址和从站地址设置之后,双击打开主站设置相应的波特率,我们设置主从通信波特率为12Mbps在设置完主站与从站的通信波特率之后,我们启动主界面的搜寻,由图5.9所示,主站对所隶属的126个从站,发送SD1帧轮询各个站点是否接入。从图5.10可以看见,主站向126个站点(包括自己)发送SD1帧(功能码为0x49),只有从站0x8回复:106408006C16,表明该站点已经接入总线节点。75 工程硕士学位论文图5.9Profibus配置1图5.10Profibus配置2在搜索到0x08站点后,要将GSD文件通过主界面打开,然后设置参数,如图5.11所示。75 工程硕士学位论文图5.11Profibus配置3在设置完成后,将设置好的参数保存,并启动主站进行通信。如图5.12所示,主站上电对隶属的各个站点进行轮询,在轮询完各个站点之后,与从站0x08进行数据传输,每次与0x8通信完后,询问下个节点,没有应答,继续与0x8通信,如此循环。即:主站在轮询完126站点后,与0x08固定的数据交换,然后再询问01站点是否介入,如过没有,继续询问0x8,0x8给出响应并上传数据,然后主站在询问0x2是否介入,没有接入,再与0x8通信,如此循环,在只有08站点做从站时,主站通信在轮询完各个站点后,通信的站点顺序为0x01、0x08、0x02、0x08、0x03、0x08、0x04、0x08………0x7D(十进制125)、0x08、0x01、0x08、0x02、0x08…………。输入数据部分为:M_BUS丛机上传的温度采集数据。75 工程硕士学位论文图5.12Profibus测试数据上传的数据按照M_BUS标准帧格式:0x68为起始字符,20h为仪表类型,02h为从机站号,05h为控制命令,08h为数据长度,后面为转换后,取整的十进制温度值,0x16为结束符号。5.4以太网模式通信测试在对以太网的通信测试时,系统下接4个M_BUS从机,每个M_BUS从机挂接8个温度探头,采集温度数据,每个温度数据占1个字节,每个从机消耗电流为30mA。首先进入以太网通信模式,服务器下发广播模式命令:AA000056(该命令为要求M_BUS从机上传数据),通过系统将数据传至M_BUS从机,M_BUS从机在接收到主机的命令后,将每个采集板采集的温度顺序上传,每个从机之间上传温度数据间隔为50ms。。5.13以太网通信实物连接图图5.13为以太网通信系统连接图。75 工程硕士学位论文5.14以太网通信测试数据服务器IP号为:192.168.10.52,监听端口号为:6000。服务器MAC地址为:48-5B-39-F2-D4-5B设置M_BUS主站IP号为:192.168.10.51,监听端口号为:1410。M_BUS主站MAC地址为:20-CF-30-8D-A9-6B配置以太网模式,首先主机下发读命令,M_BUS主站将接收到的4块温度采集板的数据顺序存储打包成完整的以太网帧格式,发送至服务器,图5.14为以太网测试数据显示。例如数据:AA013132313431323334。其中AA表示M_BUS数据段的开始字符,01表示的是1号板,后面8字节表明温度数据。上传的数据按照M_BUS标准帧格式:0x68为起始字符,20h为仪表类型,02h为从机站号,05h为控制命令,08h为数据长度,后面为转换后,取整的十进制温度值,0x16为结束符号。5.5本章小结本章对设计完成的多通信接口的M_BUS主站/中继器进行了详细的功能测试。主要检测,下位机与M_BUS通信,以及集中得到的数据通过CAN、PROFIBUS、以太网上传至不同的通信通道,经过测试,系统已经达到所提出的基本要求。75 工程硕士学位论文总结与展望随着嵌入式技术和通信技术的飞速发展,数据集中控制环节已经成为当代工业生产的重要环节。将嵌入式技术与现场总线技术很好的结合起来,采用多种接口总线传输,使得嵌入式数据集中控制有了更为宽广的发展空间。使用本系统,可以为工业生产提供智能化控制,三种应用范围很广的数据通信技术,可以给监控人员提供了可靠的原始数据,有利于监控人员得出科学的状态分析。这在工业生产领域有着着至关重要的作用。本文在对系统整体需求分析的基础上,结合M-BUS、Profibus总线、CAN总线和以太网、嵌入式采集技术,设计了一个基于LPC2387处理器的数据传输控制系统,该数据传输控制系统,可以将采集到的M_BUS从机数据通过CAN总线、Profibus总线、以太网传输到上位机或者是其他的网络节点,实现数据的实时监控和处理,M_BUS从机可以采集多种量,譬如:温度、水位、湿度等等,这些采集量均可以被转换成M_BUS电平在M_BUS总线传输至M_BUS主站,经过M_BUS主站的处理,将打包成不同帧格式上传至CAN、Profibus和以太网。同时,上位机或者是其它主机也可以通过发送命令控制M_BUS主站进行相应的操作,比如说:检查从机是否在线,数据存储、诊断数据等等;当数据传输至总线上,由上位机获得,并处理、显示。系统具有的中继器功能,可以放大、再生信号,从而使得从机的节点数增加,有利于工业生产的成本节约。本文详细地分析了每个模块的功能,介绍了系统的工作流程,并且详细的描述了系统的软件,硬件的实现,主要的设计工作有:(1)多通信接口的M_BUS主站/中继器的硬件设计。设计了以LPC2387为核心芯片的数据集中控制系统,本系统以致远公司的T2387嵌入式工控模块为控制核心,研发了基于M-BUS总线的数据收发电路、CAN总线通信电路、Profibus总线接口电路、中继接口电路、网口电路的硬件电路,采用模块化的设计思想,使得系统的硬件开发周期短、性能稳定性好、可靠性高。(2)多通信接口的M_BUS主站/中继器的软件设计。以ADS集成环境为软件开发平台,采用C语言作为系统的开发语言,采用模块化的编程思想,调用API接口函数。在软件设计过程中,对系统的功能不断优化,尽可能的减少代码量,以压缩代码执行时间,以保证数据采集的实时性和可靠性。(3)系统的测试。在软硬件设计完成之后,对系统的功能进行测试。测试系统的中继器功能,主要测试中继器的传输距离和数据的完整性、可靠性。还进行M_BUS主站功能测试。测试数据是否能够通过各种总线进行传输,以及上位机是否能对该系统进行控制。75 工程硕士学位论文经过测试,本系统已达到提出的要求。但是在设计实现中,系统并不是很完善,也存在一些不足,随着作者的理论与实践水平的提高,将会对系统进行逐步的改善。作者提出以下两个方向需要继续改善:(1)系统的挂载M_BUS从机数目。由于本系统在进行器件的选型时,所选择的LM358所能承受的电压值不是很高,M_BUS从机电流在经过采样后,很容易达到门限电压,故挂载在本系统的M_BUS从机数量有一定的限制。(2)程序的更进一步优化。由于本人的编程能力有限,本系统程序虽然基本上可以完成所需要的功能,但是程序的代码量较大,还不是最优的代码,可以考虑多编写API接口函数,实现程序设计的最简化。75 工程硕士学位论文参考文献[1]金晨语.基于M-bus总线的热力站监测系统[J],仪器仪表用户.2005.12(1).105-107[2]刘志强.基于S3C2410的低压电力线载波抄表系统的集中器的设计与实现.蒙古大学学报.2009,40(1),92-94[3]金坤善.M-bus总线在远程抄表中的运用.太原科技大学学报,2006,27(2),114-115,2006[4]宋鹏等.仪表总线M-Bus协议的研究.自动化仪表,2004.第25卷(第8期):21—25[5]兰建军,潘凤红,张鑫.仪表总线协议及TSS721应用设计.东北电力学院学报,2005.第25卷,第6期[6]焦升东.基于Profibus的电能质量实时监测系统设计[J].电力自动化设备.上海交通大学.201131(5),12-15[7]白政民.Profibus总线技术在电力监控系统中的应用研究[J],继电器,许昌学院,2007,35(16),34-36[8]丁小伟.基于Profibus-DP协议的智能断路器系统设计[J].低压电器,2010(24),22-24[9]吴宗泽.基于PROFIBUS现场总线的电梯群控算法的研究[D].西安,西安交通大学.2002,1-20[10]PROFIBUS协议分析和系统应用.侯维岩.北京,清华大学出版社,2006.,73[11]现场总线技术及其应用.甘永梅、李清风.机械工业出版社.2004.5.171-172[12]王明威.长春理工大学基于WIFI和以太网的数据传输技术研究[D],长春,长春理工大学,2010年[13]张敏.浅谈局域网组成.科技情报开发与经济[J].2005():[14]广州致远电子有限公司.TinyARMT23硬件说明手册V1.01,2008[15]广州致远电子有限公司.T2387ARM嵌入式工控模块数据手册V1.02.2008,2-7[16]HongSH,JangBD.Time-criticaldatatransmissioninthefoundationFieldbus.IEEEInternationalSymposiumonIndustrialElectronics.v1,2001(07):555-559.[17]Houghton,AndrewHyde,David.Engineering&constrctionfirmtacklesfoundationfieldbus.KvaernerProcess75 工程硕士学位论文Control,2001(02):43,45-46,48,50-53.[1]戴锦友.一种面向运营级以太网的自适应前向纠错方.计算机研究与发展2009,46(2),12-14[2]陈忠斌.基于以太网的103通信规约在微机馈线保护装置中的研究与实现[J],.继电器,2009,37(16),56-59,[3]朱开锋.基于以太网的磁浮列车调试系统的设计与实现,[D],西南交通大学2010年[4]孙晓云.接口与通信技术原理与应用.北京:中国电力出版社,2007,21-36[5]罗峰,孙泽昌.汽车CAN总线系统原理、设计与应用.北京:电子工业出版社,2010,227-253[6]李英,徐钊.采用ADuM1201的CAN总线隔离方法.单片机与嵌入式系统应用,2006.,第4期[7]广州周立功单片机发展有限公司.TinyARMT23软件说明手册V1.01,2008[8]广州致远电子有限公司.CANET-100T/200T用户手册V1.02,2009[9]罗峰,孙泽昌.汽车CAN总线系统原理、设计与应用.北京:电子工业出版[10]朱晓明,施文康.基于AD7708的卫星镍氢电池测试系统[J].计算机测量与控制,2004,12(11):1045-1048.[11]应立军,周书武,亓琳等.08-32捣固车电气系统在线检测与故障诊断系统[J].交通运输工程学报,2004(4):34-36.[12]J.Ehrlich,A.Zerrouki,andN.Demassieux.“DistributedArchitectureforDataAcquisition:aGenericModel”PresentedatIEEEInstrumentationandMeasurementTechno1ogyConference一IMTC’97,ottawa,Canada,May19-21,1997.[13]广州周立功单片机发展有限公司.iCAN系列功能模块用户手册.V1.3,11-29[14]兰勇.嵌入式ARM实战手册.广东:广东省嵌入式软件公共技术中心,2007,1-88[15]李石平.连续式捣固车作业小车智能控制系统设计与实现:[国防科学技术大学硕士学位论文].国防科学技术大学,2006,26-36[16]广州致远电子有限公司.XGATE_dps用户手册.Rev1.1,2010,6-18[17]邬宽明.CAN总线原理和应用系统设计.北京:北京航天航空大学出版社,1996,28-36[18]PhilipsSemiconductors.SJA1000stand-aloneCANcontrollerapplicationnote.DATASHEET.1997:45-78,34.[19]吉顺平,陆宇平.基于UDP/IP的工业以太网通信协议的设计[J].信息与控制,2008(10):560-564.75 工程硕士学位论文[1]张海艳.RS232/485与CAN总线协议转换器的研究与设计[D].大连海事大学,2008,36-3875 工程硕士学位论文致谢日月如梭,时光飞逝。转眼间,两年的研究生生活即将画上句号,但我明白这仅仅是我人生的开始,是我从校园迈向社会的开端。在此,我要感谢所有帮助过我、支持过我的人,没有你们,就没有我的今天。首先我要感谢我的导师吴桂清。读研两年以来,吴老师博大的胸怀、深厚的学术知识、谦虚的为人和对学术的孜孜不倦让我感受了什么叫做为人师表。在湖大求学期间,吴老师在生活上给了我父亲般的关心、在学习上对我严格要求,努力将我培养成科研学研究与工程应用相结合的人才。在本文撰写期间,吴老师多次悉心指导,从定题、收集资料、论文的撰写、修改和定稿,无一不凝聚了吴老师的心血。吴老师无私奉献的精神永远值得我敬佩。在此我要对吴老师说声:您辛苦了!其次我要感谢在我学业期间给我授课的各个老师。湖大两年,我学习了很多与本专业相关的知识,使我在各方面的技能都有了很大的提高,我知道,我的进步少不了各个任课老师的倾囊相授,在此,我要向各位老师说声:你们辛苦了!再次,我要感谢我的家人。我在读研的两年里,家里人给了我精神上的鼓励和经济上的支持,没有家里人的支持,我将无法完成学业。在这里,我要向家里人说声:爸妈,你们辛苦了!再再次,我要感谢我的同窗好友:陈彦芳、厉振武、钱义伟、李俊杰。在我的学习期间,我们一起努力攻克了无所科研道路上的拦路虎。我还要感谢:万联科技公司的黎本年高级工程师和吴耀梅女士,他们在我做项目的过程中都给了我很大的帮助!再一次感谢所有关心和帮助我的人:谢谢你们!你们对我所有的帮助和支持都将会使我在今后的人生道路上更加信心百倍的挑战自我、挑战人生!戴祖鹏2012.04.2075 工程硕士学位论文附录A攻读学位期间发表的学术论文[1]吴桂清,戴祖鹏.多通信接口的M_BUS集中器的硬件设计与实现.世界科学技术研究与发展,已收录.75 工程硕士学位论文附录B攻读学位期间参加的科研项目[1]2010年9月-12月,涟源钢铁集团的电缆报警系统的设计与研发[2]2011年1月-7月,漏钢预报警系统的设计与实现[2]2011年7月至今,多通信接口的数据集中器是设计与实现75

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭