嵌入式多协议转换器

2024-07-07

嵌入式多协议转换器(共7篇)

嵌入式多协议转换器 篇1

0 引言

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

本文提出一种多协议转换器,将线圈自定义协议转换为常见的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.

[10]张胜茂,陈晓华.基于ARM7中断向量控制器的软件编程设计[J].工业控制计算机,2005,18(10):61-63.

嵌入式多协议转换器 篇2

引言

随着社会信息化进程和互联网的飞迅发展,对无线环境下提供数据服务的需求变得更加迫切。传统的无线移动网络通常以固定的基础设施为支撑,无法满足人们对日益增长的通信业务的要求,一种新型的无线网络――AdHoc网络应运而生。Ad Hoc网络又称移动自组网、多跳网络,具备细网灵活、快捷,不受有线网络的影响等特点,可广泛应用于军事和救援等无法或不便预先铺设网络设施的场合。此外,Ad Hoc网络朝着网络互连的方向发展,Internet的接入是其中一项主要内容。

Ad Hoc无线网络具有自身的特殊性,在组建实际使用的无线工作网络时,必须充分考虑网络的应用规模和扩展性,以及应用的可靠程度及实时性要求,选择合适的网络拓扑结构。目前Ad Hoc无线网络正朝着大规模方向发展,逐渐呈现分级化的趋势,以两级式的网络为代表。在两级式网络中,拓扑如图1所示。网络分为骨干网、子网两级。子网级中,每个子网都可以构成独立的Ad Hoc网络,可采用不同的路由协议。骨干网由多协议路由器节点和普通节点构成,其中,普通节点主要完成骨干网中的数据和控制信息的分发;而多协议路由器除了具备普通节点的功能外还要负责实现对子网的管理、控制和数据交互,是骨干网的核心设备。

1 多协议路由器的功能

多协议路由器作为骨干网的一个节点,运行一定的Ad Hoc网络路由协议,实现骨干网络由寻址的功能。

在分级式Ad Hoc网络中,多协议路由器通过和子网网关进行交互实现对子网的管理。子网内的通信类似于一般的Ad Hoc网络;而子网间的通信需要通过子网网关节点和骨干网节点进行中转,可分为两种情况―同一路由器下同构/异构子网间的通信以及不同路由器下同构/异构子网间的通信。为了实现子网间的有效通信,路由器需要完成多种协议之间的相互转换。

Linux平台的多协议路由器的设计(图一)“ width=”485“ height=”245“ />

Internet接入的需求使得分级式Ad Hoc网络必须存在一个接入点AP(Aclearcase/” target=“_blank” >ccess Point)。考虑到网络环境,这个功能需要由多协议路由器实现。

综上所述,多协议路由器主要实现骨干网路由寻址、协议转换、Internet接入的AP三大功能。

2 多协议路由器的设计

一般情况下,Ad Hoc网中的路由器为车载式或背负式,所以多协议路由器必须有高集成度和移动性。考虑到以上因素,我们选用了现在最为流行的嵌入式系统设计方法,多协议路由器的硬件平台的微处理器采用Motorola公司的ColdFire嵌入式处理器MCF5272,选择uClinux作为平台的操作系统。这样不仅可以缩短研发周期,而且为软硬件的设计、调试带来极大的方便。

多协议路由器硬件设计如图2中的虚线框图所示。路由器的硬件结构分为两部分:一部分为核心模式(MCF5272)部分,由微控制器模块和存储器模块(包括SDRAM和Flash)组成;另一部分为通信接口模块部分,由异步串行控制和收发模块、以太网控制和收发模块及通用串行总线USB(Universal Serial Bus)接口模块组成。

核心模块部分,微处理器模块主要负责处理数据。存储器模块分为两部分:一部分为Flash(由两片Flash构成,共4MB),作为程序存储器,用于存储操作系统内核、各种路由协议和路由表常量;另一部分为SDRAM,作为数据存储器,用作操作系统和各种路由程序的运行空间。

通信接口模块中,异步串行控制和收发模块用于与多个骨干网节点无线连接的同时,连接多个子网网关PRU(即分组无线控制单元)。以太网控制和收发模块可以实现Internet接入功能。USB接口模块用作连接网络设备控制终端,以及实现路由器对USB设备(如USB标准的移动硬盘,用来存储重要的路由信息)的存储控制。

图2中的PRU(Packet Radio Unit),在这里相当于路由器的辅助处理器,用于对接收到的无线子网分组进行预处理。

3 多协议路由器的实现

3.1 硬件平台的建立

使用嵌入式系统,必须为硬件平台选择一个适合的微处理器,而选择适用于路由器的微控制器MCU一般要考虑以下几个方面:处理速度、总线宽度、集成度以及性价比。综合考虑了上述几个方面,我们最终选用Motorola ColdFire 5272(以下简称MCF5272)为主控CPU.MCF5272是Motorola推出的一款高集成度的32位ColdFire微处理器,有很强的通信处理能力和较高的性能价格比,很适合用于中小型网络的控制设备,

MCF5272采用ColdFire V2可变长RISC处理器核心和DigitalDNA技术,在66MHz时钟下能达到63Dhrystone2.1MIPS的优良处理能力。其内部SIM单元(System Integrated Module)集成了丰富的通用模块,如10/100Mbps快速以太网控制器、USB1.1接口等,并且能够与常用外围设备(如SDRAM、ISDN收发器)实现无缝连接。

MCF5272内部集成了4KB的SDRAM(静态RAM)、片外扩展的Flash(闪烁存储器)和SDRAM(同步动态RAM)。

MCF5272集成了丰富的外围设备及其接口,主要包括2个通用异步串口收发模块,1个自适应快速以太网媒体接入控制器模块,1个USB控制器(作为从设备)模块。

按照图2所示的路由器设计,需要在MCF5272的基础上进行一定的扩展。多协议路由器需要连接多个子网和骨干网节点,而MCF5272只集成了2个UART控制器,因此在异步串行扩展和收发模块中利用ST 16C554扩展了4个UART控制器,从而保证某个多协议路由器在与其它2个骨干网节点相连的同时,可以与4个子网相连。在USB接口模块中,使用MCF5272集成的USB控制器(从设备)作为网络管理控制终端,另外扩展了1个主USB控制器实现路由器对USB设备的存储控制。利用MCF5272集成的快速以太网媒体接入控制器,扩展一个外部适配器(收发器)后可以实现接入以太网的功能。

经以上步骤,我们得到了多协议路由器的硬件平台。

3.2 操作系统uClinux

由于硬件的限制,嵌入式系统通常只具有极稀少的硬件资源,如主频较低的CPU、较小的内存等。Linux是一种很受欢迎的类Unix操作系统。它免费并开放源代码,在个人计算机、服务器领域应用广泛。更重要的是,Linux采用模块化设计,实际应用中可以定制,因此Linux也适用于嵌入式领域。

MCF5272是一种没有MMU的微处理器,故我们选择了专为嵌入式NOMMU微处理器定制的操作系统uCLinux、uClinux正是Linux的一个嵌入式版本,其内核的二进制映像文件可以做到小于512KB.UClinux支持多任务,支持多种文件系统,具有完备的TCP/IP协议栈,并支持多种网络协议,可满足Ad Hoc网络节点接入Internet的需要。另外,uClinux可移植性很强,用户通过重新配置、编译内核,能很方便地将其移植到多种处理器计算平台。

嵌入式Linux移植技术是从事嵌入Linux开发的一项关键技术,要求开发人员对Linux内核有相当程度的理解,具备修改内核的能力。下面简单介绍uClinux的移植过程。

(1)精简内核M

精简内核构造内核的常用命令包括:make config、dep、clean、mrproper、zImage、bzImage、modules、modules_install.可使用这些命令把所有可以去掉的选项都去掉,尽可能地精简内核。

(2)修改硬件相关代码

作为源代码公开的操作系统,uClinux源码可以从www.uClinux.org获得。系统启动过程中,需要添加三个文件:crt0_rom.s、sysinit.c和rom.ld.crt0_rom.s可以由crt0_ram.s修改得到,它提供一个ROM矢量表以供CPU上电时读取,初始化CPU寄存器,设置程序堆栈,并最终跳转到uClinux内核。Sysinit.c针对实际情况做必要的修改,主要就实际占用的片选资源CS0~CS7、SDRAM控制寄存器SDCR、SDTR作一些修改以适应硬件平台。rom.ld文件用于计算ROMFS文件系统的二进制映像romfs.img在ROM中的实际存放地址。

(3)修改启动脚本

在uClinux完成内核初始化之后,由init(void *)内核调用/bin/init,然后执行/etc/re脚本的命令。

可以利用这个脚本完成系统上电后的自动配置,或运行用户程序。

点击查看大图

(4)内核配置与编译

需要建立一个交叉编译环境来完成内核和应用程序的编译,生成ROMFS文件系统,并最终形成一个固化文件。www.uClinux.org也提供这样一个工具包。正确安装后,就可以进行编译了。首先进入源代码目录uClinuxdist,执行make xconfig,在弹出的对话框中选择“Target Platform. Selection”,然后进行相应配置。配置完毕后,在源代码目录执行“make dep”以及“make”,就得到了所要的二进制内核映像image.bin,可以直接下载到硬件平台运行。

3.3 路由器软件

移植成功后的uClinux操作系统只向用户提供了一个最基本的系统平台,针对实际应用还必须编写用户所必需的驱动程序和应用软件。MCF5272集成了2个UART控制器、1个从USB控制器和1个以太网控制器。我们又扩展了1个主USB控制器和4个UART控制器,为这些设备编写相应的驱动程序,并且在uClinux和驱动程序的基础上,实现路由器软件(包括路由模块、协议转换模块和无线网络节点浏览Internet代理模块)。

嵌入式多协议转换器 篇3

1 总体设计方案

设计选用Altera公司的低成本SoPC平台——CycloneⅡ系列FPGA。CycloneⅡ提供百万级门阵列资源,包含4608~68416个逻辑单元;提供1个全局时钟网络与4个锁相环;支持的存储器类型包括双端口及单口RAM、ROM和FIFO缓冲器,存储器的数据总线最大可达36 bit,频率可达250 MHz。CycloneⅡ系列提供最高622个用户自定义I/O引脚,为接口协议转换器的设计提供了充裕的接口资源。图1给出了基于CycloneⅡ平台的仪器接口协议转换器的总体设计方案。

图1中的NiosⅡ微处理器、存储器接口、片上存储器、定时器以及各类接口控制器都是由FPGA内部的逻辑单元和RAM资源提供的。方案中RS-232接口协议的实现相对比较简单,可以根据Altera公司提供的UART软核配置获得,而USB和GPIB协议部分均选用专用接口芯片来完成。Nios处理器通过Avalon Switch Fabric总线将NiosⅡ处理器、存储器和接口控制器等系统组件桥接在一起,形成一个接口统一的高性能SoPC系统[3]。其中,NiosⅡ处理器主要完成协议之间的转换,并将μC/OS-Ⅱ操作系统内核移植到NiosⅡ处理器上。开发中使用的工具包括QuartusⅡ(含有集成的SoPC Builder工具包)、NiosⅡIDE以及仿真软件ModelSim,利用Verilog语言进行硬件设计,利用C语言进行软件开发。

2 接口硬件电路设计

2.1 GPIB接口电路设计

GPIB接口芯片选用NI公司的标准GPIB控制芯片NAT9914,它能够完成IEEE488.2标准协议中所有接口功能,并且在软件上与TI公司的TMS9914A及NEC公司的μPD7120兼容,具有可编程时钟和波特率,直接存储器存取等功能。NAT9914配套使用数据转换器75160以及握手线和控制线转换器75162完成GPIB接口的设计。GPIB接口电路设计如图2所示。

2.2 USB接口电路设计

ISP1362是飞利浦公司推出的OTG (On-The-Go)产品,在单芯片上集成了一个OTG控制器、一个高级主控制器(PSHC)和一个基于飞利浦公司ISP1181的外设控制器。ISP1362的OTG控制器完全兼容USB2.0及OTG Suppliment 1.0协议,主机和设备控制器兼容USB 2.0协议,支持12 Mb/s的高速传输和1.5 Mb/s的低速传输。本设计中USB接口目前主要用来完成设备的功能,但考虑到以后继续开发中功能升级的需要,所以选用ISP1362芯片来完成USB接口的设计,它可以实现继续开发中USB的主机和OTG功能。

2.3 RS-232接口电路设计

SoPC Builder的标准组件库中提供了UART组件,使用这个组件可以方便地实现UART接口功能。为了保证UART的电气相容性,使用了一片MAX232来实现UART的电平转换。

图3为RS-232接口系统框图,具有Avalon接口的通用UART核在FPGA上的NiosⅡ处理器和外设之间实现了一种串行字符流通信方式,然后通过MAX232芯片实现电平转换,从而实现了RS-232接口功能。可以根据需要对其硬件进行配置,改变其波特率、奇偶校验位、停止位、传输的数据位以及其他可选的RTS-CTS流控制信号等。

3 SoPC Builde中总体架构设计

设计中的NiosⅡ微处理器内核、onchip_mem IP核、timer IP核、JTAG调试模块jtag_uart、Flash控制器cfi_flash、SDRAM控制器sdram、UART组件uart以及用于液晶屏显示的组件lcd等均使用SoPC Builder工具在标准组件库中定制,而用于实现Avalon总线与片外NAT9914芯片和ISP1362芯片连接的接口控制器组件是通过自己编写Verilog代码来自定制的。在SoPC Builder中通过Avalon Switch Fabric总线将各组件互连起来。

NiosⅡ嵌入式处理器是基于哈佛结构的RISC通用嵌入式处理器软核,能与用户逻辑相结合,编程至Altera的FPGA中。处理器具有32位指令集,32位数据通道和可配置的指令以及数据缓冲。它针对可编程逻辑进行了优化设计,也为可编程单芯片系统设计了一套综合解决方案[2]。NiosⅡ处理器系列包括三种内核:高性能的内核NiosⅡ/f、低成本内核NiosⅡ/e及性能/成本折中的标准内核NiosⅡ/s。本系统采用高性能的内核NiosⅡ/f以获得最强的处理器性能。

4 接口协议转换器软件开发

4.1 软件总体框架

软件部分需要完成的任务主要包括:GPIB接口功能的开发、RS-232接口功能的开发和USB接口功能的开发;μC/OS-Ⅱ嵌入式操作系统在NiosⅡ处理器上的移植;在NiosⅡ处理器上实现接口协议的转换,完成各个接口之间的相互通信。NiosⅡ系统下的软件分层架构如图4所示。

NiosⅡ处理器硬件系统是软件开发的基础,同时也是整个分层架构的核心。

设备驱动软件是实现处理器与设备通信的特殊程序,它相当于硬件的接口,操作系统只有通过这个接口才能控制硬件设备的工作,如果设备没有对应的驱动软件便不能正常工作。

硬件抽象层应用程序接口HAL API(Application Program Interface),是由HAL系统库提供的,它常与NewLib C标准库集成在一起,为用户访问外设提供了标准的接口,开发人员可以非常方便地使用这些接口来与底层硬件通信。

μC/OS-Ⅱ内核在NiosⅡ的HAL系统库之上进行操作,它可以访问所有的HAL服务,并且能够调用HAL的API函数。μC/OS-Ⅱ提供信号量、消息邮箱、消息队列、事件标志、消息传递、存储管理、时间管理等函数。本设计中主要用它来完成接口协议转换时的多任务调度。

GPIB组件、USB组件和RS-232组件分别实现了NiosⅡ微处理器和GPIB、USB、RS-232外设之间的通信。

系统初始化部分用于初始化μC/OS-Ⅱ、GPIB组件、USB组件和RS-232组件,实现所有应用程序的任务、信号量、队列和事件标志的实时操作系统任务之间通信资源的创建。

最外一层包含发送GPIB命令和数据任务、接收GPIB数据和命令任务、发送USB命令和数据任务、接收USB命令和数据任务、发送RS-232命令和数据任务、接收RS-232命令和数据任务等。同时,该层通过信号量、队列和事件标志实现任务之间的通信。

4.2 GPIB接口的软件开发

GPIB数据通信部分的代码编程方式主要有查询方式和中断方式两种。尽管查询方式也能较好地实现数据通信的基本要求,但其功能单一、系统资源利用率低,不适合系统功能的维护和扩展。因此,本设计中主要采用了中断方式完成GPIB数据通信部分的代码编程。引起NAT9914向处理器发出中断信号的事件主要有发送数据事件(BO)、接收数据事件(BI)、接收数据结束事件(END)、接收GET命令事件和接收DCAS命令事件。一旦这些事件发生,NAT9914就会触发NiosⅡ处理器的外部中断,NiosⅡ终止正常工作,将现场数据压入堆栈保护,并调用外部中断处理函数,响应NAT9914芯片的中断申请[3,4]。中断处理服务流程图如图5所示。

4.3 UART接口的软件开发

在NiosⅡ下,由于HAL的存在,UART编程已经变成标准的文件操作了。NiosⅡ把对UART的流操作当成了一种文件操作。操作一个UART时,只需要对它相应的设备驱动读写数据。Altera提供的UART驱动程序是一个集成到HAL系统中的HAL字符模式设备驱动程序,可以采用标准输入/输出流的方式使用UART。使文件指针指向打开的UART设备,即可通过标准C库函数fwrite、fread、fprintf、fget等来进行串口的读/写操作了。

在写设备程序时需要通过寄存器直接访问UART。altera_avalon_uart_reg.h定义了UART核的寄存器映像,提供访问底层硬件的符号常量,该文件的符号仅被设备驱动程序使用。altera_avalon_uart.h、altera_avalon_uart.c为HAL库提供了UART核设备的驱动程序。

4.4 USB接口的软件开发[5]

ISP1362在设计中作为USB设备使用。USB设备与NiosⅡ系统通信的原理框图如图6所示。系统上电后,NiosⅡ首先自身进行初始化,初始化完成后,通过发送相关指令,完成对ISP1362芯片的初始化。ISP1362芯片初始化完成后,主机就会给设备分配地址,并根据设备提供的描述符完成对设备的配置,从而实现USB设备的一般功能。

USB接口控制器的软件结构如图7所示。软件包括信息处理和中断服务例程两部分。硬件抽象层用于将数据从硬件传输到将要被主循环处理的存储器空间中。HAL4SYS.C、HAL4D13.C、ISR.C、CHAP_9.C、D13BUS.C和MAINLOOP.C是实现USB设备控制器功能的六个主要的程序文件。其中,HAL4SYS.C和HAL4D13.C程序文件作为硬件抽象层,ISR.C程序文件作为中断服务例程,CHAP_9.C和D13BUS.C作为协议层,MAINLOOP.C用于主循环控制。

ISP1362在NiosⅡ系统中采用中断的方法进行任务处理。当ISP1362收到包含设备地址的输出或设置事务时,通过软件控制将接收到的数据存储在适当的端点位置,然后触发一个中断。设备的中断服务例程处理接收到的数据。当设备收到包含设备地址的输入事务时,如果ISP1362有准备传给主机的数据,它从指定的端点送出数据,然后触发一个中断,设备的中断服务例程做适当的处理,然后准备下一个输入事务。

4.5 μC/OS-Ⅱ实时操作系统

根据多功能仪器接口协议转换器的特点,设计需满足实时性和并发性的要求,以便更好地支持多种接口协议运行时的多任务环境的调度,所以应用软件应该基于嵌入式实时操作系统。考虑到μC/OS-Ⅱ的规模较小、实时性和可靠性较高,以及NiosⅡIDE开发环境对μC/OS-Ⅱ的良好支持,故操作系统选择μC/OS-Ⅱ。它通过为每个任务分配单独的任务堆栈来保存任务工作环境,提供任务管理与调度,任务间的同步、互斥与通信,时间和中断管理、内存的动态分配等多种系统服务。设计中μC/OS-Ⅱ主要完成任务的管理与调度,通过创建消息邮箱、信号量实现任务与任务之间、任务与中断服务程序之间的同步与互斥,以保证它们协调运行[6]。

5 系统功能验证

5.1 RS-232与GPIB接口通信功能测试

通过UART数据线将计算机的UART接口与接口转换器的UART接口连接,将接口转换器的GPIB接口与Aglient 33250A连接。

运行串口调试助手,并在串口调试助手中进行如下设置:串口设置为COM1,波特率设置为57 600,校验位为NONE,数据位为8,停止位为1。设置完成后,在串口调试助手中手动发送GPIB接口的SCPI命令。

以发送*IDN?命令为例,串口调试助手下方输入*IDN?,之后点击发送,观察串口调试助手接收窗口的显示变化,这时会显示Received String:Agilent Technologies,33250A,0,2.04-1.01-2.00-03-2,其中Agilent Technologies,33250A,0,2.04-1.01-2.00-03-2是33250A接收到来自计算机串口的识别查询命令后,要将自己的标识发往的计算机串口号。

5.2 RS-232与USB接口通信功能测试

分别通过USB接口线和RS-232接口线将计算机主机USB接口与接口转换器USB接口相连,同时通过UART数据线将计算机的UART接口与接口转换器的UART接口连接。

运行USB调试助手和串口调试助手,同时观察USB接口发送数据到串口的情况。主机通过USB调试助手向协议转换器发送8B数据“6e 69 68 61 6f 6d 6100”,这8B数据ASCII码对应的字符串为“nihaoma”,观察USB调试助手接收区和串口调试助手的接收区,这时USB调试助手接收区显示“6e 69 68 61 6f 6d 6100”,串口调试助手的接收区显示“usb received 8 bytes data is:nihaoma”。

系统基于SoPC平台,采用软硬件协同设计的方法完成了GPIB、UART和USB接口协议转换器的设计。实现了RS-232接口的收发功能、USB设备控制器功能、GPIB接口的控者、听者、讲者、源方挂钩、受方挂钩五大功能,以及通过RS-232接口控制GPIB接口功能和通过USB接口控制RS-232接口功能。

参考文献

[1]吴杲,顾亚平,陈光(礻禹).USB-GPIB控制器设计[J].测控技术,2004,23(3):59-61.

[2]李兰英.NiosⅡ嵌入式软核SoPC设计原理及应用[M].北京:航空航天大学出版社,2006.

[3]黄君凯,吴延军.RS232-GPIB控制器的设计[J].电子技术应用,2006,32(3):90-92.

[4]National Instruments Corp.Nat9914 Reference Manual[Z]. 1995.

[5]Philips Semiconductors.ISP1362 Embedded Programming Guide Rev:0.9[Z].2002.

多接口协议转换器的设计与实现 篇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

智能设备间的互连操作随处可见,其核心问题是设备间通讯0。通常,通讯的双方都会按照约定的协议进行数据交换。但实际应用中,即使是相同功能的通信终端,由于生产厂家不同,其对外的协议也不一样,这必然会给双方通信造成不便。因此,协议转换在相当长的时间内,被认为是实现交互操作的优选方案0。如文献[3]在电信通讯系统中根据相关标准提出了对不同智能设备采用协议转换器的方案,该方案适用于电信行业中提供了符合标准的终端设备;文献[4]研制了一种通信协议转换器,有两个串口,当其中一个串口收到一帧数据后,就从另外一个串口以新的帧格式发送,但该软件要视智能设备及主机的通信协议(规约)不同而不同(主要指数据帧格式的生成);文献[5]设计了一种通信帧协议转换系统,即使在不知道待接收帧的帧长、也无特定界定符的情况下,也可对串行数据流进行分帧;文献[6]利用单片机设计了一种协议转换器,采用轮询方式自主采集外设数据,同一时刻仅有一个外设跟主设备通信,以避免出现通信阻塞;文献[7]设计了一种多接口协议转换器,实现了多个协议的相互转换;文献[8]利用ARM设计了一种通信协议转换器,实现电力系统中常用规约和自定义协议之间的转换,以及多路规约之间的交叉转换与转发。由此可见,常规的协议转换应用方法如图1所示,即在多个外围设备和主设备之间增加一个协议转换器,由协议转换器完成主设备和多个外围设备之间的协议数据读取,即仅实现了串口通讯参数的匹配转换、完成数据格式转换和转发等功能。因此,如何能够针对不同的终端实现自适应,实现数据自主采集和提取,降低实际生产应用控制的复杂度,一直是协议转换器迫切需要解决的问题。

2 协议转换器硬件设计

图2为协议转换器硬件框图,主要由ARM7内核的LPC2368、外部看门狗、存储器和串口通讯模块等组成。

选用LPC2368作为主控芯片,其内部资源丰富,支持小型操作系统如μC-OS II,带有4个串口、I2C总线、RAM等,可有效地简化外围硬件电路。图中,外部看门狗在ARM异常时会将其复位重启;EEPROM存放各个串口的通讯配置参数(波特率、数据位、停止位和校验位)、定时查询各个串口外围设备的指令序列以及解析方法等,保存在EEPROM中的这些参数都可被修改配置;四个串口中的一个串口固定和主设备连接(串口配置、协议等固定),其他三个串口连接外围设备。

3 协议转换器软件设计

3.1 与外设的交互模型

协议转换器的关键在软件。以一个串口为例来说明协议转换器如何与外围不同协议的设备进行数据通信的模型,如图3所示。主要包括串口通讯参数配置、指令序列、外设数据的接收序列、接收序列的解析方法和组包数据等组成。串口通讯参数主要包括串口的波特率、数据位、校验位和停止位等,以匹配外设串口的不同配置。指令序列就是需要通过串口发送符合外设协议的指令,格式为:首地址内容表示该指令的长度,之后是保存指令的首地址。解析方法则是对接收的数据进行处理的解析规则。串口通讯参数、指令序列和解析方法保存在EEPROM中,可修改配置。协议转换器定时、轮流将指令序列中的指令发送给外围设备,在完成对应的数据序列接收后,由对应的解析方法解析,并将解析结果进行组包。

3.2 外设的指令序列及轮询

通常,外设的许多参数数据由多个指令构成,在实际应用中,如果能自动轮询获得这些数据,无疑有助于提高协议转换器的应用效果。本协议转换器采用串口指令的序列轮询方式,即一个串口可以定时顺序发送多条查询外围设备的指令。此方式由指令序列和定时器两部分组成,定时器的定时功能由嵌入式系统的定时中断实现;在定时轮询时,将指针所指向的指令序列中的某一个指令发送给外设,随后,指针后移指向下一个指令序列,若当前的指令序列指令为空(通常,长度地址内容为0),则指针继续后移,直到找到一个有效的指令。其中,当指针指向指令序列缓冲区尾,则使其回头指向第一个指令缓冲区。

3.3 外设数据的序列接收

通常,和外设之间的串口通信是连续的,即一包数据是一个一个字节连续地发送或接收,两字节之间发送或接收从开始到完成的等待时间必等于发送或接收一个字节的时间(具体时间和波特率有关),如波特率9600为例,发送或接收一个字节的时间约为0.84ms,则字节间的等待时间约为0.84ms。实际应用时,两包数据之间的间隔一般都远超过发送或接收一个字节的时间,即几百毫秒以上。因此,接收相邻两个字节之间的时间跨度,可以作为一次连续串口通讯是否完成的依据,本设计设置的时间间隔为200ms来判断一条数据是否接收完成。采用序列接收方式来接收对应指令序列的外设应答,如图4所示。外设数据的序列接收采用接收缓冲区轮流切换方式,先初始化序列缓冲区数组下标的Head和Tail两个指针指向同一个缓冲区,将Tail所指向的缓冲区定为接收缓冲区。接着只要接收缓冲区收完一条数据,Tail指针就后移指向下一个缓冲区。与此同时,只要Head指针与Tail指向的不是同一个缓冲区,则将Head所指缓冲区的数据取出来进行数据处理,然后Head指针后移指向下一个缓冲区。一旦Head指针与Tail指针相等,则说明数据全部处理完成或者没有接收到数据。

3.4 基于特征字符集数据流解析

通常,终端设备在被查询时,会回送大量的数据,但用户往往只需要知道其中的一些主要数据,这就需要筛选出用户关心的数据(目前现有的协议转换器基本上都不进行协议处理,而是将所有数据都传送回去)。

为实现数据的分析和截取,本协议转换器采用基于特征字符集数据流解析的方法,此方法由特征字符集、协议规则、待解析数据和解析等各部分组成。特征字符集是由各种可能出现的字符规则协议组成,可配置修改。协议规则由特征字符、起始地址和长度说明组成,如图5所示。其中,特征字符是由除数字以外的其它字符组成,代表所截取数据的含义,起始地址代表所截取数据的物理地址,长度说明则代表所要截取的数据长度。起始地址和长度说明一般固定为unsigned int 类型,其范围大小是0~255。待解析的数据为串口接收到的外围设备的数据,存储在串口接收缓冲区中。待解析的数据经过协议规则分析后,再经过解析输出数据的解析结果。解析部分则根据协议规则检索特征字符集,利用起始地址获得协议中特征字符描述的数据流各个字节的物理地址,并根据长度说明获得具体长度的数据。

基于特征字符集数据解析的流程如图6所示,首先,分析外设的数据流说明,整理归纳特征字符集,其次,分析数据协议,设定对应于外设的协议规则,然后等接收完一批数据后,按照分隔符号从特征字符集中分隔读取一串特征字符,并在协议规则字符串中检索特征字符,在协议规则中检索到特征字符后,获得起始地址和长度描述,据此在待解析数据中截取指定数据。例如:若协议规则为”A001004”, 接收到的数据为”1234567890”,其中A为特征字符,001为起始地址,004为所提取数据的长度。则”A001004”所提取的数据为”1234”。

4 应用效果及结论

此协议转换器已经使用在海南航标灯塔中,完成了主控器与PLC、雷达应答器、灯器和采集器等多种终端设备之间的通信,实现了主控器对这些终端设备的统一管理,协议转换器在其中负责了主控器与终端设备之间通讯参数的匹配、有效数据的提取和定时查询终端设备参数等多种功能,较好地解决了客户经常要求增加或更换不同设备的要求。经过长时间的使用,协议转换器运行稳定,效果良好。

参考文献

[1]刘希远,沈国敏,李峰等.编译原理在通信协议转换中的应用[J].甘肃工业大学学报,2000,26(3):69-72

[2]刘洁,刘斌,杨学良等.协议转换器集成方法的探讨[J].计算机应用,1999,19(4):30-32

[3]郝鹃,叶志祥.串口通信协议转换器的研制[J].电脑开发与应用,2002,15(1):37-38

[4]苗世洪,王少荣,刘沛等.智能装置通信协议转换器的设计与实现[J].自动化仪表,2000,21(5):27-28

[5]陈文建,谢家纯,徐军等.基于单片机和CPLD的串行通信帧协议转换系统[J].计算机应用,2003,23:222-223

[6]杨正林,王思华.基于单片机协议转换器在动力监控系统中应用[J].微计算机应用,2006,27(3):346-348

[7]张科,张红娟.多接口协议转换器的设计与实现[J].信息化研究,2009,35(7):33-35.

嵌入式多协议转换器 篇6

关键词:XBee模块,ZigBee协议,多协议转换

0 引言

ZigBee是一种基于IEEE802.15.4标准的短距离、低速率无线网络技术,该无线连接技术主要解决低成本、低功耗、低复杂度、低传输速率、近距离的设备联网应用,主要用于无线传感器网络和测量控制方面。而Digi公司的XBee模块内置了ZigBee协议,不仅使用更加方便,而且功耗,成本更低。目前,ZigBee技术已被视为替代有线监视和控制网络领域最有前景的技术之一。

基于Xbee模块的多协议转换器具有很大的优越性,文中介绍了一种可以将RS232/RS485/ SPI/AD/IO转换成ZigBee通信的方法,通过多协议转换器可以将不同接口设备组网,实现设备间的互操作,以更好的解决建立无线通信网络的问题。

1 ZigBee概述

ZigBee是一种基于IEEE802.15.4标准的短距离、低速率无线网络技术,该无线连接技术主要解决低成本、低功耗、低复杂度、低传输速率、近距离的设备联网应用,主要用于无线传感器网络和测量控制方面。ZigBee具备了强大的设备联网功能,并支持三种主要的自组织无线网络类型,即星型结构、网状结构(Mesh)和簇状结构(Cluster tree),其中网状结构具有很强的网络健壮性和系统可靠性。

2 系统设计方案

基于XBee模块的多接口协议转换器可以组成无线网络,网络的拓扑结构有星型、网状(Mesh)或簇状(Cluster)。转换器是以MSP430F1232为控制核心,另外有稳压电源电路、状态指示灯电路、传感器接口电路、SPI接口电路、模拟信号采集AD接口、可用于控制或监控的IO接口以及可由模拟开关控制选择的XBee模块与MSP430或是XBee模块直接与PC机通信的RS232接口电路。转换器系统的结构框图如图1所示。

2.1 系统硬件电路设计

2.1.1 控制模块电路设计

MSP430F1232是TI公司推出的超低功耗MSP430系列单片机中的一种。16位的CPU和16位的总线宽度使得数据的处理更加高效。用于边界扫描的JTAG接口对片上8k的Flash在线编程和调试,非常方便软件开发。28个管脚的IPW封装使得芯片占用的空间很小,内部集成了丰富强大的硬件接口电路,如具有比较/捕获功能的16位定时/计数器、快速PWM通道、12位A/D转换器、可编程的USART(SPI或UART)接口、看门狗、可编程的片内振荡器以及片内模拟比较器等。这些为设计提供了灵活而低成本的解决方案。其主控电路如图2所示,其中Acclerration_sensor是预留的SPI接口的加速度传感器接口电路,控制电路中加入了4路AD接口。

2.1.2 串口通信模块电路设计

基于XBee模块的多接口协议转换器可以实现RS232转ZigBee,XBee模块经过电平转换芯片SP3202芯片之后可实现与PC的双向通信,另外完整的UART接口可以完成对XBee模块的固件更新。串口通信模块电路设计如图3所示。

2.1.3 XBee模块接口电路设计

XBee模块是系统的核心部分,完成无线数据的收发。其内置了ZigBee协议,支持低成本、低功耗的应用需求,模块只需要很小的发射功率,便可以提供远程设备之间可靠的数据传输。无线通信采用的是直序扩频(DSSS)技术,16路软件可选的直接序列频道,且每个序列频道可容纳超过65000个设备,数据传输速率最高可达250kbps。XBee模块接口电路设计如图4所示,其中的LED0是模块状态指示灯(正常工作状态或睡眠状态)。

2.1.4 指示灯电路设计

该系统不仅要完成设备与设备之间的无线通信,而且每个模块都能够完成与PC之间的串口通信。而模块与PC是否有通信,模块之间无线通信的信号是否稳定等是我们无法实际的观察到得,本设计中加入了指示灯电路。指示灯电路设计如图5所示,其中左边的电路分别是设备状态指示灯(如是否加入到一个网络,是协调器、路由器还是终端设备),串口数据输入状态指示,串口数据输出状态指示;右边的电路是XBee模块通信时的信号强度指示电路,XBee模块在通信时,RSSI管脚会根据设备间无线通信信号的强度输出不同脉宽的波形信号,经过RC电路简单的处理之后,可输出不同的电压信号,将此电压信号经过比较器比较后,确定信号强度处于哪个范围并相应的点亮LED灯,完成信号强度的指示。

2.1.5 电源模块电路设计

整个系统工作在3.3V,而XBee模块对电源的要求比较高,并且在一些情况下的电池供电更是对电源模块的要求比较高。这里采用低功耗、低压差稳压器SP6205,它在输出300mA的电流时,压差只有0.3V,完全可以满足电池供电的情况。电源模块电路如图6所示,D4是电源指示灯。

2.2 系统软件设计

系统的软件设计采用C语言编程,由于系统要实现MSP430与XBee模块之间的通信,又要能实现PC与XBee模块之间的通信,而XBee模块只有一个串行接口,如果直接相连接势必会造成数据传输冲突,本设计中采用模拟开关(74HC4053)实现软件可选的串口通信。软件在一开始运行时就选择XBee模块与PC之间可实现串口通信,这样,此时MSP430就无法与XBee模块之间进行通信。当需要把MSP430读取到得传感器数据发送到协调器时,就需要选通XBee模块与XBee设备的通信。此外MSP430软件实现数据帧的建立是软件设计的重点。XBee模块的API数据传输方式要求数据必须满足规定的数据帧格式。单片机工作流程如图7所示。软件设计中针对不同格式的数据帧分别编写了相应的函数模块,方便了阅读与功能扩展。图8是利用VS2010编写的上位机软件。

3 软硬件调试及实验数据分析

在测试中,分别在多种情况下对模块之间的通信速率等进行了一些测试。实际测试环境是在室内和室外,室内(不可见)平面图如图9所示,实验测试结果如表1所示。

4 结束语

文中采用内置ZigBee协议的XBee模块设计多接口协议转换器,充分地利用了XBee模块的优点。而可选的电池供电方式,使得该方案可以应用在一些便携式设备中。系统预留的AD,数字I/O接口可以用于远程控制或模拟信号的采集等。

参考文献

[1]沈建华,杨艳琴,翟骁曙.MSP430系列16位超低功耗单片机原理及应用[M].北京:清华大学出版社,2006.

[2]翟雷,刘盛德,胡咸斌.ZigBee技术及应用[M].北京:北京航空航天大学出版社,2007.

[3]Digi International Inc.XBee ZNet 2.5/XBee-PRO ZNet 2.5 OEMRF Modules[R].2008.

嵌入式多协议转换器 篇7

三相十二脉波的变换器拓扑已成为高压直流输电等大功率变换场合广泛采用的主电路结构, 相应地如何降低变换器的十二脉波相关次谐波分量便是必须要解决的问题。目前应用的主要方法就是配置大容量滤波器, 大容量滤波装置除了不菲的成本, 还产生了自身的谐波问题以及对变换器的恢复造成不良影响[1]。

采用脉宽调制技术可以显著降低所需滤波装置的容量, 但主电路开关在数倍于电源基波频率下工作时带来的开关损耗引发了更多的技术问题, 所以在大功率场合开关频率不宜过高, 脉宽调制技术的优势也因此受到限制[2]。

直流纹波注入 (DC ripple reinjection) [3,4]法是在探索新的消除谐波方法的过程中产生的, 经过多年的发展, 融合了多电平、谐波注入和软开关技术, 现称为多电平注入式交直流变换 (multilevel reinjection AC - DC conversion) [2,5]。根据这一技术原理, 在标准的三相十二脉波变换器拓扑上增加一个谐波注入单元, 并采用适当的控制方式, 即可在不增加主电路开关的工作频率、不采用滤波器和 PWM 技术的情况下, 降低谐波分量满足目前电力系统谐波标准的要求[6]。

多电平注入式交直流变换器分电压源型和电流源型2种, 电压源型变换器已发展了多种拓扑[7,8,9,10,11,12]。电流源型变换器拓扑有2种形式, 一种为主桥串联[13,14], 注入电路单元为多抽头变压器与开关器件的组合;另一种为主桥并联[15,16,17], 注入电路单元为多抽头电抗器与开关器件的组合。主桥串联结构更适合于高电压场合, 主桥并联结构更适合于大电流场合。

本文根据多电平注入交直流变换原理, 设计了一种新的并联电流源型变换器结构。为方便理解, 文中以三电平为例, 给出了开关控制方案, 并进行了原理分析和仿真。与目前采用的并联多电平注入式电流源型变换器结构相比, 新型变换器结构中注入支路开关的电流容量降低, 通态时间延长, 开关利用更加合理。

1多电平谐波注入原理

传统的三相十二脉波电流型变换器结构如图1所示。变压器为理想变压器, 原边对副边的变比分别为 kn∶1 (Y) 和kn3 () 。Y 组和 △ 组联接桥输出直流电流分别定义为 IY 和 I△, 两桥各桥臂上的开关在一个电源周期内开通120°, 触发顺序为6 - 1 - 2 - 3 - 4 - 5 - 6, 每隔60° 电角度触发一支桥臂上的开关。

变压器副边电流和两桥直流侧电流满足下面的关系 (以 A 相为例) :

iAY={00ωt30°ΙY (ωt) 30°ωt150°0150°ωt210°-ΙY (ωt) 210°ωt330°0330°ωt360° (1)

iA={Ι (ωt) /30ωt60°2Ι (ωt) /360°ωt120°Ι (ωt) /3120°ωt180°-Ι (ωt) /3180°ωt240°-2Ι (ωt) /3240°ωt300°-Ι (ωt) /3300°ωt360° (2)

iAY、iAΔ 进行 Fourier 分解得, 2函数的 Fourier 级数中6 (2l-1) ±1 (l=1, 2, …) 次谐波相位相反, 12 (l±1) (l=1, 2, …) , 次谐波相位相同。所以如果以某种方式使2直流电流IY、IΔ中加入某些特定次数的谐波, 使得各自的12 (l±1) (l=1, 2, …) 次谐波大小相等, 相位相反, 则变压器交流侧电流无谐波。经证明[2,5], 当直流电流 IY、IΔ 有6k (k=1, 2, …) 次谐波, 即

ΙY (ωt) =Ιdc+k=1AYkcos6kωt (3)

ΙΔ (ωt) =Ιdc+k=1AΔkcos6kωt (4)

且满足关系式 (-1) kAYk=AΔk (k=1, 2, …) 时, 交流侧电流实现了谐波的完全消除。此时 IY、IΔ 波形近似三角波, 它们合成的直流输出电流将是叠加有一定纹波的直流量。

在实际的电路实现时, 是以多阶梯的波形逼近 IY、IΔ 的准三角波, 两者合成恒定的直流。

2 并联多电平注入式电流型变换器的新型拓扑和工作原理分析

2.1多电平新型拓扑

图2为本文提出的并联多电平注入式电流型变换器拓扑 (电平数为 m+1) 。图中开关为逆阻型全控器件, 变压器为理想变压器, 原边对副边的变比分别为 kn∶1 (Y) 和kn3 () , 平波电感 L1~Lm 的电感值足够大, 反并联二极管 VD1~VDm 的作用是当对应支路注入开关均断开时, 为电感电流提供泄放通路。Y 绕组线电压超前于 △ 绕组相应线电压30°, 两主桥各桥臂的开关在1个电源周期内开通120°, 触发顺序为6 - 1 - 2 - 3 - 4 - 5 - 6, 每隔60° 电角度触发一支桥臂上的开关。

注入开关 VSYr1~VSYrm, VSΔr1~VSΔrm 的触发应满足下列关系:

a. 开关频率为主桥开关频率的6倍;

b. 开关的组合可以为两主桥提供周期性变化且有零值区间的直流电流;

c. 一定时间周期内, 各开关遍历所有正常工作的开关状态;

d. VSYr1与 VSΔr1, …, VSYrm与 VSΔrm 互锁。

条件 a、b 为直流电流注入原理所必需;条件 c 使各开关器件对参数的要求趋于统一, 同时实现两平波电感支路的均流;条件 d 为本拓扑结构正常工作应具备的条件。

变压器原边相电流在1个电源周期内有12 m 个脉波, 最低次特征谐波为12 m±1, 随着电平数的增加, 对交流侧电流进行滤波的要求降低, 即可不采用或只采用容量较小的交流电容作为吸收和储能装置;需要平波电感数量为 m, 直流注入开关数量为2 m, 直流注入支路的电压电流周期在三相电源对称时为 m×120°。注入开关承受的最大正反向电压均为|UdcY-UdcΔ|, 开通时的平均电流为 Idc/ (m+1) 。每m×120° 区间注入开关遍历所有正常工作开关状态。IY、IΔ 的变化周期为60°, 波形每级高度 Idc/m, 宽度为60°/ (2 m) , 主桥每支桥臂的开关相应在 IY、IA 的零值区间切换, 实现了零电流开关。

变压器二次侧输出交流电流的 Fourier 级数的系数为 (以 A 相为例, 下标 n 指谐波次数)

ΙAYn=2π0πiAY (ωt) sin (nωt) d (ωt) =8[1- (-1) n]Ιdcmnπsinnπ12mcosnπ6×[msinnπ6+i=1m-1isin (nπ3+inπ6m) ] (5)

ΙAΔn=2π0πiAΔ (ωt) sin (nωt) d (ωt) =8[1- (-1) n]Ιdc3mnπsinnπ12mcosnπ6×[msinnπ3+2i=1m-1icosnπ6sin (nπ3+inπ6m) ] (6)

系统交流侧 A 相电流为

iA=1kn (iAY+3iAΔ) (7)

iA 的 Fourier 级数的系数为

ΙAn=16[1- (-1) n]Ιdc3knmnπsinnπ12mcosnπ6 (cosnπ6+32) ×[msinnπ6+i=1m-1isin (nπ3+inπ6m) ] (8) iA

ΙA1=163Ιdcmknπsinπ12m×[m2+i=1m-1icos (π6-iπ6m) ] (9)

iA 的电流有效值为

ΙArms=1π0πiA2 (ωt) d (ωt) =

4+33kn1+11-6313m2Ιdc (10)

变压器原边电流的总谐波畸变率为

ΤΗD1= (2ΙArms) 2-ΙA12ΙA1 (11)

2.2三电平示例

根据前文给出的开关控制原则, 图3为三电平变换结构的一组可用开关工作状态。

图3中, 将触发角 α 置于坐标零点, 各开关的触发脉冲如图所示, 在任意时刻 VSYr1、VSYr2触发脉冲的叠加波形与 IY 理想波形完全一致, VSΔr1、VSΔr2触发脉冲的叠加波形与 IΔ 理想波形完全一致。

图4为系统电流波形。各电流值均为标么化后的结果, 变压器二次侧各电流标么化基准值为 Idc, 一次侧电流标么化基准值为 Idc/kn, 图中 kAn=IAn/IA1。

直流侧输出电压 Udc1、Udc2的波形只有相位上的差别, 这里给出 Udc1的表达式 (以触发角 α 为起始点)

变压器原边电压表示为

{uA=UmsinωtuB=Umsin (ωt-120°) uC=Umsin (ωt+120°) (13)

在以触发角 α 为起点的60° 区间内, UdcY、UdcΔ的表达式为

UdcY=3kn-1Umsin (ωt+α-30°) (14) UdcΔ=3kn-1Umsin (ωt+α-60°) (15)

系统相关电压波形见图5 (α=-30°) , 各电压值均为标么化后的结果, 变压器一次电压标么化基准值为 Um, 直流电压的标么化基准值为 Um/kn

3仿真研究

为验证新型拓扑电路及其工作原理分析的正确性, 本文基于 PSCAD/EMTDC 软件环境, 以三电平结构为例进行了仿真研究。仿真参数为变压器容量为100 MV·A, 短路阻抗为0.05 p.u.原边线电压为100 kV, 原边对副边的变比分别为10∶1 (Y) 和103 () , 两平波电感 L1、L2的电感值取为0.5 H, 负载取纯阻性负载 R=10 Ω, 触发角 α=-30°, 系统仿真电流波形见图6。各电流值均为标么化后的结果, 标么化基准值与图4各对应量的标么化基准值相同。

图6的仿真波形与图4的理论分析波形十分相似, 不同之处是仿真波形的电流阶梯变化有上升和下降的过渡沿, 原因是开关器件的吸收电路在开关状态变化时吸收和放出漏感能量。仿真中的变压器原边电流谐波畸变率为8.01%, 略大于理论值7.77%, 其中23、25次谐波所占比例最大。两注入支路的电压电流波形和直流输出电流Idc的波形见图7。

在电源三相对称的条件下, 两注入支路的电压电流的周期为240°, 两支路电流具有一定的幅值波动, 两支路电流合成直流输出电流Idc, Idc 的幅值波动很小, 已接近恒定的直流量。这里可根据电路运行的直流电流波动范围要求, 确定直流注入支路电感值的大小。当负载为感性时, 对直流输出电流波动值也有一定的限制, 可根据实际运行情况和要求选择适当的电路参数。

4与现有结构的比较

文献[15,16,17]中采用的并联多电平电流型变换器拓扑见图8, 本文提出的拓扑结构与之比较得出3点结论。

a. 图8所示拓扑中注入开关器件导通时的平均电流为系统直流输出电流, 所提出拓扑注入支路开关器件导通时的平均电流为系统直流输出电流除以电平数, 这不但降低了对开关器件的电流容量要求, 而且在开关状态转换时间相同的情况下, 电流变化率也相应降低。

b. 图8中, 在1个电源周期内, 各支路注入开关工作处于通态的时间为电源周期除以电平数, 所提出的新型拓扑中各注入支路开关处于通态的平均时间为电源周期的一半, 显然是在电平数大于等于3时, 新型拓扑中注入开关处于通态的时间与电源周期的比值更大, 开关利用率更高。

c. 所提出的新型拓扑中, 注入单元开关的控制相对复杂。在电平数较多时, 开关的触发时序组合数目为电平数的阶乘, 但并不是每种组合都可以作为正常的开关触发信号, 错误的组合时序将导致各注入支路的电流不平衡甚至电路不能正常工作。

5结论

文中提出了一种并联多电平注入式电流型变换器的新型拓扑, 给出了主桥开关与注入开关的控制方案, 分析了其工作原理。新型拓扑结构完全满足多电平注入交直流变换原理的要求, 与现有使用多抽头电抗器的并联型拓扑结构相比, 具有注入开关通态平均电流小、开关转换时电流变化率低、开关利用率高等优点。

文中采用“状态遍历”的方法, 成功地使各注入支路达到良好的均流效果, 这一思路对大容量开关器件的串并联具有借鉴意义。

摘要:根据多电平注入交直流变换原理, 设计了一种新的并联多电平注入式电流源型变换器拓扑结构, 注入开关的导通电流为直流输出电流与电平数的比值。新型拓扑中每个注入支路单元由2个等效开关和1个独立电抗器构成;同一注入单元的开关交替通断;不同注入单元的开关采用状态遍历的开关控制方法, 使处于通态的各单元开关平均分配直流输出电流。以三电平为例, 对系统电压、电流波形及开关控制方法进行了论述, 并在PSCAD/EMTDC软件环境下进行了仿真, 分析与仿真结果表明了新型拓扑的良好特性。与现有的并联多电平注入式电流源型变换器拓扑结构相比, 新型电路结构中注入单元开关器件的电流容量和开关通断时的电流变化率降低;各注入单元支路开关通态时间延长。

上一篇:永久基本农田下一篇:《三国鼎立》教案设计