Board logo

标题: [转帖]总线协议转换器开发设计实例 [打印本页]

作者: rose007    时间: 2009-8-19 10:10     标题: [转帖]总线协议转换器开发设计实例

目前,在国内工业现场已投入使用的许多控制系统中仍有大量带有RS232/RS485串行接口的仪器设备或装置(统称为串行设备)。在不断投入新型现场总线的同时,要在短期内改造或淘汰这些旧有设备和系统是不现实的。

在一定时期内,新旧总线系统同时并存或使旧有设备应用到新型总线系统中成为客观的现实需要。因此这种情况下,将传统串行设备通过协议转换装置集成到新型现场总线系统中是一种很好的选择。针对此问题,本文研究开发了基于DSP的通用串行设备到DeviceNet总线间的协议转换器(Gateway),使用户可简单方便地将带有RS232/RS485串行接口的设备连接到DeviceNet系统中,实现无缝集成,此外还可支持RS485子网到DeviceNet系统的集成。

DeviceNet总线在国内的应用日趋广泛,因此研究串行设备到DeviceNet总线的协议转换是非常必要和有意义的,这对于促进DeviceNet总线在国内的推广和应用也有所裨益。

2.问题分析及总体设计(Question analysis and blueprint)

RS232/RS485是目前工业控制中应用非常普遍的两种串行通信接口,RS232/RS485标准只对接口的电气特性做出规定,而不涉及接插件、电缆及应用层协议,在此接口基础上设备开发者根据设备自身特点和实际应用要求建立应用层协议,编写相应通信程序固化于设备中。DeviceNet核心是基于CAN的物理层和数据链路层之上的应用层协议,采用面向对象方法进行描述,详细定义了总线上数据传输的具体语法和语义。

串行设备通常是以字节为单位进行通信,信息格式和信息所包含的操作地址、功能码、操作数据和校验值等内容的确切含义,以及通信过程由协议开发者确定。与此相比,DeviceNet通信数据的成帧处理等操作在数据链路层完成,应用层采用对象的概念和面向对象的方法组织DeviceNet设备内外部的数据信息和通信功能,DeviceNet规范中已提供大量预定义的标准对象库及相应设备描述供参考和使用。同时开发者通过EDS(Electronic Data Sheet)文件的方法定义各设备可配置的参数,使用户可借助组态配置工具访问或更新这些设备参数,从而保证不同厂商设备间的互可操作性和互可交换性。DeviceNet定义了两种报文类型实现总线上的数据通信,即I/O报文和显示报文。此外,协议也详细规定了和通信过程相关的内容,如数据传送方式,连接机制等。

因此,通过一个转换装置将串行设备连入DeviceNet总线系统,首先要考虑的问题是转换器两侧的设备和系统通信时序的配合;其次是数据在进行双向交互时,相关信息在应用层协议上的解析和封装。

从这两方面入手进行DeviceNet串行协议转换器的设计存在较多难点。DeviceNet总线系统的波特率相对较高,轮询速度快,而大多数串行设备通信速度低,数据收发间隔时间长,这样有可能超过DeviceNet一般连接超时时间,因此必须采取措施实现高速DeviceNet系统和低速串行设备间的信息同步。本设计从硬件和软件两个方面提出了解决方法:

1.硬件:设置接收发送缓冲区。从DeviceNet系统接收的数据先保存在发送缓冲区中,待串行通道空闲再发送;接收缓冲区存放来自串行设备的数据,待接收到所需数据后,再由协议转换器在下一次主站轮询响应报文中将数据返回给系统主站。

2.软件:为使DeviceNet与串行设备间通过协议转换器交换的数据更明确可靠,在I/O轮询报文中附加自定义协议字节做为同步信息,协议内容可包括发送序列号、接收序列号或握手协议等信息。通过这些信息使通信双方明确当前数据交换的状态,进而有效控制下一步的通信操作,保证数据不丢失,正确传送。

造成协议转换器开发困难的另一个原因在于它不是面向特定串行设备的专用接口,而是可连接一般串行设备到DeviceNet系统的通用型转换装置,即支持基于不同通信协议的产品挂接到串行设备侧。因此,在进行协议转换处理时需充分考虑各种串行设备的通信要求,如波特率、数据格式、数据长度和帧格式等,并以开放参数的形式提供给用户。本设计中,协议转换器不对本身传输的数据进行解释,通信信息将保持自己的原始定义。用户在使用前可灵活根据不同应用中串行设备端通信要求进行参数配置,协议转换器将根据这些配置参数实现所需信息的透明传输。采用这种思想,可以使得该转换器应用于多种场合,满足不同形式串行设备向DeviceNet系统集成的需要。

目前市场上大多数DeviceNet产品只具备从站(Slave)功能,即产品在主/从通信方式下工作。而从节点中使用最多也是最简单的一种通信模式是仅限组2模式(Group 2 Only Slave)。对于仅限组2模式的从站,DeviceNet指定了一套称为预定义主/从连接组的连接标识符,用来简化在主/从结构中的数据通信和组态。本设计开发的协议转换器便是基于组2模式的从站设备,支持显示报文和I/O轮询报文,可满足大多数DeviceNet串行协议转换的应用需求。

3.硬件平台的构建(Construction of hardware platform)

硬件平台首先应满足DeviceNet串行协议转换器的基本应用要求,在此基础上,考虑到电路应可靠、简洁、实用,且能在一定程度上反映出当前设备更新趋势,故本设计选用了TI公司的DSP芯片TMS320LF2407A作为协议转换器的核心处理器。TMS320LF2407A速度高,片内资源非常丰富,其中包括完全支持CAN2.0B协议的CAN控制器、标准串行异步通信的SCI接口、看门狗电路和32K的Flash存储器等模块。选用TMS320LF2407A作为核心处理器可减少外设的扩展,提高整个硬件系统的可靠性且维护方便。同时TI公司为DSP设计提供了功能非常强大的软件集成开发环境,支持硬件在线仿真,方便了代码的调试。

TMS320LF2407A片内CAN控制器模块完全支持CAN2.0B协议,可满足本次设计需要。

该模块具有以下主要特性:

l 支持标准和扩展标识符(协议转换器只使用标准标识符);

l 支持数据帧和远程帧(协议转换器只使用数据帧);

l 有6个邮箱,其中包括2个接收邮箱、2个发送邮箱和2个可配置邮箱。对0~4号邮箱提供接收屏蔽功能;

l 中断配置可编程;

l 总线错误诊断功能;

l 出错自动重发功能;

l 可编程的位定时器;

l 提供自测试模式。

此CAN控制器模块的每个邮箱都具有独立的标识区、控制区和数据区,数据区长度为8个字节,故可分别将各邮箱分配给某一类报文进行相关数据处理。采用这种方法可使整个报文收发操作更具模块化,便于代码的维护和扩展。同时因为设计选用的DSP芯片工作频率在ns级,故可确保对DeviceNet网络中的通信请求能够及时做出响应,满足一般应用场合中报文收发速率的匹配。

DeviceNet串行协议转换器硬件平台按功能分为三个部分,分别是:以DSP为核心的协议转换器最小系统电路、通信接口电路和辅助功能电路。其中通信接口电路包括RS232接口、RS485接口和CAN接口收发器电路;辅助电路包括波特率及协议转换器地址设定开关电路和设备及网络状态指示电路等。在DSP外部扩展了64K SRAM,其中前32K作为程序存贮器,便于开发阶段程序的调试。实际应用时程序仍烧入片内FlashROM;后32K作为数据存储器,以保证协议栈和协议转换有足够的数据缓冲区。协议转换器的硬件框图如图2所示。

4.软件设计(Software design)

协议转换器接入DeviceNet系统后首先进行一系列自检操作,其中最重要的是重复MACID的检测,检测无误则进入在线状态。主站扫描检测到有新节点上线后首先确认该节点是仅限组2的从站设备,然后通过未连接端口与协议转换器建立连接,这时两者便可利用显式报文和I/O轮询报文进行数据交换。协议转换器对数据进行适当处理后按照当前配置参数与串行设备进行通信,得到主站所需数据或执行某操作,然后以一定方式将此信息反馈给主站。

协议转换器与外部的交互有四种数据,一种是来自DeviceNet总线上其它设备的Request数据,协议转换器只接收针对本设备的Request数据,而屏蔽网络上和本设备无关的数据流,这可通过CAN控制器的报文滤波功能实现。在主从型网络中,协议转换器只有在接收到网络上其它设备向它发送的报文后才能产生应答。唯一由协议转换器向网络主动发送的报文是重复MACID检测报文,这一检测操作是在设备上线时进行的。第二种数据是协议转换器收到I/O轮询请求报文后,提取报文所含数据信息,按照当前参数设置处理后发送给串行设备。第三种数据是协议转换器接收来自串行设备的响应,该数据可能是具体信息,也可能只是串行设备收到命令后的应答,要视实际应用而定。协议转换器不必分析信息具体内容,仅对所需数据按照协议格式进行解析封装和存储即可。第四种数据是协议转换器根据主站的请求“产生”(Produce)主站所需的Response数据,这部分数据必须符合协议要求,这也将是以后进行DeviceNet产品一致性测试的主要部分。






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0