网络协议转换器

2024-08-07

网络协议转换器(精选7篇)

网络协议转换器 篇1

0引言

现代工业中,传统的通讯协议转换器不够灵活,不能满足不同的应用环境需求,误码率较高,传输速率较慢。国外,施耐德公司生产了Modbus/Modbus TCP网关,但价格不菲,且该网关只能实现底层采用Modbus现场总线网络与信息层采用Modbus TCP工业以太网之间的功能连接,而工业控制系统中大量存在的自由协议设备无法直接接入该网关。为解决这一问题,本文研究了一种机电控制自动化网络通信协议转换器,其能借助μC/OS-Ⅱ操作系统把一种自由协议转换成标准的TCP/IP协议,并通过移植LwI P协议栈进行网络传输[1],除此之外还可根据现场总线类别的不同选择不同的通讯协议。该协议转换器用于将现有RS485串行数据转化成遵循Modbus TCP协议的数据,从而将自由协议设备与Modbus总线网络连接,进而与EtherN et连接起来,并能在既有网络基础上简化布线[2]。

1转换器硬件组成分析

如图1所示,协议转换器主要包括:微处理器(MCU)101以及分别连接至微处理器101的电源电路102、电源指示灯103、上端接口拓展电路104、下端接口拓展电路105、转换器状态指示灯106、存储器107。

(1)微处理器101是整个工业控制自动化网络通信协议转换器10的控制中心,采用STM32F103系列芯片,它包括以太网MAC层控制器、CAN控制器和USART串型接口,支持以太网、CAN总线、RS232总线和RS485总线扩展,能完成不同协议之间信息的解析与分发[3]。

(2)上端接口拓展电路104采用软件协议栈和硬件协议栈相辅相成的设计,包括硬件协议栈芯片1041、软件协议栈芯片1042、串行通讯接口(USART)1043、以太网接口1044以及用于切换硬件协议栈芯片1041和软件协议栈芯片1042与上位机20通信的切换开关1040。

1)串行通讯接口1043实现微处理器101与Modbus网络的连接,以太网接口1044实现微处理器101与工业以太网的连接,由此,根据通信要求,通过切换开关1040来接通硬件协议栈芯片1041或软件协议栈芯片1042与微处理器101的通信连接,从而使得微处理器101和PC主机等上位机20之间选择使用硬件协议栈或是软件协议栈来进行数据的快速传输。

2)硬件协议栈芯片1041可采用内嵌MAC和PHY层的M5500系列协议芯片,软件协议栈芯片1042可采用ENC28J60系列以太网控制芯片。软件协议栈通过一个以太网控制芯片ENC28J60加入网络接口实现以太网的物理连接,借助μC/OS-Ⅱ操作系统把一种自由协议转换成标准的TCP/IP协议[4],并通过移植LwI P协议栈进行网络传输,进而通过植入TCP/IP协议代码实现通信及上层应用。

(3)电源电路102可以包括DC 24 V变DC 5 V隔离电源、DC 3.3 V稳压芯片、稳压滤波电路以及复位电路,采用隔离电源和稳压芯片两级配合的方式来提高带负载能力和供电的稳定性。

(4)电源指示灯103用于指示该通信协议转换器10的电源连接状态,转换器状态指示灯106用于指示该通信协议转换器10的工作状态。

(5)存储器107可以为EEPROM或FLASH存储器,用于存储微处理器101收发的数据。

(6)下端接口拓展电路105包括与多个下位机(即子设备)301、302、303、304一一对应通信连接的多个串行通讯接口1051、1052、1053、1054,串行通讯接口1051、1052、1053、1054可以是RS232接口或RS485接口。

2通信协议转换方法

2.1总体描述

打开电源,电源指示灯103亮,通过电源电路102的复位电路进行复位。根据通信要求对切换开关1040进行操作,选择使用硬件协议栈芯片1041或软件协议栈芯片1042,上位机20通过以太网发送TCP/IP协议(即请求数据),该TCP/IP协议经过上端接口拓展电路104传送到微处理器101,为防止数据丢失,微处理器101通过存储器107保存数据,微处理器101完成TCP/IP协议到自由协议的转换后,转换器状态指示灯106亮,转换的自由协议通过下端接口拓展电路105后发送到相应的下位机,下位机响应上位机的请求,反馈的自由协议响应数据通过微处理器101转换为TCP/IP协议,并最终通过上端接口拓展电路104传送至上位机20。

2.2具体步骤分析

步骤1:根据通信要求对通信协议转换器的切换开关进行操作,选择使用上端接口拓展电路中的硬件协议栈芯片或软件协议栈芯片与上位机通信。

步骤2:上位机通过通信协议转换器向相应的下位机传达请求数据,上位机根据所请求的数据通过选择的硬件协议栈芯片或软件协议栈芯片发送TCP/IP协议至通信协议转换器的微处理器;微处理器接收到上位机发送的数据后,通过预设的数据位和校验位判断数据是否符合通信协议,若符合则微处理器把接收到的TCP/IP协议保存并转换为自由协议,并通过下端接口拓展电路发送给相应的下位机;若不符合则返回错误信号至上位机,请求上位机重新发送数据。

步骤3:下位机返回响应数据至上位机,下位机接收到自由协议后进行检验,并根据自由协议中的请求采集自由协议响应数据,再通过下端接口拓展电路反馈至微处理器;微处理器接收到自由协议响应数据后,判断自由协议响应数据是否符合协议规格,若符合,微处理器根据是否需要远程监控来将接收到的自由协议响应数据转换为Modbus RTU协议或TCP/IP协议[5],并将转换后的数据通过上端接口拓展电路发送给上位机;若不符合,则返回故障信息给上位机,以使上位机知晓所述下位机出现错误并重新发送请求数据。

2.3使用步骤详细说明

步骤1中,切换开关与微处理器的PB0口相连,微处理器通过Key(key)函数检测PB0口状态,如需满足基本通信要求则切换开关按下、PB0口为低电平,此时使用硬件协议栈芯片与以太网接口来实现上位机与微处理器之间的数据传输;如果通信要求比较高、需要满足特殊功能则切换开关抬起、PB0口为高电平,此时微处理器使用软件协议栈芯片与以太网接口,进行LwI P初始化,添加软件协议栈芯片网关,设置IP地址、子网掩码、网关以及通道号来实现上位机与所述微处理器之间的数据传输。

步骤3中,若需要远程监控,则微处理器通过free_modbusT CP(void*p_arg)函数将自由协议响应数据封装为TCP/IP协议规格,并通过netconn_write(NewC onn,send_buff)函数将TCP/IP协议写入LwI P协议栈,然后通过上端接口扩展电路的以太网接口发送给上位机的远程监控系统;否则微处理器通过free_modbusR TU(void*p_arg)函数将自由协议响应数据转换为Modbus RTU协议规格,并通过上端接口扩展电路的串行通讯接口传输给上位机的现场监控系统。

2.4标准自由协议具体格式

如图2所示,标准自由协议采用特殊字节作为开始和结束,如果接收方丢失了同步信息,它可以根据标志字节找到当前帧的结束位置。但标志字节的位模式出现在数据中时,发送方在数据链路层遇到这个标志字节前,插入一个相同的转义字节(DLE)。字符均采用16进制;DLE:标志字节(0x10);STX:起始符(0x02);ETX:结束符(0x03);地址、命令、data:如果等于DLE,需再填充一个DLE;校验和:为地址、命令、data的字节和取补。

3上位机发送过程

(1)图3为上位机发送命令流程图,步骤201进行LwI P初始化,添加ENC28J60网关,设置IP地址、子网掩码、网关以及通道号,建立通讯。

(2)上位机监控界面(PC)根据所要提取的数据发送TCP/IP协议进行数据的读取,同时使用定时器定时(T1++),检验上位机与协议转换器线路是否通畅。执行步骤202,轮询函数convertI nit()查询通道端口是否接收到上位机发来的数据。如果接收到上位机发送的数据,则通过校验位判断数据是否正确。若正确则转到步骤204执行netconn_accept(Conn)函数保存数据,并释放信号量OSSemP ost(Semp)执行函数Parse(void*p_arg),将TCP/IP协议重新编码成下位机控制系统所需要的自由协议传输帧,并通过USART将数据发送给下位机控制系统。协议转换器使用定时器进行定时(T2++),用于检验协议转换器与下位机控制系统线路是否通畅。若数据不符合特定自由协议格式则返回ERROR信号,请求上位机重新发送。

4下位机接收过程

(1)图4为下位机接收响应流程图,步骤301下位机接收到自由协议传输帧后进行检验,根据上位机的要求采集响应数据,并根据特定自由协议形成传输帧,通过串口链路发给协议转换器,并执行步骤303启动定时器进行计数(T++)。设置TIMER=100 ms,若在100 ms内接收到响应,则先判断数据是否符合协议规格,若符合则释放信号量OSSemP ost(Semp1),再根据现场总线类型判断是否需要远程通讯。若需要远程监控,则执行步骤307通过free_modbusT CP(void*p_arg)函数将自由协议封装为TCP/IP协议规格,并执行步骤309通过netconn_write(NewC onn,send_buff)将协议写入LwI P协议栈,通过网线发送给上位机远程监控系统。若现场总线系统需要现场级监控,则执行步骤308通过free_modbusR TU(void*p_arg)函数将自由协议转换为Modbus RTU协议,最后执行步骤309通过串口链路将协议传输给上位机现场监控系统。而且根据协议优先级的不同,可以优先对某些重要数据进行标准协议的封装。若100 ms内未接收到响应,则转到步骤302下位机重新发送应答信号。若不符合协议规格,则给上位机返回ERROR信号,指出下位机出现错误的位置,请求上位机重新发送。

这里下位机采用堆栈函数En Queue(&Usart_Data,ch)进行响应数据的接收,保证数据不会溢出,并且确保了数据的完整性。同时采用定时器2中断TIM2_IRQHandler(void),5 ms中断一次,中断里保存接收到的数据,以区分一帧数据接收完毕。一帧数据接收完毕后,清定时器2计数TIM_SetC ounter(TIM2,0),为接收下一帧数据做准备。

(2)为防止线路上出现紊乱或多个数据同时到达电源控制系统,对接收到的数据进行检验,判断起始字节STX和结束字节ETX。将防止干扰帧分界的转义字节(DLE)删除,根据协议命令和寄存器地址进行数据采集,并将采集到的数据转换成标准协议帧格式,发给协议转换器。

(3)判断故障:上位机发送命令后,定时器开始计时(T1++),超过设定计时(100 ms)无数据上传,则判定上位机与协议转换器线路故障;协议转换器将TCP/IP协议转换形成自由协议后发送给下位机时,设定定时器开始计时(T2++),若定时器超时(100 ms)而没有返回响应数据,则向上位机报错,上位机判定为协议转换器与下位机控制系统线路故障。

5转换器特点

(1)通信协议转换采用软件协议栈和硬件协议栈相辅相成的设计,在通信要求低的情况下可以采用硬件协议栈实现快速传输数据,而在通信要求比较高、需要满足特殊功能的情况下,就可以通过软件协议栈实现数据的高效率传输,从而实现单片机资源运用上的灵活性和最大化。

(2)通信协议转换采用了两种协议格式,即Modbus RTU协议与自由协议的相互转换以及TCP/IP协议与自由协议的相互转换,从而可以根据现场总线类别的不同来满足远程监控与现场监控的通信需求。

(3)通过微处理器预设的数据位和校验位来检验其接收数据的正确性[6],从而可以预防多数据量传输过程中可能产生的数据帧重叠或遗漏的问题,能够在高误码率的情况下保证通信可靠性。

6结语

现代工业控制系统中不同设备之间的通讯通常需要采用不同的通讯协议来实现,例如上位机(PC)通过网线只能发送TCP/IP协议,而一些子设备(下位机)只能识别自由协议,所以通讯一端的设备传输的数据必须通过协议转换才能被通讯另一端的其他设备接收并识别。本文研究的协议转换器具有高速、兼容性强且结构简单可靠的特点,能够实现自由协议与Modbus RTU协议或以太网TCP/IP协议之间的相互转换。

摘要:主要研究一种可以将标准的自由协议与Modbus RTU协议或以太网TCP/IP协议相互转换的转换器。该转换器既满足了设备层的要求,又实现了信息层和设备层的有机结合,使得基于不同协议标准的两层通讯网络能够在同一个工业网络框架内共存,提高了控制系统的灵活性和兼容性,且无需淘汰原有设备,从而提高了现有设备的利用率,节约了投资,并能在既有网络基础上简化布线。

关键词:网络协议转换器,ARM,Modbus协议,μC/OS-Ⅱ嵌入式操作系统,Modbus TCP协议,机电控制

参考文献

[1]李英奇,吴桂初.Modbus-Modbus TCP/IP的网关设计[J].微型机与应用,2013,32(10):48-50.

[2]俞野秋,陈坚.Modbus和Modbus-TCP协议转换研究[J].仪表技术,2013(1):28-31.

[3]杨艳华,周永录,苏红军,等.通用串口到Modbus RTU的协议转换器设计与实现[J].计算机测量与控制,2014,22(2):604-606.

[4]景柏豪,沈孟良,唐晔钧.CAN-Modbus/TCP协议转换的设计与实现[J].计算机工程与设计,2013,34(5):1552-1556.

[5]王丽丽,陆俭国,李奎,等.低压配电网络中Ethernet-Modbus通信适配器的研究[J].测控技术,2014(10):85-88.

[6]李杰,王航.一种基于Mod Bus总线的通信方案探讨[J].工业仪表与自动化装置,2012(4):101-104.

网络协议转换器 篇2

物联网是一个基于互联网、传统电信网等信息承载体,让所有能够被独立寻址的普通物理对象实现互联互通的网络。它具有普通对象设备化、自治终端互联化和普适服务智能化3个重要特征[1]。

随着物联网技术的发展,基于ZigBee技术的无线传感器网络已经被广泛的应用到人们的生产及生活当中(如家庭自动化、智慧农业等)。如何将ZigBee网络接入到互联网,是人们在应用ZigBee技术组网时所面临的一个热点问题。

然而,ZigBee协议与互联网中所使用的TCP/IP协议并不兼容,要想把ZigBee网络接入到基于IP的互联网,就需要一个设备来完成两个异构网络间数据的转发。因此,提出了网关的概念,由网关来完成两个异构网络之间数据的转发。本文使用PXA270嵌入式平台和CC2430 ZigBee模块,基于Windows CE6.0嵌入式操作系统和Z-Stack协议栈,设计了一种嵌入式网关的解决方案。网关工作在两个异构的网络之间,连接着无线传感网络和互联网,其功能包括异构网络之间的数据转发和对ZigBee网络的管理。

1 系统整体设计

网关整体设计如图1所示,其总体上包括CC2430ZigBee模块、PXA270嵌入式平台、以太网口、电源模块和其他外设模块。

网关的软件设计基于Windows CE6.0嵌入式操作系统和Z-Stack v1.4.3协议栈。Windows CE6.0系统功能丰富、内核稳定,是高度模块化的系统,具有占先式多任务调度和强大的网络通讯能力。系统支持Winsock网络编程接口,通过C/S Socket通信模型实现网关和互联网客户端的命令和数据交互。Z-Stack v1.4.3协议栈是TI公司开发的完整支持ZigBee 2006的协议栈,该协议栈提供了大量的编程接口函数,方便基于该协议栈进行开发设计。

设计中CC2430 ZigBee模块通过串口与PXA270嵌入式平台连接。Windows CE和Z-Stack协议栈都提供了对串口通信的支持,调用相应的串口API就可以实现对串口的读写等操作,这样也就方便了PXA270嵌入式平台和CC2430 ZigBee模块之间的串口通信程序的设计。

2 各模块软件的设计

2.1 ZigBee协调器模块部分

ZigBee网络由一个协调节点、多个路由节点和多个终端节点构成,设备类型通常在编译时通过编译选项决定(ZDO_COORDINATOR and RTR_NWK)。本设计中与PXA270嵌入式平台通过串口连接的CC2430模块作为整个ZigBee网络的协调节点,其主要作用是:(1)数据收发。接收ZigBee网络上传的数据,解析并通过串口转发至PXA270平台;转发PXA270平台要发送到ZigBee网络中的数据。(2)ZigBee网络管理。包括网络信道和网络ID的选取、网络的启动、节点的加入等。协调节点的程序流程图如图2所示。

协调节点与PXA270平台通信时,需用到Z-Stack提供的串口应用程序接口函数。其中,HalUARTInit()用来在设备启动时初始化串口(如设置波特率为115200),Hal UARTOpen()、H a l U A R T C l o s e()用来打开和关闭串口,HalUARTRead()、HalUARTWrite()用来完成对串口的读写。

2.2 PXA270嵌入式平台部分

PXA270嵌入式平台作为网关的主要控制模块其功能包括:与ZigBee协调节点通信,接收协调节点通过串口转发的数据或将控制命令发送到协调节点;通过基于TCP/IP的流式Socket方式与IP网络通信,如上传数据、接收远程命令。PXA270平台的工作流程如图3所示。

图3 PXA270平台的工作流程(参见右栏)

本设计中通过两个线程来分别完成上述两个方面的工作,分别是串口通信线程和Socket通信线程,两个线程采用互斥机制实现对公共缓冲区的互斥访问。

3 测试结果

对设计方案进行ZigBee组网测试和系统整体测试。在ZigBee组网测试中,ZigBee协议栈的参数配置为默认值(M A X_D E P T H=5,M A X_ROUTERS=6,MAX_CHILDREN=20),地址分配方式选择分布式分配机制。将ZigBee协调器通过串口直接与电脑的COM1口相连,由ZigBee协调器通过串口向电脑发送ZigBee网络中的节点网络ID,通过串口调试助手显示ZigBee网络中的节点信息,其测试结果如图4所示。

在系统整体测试中,将ZigBee协调器通过串口直接与PXA270嵌入式平台的串口相连,由ZigBee协调器通过串口向PXA270嵌入式平台发送ZigBee网络中的节点网络ID,PXA270嵌入式平台通过C/S Socket通信模型实现网关和互联网客户端的命令和数据交互,其测试结果如图5所示。

图5系统整体测试结果(参见下页)

4 结论

针对如何把基于ZigBee无线网络接入到基于TCP/IP的互联网的问题,本文提出一种基于Windows CE嵌入式操作系统和ZigBee协议栈的嵌入式网关的设计方案,对网关的基本功能进行了实现。使ZigBee网络采集到的数据能够通过网关转发到基于TCP/IP的网络,通过网关能够完成对ZigBee网络的管理,达到了两个异构网络互联互通的目的,具有切合实际的应用价值。

参考文献

[1]刘云浩.物联网导论[M]北京:科学出版社,2012:4-6

[2]郭渊博,杨奎武,赵俭等.Zig Bee技术与应用[M]北京:国防工业出版社,2010

[3]Zig Bee-Specification 2006[OL].http://www.zigbee.org.

[4]Zig Bee-Specification 2007[OL]http://www.zigbee.org.

[5]CC2430 A True System-on-Chip solution for2.4GHz IEEE 802.15.4/Zig Bee[OL].http://www.TI.com.

网络协议转换器 篇3

通用HDLC协议介绍

HDLC (High Level Data Link Control) 协议是通信领域应用最广泛的协议之一, 它是面向位的高级数据链路控制规程, 具有差错检测功能强大、高效和同步传输的特点。其帧结构如图1所示。

其中, F为起始标志和结束标志, 定义为“01111110”, 作为帧同步标志。两HDLC帧间至少包含一个“01111110”。A为接收地址, C为控制字, Info为信息字段, 是长度可变的净荷数据, FCS为对A+C+Info进行CRC校验的结果。A+C+Info+FCS就构成了HDLC帧透明传输的净荷内容。为了防止HDLC帧净荷中出现帧同步标志, 协议规定, 在发送端, 如果HDLC帧的净荷中出现5个连续的“1”时, 在第5个“1”后自动插入一个“0”;在接收端, 当HDLC帧同步后, 如果在帧净荷比特流中检测到连续5个“1”时, 要自动将第5个“1”后的“0”删除。从而保证了HDLC净荷良好的传输特性。

H D L C标准的协议较多, 如CCITT、ANSI、ISO/IEC等。各种标准的区别之一就是CRC校验处理的差异, 体现如下:

1.帧校验序列位数不同, 如CRC16和CRC32。

2.CRC生成多项式不同, 如对于CRC16, CCITT标准的多项式是x16+x12+x5+1;ANSI标准的多项式是x16+x15+x2+1。

3.C R C校验寄存器的初始值不同, 初始值为全“0”, 或为全“1”。

4.CRC计算结果发送方式不同, 如直接把CRC结果发送, 或把CRC结果取反发送。

中国移动标准协议中以太网到单路E1转换器及HDLC帧结构介绍

E1是我国电信传输网一次群使用的标准, 资源十分丰富。以太网应用的快速普及, 使得利用现有的E1信道来传输以太网业务就成了当前的一种非常合理的需求。E1本身就是面向比特的信道, 采用HDLC技术来封装以太网数据在E1上传输是一种非常合适高效的选择。针对这种情况, 中国移动提出了以太网转换器的相关协议。

中国移动标准协议转换器中规定:以太网数据的LSB先发, 并按此顺序进行CRC16的FCS校验, CRC校验结果按位取反, 并且MSB先发, 其CRC16生成多项式是x16+x12+x5+1。以太网帧封装到HDLC帧的映射关系如图2所示。

以太网到单路E1转换器中HDLC协议的FPGA设计

根据设计需求, 本HDLC协议处理器将以太网帧的净荷数据通过H D L C协议封装, 进行透明传输。设计时采用“Top to Down (自顶向下) ”设计思路, 使用图形化设计工具, 自顶向下进行模块设计和信号定义。并进一步将设计分为封装和解封装两大模块, 再根据具体功能进一步将收发两个模块细化。对于最底层的模块, 本设计全部采用业内流行Verilog语言来实现。最后用FPGA进行功能验证。

H D L C封装模块H D L C_FRAMER

封装模块主要完成的功能包括:根据外部信号产生内部所须的各种控制信号 (SEND_CTL模块) ;对数据缓冲FIFO来的字节数据进行并串转换, 并保证低位先发 (HTX_P2S模块) ;对串行帧净荷数据进行串行CRC16校验, 并把16位校验结果按位取反后高位先发紧接着最后一个帧净荷数据发出 (INSERT_CRC模块) ;在串行的以太网净荷及CRC校验序列流中进行连5个“1”后插“0”操作 (INSERT_ZERO模块) ;最后, 再给插“0”后的比特数据流插入“7E”帧同步标记“01111110” (INSERT_7E模块) 。经过这些处理后, 就完成了符合移动标准的HDLC协议封装功能。

关于CRC16校验的说明。本设计中的CRC16采用的是串行校验算法, 对并串转换后的串行数据进行校验。串行校验算法的具体电路在HDLC协议标准里都已明确给出了, 可以很方便的获得。关于CRC校验的原理在很多文献里都有描述, 这里不再重复。当然, CRC16也可以采用并行的算法来实现。如果采用并行算法, CRC16校验将直接对缓冲FIFO出来的字节数据进行校验后再进行并串变换。封装模块子层框图如图3所示。

H D L C解封装模块H D L C_DEFRAMER

解封装电路主要完成的功能包括:在串行的数据流中寻找帧同步标记“7E”及“01111110”, 进行HDLC帧边界定位 (CHK_7E模块) ;在串行HDLC帧定位后的比特净荷数据流中检测连5个“1”, 并产生删除连5个“1”后的“0”的指示信号 (DEL_INSERT_ZERO模块) ;对扣除“0”后的净荷数据进行CRC16检验, 具体的对扣除“0”后的不包含FCS字段的数据进行CRC16校验, CRC16生成多项式与封装电路相同为:x16+x12+x5+1。把收端产生的FCS校验结果取反和数据流中收下的FCS序列进行比较, 如果相同, 说明帧校验正确, HCRC_OK=1;否则说明CRC帧校验出错HCRC_OK=0。在做CRC校验的同时, 将扣除“0”后的串行数据进行串并变换, 按低比特在前的规律将串行数据变成字节数据缓存到FIFO中。经过这些处理后就完成了符合移动标准的HDLC协议解封装操作。解封装模块子层框图如图4所示。

电路仿真与FPGA验证

本设计作为以太网到单E1转换器中的一部分, 进行了充分的系统仿真。仿真工具采用的是Candence的ncverilog工具;并采用Altera公司Cyclone III系列的EP3C25Q240进行了整个芯片的验证。

图5给出了封装电路仿真的部分截图。HDLC要处理的原始净荷数据是:00、00、00、01、02~39。在帧尾之后把CRC校验结果按要求插入。当数据为1F时就出现了5个连“1”, I NS_ZERO上就产生出一个脉冲指示, 封装电路会在串行数据流中自动插入一个“0”。在净荷数据间插入同步标记“7E”。

图6给出了解封装电路仿真的部分截图。具体仿真时把封装电路的输出环回到解封装电路的输入。当串行数据流中出现5个连“1”时, DEL_ZERO_IND上就产生出一个脉冲指示, 根据指示解封装电路会将串行数据流中5个连“1”后的“0”删除。在帧尾给出CRC校验电路校验结果:HDLC_CRC_OK=1, 表示解帧正确。通过解封装电路恢复出了正确的净荷数据是:00、00、00、01、02~39, 和发送端一致。

从Synplify综合工具的综合结果看, 综合的时钟约束为100MHz, 综合后封装电路的最高工作频率可达到253.4MHz, 解封装电路的最高工作频率可达到221.1MHz。电路占用了124个组合函数和138个寄存器。

结束语

移动标准协议转换器定义了通用HDLC协议的具体应用, 将以太网净荷利用HDLC协议封装后透明传输。本设计采用了Verilog高级硬件语言实现了电路设计, 并通过FPGA验证, 最终作为以太网到单路E1转换器芯片的一部分, 在东芝采用0.35mm工艺流片。芯片在大量用户中使用稳定可靠。

本设计经过实践的检验已作为一个独立的IP (知识产权) 核成功地应用于系列产品设计中, 体现了非常高的可靠性和可移植性。

摘要:高级数据链路控制 (HDLC) 协议是数字通信中的重要协议之一。本文介绍了一种符合中国移动标准要求的HDLC设计。采用Verilog语言完成了电路设计, 并用FPGA验证了设计的可行性, 并最终使得本设计作为一个完整的IP应用于系列转换器ASIC芯片设计中。体现了采用硬件语言设计电路强大的灵活性和可移植性。

关键词:HDLC,移动标准,协议转换器,FPGA,CRC

参考文献

[1]中国移动协议转换器总体技术要求

[2]I S O/I E C13239.I n f o r m a t i o n T e c h n o l o g y-Telecommunication Exchange between Systems-High-Level Data Link Control (HDLC) Procedures[S].Switzerland:Jul, 2002

[3]夏宇闻.Verilog数字系统设计教程.北京:北京航空航天大学出版社, 2003

[4]吴继华, 王诚.Altera FPGA/CPLD设计 (高级篇) .北京:人民邮电出版社, 2005

多接口协议转换器的设计与实现 篇4

目前工业现场的许多设备采用的通信接口各不相同,常用的有RS-232、RS-485、CAN和网络,由于各种通信结构的协议不兼容,使得异构网络之间的操作和信息交换难以进行[1]。目前常用的协议转换器只能完成点对点的转换,多种协议之间的相互转换目前还是一个研究热点。基于DS80C400的智能多协议转换器实现了RS-232、RS-485、CAN和网络之间的相互转换。该协议转换器有良好的远程交互能力和友好的人机界面,操作界面以网页形式实现,只要通过浏览器就可以对其进行操作和控制,并且程序可以通过网络进行在线更新。

1 系统硬件的具体实现

本协议转换器以DS80C400为主控芯片,外扩RAM、Flash存储器,并实现RS-485、RS-232、CAN和网络接口,其主要结构如图1所示。

1.1 系统主控芯片

为了实现多接口协议转换,主控芯片接口的丰富程度是影响系统设计难易程度的重要因素之一。本系统选用DS80C400,其外设集成了10/100 Mbps以太网MAC(媒体访问控制层),3个全双工串行端口、1个CAN 2.0B控制器、1个1-Wire接口、8个双向8位I/O端口[2]。其内部高度集成的接口在降低设计难度的同时,也大大提高了系统的可靠性。

1.2 网络接口的设计

在多种网络控制芯片中,综合考虑传输速率、价格、功耗和抗干扰等因素,选择了Intel公司的LXT972ALC芯片,主要完成IEEE 802.3标准定义的PCS(物理编码子层)、PMA(物理媒体附加子层)和PMD(物理媒体独立子层)的主要功能。除了完成其他接口数据和网络数据的相互转换,系统的在线配置和程序的远程更新也通过该网络接口实现。在网络的设计中,耦合隔离变压器的选择对网络接口的影响至关重要。本系统选用汉仁集团的HR61H40变压器作网络隔离,主要实现两个功能:(1)增强信号;(2)隔离网线所连接的不同网络设备间的不同电平,防止网线传输不同电压时损坏设备。

1.3 存储器的选择

为了存储操作系统、Java API包、应用程序、用户交互网页、系统的配置信息和参数,需要对存储器进行扩展。本系统采用AMD公司的AM29LV017D作为外扩的Flash存储器芯片,容量为2 M×8 bit,很好地满足了系统的需要。

1.4 其他

其他接口如RS-232、RS-485、CAN接口的设计比较简单,限于篇幅不再赘述。

2 系统软件设计

2.1 开发语言的选择

DS80C400主要支持的开发语言有汇编语言、C语言和Java语言。其中Java语言在界面编写和网络上的优势使之较好地满足了开发系统的要求。同时,TINI的JVM(Java虚拟机),虽然占用的内存不足40 kB,但是它却能够支持绝大部分JVM功能,如对线程的完全支持(最多支持16个线程)、对所有基本类型的支持以及对Strings的支持等。除了完全支持java.net包外,还包含一个完整实现的javax.com子系统[3]。TINIOS操作系统更使得Java成为本系统开发语言的理想选择。

2.2 系统任务的划分

结合系统的特点和任务划分的原则,系统的任务划分如下:

a) 一般每个嵌入式系统都由一个作业控制任务来管理所有的用户作业,所以,多接口协议转换器也要有一个作业控制任务来管理所有的作业。

b) 在系统中需要根据客户的需求打开和关闭某些接口,并对接口进行初始化,以及根据配置的要求实现不同接口的数据转换,这就需要一个接口任务来实现上述功能。接口任务负责管理RS-232、RS-485和CAN接口。

c) 为了使客户能形象地查看到设备的状态,并方便地对系统进行配置,就需要人机交互任务来完成这些功能。

d) 为了便于系统的维护和故障的诊断,系统需要进行程序的下载、更新、调试和配置。而TINI中的Slush提供的Telnet和FTP功能就可以完成上述操作。利用FTP实现程序的下载和更新,利用Telnet完成节点的远程配置。

综上所述,系统从实现的功能上可分为4个任务:(1)主任务;(2)接口管理任务;(3)人机交互任务;(4)远程交互任务。

从设计角度,则可将嵌入式软件分为4个模块:(1)作业控制模块;(2)接口管理模块;(3)人机交互模块;(4)远程加载模块。

软件系统结构如图2所示。

2.3 参数配置的实现

用户通过计算机的浏览器得到系统的配置界面,如何在页面上实现计算机和协议转换器的动态交互是必须考虑的问题。若采用传统的B/S结构虽然操作简单可以大大简化客户端计算机的载荷,但造成协议转换器的载荷过大。而采用传统的C/S结构虽然可以平衡服务器和客户端的载荷,但是必须安装客户端软件,通用性不好,系统的维护量较大[4,5]。考虑到协议转换器的处理能力及其通用性,本系统在设计上采用B/S和C/S相结合的方式。即访问模式上还是采用B/S模式,通过浏览器访问嵌入式Web服务器,而通信模式上用C/S模式和Java Applet技术相结合的方式,基于套接字编程实现。Java Applet 可以在兼容Java的任何平台的Web浏览器上直接运行。这样就综合了各自的优点,从而使协议转换器的运行更加稳定。

其基本思路为:在Java Applet源程序中,创建一个Socket(套接字)来完成与协议转换器的通信。然后将Applet源程序编译成Java字节码,并将Java字节码嵌入在Web页中,通过B/S方式访问Web服务器上的网页数据。这样,当客户端浏览器浏览这个网页时,Applet将作为网页的一部分自动下载,在激活后,与协议转换器进行Socket通信,实现参数配置。系统通过Java Applet平衡了服务器端与浏览器端的负载,将一部分原来运行在服务器上的工作分到了浏览器端,降低了服务器的负荷。

配置界面如图3所示。

2.4 参数配置的存储

为确保系统上电时可以按照最近一次的配置进行相应的协议转换,必须保证系统掉电后配置数据不丢失。而在TINIOS中Flash存储器只用来存放运行环境的程序,而不能存储外部数据。代码区中引导装入程序和运行环境占448 kB,其结构如图4所示。

在原有的系统中,为了使系统的配置参数在断电后不丢失,必须加电池保护电路。这不仅影响系统的运行效率,系统的可靠性也得不到保障。从而严重制约其在实际中的运用。

本系统采用的2 MB Flash存储器被分为32个64 kB的存储单元,在Bank 0x40到Bank 0x46存储Java API和TINI的固件。在Bank 0x47包含用户代码,并且上电后自动运行。而0x48以后的存储空间空闲,所以可以通过重新编译操作系统来加载Flash文件系统,将 0x48到0x5F用作存储数据。在系统启动时,将其加载成文件系统的一部分。步骤如下:

(1)将在tini1.17的SlushSrc.jar解压为Slush.java。

(2)在Slush.java中对initializeShellCommands()函数进行修改,加上Mount 和 Unmount 命令。

CommandInterpreter.addCommand("mount",

new MountCommand());

CommandInterpreter.addCommand("unmount",

new UnmountCommand());

(3)在负责初始化和密码设置的函数initializeShellCommands()中加入所要加载的Flash存储器的起始和结束地址。

String[]param={"0x490000","0x500000"};

DSFile.mount("flash","FlashFileSystemDriver", param);

完成上述操作后,在系统启动时Flash存储器被加载。程序只要在编译时加上FlashFileSystemDriver库就可以对Flash存储器进行读写。

通过在操作系统中加载Flash文件系统,服务器端收到客户端的配置数据后,将其保存在Flash存储器中。同时,根据参数来开启和关闭相应的进程,完成客户端指定的协议转换。其流程如图5所示。

3 结束语

该智能多协议转换器突破了传统一对一的协议转换,实现了多个协议的相互转换。系统采用嵌入式Web页方式,系统参数的配置通过浏览器完成,而不用进行上位机软件的开发,使其更具灵活性和开放性。

参考文献

[1]关沫,赵海,王小英,等.基于Web的嵌入式设备监控模型的设计与实现[J].计算机工程,2005,31(15):189-191.

[2]魏银珍,郭唐永.基于DS80C400的嵌入式Web服务器的实现[J].微计算机应用,2006,27(2):206,217.

[3]包宇,王连明,邢雪峰.基于TINI平台的嵌入式网络接入技术研究及应用[J].电测与仪表,2006,43(7):60-62.

[4]范莹,须德,郝雪峰.C/S和B/S模式相结合的ITS数据再获得系统设计与实现[J].计算机工程与应用,2004,40(35):208-210.

网络协议转换器 篇5

1 系统组成及工作原理

考虑到系统实时性和可靠性的要求,选择以太网口作为协议转换器与远程上位机的数据转发接口、以高速串口作为控制口的通信方式,采用DSP+ARM架构的硬件解决方案。系统框图如图1所示。基本工作原理:FPGA作为数据预处理器,完成并行数据到串行数据的转换等数据预处理任务;DSP读取FPGA处理后的数据并完成数据压缩;ARM作为中央处理控制器,主要从DSP系统中读取已经编码的数据并通过以太网完成与上位机实时通信的任务。上位机按照数据传输协议、产品的数据遥测协议解调出各类物理变量,记录并存储。测试人员通过上位机完成工作状态的远程设置与查询信息交互的任务。

2 硬件设计

2.1 TMS320C6416及其外围电路设计

DSP芯片选用TI公司的TMS320C6416。这是TI公司推出的高速定点DSP,它拥有处理能力强大的CPU、高达1 MB的RAM及丰富的外设接口。外设包括为CPU访问外围设备提供无缝接口的灵活的外部存储器接口EMIFA和EMIFB,一个使得DSP很容易通过PCI接口无缝连接到具有PCI功能的外部主CPU上的PCI接口,一个16/32 bit宽的异步并行接口HPI(和PCI共用相同的引脚),一个提供64bit数据通道访问的增强型EDMA等。TMS320C6416采用3.3 V和1.4 V电源供电,其中I/O采用3.3 V电源供电,内核采用1.4 V电源供电。TMS320C6416有符合IEEE1149.1标准的JTAG标准测试接口及相应的控制器,从而可以通过仿真器把DSP系统与PC机相连,进行在线调试[1]。

2.1.1 DSP与SDRAM、Flash的接口电路

DSP处理器TMS320C6416对外有2个EMIF总线接口,分别是宽64 bit的EMIFA和宽16 bit的EMIFB。EMIFA接口具备与8、16、32、64 bit系统接口的功能,EMIFB接口端口支持8 bit和16 bit系统。EMIFA分成ACE0~ACE3四个存储空间,每个存储空间可以独立配置,无缝连接多种类型的存储器(如SRAM、Flash RAM、DDR RAM)。

为了提高系统运行速度,外扩两片SDRAM芯片作为程序的运行空间、数据及堆栈区。SDRAM芯片选用同步存储器MT48LC2M32B2TG,其容量为2 M×32 bit。TMS-320C6416通过EMIFA接口实现与两片SDRAM芯片的无缝连接。

TMS320C6416内部没有Flash存储器,为了形成独立的系统,采用外部扩展Flash存储器AM29LV400B存储程序。系统复位时,从Flash中加载程序。TMS320C6416通过EMIFB接口实现与Flash芯片的无缝连接。

2.1.2 DSP与FPGA的接口电路

由于DSP处理器TMS320C6416的采样速度及存储空间受到自身约束限制,所以数据的采集、流向控制和数据预处理等任务由FPGA完成。FPGA芯片选用Xilinx公司低成本现场可编程门阵列Spartan-3E系列中的XC3S500E。XC3S500E芯片集成有20个Block RAM,每个RAM块中的18 Kbit的模块存储器是完全同步、真正的双端存储器。用户可独立地从每个端口读出或向每个端口写入(但同一地址不能同时进行读和写)。另外,每个端口都有一个独立的时钟,并且对每个端口的数据宽度都可以独立进行配置。

在该协议转换器中,DSP通过EMIFA接口连接到FPGA,实现DSP与FPGA Block RAM的无缝连接,从而使得DSP与FPGA之间的通信问题转化为DSP对其EMIFA外设的访问,达到了提高系统实时性的目的。为了保持FPGA与DSP之间的同步,FPGA的时钟直接由DSP内部的锁相环提供。DSP处理器TMS320C6416与FPGA的接口示意图如图2所示[2]。

2.2 S3C4510B及其外围电路设计

ARM芯片选用Samsung公司的S3C4510B。S3C4510B是基于以太网应用的高性价比16/32 bit RISC微控制器,内含一个由ARM公司设计的16/32 bit ARM7TDMI RISC处理器核。S3C4510B提供了一套比较完整的通用的外围设备,从而使得整个系统消耗最小。正是因为它具有很多常用的功能模块,所以也免去了添加配置附加设备的麻烦。芯片上集成的功能主要包括以下几个方面[3]:3.3 V ARM内核和3.3 V外部I/O,具有50 MHz时钟频率的微处理器;8 KB的Cache/SRAM;一个10/100 Mb/s以太网控制器,MII接口;2个HDLC通道,每个通道可支持10 Mb/s;2个UART通道,2个DMA通道,2个32 bit定时/计数器;1个通道IIC接口,18个可编程I/O口;中断控制器,支持21个中断源,包括4个外部中断;支持SDRAM、SRAM、Flash等;具有扩展外部总线和JTAG接口,支持软件开发及硬件调试。

本设计选用ARM微控制器S3C4510B是因其集成有以太网控制器和极强的外围扩展能力。S3C4510B以及其外围芯片Flash、SDRAM组成了整个系统的核心,负责控制和协调各模块工作,并实现与远程上位机的以太网通信。本设计对S3C4510B内部SDRAM和ROM进行了扩充。采用两片SDRAM芯片HY57V641620并联构建32 bit的SDRAM存储系统;采用一片Flash芯片HY29LV160构建16 bit的Flash存储器系统。

2.2.1 ARM与DSP的接口电路

由于ARM微控制器要实现整个系统的协调控制和网络功能,DSP处理器要执行复杂计算,因此需要实现ARM和DSP之间的数据交换。从某种程度上来说,ARM和DSP之间数据交换的速度决定了整个系统的运行速度和性能。

DSP处理器TMS320C6416集成了一个16/32 bit宽的主机接口HPI,HPI通过复位时的自举和器件配置引脚HD5选择采用HPI16或HPI32。HPI具有两条地址线HCNTRL[1:0],负责对HPI的内部寄存器寻址。HPI只有三个32 bit内部寄存器,分别是控制寄存器HPIC、地址寄存器HPIA和数据寄存器HPID。只需对上述三个寄存器进行相应的读写操作,就能完成对DSP内存空间的访问。

由于ARM微控制器S3C4510B中没有完全符合DSP处理器TMS320C6416 HPI接口时序的外部接口可以直接使用,因此选用S3C4510B中时序最接近HPI接口时序的外部I/O接口与TMS320C6416进行连接。TMS320C6416与S3C4510B的接口示意图如图3所示。由图3可知,TMS320C6416与S3C4510B通过单独的32 bit数据线HDO~HD31和8条控制线进行连接。S3C4510B通过HPI访问DSP内部的RAM以及其他一些外部资源。在整个ARM与DSP通过HPI进行通信和数据交换的过程中,除了中断ARM和清除ARM发过来的中断需要DSP本身参与外,其他操作中DSP都处于被动地位。所以对于ARM来说,DSP就相当于一片外接的SDRAM。

2.2.2 以太网接口电路

ARM微控制器S3C4510B内嵌一个以太网控制器,支持媒体独立接口MII(Media Independent Interface)和带缓冲DMA接口(Buffered DMA Interface)。可在半双工或全双工模式下提供10/100 Mb/s的以太网接入。在半双工模式下,控制器支持CSMA/CD协议,在全双工模式下支持IEEE802.3 MAC控制层协议。因此,S3C4510B内部实际上已包含了以太网MAC控制,但并未提供物理层接口,所以采用RTL8201作为以太网的物理层接口。信号的发送和接收端TPRX+、TPRX-、TPTX+、TPTX-应通过网络隔离变压器和RJ45接口接入传输媒体[4]。以太网接口示意图如图4所示。

3 系统软件设计

由于需要ARM微控制器S3C4510B实现整个系统的协调控制和网络功能,因此在S3C4510B上移植了嵌入式操作系统μClinux。μCLinux是一个带有完整TCP/IP协议的操作系统,在μCLinux中加入实时RT-Linux模块以满足对嵌入式操作系统的实时性要求,并根据需要对μCLinux系统进行了裁剪。

在网络通信中,基于TCP/IP协议的通信方式有很多,本文选用Socket实现服务器端和客户端的数据通信。Socket是建立在传输层协议上的一种套接字规范,它定义了两台计算机间进行通信的规范。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP协议软件和实现了套接字规范的计算机之间的通信成为可能。在开发μCLinux系统下的套接字程序时,采用了TCP套接字,因为它提供了一种可靠的面向连接的数据传输方法,有检错和纠错机制,并且不管对单个数据报还是数据包,它都提供一种流式数据传输方式。服务器首先启动并进行初始化操作,通过调用函数socket()创建一个套接字,然后调用函数bind()将该套接字和本地网络地址绑定在一起,再调用函数listen()将该套接字转换成倾听套接字,之后调用函数accept()来等待接收客户的请求。客户在调用函数socket()建立套接字后就可以调用函数connect()与服务器建立连接。连接一旦建立,客户端和服务器端之间就可以通过调用函数read()和write()进行通信,待数据传送结束以后,双方调用函数close()关闭套接字[5]。

通过对系统进行联合调试,实现了被测数据无损、实时、远距离与远程上位机进行通信并能接收上位机的控制指令,实现工作状态远程交互的任务。测试人员通过上位机可以对遥测数据进行编辑,并随时可以查看接收数据的正确与否。

本文详细介绍了基于DSP+ARM架构的协议转换器的设计实现。提供了详细的硬件平台结构设计方案,阐述了基于嵌入式系统的网络编程的实现方法。根据本方案实现的协议转换器具有低成本、低功耗、通用性好、功能可升级扩展等优点。

参考文献

[1]TI.TMS320C6416 datasheet[EB/OL].http://www.TI.com, 2001.

[2]赛灵思公司.使用EMIF将Xilinx FPGA与TI DSP平台接口应用指南[EB/OL].www.xilinx.com.cn,2007.

[3]李驹光.ARM应用系统开发详解[M].北京:清华大学出版社,2004.

[4]Realtek.RTL8201 Datasheet[EB/OL].http://www.realtek.com.

网络协议转换器 篇6

在虚拟试验系统中,需要将不同总线类型和不同传输协议的各实物子系统进行互联,实物设备子系统常采用1553B,ARINC429,RS 232等总线,协议转换的实时性对整个虚拟试验系统试验结果的真实性具有重要的影响,因此设计了基于DM642的实时多协议转换器。

协议转换方法有过程控制级转换和现场设备级实现[1]。OPC(OLE for Process Control)为最常用控制级转换方法,所有的工作全部在上位机中由软件完成,简单方便,但总线系统中节点间的通信较慢,实时性较差。采用现场设备级转换方法的协议,如Profibus,DeviceNet等,需专门开发软硬件,但可以实现差异较大协议总线间的转换,可以满足实时性要求[2,3]。曾翠荣等采用现场设备级转换方法,设计出通用报文格式和地址分配方法,简单明了,但不同总线协议间的转换必须借助于上位机和网络,仅满足传输延时小于20 ms[4]。本文借鉴现场设备级转换方法,设计了一种高实时多协议的转换器。设计中,采用C6000系列高速DSP,将协议分为高低优先级,采用FPGA实时识别高优先级协议,按地址块存储协议描述信息,使用了DSP/BIOS提供的不同类型线程,并采用触发不同消息的方法跳转线程,有效地保证了实时性。

1 协议传输格式及描述方法

虚拟试验系统中不同总线上传输的数据流通常按如图1所示的方式传输,一帧数据由帧头、数据长度、数据体、帧尾、数据校验等组成,帧头标志不同协议,帧尾或帧长标志该帧数据流的长度,帧头和帧尾可以是1个、2个或者4个数据字,数据体由多个数据字组成。但协议以数据元素作为基本单位进行编解码,数据元素由一个或多个数据字组成,有具体的物理含义,可以表示一个具体的物理量,也可以按位表示多个不同的工作状态。协议解码时,先根据帧头识别出协议类型,然后根据数据长度或帧尾提取出数据体,再按协议提取出数据元素,将数据元素乘以或加上特定系数转换为具体物理意义数据,或提取出每一状态位;编码过程为解码的逆过程。

为便于协议的识别、编解码,建立由数据帧、数据元素、数据位三级描述结构体组成的协议描述表,各级协议描述结构体所描述的信息如图2所示。

2 硬件设计

本系统采用如图3所示的DM642 +FPGA的设计方式,实现了双通道RS 232总线、双通道ARINC429,单通道双冗余1553B总线以及LAN总线的通信。DM642为TI公司的C6000系列高速DSP,其主频最高可达720 MHz,数据处理能力达4 800 MIPS,其收发通道独立的EMAC和MDIO可以很好的支持10 Mb/s和100 Mb/s以太网。DM642还扩展32 MB SDRAM和8 MB FLASH,用于缓存数据和存储协议。FPGA选择Altera公司的EP3C55F484,其LE单元、储存单元、可用I/O均比较丰富。DM642实现以太网接口,控制系统并完成协议的编解码。FPGA中的总线单元实现RS 232等总线的物理层收发,总线管理单元协调DM642与各总线单元间的通信。采用专业芯片实现各总线的电气转换。

总线管理单元管理各总线,并协调各总线与DM642的通信。为防止总线冲突,总线管理单元中记录DM642及RS 232等总线单元的工作状态。1553B总线与RS 232总线和ARINC429总线不同,其收发是相关的,无论其收发数据时,总线管理单元都视其被占用。当DM642处理高优先级协议时,总线管理单元将对DM642屏蔽低优先级协议产生的中断,直至DM642完成相应数据处理。对为了防止总线被“锁死”,总线管理单元对超过一定时长处于忙状态而未被使用的总线复位,并对DM642产生总线异常中断。

每个总线单元都采用如图4所示的结构,“总线收发”实现相应总线物理层收发。在总线单元中实现8个帧头识别单元和一个帧尾识别单元,实时匹配和提取协议。帧头识别单元记录有高优先级协议的帧头、帧尾、帧长等信息,DM642在识别出低优先级协议后,将该协议的帧尾、帧长等信息写入帧尾识别单元。无论是DM642还是任一帧头帧尾识别单元协议匹配成功后,帧头帧尾识别管理单元都将使其它帧头帧尾识别单元处于非工作状态,在该帧头帧尾识别单元根据帧尾或帧长提取完协议后,其它帧头帧尾识别单元将再次使能。帧头帧尾识别管理单元在识别出协议和完成协议提取时,将向总线管理单元产生不同中断。总线发送FIFO由非空变为空,也产生发送完成中断。

3 软件设计

3.1 协议存储、加载方法

为了使上电复位后无需重新加载协议,将协议描述表存储于FLASH中,FLASH的分配方法的存储空间分配方法如图5所示。

8 MB存储空间的前128 KB存储空间用于存储DSP程序,剩余的空间划分为252个32 KB大小的数据块,每个数据块用于存储一条协议的所有信息;每个32 KB大小数据块在划分为512个64 B大小的次级数据块,第1个次级数据块用于存储数据帧描述表,后511个次级数据块存储数据元素的相关信息;64 B存储空间的前32 B用于存储数据元素描述表,后32 B用于存储数据位描述表,同一个数据元素最多支持8个数据位操作。采用这种协议存储方法的好处是,方便了协议的加载及修改,DM642很容易计算出每个数据帧、数据元素、数据位描述表的地址,加快了协议信息的查找,但对存储空间的浪费也比较大。

3.2 DSP程序设计

软件程序调用CCS 2提供实时操作系统DSP/BIOS,DSP/BIOS采用抢先式多任务内核,支持硬件中断、软件中断、任务、后台线程等4种线程,并提了同步机制[5,6]。在DSP/BIOS下调用NDK的函数库进行TCP/IP协议编程时,需配置EMAC并开启线程监控网络接口,参考文献[7,8]详细介绍了DSP/BIOS下的TCP/IP协议编程,这里把网络总线视为普通接口。

为了保证系统实时性,需合理使用DSP/BIOS提供的不同类型线程,并协调好各线程间的通信。协议及各总线的配置数据均存储于FLASH,也上电后通过以太网在线动态加载至DM642。在主线程中对DM642和FPGA进行初始化配置。硬件中断的实时性最高,监控各总线状态,并根据从FPGA读回的中断信息,生成相应消息并触发软件中断和线程。硬件中断的流程如图6所示,依次扫描各总线中断信息,根据中断信息触发总线异常、接收数据、帧头识别、协议接收完成、发送完成等中断的处理程序。

在接收数据所遵从的传输协议未知时,先触发软件中断识别协议类型,在传输协议已知时,直接触发总线管理线程。任务可以被阻塞和挂起,支持动态内存分配等API函数,对以太网及RS 232等总线建立线程分别建立总线管理线程。各总线管理线程的流程如图7所示,根据触发的消息类型,建立和释放缓冲区,编解码协议,触发数据发送总线,监控总线状态,协调总线发送通道的使用。在识别出传输协议为高优先级协议时,总线管理线程会调用API函数提高自身优先级,以达到抢占CPU的目的,处理完协议后会再次恢复以前的优先级。软件中断优先级低于硬件中断,对堆栈要求小,用于低优先级协议的帧头识别。采用触发跳转至相应处理程序的方法可以加快数据处理,保证高优先级协议的实时性。各级线程都会尽量在等待数据或资源时跳转至阻塞状态,以便释放CPU。

4 结 语

本设计采用以下几个方法保证多协议转换实时性:采用高速DSP加快数据处理速度;将协议分为高低优先级,采用FPGA实时识别高优先级协议,大大提高了高优先级协议匹配速度;按地址将协议的帧描述表、数据元素描述表、数据位描述表等信息存储与FLASH,提高了协议信息的查找效率;使用了DSP/BIOS提供的不同类型线程,并采用触发不同消息的方法跳转线程,提高了数据处理效率,并保证了高优先级协议优先编解码。FPGA识别协议、DM642编解码、线程转换所产生的延时均为微秒级至几十微秒级,因此本设计在一定程度上可以保证对高优先级协议单个数据元素的编解码延时小于1 ms,但在支持协议的通用性上可以进一步研究。

参考文献

[1]RAJAOPAL M,MILLER R E.Synthesizing aprotocolconverter from executable protocol traces[J].IEEE Tran-sactions on Computers,1991,40(4):487-499.

[2]LOBASHOV M,PRATL G,SAUTER T.Applicability ofInternet protocols for field bus access[C]//Proc.of 4thIEEE International Workshop on Factory CommunicationSystems.[S.l.]:IEEE,2002:28-30.

[3]丁磊,费敏锐,陈维刚.现场总线协议转换机理及实现[J].自动化仪表,2005(7):1-4.

[4]曾翠荣,李斌,佘曼桂.基于ARM的多协议转换系统及其路由设计[C]//2010年通信理论与信号处理学术年会论文集.北京:电子工业出版社,2010:689-696.

[5]李方慧,王飞,荷佩琨,等.TMS320C6000系列DSPs原理及应用[M].北京:电子工业出版社,2000.

[6]Texas Instruments.TMS320-C6000DSP/BIOS user's guide[R].USA:Texas Instruments,2000.

[7]梁迅,熊水东.DM642嵌入式网络接口开发设计[J].计算机工程,2006(7):277-279.

网络协议转换器 篇7

目前,几乎所有工业控制设备都支持一种到多种现场总线协议,成熟的现场总线技术已广泛应用于很多领域。然而,很难用一种总线协议替代所有的总线协议,这就会涉及到总线协议之间的互转。即不同通信协议之间的转换,它能方便快速地实现对不同生产现场的控制设备进行组网,便于集中监控。

本文提出一种多协议转换器,将线圈自定义协议转换为常见的Modbus或Profibus-DP协议,同时也能将Modubs转换成Profibus-DP输出,便于与常用控制设备通信。该转换器结构简单,成本低廉,还可进行二次开发,支持Modbus总线接口、RS-232接口与RS-485接口设备协议上进行相互转换实现通信,在工控仪表领域经过测试后,其性能稳定。

1 Modbus与Profibus-DP协议介绍

1.1 Modbus协议

Modbus是最早由Modicon公司提出的一种现场总线协议,Modbus协议早已是工业控制领域流行的成熟总线协议。许多工业设备,包括控制器之间,以及控制器通过总线网络和其它设备之间通过此协议标准就可以进行通信。Modbus通信通常采用是RS-485主/从方式进行组网通信,分为两种传输模式:Modbus RTU(远程终端设备)和Modbus ASCII(美国信息交换码)。Modbus的通信采用主从方式,由功能码来控制的,以帧为通信单位。Modbus具有成本比较低,协议简单容易开发和透明度高等显著特点,所以很多设备厂商都会选用Modbus来作为自己产品的通信标准。

1.2 Profibus-DP协议

Profibus由三个兼容版本组成,即ProfibusDP、Profibus-PA、Profibus-FMS。其中ProfibusDP应用于现场级,具有高速低成本特点,主要应用于控制设备与分布式I/O设备之间的通信,以周期循环的方式进行通信。

Profibus-DP协议同样也采用ISO/OSI模型,包括物理层、数据链路层,以及应用层,省略了3层-6层,增加了用户层。在用户接口中使用了定义用户和系统使用的应用功能及描述现场设备行为的行规。可采用RS485组网的双线电缆、带屏蔽双绞线或光缆传输介质传输,以保证实时性的通信和低成本的系统实现。

2 多协议转换器的设计

2.1 多协议转换器的系统设计

在实际工业控制中经常需要采集实时数据,由控制器(多为PLC、PC等)对数据进行相应操作和控制,Modbus作为工业控制领域常用的现场总线中的一种,也是控制器常用的通信协议中的一种,在实际的工程中使用频率很高。

RS485/Modbus是现在流行的一种工业组网方式,由于其RS485转换接口选型丰富,很多工控设备都支持RS485,而Profibus-DP同样也可以用RS485电缆组网。

基于协议转换器接入控制器网的以上考虑,作出了以下设计,如图1所示。

该协议转换器由电源转换模块、主控制器模块、Profibus-DP slave模块、串口电路、485转换电路、以及JTAG、LED、晶振、复位辅助模块组成。各模块之间的联系如图1所示。

该多协议转换器的硬件实施以Cortex-M3为核心,通过串口采传输数据,C语言编程实现协议的转换,按照固定的协议帧格式通过485接口发送,或者传送给Profibus-DP slave模块进行解析。配有电源转换模块、工作模式指示灯LED、JTAG下载以及复位晶振电路。

该多协议转换器能实现三种工作模式,即三种转换方式:(1)由自定义协议转换为Modbus协议,即从图1中由1→2;(2)由自定义协议转换为Profibus-DP协议,即由图1中1→3;(3)将Modbus转换成Profibus-DP,即由图1中2→3。

2.2 多协议转换器的硬件设计

2.2.1 电源电压转换电路的设计

为了方便实际使用,电源部分采用24V DC输入,3.3V DC输出的供电模式。利用专用电源转换芯片PWB2403CS-1W6,PWB_CS-1W系列产品是专门针对线路板上分布式电源系统中需要产生与输入电源隔离,且前级电压变化范围宽的电源应用场合而设计。该芯片标准电压输入为24V,可接入最大电压为40V,输出电压为3.3V,电流50mA~500mA。具有稳压输出、低纹波、防浪涌、高脉冲群抗扰度的特点,隔离电压可达1500VDC,4:1超宽输入电压范围和自恢复的短路保护功能,输出可关断,内部贴片化设计,阻燃封装,利用其良好的性能可进行24VDC-3.3VDC电源转换,其输出电压主要用于485电路光隔离输入电压。

利用LM2575-3.3转换芯片产生DC3.3V电源,为Cortex-M3供电。内部有完善的保护电路,包括电流限制及热关断电路。其输入电容应大于47μF,并要求尽量靠近电路,而输出电容推荐使用的电容量为100μF~470μF,其耐压值应大于额定输出的1.5倍~2.5倍。二极管的额定电流值应大于最大负载电流的1.2倍,但考虑到负载短路的情况,二极管的额定电流值应大于LM2575的最大电流限制,另外二极管的反向电压应大于最大输入电压的1.25倍。具体电源电路设计如图2所示。

2.2.2 主控制器模块的设计

主芯片采用Cortex-M3架构的LPC1768,Cortex系列是基于ARM公司的架构ARMv7而设计的,包括Cortex-A(应用处理器)、Cor-tex-M(微控制器)、Cortex-R(实时处理器)三个系列,CortexM3主要面向低成本、引脚数目较少以及低功耗应用,该处理器内核具有极高中断响应能力和运算能力。LPC1768芯片是NXP公司推出的基于ARM Cortex-M3内核的微控制器LPC17XX系列中的一款。工作频率可达100MHz。Cortex-M3 CPU具有3级流水线和哈佛结构。外设包含512kB的Flash存储器、64kB的数据存储器、4个UART、8通道的12位ADC、10位DAC、4个通用定时器、带有独立电池供电的超低功耗RTC和多达70个的通用IO管脚,同时具有标准和先进的通信接口,如IIC、SPI、UART、USB、SSP、以太网MAC和CAN总线等。

本协议转换器设计的最小系统包括主控制器、复位、晶振、工作模式LED指示灯。

2.2.3 Profibus-DP slave模块电路

本协议转换器中Profibus-DP协议实现芯片选用了基于德国赫优讯(Hilscher)公司带工业网络控制芯片netX50的NIC50-DPS Profibus从站模块,NIC50-DPS从模块提供了Profibus-DP信号接口实现与Profibus-DP主站之间的通信。

NIC50-DPS适用于开发简单现场总线从站设备,模块采用32针DIL封装。片上已经集成通信所需要的所有单元,并集成2端口的Switch和Hub,将Profibus协议堆栈装载入片,就可以实现ProfibusDP协议。NIC50-DPS模块连接图如图3所示。

网络控制芯片netX50以ARM966E-S的32位CPU为核,主频可达200MHz,片上集成了112k字节的内部RAM和64k字节ROM,可扩展外部SDRAM、SRAM或FLASH。

netX50采用可自由配置的双通道通信,二者之间互等。各自具有独立的ALU和特殊的逻辑单元,不受CPU影响,可实现并行工作。能灵活地加载相应的代码,实现现场总线协议。每个通信通道由一个xMAC和一个xPEC组成,通过x MAC和xPEC内部的智能通信ALU,netX50芯片可以实现不同种类的现场总线,x MAC/x PEC功能图如图4所示。

2.2.4 485接口电路设计

为了隔离信号之间的相互影响,在设计之初,选用了若干带隔离功能的485芯片,如ADM2483,但考虑到实现工程项目中的成本,485接口电路选用MAX3485ESA芯片,采用光隔离,供电电源也单独设计,这也解释了以上电源模块分两部分的原因。来自主控制器的信号经由三极管和光电耦合之后,再由MAX3485ESA转换后,直接输出。

2.3 多协议转换器的软件设计

软件作为硬件的延伸,在很大程度上体现了一个系统的可操作性和可靠性。对于用户而言,对系统的控制是通过软件完成的。而对于系统而言,能通过软件编程实现的功能,都尽量依靠软件来实现,减少硬件电路的使用。硬件电路长期使用性能会下降,从而导致整个系统性能的下降,而软件则不会存在这种情况,并且易于调试和修改。在完成了硬件设计以后,就可以完全面对系统的软件功能应用进行设计了。

通过对转换器的功能分析及对转换器硬件平台的设计,本节将对适用于网关的软件进行设计。

2.3.1 自定义协议转Modbus协议

在一个Modbus通信中,主站与从站的请求与响应过程如图5所示。

一个主站可以和一个或多个从站进行数据通信,从站被动地等待主站发送控制命令。自定义协议可以是实际应用中各设备厂商自主定义的通信协议。

2.3.2 Modbus协议转Profibus-DP协议

NIC50-DPS可以工作在Modbus RTU主站状态或从站状态,根据本文设计的实际情况,设置NIC50-DPS为Modbus从站,Cortex-M3架构的LPC1768控制器作为主站。

在netIC模块内,系统会对数据进行周期性的接收和发送,要实现Profibus-DP协议,只要按照规范将来自Cortex-M3的数据传送给NIC50-DPS模块,由内部的应用层报文处理和数据链路层报文解析能自动地对数据完成转换,然后由指xMAC和xPEC实现通信。

协议的实现过程如图6所示。

2.3.3 自定义协议转换为Profibus-DP协议

自定义协议转换为Profibus-DP协议,先由Cortex-M3将自定义协议转换成Modbus协议,然后通过NIC50-DPS模块转换。

3 系统集成及工程试用

在某国际机场场区东西联络隧道工程监控系统中,为连接机场东西两个场区之间的联络隧道,在隧道监控系统中实施一体化集中管理,采用分层分布式体系结构,实现在监控中心进行对隧道运行的全面监视、控制和管理,提供安全、舒适的行车环境,保障设备正常、节能运行。隧道监控中心对隧道进行集中的运行监控和运营管理,同时作为紧急情况下的救援指挥中心。监控系统采用综合监控的方法实现多专业功能集成、多系统信息互通、资源共享和集成自动化,以确保通道正常运营、人身安全。

隧道监控系统分为六个子系统:交通监控系统、设备监控系统、CCTV监控系统(非本系统)、有线广播系统、电话系统和火灾自动报警系统(非本系统)。其中交通监控系统中,交通信息采集的参数采集是通过线圈检测的方式,能够方便采集交通流量、地点速度、时间占有率、车型等。然后通过车道控制,可变情报板,限速板功能,对隧道内车流实施交通诱导。

多协议转换器在项目中的具体实现如图7所示。

交通信息的参数采集由环形线圈采集到,经线圈检测器处理后,传给多协议转换器后,按Modbus协议标准将数据传送给PLC,进而与上位机软件进行实时通信。该多协议转换器已经为该项目解决实际问题得到充分体现。

在隧道监控系统中的交通监控系统子系统中,实现交通信息采集需要通过交通参数采集和交通事件采集,即采用视频检测与线圈检测相结合的检测方式。而交通参数采集是通过埋在车道路面上的线圈,将车道检测周期内的车流量、平均速度、占有率、车长等交通参数,经四通道线圈检测器,将数据按线圈的协议帧方式送给多协议转换器,经多协议转换器转换后,以Modbus标准协议将道路实时数据送给控制器(PLC)组,由光纤交换机,经过以太环网,进而在工作站的HMI上显示。

线圈检测仪和多协议转换器的之间的协议转换程序如下:

4 结束语

使用本文研究的嵌入式多协议转换器,已经在实现工种应用中解决了相关问题,且从未出现过软硬件故障以及其它干扰现象。Modbus、Profibus-DP在实际工程应用中较为常见,这就使得多协议转换器研究的有了必要性。该设备完全采用嵌入式软硬件设计,成本低配置灵活,功耗低,软件可重复烧写,灵活处理多种自定义协议到Modbus和ProfibusDP两种协议的转换。本研究在将来工程应用中一定能发挥应有的价值。

参考文献

[1]Wagner D,Dean D.Intrusion Detection via Static Analysis[C]//Proceedings of the 2001 IEEE Symposium on Research in Security and Privacy.Oakland(CA,USA),2001.Piscataway(NJ,USA):IEEE,2001:156-168.

[2]Sekar R,Bendre M,Dhurjati D,et al.A Fast Automation-based Method for Detecting Anomalous Program Behaviors[C]//Proceedings of the IEEE Symposium on Research in Security and Privacy.Oakland(CA,USA),2001.Piscataway(NJ,USA):IEEE,2001:144-155.

[3]Moss William H.What is DeviceNet.Instrumentation and Control System[J].1996:33-37.

[4]Bardy J.Networking with DeviceNet[J].The Computer Applications Journal,1998(6):38-42.

[5]Feng H,Kolesnikov O M,Fogla P,et al.Anomaly Detection Using Call Stack Information[C]//Proceedings of the 2003 IEEE Symposium on Research in Security and Privacy.Berkeley(CA,USA),2003.Piscataway(NJ,USA):IEEE,2003:62-75.

[6]Lindqvist U,Jonsson E.How to Systematically Classify Computer Security Intrusions[C]//Proceedings of the 1997 IEEE Symposium on Research in Security and Privacy.Oakland(CA,USA),1997.Piscataway(NJ,USA):IEEE,1997:154-163.

[7]张凤登,应启戛.现场总线与智能现场仪表设计技术[J].自动化与仪器仪表,2001(5):14-16.

[8]潘笑,潘婧.基于PC的PROFIBUS-DP监控系统设计[J].微计算机信息,2005,9-1:17-18.

[9]习博,方彦军.工业以太网中网络通信技术的研究[J].微计算机信息,2005(2):148-150.

上一篇:作文评语需注意的问题下一篇:电力系统无功优化综述