基于ARM LPC2292 的CAN 总线和以太网间的网关设计

发布者:自由思考最新更新时间:2021-06-08 来源: eefocus关键字:ARM  LPC2292  CAN  总线  以太网间  网关设计 手机看文章 扫描二维码
随时随地手机看文章

0 引言

CAN总线是一种设备互连的总线型控制网络,与其它的现场总线相比,CAN 总线的数据通信具有突出的可靠性、实时性和灵活性。这些特点使得其能同时满足过程控制和制造业自动化的需求,因此被认为是最具有发展前途的现场总线之一。但是,由于其收发器驱动能力的限制,约束了CAN 总线的最远直接传输距离和总线上可以挂接的最大节点数,给系统组网带来了一定的困难。而另一方面,由于以太网的低成本、开放性、应用软硬件的支持以及强大的组网能力,目前已经是应用最广泛的局域网络技术,越来越多的工程师们开始采用CAN 总线与以太网结合的技术。针对这样一种情况,本文提出一种CAN 总线和以太网互连系统的设计方案,实现CAN 总线网和以太网的数据互连。


1 系统结构

用网关连接CAN 现场总线和以太网的网络架构图如图1 所示。

系统网络结构示意图

图1 系统网络结构示意图


网关的嵌入不仅使管理深入到控制现场,同时给系统组网带来了很大的方便。


1.1 网关嵌入的益处


① 增大了系统的最大CAN节点数


在不接中继器的条件下,一个CAN 子网内最多可以挂接110 个节点,而每个网关下可以连接一个子网,通过多个网关可以把多个子网联系在一起,从而增加了系统的节点数。


② 扩大了系统的组网范围


CAN 的直接通信距离大概只有10km 左右,系统按照现场区域和节点数构建子网,子网与子网通过以太网连接,从而突破了区域和距离的限制。


③ 实现了具有不同传输速度的现场总线子网的相互通信网关提供一个友好的人机接口,用户可以根据需要设置IP 地址和CAN 控制器的波特率。


1.2 网关嵌入的问题


网关的应用给系统带来方便的同时,也付出了一定的代价,在设计中必须考虑这些问题,以提高系统的整体效率。这些问题表现在:


①实时性


由于使用网关,对数据的处理必须经历先存储,再转换,最后再发送的过程,增加了一些存储转发延时。因此在设计中必须考虑系统的实时性,要求系统能在存储新接收到的数据后立即启动协议转换和数据转发任务,尽量减小系统延时。


② 安全性


若网关出现故障,会对CAN 子网和以太网间的通信产生影响,甚至会瘫痪这个子网与整个系统的通信。因此在硬件设计中,要尽量避免干扰等问题的出现;软件设计必须能对一些可纠正错误及时作出反应,并把错误信息返回给用户。


2 网关硬件设计


网关硬件设计分为CAN 接口、以太网网络接口和人机接口等3 个部分。


2.1 主控制器的选择


主控制器采用Philips 的ARM 控制器LPC2292。LPC2292基于一个支持实时仿真和跟踪TM 的16/32 位ARM7TDMI-SCPU。CPU 内核工作电压为1.8V,引脚工作电压为3.3V。


LPC2292 带有256 k 字节(kB)嵌入的高速Flash 存储器,完全可以满足系统代码的容量要求,无需外扩存储器;独特的加速结构使32 位代码能够在最大时钟速率下运行,可实现TCP/IP 协议栈中的ARP、TCP、UDP、ICMP 等网络协议。


LPC2292 内部集成两个CAN 控制器,方便系统采用冗余设计。CAN控制器主要特性有:单个总线上的数据传输速率高达1Mb/s;32 位寄存器和RAM 访问;兼容CAN2.0B,ISO11898-1规范;全局验收滤波器可以识别所有的11 位和29 位Rx 标识符;验收滤波器为选择的标准标识符提供了FullCAN-style 自动接收。


CPU 外部静态存储器控制器为CPU 内部系统总线和外部存储器或外部I/O 器件提供了一个接口。利用这种外部总线可以方便与以太网网卡控制器进行连接。


2.2 CAN 接口


考虑系统的安全性,CAN 接口部分采用冗余设计。当正常通道发生故障时自动调用冗余通道进行传输;如果冗余通道也发生故障,则进入故障处理。其硬件接口示意图如图2 所示。LPC2292 两路通道分别通过高速总线驱动器TJA1050 与总线相连。总线驱动器采用带隔离的DC/DC 单独供电,不仅实现了两路通道之间的电气隔离,也实现了网关与总线之间的电气隔离。


2.3 网络接口


网卡控制器采用台湾RETACK 公司的10M 以太网控制芯片RTL8019 ,支持全双工工作模式,软件兼容8 位或16 位的NE2000 模式;内部集成DMA 控制器、ISA 总线控制器以及16kRAM 、网络PHY 收发器等。RTL8019 使用LPC2292 外部存储控制的BANK3 部分,它的数据地址范围为0x83400000~0x8340001F 。RTL8019 的工作电压为+5V,而LPC2292 的引脚工作电压为3.3V ,所以还应在连接线上串联470 Ω 的保护电阻。网络采用双绞线传输。

网络硬件结构示意图

图2 网络硬件结构示意图


2.4 人机接口


除了上面的主要部分外,还有LED 数码管显示和键盘部分,LED 用来显示工作状态,键盘根据具体实际情况修正总线波特率和网关的IP 地址。


3 软件设计


3.1 引入RTOS


网关设计对系统的实时性要求比较高,而采用传统的前后台设计方法又会显得过于复杂,实时性得不到保证。解决这个问题的最好方法就是采用实时操作系统RTOS 。目前世界上已有一大批成熟的嵌入式操作系统,其中μC/OS-II 操作系统是一种源代码公开的嵌入式操作系统,具有代码短小精悍、简单易学的特点,针对网关的设计,这是一个理想的选择。


μC/OS-II 完全是占先式的实时内核,是基于优先级的,即总是让就绪态中优先级最高的任务先运行,因此实时性比非占先的内核要好。它的绝大部分代码是用C 语言编写的,可移植性强。

嵌入式计算机系统

图3 嵌入式计算机系统


3.2 系统构成


嵌入式网关的功能主要是进行以太网数据报文和CAN 数据帧之间的协议转换,实现以太网和CAN 总线的互连;其次是根据应用环境,通过人机交互接口改变网关的IP 地址和CAN 总线的波特率。整个嵌入式系统的构成如图3 所示。在进行任务设计之前的前期工作有:


① 实时操作系统的移植。μC/OS-II 可以在绝大多数8 位、16 位、32 位、以至64 位微处理器、微控制器、数字信号处理器(DSP)上运行。μC/OS-II 在LPC2292 上的移植可参考文献[1]。


② TCP/IP 协议和CAN 协议的嵌入。由于μC/OS-II 操作系统只包含了实时内核、任务管理、时间管理、任务间的通信同步(信号量、邮箱、消息队列)和内存管理等功能,所以用户必须根据自己的需要添加一些功能模块。网关的设计将TCP/IP 和CAN 协议嵌入到操作系统中,并提供一些API 接口函数供用户调用。


3.3 系统实现


采用RTOS 使整个设计简单且易调试,各个任务相互独立,而且各个任务具有不同的优先级可以保证紧急任务及时响应,从而能有效地对任务进行调度。系统软件设计由操作系统和一系列用户应用程序构成。 主函数是程序首先执行的一个函数。该函数永远不返回,主要实现系统的硬件(包括中断、键盘、显示等)和操作系统(包括任务控制块、事件控制块)的初始化,而且在启动多任务调度之前,必须至少创建一个任务。在本系统中创建了一个启动任务,主要负责时钟的初始化和启动、中断的启动、CAN 控制器的初始化与启动、端口与IP 地址的初始化和RTL8019 的初始化与启动,并且对各个应用任务进行了划分。在交出CPU 的使用权之后自做一些空闲处理。


3.3.1 任务的划分


要完成多任务系统的各种功能必须对任务进行划分。本程序根据各个任务的重要性和实时性,把整个模块分成7 个具有不同优先级的应用任务:系统监控、CAN 数据发送、键盘扫描、以太网数据发送、协议转换、LED显示、系统配置等。表1 所示为任务划分表。


表1 任物划分表

任物划分表

除了7 个主要应用任务之外,还有两个中断服务子程序:一个时钟节拍中断,提供周期性信号源;另一个接收中断,把接收到的数据写入缓冲区。


3.1.2 务的具体实现任务划分后,各任务具有独立的堆栈空间,彼此争夺CPU 的使用权。一旦获得CPU 的使用权,就会独立运行而完成特定的功能。


CAN 总线通信模块包括数据传输和总线管理两个部分。数据传输实现的功能有CAN 初始化、CAN 报文发送和CAN 报文接收。CAN 初始化及报文的接收在启动任务与中断服务程序中实现,CAN 报文发送和总线管理作为一个单独的任务独立运行。总线管理功能块实现的主要是总线检测,判断一路总线是否良好。如果不是,就进入另一路总线检测;如果冗余总线良好,就采用冗余总线通信。CAN 数据发送任务需要系统调度器通知是否有待发送数据进入发送队列,任务的实现如图4 所示。

数据发送任务实现图

图4 数据发送任务实现图


以太网通信模块由以太网数据收发功能块和数据协议管理功能块构成。数据的收发功能块主要实现RTL8019 的初始化、数据报文的发送与接收。同理,RTL8019 的初始化在系统的启动任务中实现。数据的接收在RTL8019 的中断服务程序中实现。数据协议管理主要实现对接收数据报文的解析,以及给待发送数据添加协议报头。以太网数据发送与协议管理分别作为独立任务运行。


以太网数据发送任务同样需要系统调度器通知发送队列中是否有待发送的数据。若没有数据发送,则将 该任务挂起,系统运行其他任务。以太网数据发送任务通过对RTL8019 的操作完成,根据RTL8019 的状态,将发送队列中数据通过DMA 传送到8019 的发送缓冲区启动发送,并根据发送结果,对发送队列指针进行调整。


以太网协议管理即协议转换任务在用户数据与8019 驱动需要的数据报文之间进行协议转换。TCP/IP 协议为应用层、传输层、网络层和数据链路层等4 层模型,每层具有不同的功能,并对应相应的子协议,而且层与层之间在逻辑上是相互独立的。在编程时,可以直接调用嵌入的TCP/IP 协议的API 函数对数据报文进行分层。该任务对从8019 传过来的数据处理示意图如图5 所示。不同的子协议具有不同的功能号,任务根据功能号对协议进行区别。把用户数据传递给8019 驱动的示意图是图5 的逆序表示。


协议转换任务的数据处理的示意图

图5 协议转换任务的数据处理的示意图


3.3.3 任务间的同步与调度


通常多任务操作系统的任务不同于一般的函数,它是一个无限循环,而且没有返回值。如果没有更高优先级的任务进入就绪态,当前任务是不会放弃对CPU 的使用权的。为了实现操作系统的正常运行和有关事件的同步,必须正确处理任务间的通信和事件标志的设置。整个系统的功能结构如图6 所示。

系统运行示意图

图6 系统运行示意图


各个任务具有不同的优先级,通过调用系统挂起函数或延时函数可以启动具有更高优先级的进入就绪态的任务。高优先级的任务,例如1、2、3、4 号任务,往往由于申请某个资源而发生阻塞,进入挂起态。系统调度器启动低优先级的任务,通过对延时参数的设置,每隔一定时钟节拍就启动键盘扫描或LED 显示任务。如果其中有任何一事件发生就启动相关的任务,这个过程通过信号量的通信机制来实现。对每一个事件分配一个信号量,一旦事件发生就启动信号量的等待任务列表中进入就绪态的任务,从而保证任务与事件的同步。


4 结束语


在嵌入式硬件平台的基础上,用μC/OS-II 实时操作系统开发应用程序有其独到之处,用户可以直接利用系统的接口函数编写自己的应用程序,毋需另行开发,大大方便了用户编程,缩短了软件的开发周期,提高了开发效率;基于ARM LPC2292 CAN 总线和以太网间的网关,在实验调试过程中运行状况良好,工作稳定。


参考文献


周立功等.ARM微控制器基础与实战.北京航空航天大学出版社,2003.11

Jean.Labrosses 著,邵贝贝等译.嵌入式实时操作系统μC/OS-II.北京航天航空大学出版社,2003

饶运涛等.现场总线CAN 原理与应用技术.北京航空航天大学出版社,2003.6

莫传孟.基于嵌入式系统μC/OS-II 的双CAN 通信构件.微计算机信息,2004,20(3)

Jean J.Labrosses 著,袁勤勇等译.嵌入式系统构件.机械工业出版社,2002

村三公保著.TCP/IP网络试验程序篇.科学出版社,2003.4.

关键字:ARM  LPC2292  CAN  总线  以太网间  网关设计 引用地址:基于ARM LPC2292 的CAN 总线和以太网间的网关设计

上一篇:基于LPC2138和μC/OS II的超声波测距系统设计
下一篇:嵌入式系统设计师必备的在线ARM仿真器知识

推荐阅读最新更新时间:2024-11-19 20:54

苹果正秘密试验将Mac OS X导入ARM架构
前苹果实习生、现任苹果核心系统工程师崔斯坦-沙普(Tristan Schaap)一篇学士论文显示,苹果正在秘密试验将Mac OS X“雪豹”系统导入ARM架构平台。 2010年,沙普在苹果平台技术小组实习了12周时间,随后便发表学士论文。由于包含敏感信息,该论文起初被禁止出版,但荷兰的代尔夫特理工大学数月前出版了这篇论文。 根据其论文,沙普与开发小组一道在Marvell 的ARM处理器上试验启动Mac OS X系统的“底层” Darwin。在此过程中,沙普达到了“多用户迅速启动”的目标,但由于在“调试硬件上表现不佳”,一些问题依然存在。   由此可见,苹果很可能正在探索将Mac OS X系统导入ARM架构,但这并不意味苹
[嵌入式]
平民价格高端体验——arm重塑中端智能机图像性能
“目前在移动世界发生了什么变化呢?消费者的使用行为发生了变化,智能手机已成为打通人类通向世界的网关。”arm资深市场营销总监Ian Smythe表示。 arm资深市场营销总监Ian Smythe 对于arm来说,Ian认为最大的使命是实现全人类的连接,所以随着人们对机器学习、3D游戏以及混合现实的需求越来越强烈,这些以往都属于高端智能机的应用必须普及,为此,arm推出了一系列图形处理器产品,以满足主流的处理器对于各种各样的计算任务的胜任。 关于AI,arm准备了更多 “Arm处理器已经成为当今人工智能演进过程中的核心部分了。”Ian表示,根据IDC的市场调查显示,目前市场上90%具有人工智能能力的设备是基于a
[嵌入式]
平民价格高端体验——<font color='red'>arm</font>重塑中端智能机图像性能
苹果曾试图将Mac OS移植到ARM架构但失败
据国外媒体报道,一名曾在苹果操作系统工程师团队工作过的实习生在论文中透露,苹果曾试图将Mac OS X Snow Leopard移植到ARM架构。 这位大学生的名字为Tristan Schaap。2010年的时候,Tristan Schaap在苹果实习了12周,这段时间里,他的主要工作就是让Mac OS X系统的核心在ARM架构处理器上运行(MV88F6281处理器,由Marvell推出)。随后Tristan Schaap以此工作经历写了篇毕业论文。但由于包含敏感信息,该论文起初被禁止出版。直到数月前,荷兰的代尔夫特科技大学才出版了这篇论文。 苹果曾试图将Mac OS X Snow Leopard移植到ARM架构 Tr
[单片机]
恩智浦半导体推出ARM Cortex-M3微控制器
恩智浦半导体近日推出 基于 ARM® Cortex™-M3 处理器 的业界最快速微控制器 LPC1700 系列。 LPC1700 系列微控制器在运行速度高达 100MHz 时,比目前市场上可供的其他 Cortex-M3 微控制器产品运行速度更快 28%-64% 。 LPC1700 系列的一流性能令其能够毫无瓶颈地同步操作高带宽通讯周边器件,例如 Ethernet 、 USB On-The-Go/Host/Device 以及 CAN 。 LPC1700 基于新的 Cortex-M3 R2 修订版内核, 增加高度集成的功率控制,包含一个独特的唤醒中断控制器( WIC : Wake-up Interrupt Con
[嵌入式]
基于ARM的手持终端测试仪中的两种供电方式设计
1 引言 在多功能智能仪器仪表中,在不同的工作现场,有时需要不同的供电方式。目前来说,在电源的研究方面,冗余电源和多种供电方式是现在的研究热点。冗余技术已经比较成熟,应用也比较广泛,现在很多仪器仪表都是基于冗余电源设计的。多种供电方式应用的也比较多,但是把多种供电方式集成于同一电子产品中的还不多。本文实现了两种供电方式的设计,并使其应用于多功能手持测试终端,有效降低产品的成本,并且为设备维护带来了方便。 2 两种供电方式的设计 在电子产品的供电系统中,比较普遍的是基于锂电池供电,比较新颖的是总线供电系统。本设计集成了总线供电和锂电池供电两种方式,并对两种供电方式进行了特殊处理,避免了其中一套供电时对另一套电源造成的影响
[单片机]
基于<font color='red'>ARM</font>的手持终端测试仪中的两种供电方式<font color='red'>设计</font>
ARM学习笔记---中断
中断优先级由高到低 51单片机:INT0(P3.2)、TIMER0、INT1(P3.3)、TIMER1、串口中断(P3.0、P3.1) 52单片机:TIMER2 外部中断下降沿触发 内部定时器:TMOD寄存器(M1M0) M1 M0 方式 0 0 0 13位 0 1 1 16位 1 0 2 8 auto 1 1 3 两个8位 串口{RI- while(RI!) TI- while(TI!)} 执行指令时中断来了,先执行完这条指令再处理中断. 单片机与外部进行信息交换的方式:轮询方式、中断方式、DMA 2451 53个中断源 程序初始地址:0x30000000 中断向量地址:0x00000000 中断模式: IRQ:正
[单片机]
<font color='red'>ARM</font>学习笔记---中断
飞思卡尔推出采用ARM Cortex-A72内核的QorIQ LS2处理器
采用基于ARM的新QorIQ多核处理器解决方案,飞思卡尔让网络变得更加个性化、便捷化与智能化 带数据路径加速功能的新型QorIQ LS1多核处理器,以及即将问世的采用ARM Cortex -A72内核的QorIQ LS2处理器,将打造业界最广泛的网络处理器组合 随着全球网络越来越虚拟化,智能正逐渐接近网络边缘,访问个人数据变得更加迅捷、安全和有效。借助硬件/软件处理资源的合理组合和数据路径分流,可实现实施灵活性和性能便捷性,对于帮助服务提供商和原始设备制造商交付动态、灵活网络所需的专用设备至关重要,而动态、灵活的网络正是发展物联网的关键所在。 为满足这些需求,飞思卡尔半导体公司(NYSE:FSL)日前
[网络通信]
嵌入式MPEG-4解码系统的设计与实现
介绍了一种嵌入式高图像质量的MPEC-4视频流解码系统。该系统以嵌入式Linux作为操作系统,采用硬解码方式,把IDE接口设备或网络端口输入的MPEC-4视频码流(ES、PS和TS)转换成PAL/NTSC制式的电视信号输出。重点讨论了系统控制和MPEG-4解码部分的设计。 随着通信和网络技术的飞速发展,多媒体及其视频流应用越来越广泛,同时用户也对视频传输速率和图像质量有更高的要求,MPEG-4标准适时地解决了多媒体压缩存储和传输的问题。但是目前多数播放器都是在PC机上运行,应用范围受到很大限制。研究和开发一种嵌入式的MPEG-4解码系统终端具有重要的现实意义和实用价值。 MPEG-4标准是由国际运动图像专家组于2000年10月公
[工业控制]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved