基于ARM的以太网网关设计与实现毕业论.docx
- 文档编号:24488000
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:36
- 大小:1.08MB
基于ARM的以太网网关设计与实现毕业论.docx
《基于ARM的以太网网关设计与实现毕业论.docx》由会员分享,可在线阅读,更多相关《基于ARM的以太网网关设计与实现毕业论.docx(36页珍藏版)》请在冰豆网上搜索。
基于ARM的以太网网关设计与实现毕业论
┊┊┊┊┊装┊┊┊┊┊┊┊订┊┊┊┊┊┊线┊┊┊┊┊
大连海事大学
毕业论文
二○一四年六月
基于ARM的以太网网关设计与实现
专业班级:
通信工程3班
姓名:
计平元
指导教师:
毕胜
信息科学技术学院
摘要
CAN总线作为现场总线的一种,与一般的通信总线相比,具有突出的可靠性、实时性和灵活性。
以太网作为构筑互连网的一种最普及的局域网技术,具有较好的稳定性和传输数据的高效性等特点,还能够支持互连网络的远程访问。
但是它不能直接和工业设备相连进行通信。
将两种不同适用范围的网络进行连接以利用各自的优点实现对工业生产的监控和管理,就需要通过网关来实现。
本文在深入的研究了CAN2.0协议、TCP/IP协议的特点及实现原理后,提出了一种以太网和CAN总线互联的网关模型。
以SBC6845ARM开发板(搭载内核为ARM9的AT91SAM9G45处理器)为硬件平台,以嵌入式Linux为软件平台,利用GEDIT工具进行软件设计,采用4个线程分别处理上行数据和下行数据的存储和转发,对CAN总线协议和TCP/IP协议进行转换,实现了以太网与CAN总线的互联。
从而允许在控制室内对现场中的设备进行访问、监控与管理。
测试结果表明,本设计实现了系统设计功能。
关键词:
Linux;CAN总线;以太网;网关
ABSTRACT
CANbusasafieldbus,hasoutstandingreliability,timelinessandflexibility,comparedwiththegeneralcommunicationbus.EthernetInternetconstructedasoneofthemostpopularLANtechnology,hasnotonlyhighefficiencyandgoodstabilitycharacteristicsofthetransmissiondata,butalsotheinterconnectionnetworkforremoteaccess.Butitcannotbedirectlyconnectedtoindustrialequipmenttocommunicate.Connecttingthescopeofapplicationoftwodifferentnetworkinordertoexploittheiradvantagestoachieveindustrialproductionmonitoringandmanagement,weneedtorealizethroughthegateway.
Inthispaper,in-depthstudyoftheCAN2.0agreementandimplementationoftheprinciplecharacteristicsofTCP/IPprotocol,ithasmadeanEthernetandCANbusinterconnectiongatewaymodel.WiththehardwareplatformofSBC6845ARMdevelopmentboard(equippedwiththeAT91SAM9G45ARM9processorkernel)andandthesoftwareplatformofembeddedLinux,usingGEDITtoolsforsoftwaredesign,usingfourthreadstoprocessstoreandforwarddatauplinkanddownlinkdata,convertingCANbusprotocolandTCP/IPprotocol,itachievestheinterconnectionofEthernetandCANbus.Thus,wecanvisitthefield equipment,monitorandmanageitinthecontrolroom.Thetestresultsshowthatthedesignofthesystemachievesdesignfunction.
Keywords:
Linux,CANBUS,Ethernet,Gateway
基于ARM的以太网网关设计与实现
第1章绪论
1.1课题研究的背景及意义
现场总线是应用在生产现场、在微机化测量控制设备之间实现双向串行多节点数字通信的系统,也被称为开放式、数字化、多点通信的底层控制网络。
现场总线是当今自动化技术发展的热点之一,被誉为自动化领域的计算机局域网。
CAN总线作为现场总线的一种,由于采用了许多新技术及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性[1]。
以太网(Ethernet)作为互连网的一种最普及的局域网技术,具有较好的技术稳定性和传输数据的高效性等特点,此外,以太网还可以方便的与干线网络连接,整个控制系统还能够支持互连网络的远程访问。
因此,使用以太网作为工业控制的上层网络有着十分明显的优势。
本文设计并实现了一种基于嵌入式平台的CAN总线和以太网互联的网关,有效解决了底层现场总线与上层控制系统的互联问题。
1.2CAN总线和以太网技术的研究现状
1.2.1CAN总线的研究现状
现场总线技术包含范围比较广泛,并不只是指单一的通信总线,而是指一个整个的系统,系统中包含智能化生产设备,将现场总线应用到这些设备中,使原本简单的普通设备升级成数字通信智能设备。
现在的工业现场总线控制网络技术已经发展的比较成熟,在各个领域也都得到了广泛的应用,虽然没有统一的标准,但是几种著名的总线都已经做的比较成熟能够适应工业生产的需要,在和以太网技术共同应用时,将现场信息经网关传到以太网上然后再传递到控制室,实现对生产现场的监控与管理[2]。
现场总线的当前发展状况:
多种总线共存、总线的应用领域不断拓展、各种总线以企业为支撑、各种总线相继成为自己国家或地区标准、以太网成为新的热点。
本文正是针对现场总线及以太网的当前发展趋势,市场上CAN和以太网互联的产品还不是很成熟的状况提出来的。
1.2.2以太网的研究现状
以太网作为一种应用广泛的局域网已经成为了我们生活中必不可少的一部分,它以其自身的高可靠性、方便易用等优点获得了广大用户的青睐。
工业以太网是一个新的概念,它指的是在复杂的生产现场中应用以太网技术,这就要求针对工业现场的环境的恶劣性对现有的网络进行适当的改进,主体部分不动,针对工业控制系统的特点对以太网技术做出改进,使之既能够适应物理上复杂恶劣的现场环境,又能够满足工业控制在通信实时性、数据安全等方面的要求。
当然,现阶段的技术还无法将网络直接连接到现场的智能化仪表与设备上,因为设备的种类太多,各自遵循的标准也不统一,而以太网技术的最初的发展也不是针对工业控制来设计的,所以在现阶段情况下,还是要将以太网通过网关与适用于工业控制的控制局域网总线连接起来实现以太网与工业设备之间的数据通信,实现到对生产现场进行监控和管理的目的。
以太网现在已经应用很广泛,技术方面也很成熟,然而在工业控制中,现场总线的种类和技术标准却有很多,并且各种总线之间一般情况下无法相互兼容,每一个开发厂商都有自己的标准,这种情况导致了如果一个客户选择了某一种总线用在工业控制系统中就很难改变,很难再用另一种现场总线来代替,对设备及控制系统的升级不利,有可能会影响到生产效益[3]。
因此,针对这种情况,有必要提出一种新的技术标准,就是基于以太网技术,并且将这种技术扩展到工业中使之在将来能够发展成为适用于工业现场生产环境的统一的技术标准。
现在,国际上相关组织也开始着手做这项工作,制定出了一些工业以太网的标准,在未来直接将以太网技术应用到工业生产现场,取代现在的现场总线技术,这是一个必然的趋势,在这方面需要做的工作还有很多。
现阶段的现场仪表设备之间的通信还是离不开现场总线,还是需要将以太网通过网关转换连接进来与设备仪表进行通信,实现上层监控网络和现场控制网络的一体化。
1.3本文的主要工作
本文的主要任务是以嵌入式Linux为软件平台,以ATMEL公司的AT91SAM9G45芯片为微处理器,以深圳市天漠科技有限公司的SBC6845ARM开发板为硬件平台,在对CAN总线、以太网工作原理深入分析的基础上设计嵌入式CAN-Ethernet网关转换器,实现CAN总线和以太网的互联通信。
本文中,前两章概述了国内外CAN总线和以太网的发展现状并简要的介绍了这两种通信协议及其特点;第三章介绍了系统的硬件结构及原理;在第四章中,着重阐明了系统的软件设计方案;第五章展示了系统的测试过程及结果。
CAN总线和以太网简介
2.1CAN总线简介
CAN是ControllerAreaNetwork的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。
在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。
由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。
为适应“减少线束的数量”、“通过多个LAN,进行大量数据的高速通信”的需要,1986年德国电气商博世公司开发出面向汽车的CAN通信协议。
此后,CAN通过ISO11898及ISO11519进行了标准化,现在在欧洲已是汽车网络的标准协议[4]。
现在,CAN的高性能和可靠性已被认同,并被广泛地应用于工业自动化、船舶、医疗设备、工业设备等方面。
现场总线是当今自动化领域技术发展的热点之一,被誉为自动化领域的计算机局域网。
它的出现为分布式控制系统实现各节点之间实时、可靠的数据通信提供了强有力的技术支持。
CAN控制器根据两根线上的电位差来判断总线电平。
总线电平分为显性电平和隐性电平,二者必居其一。
发送方通过使总线电平发生变化,将消息发送给接收方。
CAN协议具有以下特点:
1)多主控制。
在总线空闲时,所有单元都可以发送消息(多主控制),而两个以上的单元同时开始发送消息时,根据标识符(Identifier以下称为ID)决定优先级。
ID并不是表示发送的目的地址,而是表示访问总线的消息的优先级。
两个以上的单元同时开始发送消息时,对各消息ID的每个位进行逐个仲裁比较。
仲裁获胜(被判定为优先级最高)的单元可继续发送消息,仲裁失利的单元则立刻停止发送而进行接收工作。
2)系统的柔软性。
与总线相连的单元没有类似于“地址”的信息。
因此在总线上增加单元时,连接在总线上的其它单元的软硬件及应用层都不需要改变。
3)通信速度较快,通信距离远。
最高1Mbps(距离小于40M),最远可达10KM(速率低于5Kbps)。
4)具有错误检测、错误通知和错误恢复功能。
所有单元都可以检测错误(错误检测功能),检测出错误的单元会立即同时通知其他所有单元(错误通知功能),正在发送消息的单元一旦检测出错误,会强制结束当前的发送。
强制结束发送的单元会不断反复地重新发送此消息直到成功发送为止(错误恢复功能)。
5)故障封闭功能。
CAN可以判断出错误的类型是总线上暂时的数据错误(如外部噪声等)还是持续的数据错误(如单元内部故障、驱动器故障、断线等)。
由此功能,当总线上发生持续数据错误时,可将引起此故障的单元从总线上隔离出去。
6)连接节点多。
CAN总线是可同时连接多个单元的总线。
可连接的单元总数理论上是没有限制的。
但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。
降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
正是因为CAN协议的这些特点,使得CAN特别适合工业过程监控设备的互连,因此,越来越受到工业界的重视,并已公认为最有前途的现场总线之一,并且得到了极大的发展。
CAN协议经过ISO标准化后有两个标准:
ISO11898标准和ISO11519-2标准。
其中ISO11898是针对通信速率为125Kbps~1Mbps的高速通信标准,而ISO11519-2是针对通信速率为125Kbps以下的低速通信标准[5]。
本章,我们针对ISO11898标准,阐述该标准的物理层特征。
CAN协议是通过以下5种类型的帧进行的:
●数据帧●遥控帧
●错误帧●过载帧
●帧间隔
另外,数据帧和遥控帧有标准格式和扩展格式两种格式。
标准格式有11个位的标识符ID,扩展格式有29个位的ID。
各种帧的用途如下表所示:
表2.1CAN总线帧类型及用途
帧类型
帧用途
数据帧
用于发送单元向接收单元传送数据的帧
遥控帧
用于接收单元向具有相同ID的发送单元请求数据的帧
错误帧
用于当检测出错误时向其它单元通知错误的帧
过载帧
用于接收单元通知其尚未做好接收准备的帧
间隔帧
用于将数据帧及遥控帧与前面的帧分离开来的帧
由于篇幅所限,我们这里仅对数据帧进行详细介绍,数据帧一般由7个段构成,即:
(1)帧起始。
表示数据帧开始的段。
(2)仲裁段。
表示该帧优先级的段。
(3)控制段。
表示数据的字节数及保留位的段。
(4)数据段。
数据的内容,一帧可发送0~8个字节的数据。
(5)CRC段。
检查帧的传输错误的段。
(6)ACK段。
表示确认正常接收的段。
(7)帧结束。
表示数据帧结束的段。
数据帧的构成如图2.1所示:
图2.1数据帧的构成
注:
图中D表示显性电平,R表示隐形电平。
帧起始,这个比较简单,标准帧和扩展帧都是由1个位的显性电平表示帧起始。
仲裁段,表示数据优先级的段,标准帧和扩展帧格式在本段有所区别,如图2.2所示:
图2.2数据帧仲裁段构成
标准格式的ID有11个位。
从ID28到ID18被依次发送。
禁止高7位都为隐性(禁止设定:
ID=1111111XXXX)。
扩展格式的ID有29个位。
基本ID从ID28到ID18,扩展ID由ID17到ID0表示。
基本ID和标准格式的ID相同。
禁止高7位都为隐性(禁止设定:
基本ID=1111111XXXX)。
其中RTR位用于标识是否是远程帧(0,数据帧;1,远程帧),IDE位为标识符选择位(0,使用标准标识符;1,使用扩展标识符),SRR位为代替远程请求位,为隐性位,它代替了标准帧中的RTR位。
控制段,由6个位构成,表示数据段的字节数。
标准帧和扩展帧的控制段稍有不同,如图2.3所示:
图2.3数据帧控制段构成
上图中,r0和r1为保留位,必须全部以显性电平发送,但是接收端可以接收显性、隐性及任意组合的电平。
DLC段为数据长度表示段,高位在前,DLC段有效值为0~8,但是接收方接收到9~15的时候并不认为是错误。
数据段,该段可包含0~8个字节的数据。
从最高位(MSB)开始输出,标准帧和扩展帧在这个段的定义都是一样的,如图2.4所示:
图2.4数据帧数据段构成
CRC段,该段用于检查帧传输错误。
由15个位的CRC顺序和1个位的CRC界定符(用分隔的位)组成,标准帧和扩展帧在这个段的格式也是相同的,如图2.5所示:
图2.5数据帧CRC段构成
此段CRC的值计算范围包括:
帧起始、仲裁段、控制段、数据段。
接收方以同样的算法计算CRC值并进行比较,不一致时会通报错误。
ACK段,此段用来确认是否正常接收。
由ACK槽(ACKSlot)和ACK界定符2个位组成。
标准帧和扩展帧在这个段的格式也是相同的,如图2.6所示:
图2.6数据帧CRC段构成
发送单元的ACK,发送2个位的隐性位,而接收到正确消息的单元在ACK槽(ACKSlot)发送显性位,通知发送单元正常接收结束,这个过程叫发送ACK/返回ACK。
发送ACK的是在既不处于总线关闭态也不处于休眠态的所有接收单元中,接收到正常消息的单元(发送单元不发送ACK)。
所谓正常消息是指不含填充错误、格式错误、CRC错误的消息[6]。
帧结束,这个段也比较简单,标准帧和扩展帧在这个段格式一样,由7个位的隐性位组成。
2.2以太网简介
以太网作为一种应用广泛的局域网已经成为了我们生活中必不可少的一部分,它以其自身的高可靠性、方便易用等优点获得了广大用户的青睐。
工业以太网是一个新的概念,它指的是在复杂的生产现场中应用以太网技术,这就要求针对工业现场的环境的恶劣性对现有的网络进行适当的改进,主体部分不动,针对工业控制系统的特点对以太网技术做出改进,使之既能够适应物理上复杂恶劣的现场环境,又能够满足工业控制在通信实时性、数据安全等方面的要求。
当然,现阶段的技术还无法将网络直接连接到现场的智能化仪表与设备上,因为设备的种类太多,各自遵循的标准也不统一,而以太网技术的最初的发展也不是针对工业控制来设计的,所以在现阶段情况下,还是要将以太网通过网关与适用于工业控制的控制局域网总线连接起来实现以太网与工业设备之间的数据通信,实现到对生产现场进行监控和管理的目的。
以太网现在已经应用很广泛,技术方面也很成熟,然而在工业控制中,现场总线的种类和技术标准却有很多,并且各种总线之间一般情况下无法相互兼容,每一个开发厂商都有自己的标准,这种情况导致了如果一个客户选择了某一种总线用在工业控制系统中就很难改变,很难再用另一种现场总线来代替,对设备及控制系统的升级不利,有可能会影响到生产效益。
因此,针对这种情况,有必要提出一种新的技术标准,就是基于以太网技术,并且将这种技术扩展到工业中使之在将来能够发展成为适用于工业现场生产环境的统一的技术标准。
现在,国际上相关组织也开始着手做这项工作,制定出了一些工业以太网的标准,在未来直接将以太网技术应用到工业生产现场,取代现在的现场总线技术,这是一个必然的趋势,在这方面需要做的工作还有很多。
现阶段的现场仪表设备之间的通信还是离不开现场总线,还是需要将以太网通过网关转换连接进来与设备仪表进行通信,实现上层监控网络和现场控制网络的一体化[7]。
系统硬件设计
本文所设计的嵌入式协议转换网关,实现了CAN总线与以太网的互联,即以太网能够通过网关读取CAN总线上的数据,同时也可以向CAN总线发送命令以实现上位机对现场设备的监控,网关工作示意图如图3.1所示。
图3.1网关工作示意图
现场总线的信息可以通过CAN协议传送出去,经过协议转换功能将CAN协议形式转换成TCP协议形式,然后传送到Ethemet上,连接到Ethernet上的远方计算机可以通过一定的权限,在一定的平台上进行数据的接收。
同时,该计算机也可以在一定的平台上对现场下达命令,该命令在Ethemet上,以TCP/IP协议的形式传送出去,经过协议转换功能将TCP/IP协议形式转换成CAN协议形式,然后传送到CAN总线上,现场设备接收到命令后执行命令,这样就实现了对现场的远程监控。
3.1硬件总体方案设计
硬件平台的选型和设计是很重要的,因为软件开发也是基于硬件的,没有好的硬件软件设计也会受限制,因此如何选择合适的硬件平台,使其性价比高而又能满足系统控制的要求是很关键的。
网关转换的必不可少的部分是以太网控制器芯片、CAN控制器芯片和CAN收发器的选择和接口设计。
本文以AT91SAM9G45作为核心处理器,CAN总线控制器选用MCP2515,CAN收发器采用PCA81C251芯片。
以太网控制器选用,本章介绍了本系统选择的这些器件以及关键部分硬件电路的设计。
图3.2硬件总体结构图
系统的硬件组成如图3.2所示,方框中中央处理器(Central Processing Unit,CPU)为本系统核心部分,集成有AT91SAM9G45处理器、SDRAM存储器、Flash存储器[8]。
核心模块的外围电路设计包括一下几个部分:
●电源电路:
设计电路所需的5V和3.3V电压;
●串口电路:
提供系统所必需的传输控制命令的通道;
●CAN模块:
AT91SAM9G45通过SPI控制CAN控制器;
●以太网模块:
AT91SAM9G45通过控制DM9161,进行网络访问。
网关的硬件实物如图3.3所示,采用的是SBC6845开发板。
图3.3网关硬件实物图
3.2硬件电路设计
3.2.1核心处理器
基于ARM926EJ-S的AT91SAM9G45集成了常用的和具有高传输速率的硬件接口,包括LCD控制器,电阻式触摸屏控制器,图像传感器接口,声音控制器,10/100M以太网控制器和高速USB和SDIO控制器。
当处理器以400MHz处理多组超过100Mbps的高速外设时,AT91SAM9G45能够以足够的带宽去处理包括网络和本地多媒体的数据,以提供满意的用户体验。
AT91SAM9G45支持最新的用来存储程序和数据的DDR2和NANDFlash储存器接口。
带有一个内置的133MHz并且支持37个DMA通道的多层总线架构,两组外部总线接口,分散的存储单元(包括一个64KB的SRAM,可以根据处理器和高速外设的要求,配置成一个紧凑结合内存(TightlyCoupledMemory,TCM),以保持高的带宽)。
I/O接口支持1.8V和3.3V工作电压,这些可以为存储接口和外设I/O接口单独配置基于这个特点,它能够完全满足不同外设的电平需要。
而且它是以0.8球间距进行封装,能够给PCB厂商降低相应的成本。
AT91SAM9G45电源管理控制器使用门控时钟(clockgating)和电池备份组件使得在活动和就绪模式下把功耗降到最低。
3.2.2CAN总线电路
Microchip的MCP2515是一款独立控制器局域网(Controller Area Network,CAN)协议控制器,完全支持CAN V2.0B技术规范。
该器件能发送和接收标准和扩展数据帧以及远程帧。
MCP2515自带的两个验收屏蔽寄存器和六个验收滤波寄存器可以过滤掉不想要的报文,因此减少了主单片机(MCU)的开销。
MCP2515与MCU的连接是通过业界标准串行外设接口(SerialPeripheral Interface,SPI)来实现的。
MCP2515是一款独立CAN控制器,可简化需要与CAN总线连接的应用。
MCP2515的内部结构如图3.4所示。
该器件主要由三个部分组成:
图3.4MCP2515结构框图
1)CAN模块,包括CAN协议引擎、验收滤波寄存器、验收屏蔽寄存器、发送和接收缓冲器。
CAN模块的功能是处理所有CAN总线上的报文接收和发送。
报文发送时,首先将报文装载到正确的报文缓冲器和控制寄存器中。
通过SPI接口设置控制寄存器中的相应位或使用发送使能引脚均可启动发送操作。
通过读取相应的寄存器可以检查通讯状态和错误。
会对CAN总线上检测到的任何报文进行错误检查,然后与用户定义的滤波器进行匹配,以确定是否将报文移到两个接收缓冲器中的一个。
2)用于配置该器件及其运行的控制逻辑和寄存器。
通过与其他模块连接,控制逻辑模块控制MCP2515的设置和运行,以便传输信息与控制。
所提供的中断引脚提高了系统的灵活性。
器件上有一个多用途中断引脚及各接收缓冲器的专用中断引脚,用于指示有效报文是否被接收并载入接收缓冲器。
可选择使用专用中断引脚。
通用中断引脚和状态寄存器(通过SPI接口访问)也可用来确定何时接收了有效报文。
器件还有三个引脚,用来启动将装载在三个发送缓冲器之一中的报文立即发送出去。
是否使用这些引脚由用户决定;若不使用,也可利用控制寄存器(通过SPI
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM 以太网 网关 设计 实现 毕业
![提示](https://static.bdocx.com/images/bang_tan.gif)