基于LPC2368的以太网与CAN总线互联网关的设计

提出了一种基于ARM7微控制器LPC2368的以太网与CAN总线互联网关的设计。给出了系统硬件框图、CAN通信软件、以太网通信软件和以太网-CAN协议转换软件等部分的程序设计流程图,所设计网关实现方法简单,外扩器件少,可靠性高,已用于某工业现场,实现了以太网与CAN总线的互联,为企业信息网络与控制网络集成提供了一种可行的方法。
关键词:以太网,现场总线,互联网关,LPC2368
Abstract
PutforwardtheGatewaydesignofEthernet-CANwhitchbasedonARM7single-chipLPC2368.Giventhesystemhard-wareframediagram,programdesignoftheCANcommunication、EthernetcommunicationandEthernet-CANprotocolcon-version.GatewayDesignedasimple,lessforeignexpansiondevices,rationalstructu
re,highreliabilityandwassuitableforsomeindustryscene,realizeconnectionofEthernetandCAN.
Keywords:Ethernet,fiedbus,connectiongateway,LPC2368
CAN总线作为一种底层的现场网络,主要应用于企业下层
车间和生产现场,而企业管理层大多采用以太网,因此必须将现场总线测控网络通过互联网关与以太网相连并接入因特网以满足这种上下层沟通的需求,本文提出了一种以太网与CAN总线互联网关的设计方案,并实现了以太网(企业管理层)与CAN总线(下层车间和生产现场)的互联。
1以太网—CAN总线互联网关的硬件设计
1.1微控制器的选择
微控制器是以太网-CAN总线互联网关的核心,对CAN控
制器和以太网控制器进行控制,内驻有以太网控制器驱动程序、
CAN控制器驱动程序以及TCP/IP协议,完成以太网协议和CAN总线协议转换,实现以太网和CAN总线通信数据透明传输。
微控制器选用NXP(原Philips)公司近期推出的基于一个支持实时仿真和跟踪的32位ARM7TDMI-S内核的32位微控制器LPC2368。该器件的最大特性是片内具有一个10/100MbpsEthernetMAC接口和2路CAN2.0B通道。EthernetMAC在独立的AHB总线上有16KB的SRAM和一个相关的DMA控制器。2路CAN2.0B通道符合CAN规范2.0B,ISO11898-1标准;总线数据波特率可达1Mbps;可访问32位的寄存器和RAM;全局验收过滤器可识别几乎所有总线的11位和29位Rx标识符;验收过滤器为选择的标准标识符提供了FullCAN-style自动接收功能。LPC2368具有较小的LQFP-100封装、较低的
功耗,功能强大且成本效率高,非常适合应用于协议转换。
云资源共享1.2以太网-CAN总线互联网关的硬件结构
以太网-CAN总线互联网关主要由微控制器LPC2368、以太网物理层芯片DP83848T和CAN驱动器TJA1050T组成,其硬件结构框图如图1所示。
LPC2368内部集成了CAN控制器,带2路CAN2.0B通
道,硬件电路只需要在LPC2368的TD1(CAN1的发送器输出脚)与RD1(CAN1的接收器输入脚)外接CAN总线驱动器即可。图1中TJA1050T是CAN总线驱动器,是CAN控制器和物理总线之间的接口,速度可达1Mbaud。TJA1050T为总线提供差动的发送功能,为CAN控制器提供差动的接收功能。为了进一步提高以太网-CAN总线互联网关的抗干扰能力,保证它与CAN总线上其他节点在电气上是完全隔离和独立,LPC2368的TD1和RD1分别通过高速光耦6N137与TJA1050T的TXD和RXD相连。光耦部分电路所采用的电源必须完全隔离,电源的完全隔离采用小功率电源隔离模块B0505S。
LPC2368内部集成了1个10/100MbpsEthernetMAC控制器,硬件电路需要在LPC2368的以太网MAC控制器相关
引脚外接以太网物理层芯片,以太网物理层芯片再通过带网络隔离变压器的RJ45插头HR911105A实现与以太网总线的连接。图1中DP83848T是美国国家半导体公司生产的单端物理层器件,它符合精简介质无关接口RMII规范。RMII提供了引脚数目更低的选择来替换IEEE802.3定义的介质无关接口MII规范。LPC2368内部的以太网MAC控制器与DP83848T采用
RMII模式连接,减少了需要连接引脚的数目,方便信号的布线。为了使DP83848T上电后
工作在RMII模式,需要将DP83848T的RX_DV/MII_MODE引脚通过1个2.2KΩ的电阻接系统的+3.3V电源。在RMII模式下,数据以50MHz的时钟速率一次传送2位,因此需要一个50MHz振荡器连接到DP83848T的X1引脚,不支持使用50MHz的晶振。
2以太网-CAN总线互联网关的软件设计
系统的软件设计主要由CAN总线通信软件、以太网通信软件和CAN-以太网协议转换软件三部分组成。CAN总线通信软件设计包括对CAN控制器驱动以及CAN协议软件设计。以太
网通信软件设计包括对以太网控制器驱动以及上层协议软件设计。以太网-CAN协议转换软件负责将以太网数据包与CAN协议数据包格式相互转换。
2.1CAN总线通信软件设计
LPC2368微控制器内部的CAN控制器完全是基于事件触发的,即CAN控制器在本身状态发生改变时,会将状态变化的
基于LPC2368的以太网与CAN总线互联网关的设计
中药煎药器
刘晓莉
赵延明(湖南科技大学信息与电气工程学院,湖南湘潭411201)
GatewayDesignofEthernet-CANBasedonLPC2368
图1以太网-CAN总线互联网关的硬件结构框图
基于LPC2368的以太网与CAN总线互联网关的设计
30
《工业控制计算机》2007年20卷第8期
结果告诉微控制器,所以微控制器在处理CAN控制器时,可以采用中断的方式。因此,CAN总线通信软件采用中断方式完成。根据LPC2368微控制器及其内部CAN控制器的特性,CAN总线通信软件分为硬件抽象层、功能函数层和应用程序接口层3个层次。硬件抽象层将CAN控制器的硬件特性用数据类型进行抽象,并提供CAN控制器硬件操作的接口。功能函数层是CAN控制器各
种功能实现函数的集合,该层的函数利用硬件抽象层中对寄存器操作的接口来访问CAN控制器以实现CAN控制器所能提供的各种功能。
CAN控制器初始化函数InitCAN()主要用来实现CAN控制器工作时的参数设置,内容包括:CAN控制器的硬件使能、报警界限设置、中断方式设置及工作模式设置,CAN总线波特率设置,CAN验收过滤器工作方式设置等。将数据经过打包成符合CAN发送帧格式的数据后,可调用CAN发送数据函数CANSendData()进行数据的发送。CAN发送数据函数首先检查是否有空闲的发送缓冲区,若存在空闲的发送缓冲区,将要发送的数据写入该空闲的发送缓冲区后启动发送命令,否则函数返回失败。在使用发送函数时有一点要注意,在启动发送数据的命令后,CAN控制器要将缓冲区内的数据发送完毕后,才会将该帧数据是否发送成功的状态返回。这样如果在函数里一直等待数据发送完毕,会使整个微控制器的性能下降,所以为了避免这种情况,该函数在启动发送命令后就立即返回,若想得到成功发送的事件,可配合发送中断或利用查询TCS状态位的方法来处理。对于CAN数据帧的接收,专门开辟一个环形接收数据缓冲区FIFO来暂时存储数据,在CAN接收数据函数CANReadDa-ta()中可以通过查询该FIFO来获得总线数据。数据接收采用中断方式,在CAN中断处理函数CANIntPrg()中,读取CAN中断状态寄存器CANICR判断是否有接收中断标志。LPC2368内部CAN控制器的初始化、CAN数据发送和CAN数据接收流程图如图2所示。
2.2以太网通信软件设计
以太网通信软件设计包括以太网控制器驱动以及上层协议软件设计。对于嵌入式系统,由于其内部资源有限,可根据系统的具体要求,对TCP/IP协议栈进行简化并移植到嵌入式系统中。
(1)LPC2368内部以太网控制器驱动
LPC2368内部以太网控制器驱动包括以太网控制器初始化、以太网数据帧发送及接收。初始化主要包括清除MAC控制器的软件复位状态、配置物理层访问MAC控制器的MIIM接口、选择RMII或MII接口模式、配置发送和接收DMA引擎及描述符数组、配置MAC控制器的主寄存器组和使能发送及接收数据通道。将数据打包成符合以太网发送帧格式的数据后,可以通过以太网数据帧发送函数进行发送。发送函数首先建立描述符及数据、使能发送数据通道,发送DMA管理器通过读发送描述符数组来定位在发送缓冲区中要发送的数据帧,并将该数据发送出去。若发送失败,发送DMA管理器将通过写发送状态信息到状态数组及中断状态寄存器的方式报告错误,用户程序可以通过查询状态位来判断数据是否发送成功。以太网数据接收采用中断方式,当收到以太网数据帧或帧分片时,将会产生数据接收中断,用户程序应该在中断服务程序中读取中断状态寄存器来判断中断类型以及做相应处理。以太网控制器初始化、以太网数据发送和接收流程图如图3所示。透气盖
图3以太网控制器初始化、以太网数据发送和接收流程图
(2)嵌入式TCP/IP协议栈的实现
TCP/IP协议栈由网络接口层、网际层、传输层和应用层这4层构成。
传输层实现传输控制协议TCP和用户数据报协议UDP。TCP协议是面向连接的,可靠性高,费用也高;UDP协议是提供最少服务和费用的传输层协议。系统中没有采用TCP协议,因为CAN协议数据报每个数据帧最多为8个字节,如果采用TCP传输协议,要传输8个字节的CAN协议数据,就要首先通过3次握手建立连接,再传输数据,之后还要通过握手释放连接,这样传输效率对网络资源要求很高,而对于嵌入式网关,资源有限,为了减轻网关的处理任务和提高网络传输效率,故采用UDP协议。然而UDP协议提供不可靠的传输,对于控制网络来说,是不允许的。因此,本系统采用UDP协议加回传校验机制提高通信的可靠性。
应用层实现用户具体的应用,可根据具体应用编写用户协议实现。本系统的应用层实现以太网数据与CAN总线数据的透明传输。(下转第34页)
图2CAN控制器初始化、数据发送和数据接收流程图
31
(上接第31页)
2.3CAN-以太网协议转换软件
CAN-以太网协议转换软件负责将CAN协议数据包与以太网协议数据包格式相互转换。CAN通信协议有四种不同的帧
格式,本系统中使用标准帧格式。
一个标准的以太网物理传输帧除数据段的长度不定外,其他部分的长度都固定不变。以太网规定整个传输包的最大长度不能超过1514字节,最小不能小于60字节,当数据域的数据不足46字节时需填充;当超过1500字节时,需拆成多个帧传送。
以太网-CAN协议转换软件是本系统的软件核心,它负责从接收到的UDP报文中解析出完整的CAN协议报文并通过
CAN控制器发送到CAN总线。同时,它也可以将收到的CAN协议报文打包成UDP数据报,通过以太网控制器发送到以太网上。主程序工作流程图如图4所示。系统初始化完成后,当从以太网接收到数据包,LPC2368对数据包进行分析,如果是ARP数据包,则程序转入ARP处理程序。如果是UDP数据包且端口正确,则认为数据报正确。数据解包后,把数据部分打包成CAN协议标准帧格式,通过CAN控制器发送到CAN总线。反之,若从CAN总线接收到数据,则将数据按照UDP协议格式打包,由
以太网控制器发送到以太网上。
3结束语
以上设计的通信网关目前正应用于一煤矿监控数据采集系
统中,在井下共有8个CAN总线数据采集节点构成CAN总线网络,完成66路模拟量及32路开关量的数据采集,CAN总线传输波特率为125kbps。6台监控上位机通过工业交换机组成
局域网,通过通信网关与CAN总线网络互连。在应用中系统表现出良好的实时性和可靠性,满足一般工业应用要求。实践证明,该实现方法简单,外扩器件少,具有很高的稳定性和可靠性,该芯片非常适用于通信网关的设计。文中的程序和电路图均通过了调试,可以移植到其他系统中。
参考文献
[1]邹益仁.现场总线控制系统的设计和开发[M].北京:国防工业出版
社,2004
[2]BehrouzAForouzan,SophiaChungFegan.TCP/IP协议族[M].
北京:清华大学出版社,2002
[3]沈艳,郭兵,古天祥.基于Ethernet网络化仪器的设计与实现[J].化工
自动化与仪表.2004.31(4):24-25
[收稿日期:2007.3.24]
图4主程序工作流程图
储显示线程、串口读线程(监听线程)、串口写入线程。其中主控线程负责创建启动界面,及进行各线程的调用。
主控线程流程为主要为初始化工作,进行人机交互对系统进行有效配置,取得通讯所需的参数设置,并为系统进行整体工作创建读写线程来读取写入数据,在进行采集时将采集进来的数据交给存储显示线程进行处理,在进行向外(PC端)传送数据时将从存储线程得到的数据调用写入线程把数据通过串口传输。其主要功能如图5所示。
(1)写取
当PPC从串口读取数据入流程:首先要对操作的串口初始化:利用上文对串口操作的方法对串口进行初始化工作:串口设置、设置超时、清除读缓冲区,然后监听等待串口事件的发生(有数据到达),如果有数到达,进行读取操作,并将所得到的数据交给存储显示线程进行数据的存储与显示,并判断是否完成,如完成则退出,否则继续监测事件。其流程为如图6所示。
(2)写入
PPC将数据写入串口时首先要进行初始
化设置,其类似于读取流程,然后将数据存储显示线程中提取出来,利用写入线程即用到上文中的写操作,将数据写入到串口中,若完毕结束写入,否则继续该过程。其流程图如图7所示。
(3)处理
处理模块的实现主要是由处理显示线程来实现,该线程接收到由读入线程得到的数据,将数据存入创建的位图文件中并实时显示采集数据,并可以通过总线程命令实现对数据进行进一步处理。对于采集进入的数据通常存储到创建的文件中,其实现主要利用的是对文件的创建、写入、关闭过程。本模块的流程图如图8所示。
4结束语
本文对这种新型的实时采集系统做了详细介绍,并对其中
电价查询的重点PPC与单片机的通信过程做了详细的研究,并给出了本人的开发实现过程及相应的方法。对开发过程中出现的问题提出相应的解决办法。对于该系统以后可以支持USB的芯片下进行USB通信,可以使得通信更加高效。
参考文献
[1]田东风.WindowsCE应用程序设计[M].北京:机械工业出版社,
2003
[2]周立功.增强型80C51单片机速成与实践[M].北京:北京航空航天
大学出版社,2003卧式钻床
[收稿日期:2007.5.10]
图8
处理流程图
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
图6
数据读取通信流程图
图7冷库蒸发器
写入流程图
基于PPC数据采集平台设计
34

本文发布于:2024-09-22 17:24:19,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/217290.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   发送   总线
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议