以CANopen为例说明解决嵌入式网络多接口问题 点击:1930 | 回复:1



xiaolifeidao

    
  • 精华:28帖
  • 求助:0帖
  • 帖子:130帖 | 357回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-10-26 14:18:00
楼主
嵌入式网络历时已久,与此同时也产生了几种不同的标准。未来在一个应用中使用多个微控制器(MCU)的趋势将不断延续,其结果就会出现越来越多的嵌入式网络,但由于缺少一种主导性的标准,因此将需要更多的网络间接口,嵌入式网络桥接技术对于解决多接口问题便提供了很好的解决方案。 近来,许多嵌入式应用都涉及到嵌入式网络问题,应用中使用了多个微控制器,它们之间相互通信。这样做是因为系统的控制是分布式的,或者是因为远程传感器和执行器需要连接到主控制单元。 最近的趋势之一是在一个系统内使用多个嵌入式网络。使用多个网络有助于使单个网络上的负载保持较低和更可预测。使用多个网络的另一个需求是当需要把在嵌入式网络上采集的数据传送到更高控制层或统计数据采集层时,经常负责将数据向更高控制层报告的网络具有一些与传感器和执行机构上的网络完全不同的要求,因而可能采用完全不同的技术和网络协议栈。为了实现这两种网络之间的接口,就需要采用某种桥接或网关技术。 协议转换 用于嵌入式网络的网桥和网关不仅要能够接收和转发信息,通常还需要执行协议转换工作。CAN总线上使用的协议可能是DeviceNet或CANopen,而以太网上使用的协议则可能为TCP/IP。为了能够将数据从其中一个网络向其他网络传递,可能需要执行进一步的数据处理,一个网关不仅需要实现所有协议栈,而且还需要能够进行处理。另外还需要一些详细的配置,以便让网关知道要把哪个网络上的哪个数据转发到另外的某一网络上。 转发器、网桥和网关 当需要在不同网络架构间进行接口时,有多种多样可实现这些网络互连的方法,最常用的就是转发器、网桥和网关。就硬件和软件要求而言,包括开发和配置在内,转发器、网桥和网关之间在复杂度上存在很大差别。转发器不需要微控制器和软件就可以开发,网桥则需要有一个中等性能的微控制器/微处理器,并运行熟悉选定网络协议特性的软件。而网关则需要有一个高端微控制器/微处理器,并运行功能全面的软件包,它需要能够理解与之连接的“所有”网络协议和“所有”传送数据的详尽配置信息。只有拥有这些信息,网关才能做出决策,决定将哪个数据如何转发以及发往何处。 网桥和网关对微控制器的要求 对网桥或网关中使用微控制器的第一个要求是要能够访问需要进行互连的嵌入式网络。所需的这些通信接口越是集成在片上,网桥或网关的实现就会更简单和更经济。添加外围元器件来处理这些通信接口通常要花更多成本(增加芯片数量和PCB板空间)。 其次,微控制器需要具备足够的性能来处理这些接口上恶劣情况下的通信负荷,以保证没有信息丢失。在此,需要着重指出的是,不仅要考虑总吞吐率,还要考虑最差情况延迟,这种情况可能会在中断服务程序从接收缓冲区中检索数据前发生。 最后,微控制器需要能够访问一定容量的RAM和非易失性存储器。RAM用于在将数据转发到其他网络前对数据进行缓冲/暂存以便处理。非易失性存储器(如EEPROM或Flash)用于存储配置信息,这些信息可决定将来自哪个网络的哪个数据,通过什么方式转发到其他哪个网络。一般而言,网关需要的RAM比网桥要多得多,网桥需要的RAM比转发器要多得多。 至于所需的性能要求,一般的流行通信接口可分为三组: ◆ 面向字节通信(RS-485、LIN、I2C) 可通过低性能微控制器来处理,包括许多8位衍生系列控制器。 ◆ 面向消息、小量、高速率(CAN) 如果要处理两个接口,一般至少需要使用一个中等性能的16位微控制器。如果要处理三个或更多接口,则需要使用一个32位微控制器。 ◆ 面向消息、大量、中等速率(以太网) 要实现网桥或网关的高效处理,一般需要使用一个32位微控制器。 使用微控制器示例 以飞利浦公司的LPC2000系列微控制器为例,LPC2000是基于ARM7的32位高性能微控制器,具有多种通信接口。LPC2000系列产品目前最多具有4个CAN接口、2个UART和2个I2C接口。未来还将提供具有附加以太网和USB接口的衍生系列。32位性能(频率最高可达60MHz)与众多通信接口的结合,使LPC2000适合许多桥接和网关应用。 ESAcademy的测试表明,LPC2000可在不到5毫秒的时间内处理一条由高层协议(如CANopen)使用的CAN消息,这种处理包含了有关该数据的所有高层协议解释。作为直接对比,一个中等性能的16位微控制器执行同一任务需要约160毫秒。 对于使用所有4个CAN接口、通信速率为1Mbps、且总线负荷为100%时的最差情况,LPC2000平均可每12.5毫秒处理一个消息(4个CAN接口中每个接口每50毫秒一个消息),从而使CPU负荷低于50%。 采用公共协议缩短开发时间 多种网络技术及协议之间的嵌入式网关的开发需要更高端的处理能力和进行大量的软件开发,每种网络协议的实现必须具备将消息从一个网络协议转发到其他网络协议的方法。然而,如果在不同网络技术中采用一种公共协议,则可以大大减少此类网桥和网关的开发工作。 公共协议CANopen颇受欢迎 公共协议的一个例子就是CANopen,它不仅可以在CAN上运行,而且可以在很多的各种串行总线以及以太网上运行,这极大地简化了网桥或网关的开发,具体表现在多个方面:首先,由于多个接口采用同一协议,因此协议栈的开发被大大简化,一些代码程序和独立于硬件的功能可以共享。其次,由于交换的数据仍然处于同一协议内,因此网桥或网关的配置得以简化。它不需要先进行完全转换然后再重新提交给某个网络协议栈,从而能够获得较快的转发机制。 需要指出的是,上述网桥或网关的开发绝非“只是容易了一点”,而是整个复杂度被大大简化。例如,假定一个网关需要处理三种不同的网络技术:RS-485传统网络、CAN及以太网。如果所有三种网络采用不同的网络协议,那么这些协议栈都必须实现,另外还必须创建并维护数据转发表和/或算法。 但如果所有三种网络技术采用一种公共协议,那么协议栈的开发时间将只占到开发3种不同协议时开发时间的30%~50%。此外,数据转发算法也将只占原来开发时间的30%~50%,因为转发数据是在同一协议内进行的,这比将数据重新打包成不同协议要简单得多。 CANopen衍生协议已应用在多种串行总线(MicroMessaging)及以太网(Ethernet-Powerlink)上,并获得很大成功,使CANopen成为公共网络协议首选协议的理由还有: ◆ 其在标准可获得性方面的开放性(规范可从CiA-CAN自动化用户及制造商组织获得) ◆ 可针对深度嵌入式应用进行定制的开放性(可针对应用要求进行优化) ◆ 最小形状因子、最小实现可使用一些最小的8位微控制器 ◆ 应用程序独立性(不只限定于某个特定的、有限的用途) ◆ 数量众多的开发工具提供商,如配置工具、监测器、分析仪、库、源代码和现成产品。 总之,CANopen非常适合用于多种通信技术,只要这些技术是提供某些基本的、公共的要求。 使用嵌入式网络的应用多种多样,汽车、工业或机械控制之类的应用使用嵌入式网络已经有多年了。如今,几乎任何包含执行机构(如电驱动/电机、水力或气动机械)的机械均使用了嵌入式网络,而微控制器的不断升级换代对嵌入式网络桥接技术的发展也起到了关键的推动作用。



qjy

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:52
  • 注册:2005年8月10日
发表于:2006-02-12 13:10:00
1楼

热门招聘
相关主题

官方公众号

智造工程师