通信转换

2024-08-12

通信转换(精选7篇)

通信转换 篇1

0 引言

电力系统中许多机柜的成套过程中会使用不同制造厂的智能单元,如控制模块、显示模块、P L C等等,这些单元之间通常需要通过通信端口实现相互间的数据交换。然而由于这些单元或模块通常来自不同的制造厂或者不是同一个系列的产品,通信端口的形式和通信规约不尽相同:端口形式有RS-232、RS-485、RS-422、CAN、I2C等等;通信规约往往也是由每个制造厂自行约定,波特率及通信格式均可能不同。通常制造厂会选用专用的规约转换器插入两个单元之间来实现有数据交换,但有时候遇到通信模式转换,普通规约转换器无能为力。

某电力电源成套厂接到一个订单,指定要求使用国内某厂的高频电源模块和西门子S200系列微型PLC,要求实现两者之间的数据交换。两者通信接口均为R S-485,但是电源模块的通信软件设计采用了51单片机模式3,即11位可变波特率UART多机通信方式,而西门子P L C却无法设置成该工作模式,导致两者之间无法实现通信,市售的规约转换器也没有这方面功能。故利用5 1单片机设计了一个简易转换器实现了通信模式,系统简图见图1。

1 设计原理

首先了解电源模块的通信方式,电源模块内的M C U为M S C 5 1单片机,按多机通信模式中从机的通信方式编制通信软件,工作模式为3,串口控制寄存器S C O N的S M 0和S M 1均置位,并且利用S M 2位控制接收地址信息还是数据信息。当S M 2=1时,模块只接收主机发来的地址帧,对数据帧不予理睬;当S M 2=0时则能接收所有数据。模块的基本通信流程如图2所示。

实际应用通信流程如下:PLC为主机,电源模块为从机,系统中有3个以上电源模块,采用半双工的异步通信方式;P L C主机群发目的地址,模块从机收到地址数据后与设置地址比对,如一致则应答数据给主机告知已准备接收数据,并把S M 2=0准备接收数据,主机收到应答数据后再发送数据组(由数据组前几位确定是控制指令还是查询指令);从机根据控制指令执行功能或修改数据并回应主机执行成功代码,如是查询指令则发送本机的状态数据组给PLC主机,然后从机SM2=1回到待机状态。上述流程就是主机对一个电源模块的一次数据交换过程,在系统运行过程中主机循环与每个模块进行这样的数据通信。

模块波特率固定为2 4 0 0 b p s,P L C的通信设置为“2400,n,8,1”,对应单片机工作模式1。由于2种工作模式下每一帧数据长度不同,如直接连接两者将不能实现正常通信,故本设计的主要目的就是在两者之间插入一个转换电路用来实现模式相互转换,该转换电路可分别与主、从机之间以对应通信模式交换数据。

从上述通信流程可以看出系统的通信方式为半双工模式,串行数据是分时收发的,这就比较容易使用单C P U转换器实现通信模式的转换,在转换器内的数据流向也比较清晰明了。转换器的功能由M S C 5 1单片机的串口和2个控制口线来实现,串口连接到2个RS-485接口芯片并通过口线决定485芯片的收发状态,接口芯片的485通信端分别与主机和从机连接。转化器工作时2个口线的电平始终是相反的,与主机通信时转换器的C P U串口工作在模式1,与从机通信则工作在模式3。

2 电路实现及软件设计

转换器的CPU选用ATEML 89C2051,485接口芯片选用MAXIM的MAX1487,SP813L作为系统看门狗,系统时钟频率11.0592MHz,设计电路见图3。

图3中,JP1与从机通信口连接,JP2接主机串口,JP3为5V电源输入。AT89C2051端口P1.6、P1.7控制与主机通信的收发,P1.4、P1.5为从机通信控制口,P1.3用作看门狗电路U 4的复位控制。

转换器的软件流程如图4所示。流程图中T B8是51单片机通信模式3的第九位数据,从机通过该位来判断是地址还是数据。主机以发送数据串中头2个字节区分地址、数据信息(例如头2个字节是A A 0 5,即表示发送内容是地址,D D 7 7表示数据),中间为固定长度的数据串包含地址信息或指令,最后一个字节为校验码。以下为C51编制的部分重要程序,包括完整的串口控制子程序以及主程序,串口数据处理仅以一个通信流程为例,软件代码及说明如下:

Void Ctr_com(Uchar ctr_byte)//串口控制子程序,由控制字节ctr_byte决定通信数据流向

F_dog();//看门狗复位放在中断里确保通信异常时转换器能可靠复位

Uchar Rec_byte[5];//5位接收数据

……//(省略主从数据判别、数据同步、接收等步骤,仅以下一个转换过程为例)

if(Rec_byte[0]==0xaa&&(Rec_byte[1]==0x05)//接收数据中头2字节为A A 0 5时进行通信转发

3 结语

使用上述电路和软件成功实现2种通信模式的转换。成品电路板仅为8 0 m m×6 0 m m,装入通用防水盒后安装在控制盘柜中,经过近半年的实际运行证明该转换器工作稳定可靠,具有较强的抗干扰能力,完全满足电力操作环境下的通信需求。另外,由于内置单片机系统,本设计完全可以通过重新编写软件用作通信规约转换器,如把常用的主从应答模式通信规约转换为电力系统中常用的C D T规约;也可以作为校验模式转换器使用,如实现8位CRC校验码与16位校验码相互转换、和校验与C R C校验转换等等。电路简洁、低成本、高可靠性、较好的应用灵活性是本设计的特点。

参考文献

[1]孙涵芳,徐爱卿.MCS-51系列单片机原理及应用[M].北京:北京航空航天大学出版社,1988

[2]徐爱钧,彭秀华,等.单片机高级语言c51应用程序设计[M].北京:电子工业出版社,1999

通信转换 篇2

由于PLC发展的历史原因,不同品牌PLC之间通信较困难。目前在PLC控制系统扩展改造中,如果新增PLC由于某些原因与原系统中PLC品牌不同而又需要通信,一般采用某种现场总线,但采用现场总线成本较高,且需要改动原有PLC。本文提出了在某些实时性要求不高的场合,可以充分利用各品牌PLC的上位机通信协议,采用单片机进行协议转换,不修改原有PLC系统,低成本实现异种PLC通信。

2 设计要求分析

上位机通信协议是主从式协议,一般用于上位机对PLC的运行监控,主机(上位机)发出初始命令,从机(PLC)对其做出响应,返回相应值或响应代码,PLC中不需要另行编写程序。扩展PLC与原PLC通信的主要目的,在于读取原PLC中相关软元件的数值或状态,作为部分输入条件,参与本机内程序控制,较少出现扩展PLC改写原PLC中软元件的情况(如果改写较多,则原PLC系统需要重新考虑)。限于篇幅,为简洁起见,本篇以系统中原有PLC是欧姆龙CPM1A系列、新增PLC是三菱FX2N系列为例,采用单片机作为上位机,只讨论FX2N对CPM1A软元件的读操作,写操作可类似推导。

如图1所示,单片机采用国内流行的工业级芯片P89C669FA[1],P89C669FA基于PHILIPS半导体新51MX内核,包含96kB的Flash程序存储器、2kB的数据SRAM、两个增强型UART,可以不需扩展外围器件即能满足与两PLC通信连接的需要。FX2N和CPM1A通过各自的专用上位机通信电缆SC-09和CQM1-CIF01与P89C669的两路串行口连接。

整个通信过程使用的协议可分为几个层次,如图2所示划分,底层采用单片机自带的串口采用异步串行通信协议实现单片机与两PLC的数据收发;中间层采用两PLC各自的上位机通信协议组帧实现单片机对两PLC数据的读写,应用层为本文重点讨论的两上位机发送、接收帧正文内容的转换程序。转换程序采用C语言[2]描述。

3 程序设计思路

3.1 上位机通信协议概述

通过对FX2N的串口通信侦测,可获得上位机通信协议中读写数据寄存器的发送帧格式如下:

命令码一字符(读为“0”,写为“1”)。寄存器首地址按公式addr(H)=addrs(H)×2+1000H计算出,例如首地址D100则转换为1064H。字节数用来表示操作的寄存器数目,每个寄存器的字节数为两个。数据块只有写操作时才有,表示需写入寄存器中的数据,每个寄存器存放四位十六进制数,高两位写在后,低两位写在前。寄存器首地址、字节数、数据块构成发送帧的正文部分。和校验码为命令至和校验前所有字符的ASCII码和的低两位的ASCII码。例如读出D1000开始的三个寄存器的内容,其发送帧内容如下:

正文部分在读操作正确时为依次从数据寄存器中读出的十六进制数据(高两位在前,低两位在后),最多一次可读写64个字节的数据;写操作正确时返回代码ACK(06H);读写操作不正确时,返回代码NAK(15H)[3]。

欧姆龙上位机通信协议对外公开,可从CPM1A编程手册中获得读操作发送帧格式为:

机号为参与通信的PLC编号,在PLC内DM6653中设置,在帧中占两字节。本篇中为方便描述,参与通信CPM1A只有一台,机号设为0。识别码为软元件(欧姆龙PLC中称为通道)操作类型,常用的主要有读操作:RR(读输入输出继电器状态),RC(读定时/计数器当前值),RG(读定时/计数器状态),RD(读数据寄存器值)。通道起始地址和通道数都是四位十进制数,在帧中各占四字节。识别码、起始通道、通道数构成发送帧的正文。

读操作的响应帧格式为:

机号、识别码与发送帧内容相同,结束码为命令的执行状态,主要的有00H(正常结束),13H(FCS错误)等(具体请参考CPM1A编程手册[4])。正文部分只在读出数据时才有。需说明的是CPM1A通信中,超过131字符的帧需分割处理。

3.2 主程序设计

在FX2N选择数据寄存器D1000-D1999,存放描述对CPM1A软元件读操作的参数,D1000存放该区域寄存器的数目。描述一次读操作,需占用FX2N三个寄存器:约定上述四类读操作类型分别以数字1,2,3,4表示,存放在指定区域中一个寄存器;其后的两数据寄存器内,依次存放起始通道号及通道数(为方便程序设计,规定每次操作通道数不超过30,以符合两PLC上位机通信协议中对一帧长度的要求),FX2N最多可对CPM1A进行333次不同的读操作。指定D2000向上数据寄存器,按各次对CPM1A读操作的通道顺序依次存放从CPM1A中返回的数据(每通道占一寄存器)。

初始时,P89C669按照上位机协议读取D1000中内容,将其换算成十进制数N。将FX2N中D1001起始的N个数据寄存器数据全部读入P89C669中后,把这些对CPM1A读操作的描述转换成CPM1A上位机协议格式的发送帧正文,顺次保存在一数组中。

从数组中选取一读操作发送帧正文对CPM1A读操作;若CPM1A响应错误,则重新发送原读操作帧,连续三次错误,则报警;响应正确,则提取CPM1A响应帧的正文内容,保存到一数组中,并将响应帧中读到的数据转换成FX2N发送帧,对FX2N中D2000以上指定区域写操作,若响应错误,则重新发送写操作帧,连续三次错误,则报警;响应正确,则选取下一帧正文内容对CPM1A读操作,直至完成所有要求的对CPM1A读操作及向FX2N回写数据后,开始下轮读写循环。为提高实时性,在完成一次CPM1A读操作后,提取有效响应帧的正文内容与上轮比较,相同,则不必向FX2N发送;不同才转换成FX2N发送帧,对FX2N写操作,刷新数据。如此往复循环下去。主程序流程图如图3所示。

3.3 协议转换实现

从主程序设计分析中可知,P89C669需完成两次转换:即FX2N中对CPM1A各次读操作的描述(D1000向上N个寄存器内容)向对CPM1A读操作的发送帧转换;CPM1A的响应帧向对FX2N写操作的发送帧转换。

定义unsinged int型数组CHNNumber[N/3],用以顺序存放各次对CPM1A读操作的通道数,定义unsinged in型数组Total CHNNumber[N/3],用以顺序存放各次对CPM1A读操作后累计已读通道数。定义unsinged int型变量k为读取次数,k

定义char型数组FromFXFirst[4觹N],用以顺次存放P89C669从FX2N中D1001向上的N个数据寄存器读到的内容。定义unsigned int变量i<4N,则FromFXFirst[i%12]~FromFXFirst[i%12+3]对应对CPM1A读操作类型的描述,FromFXFirst[i%12+4]~FromFXFirst[i%12+7]对应CPM1A中起始通道号的描述,FromFXFirst[i%12+8]~FromFXFirst[i%12+11]对应通道数的描述,都是低两位在前,高两位在后的四位十六进制数字符。定义char型数组ToCPM[10觹N/3],用以存放P89C669向CPM1A各次读操作发送帧正文内容,按顺序包括每次的识别码(2字符),起始通道号(4字符),通道数(4字符)。

定义unsigned int变量j<10N/3,则ToCPM[j%10],ToCPM[j%10+1]对应识别码字符。ToCPM[j%10+2]~ToCPM[j%10+5]对应通道号,ToCPM[j%10+6]~ToCPM[j%10+9]对应通道数,都是高两位在前、低两位在后的四位十进制数字符。

如此,从FromFXFirst[i%12+1]的值就可判断出每次对CPM1A读操作的类型,转换为对应的两位字符,分别存入ToCPM[j%10]、ToCPM[j%10+1],具体对应如图4所示;将FromFXFirst[i%12+4]~FromFXFirst[i%12+7]、FromFXFirst[i%12+8]~FromFXFirst[i%12+11]中内容各自由低两位在前,高两位在后的四位十六进制数字符转换成十进制数,再转换为高位在前、低位在后的四位十进制数字符,分别存入ToCPM[j%10+2]~ToCPM[j%10+5]、ToCPM[j%10+6]~ToCPM[j%10+9],即可完成FX2N中读操作的描述到向CPM1A读操作的发送帧正文转换;另在通道数的四位字符FromFXFirst[i%12+8]~FromFXFirst[i%12+11]换算成十进制数后,存入CHNNumber[k]中。

定义char型数组,用以顺序存放各次读操作后CPM1A响应帧的识别码和正文(即所读各通道数据)字符。数据在CPM1A的读响应帧中表达形式较复杂,RR、RD以四位十六进制数表示一数据,RC以四位十进制数表示一T/C的当前值,RG时以一位二进制数表示一T/C的状态。第k次读操作识别码为RR、RC、RD的响应帧中每通道内数据都以四位字符表示,可直接对应。

存入;第k次读操作识别码为RG的响应帧中每T/C的状态以一位字符表示,应将字符存入中。定义char型数组,用以顺序存放首轮向FX2N中回应数据的各发送帧正文内容。第k次向FX2N写操作的发送帧中寄存器首地址应为2000+TotalCHNNumber[k-1],字节数应为2×CHNNumber[k],换算成低两位在前、高两位在后的十六进制数字符,分别存入中。

数据在CPM1A的读响应帧中表达形式略微复杂:RR、RD以四位十六进制数表示一数据,RC以四位十进制数表示一T/C的当前值,RG时以一位二进制数表示一T/C的状态。可根据的值可以确定读操作类型,即可确定正文数据的进制,统一换算为十六进制数,再转换为四位字符,存入中。

如此,则完成CPM1A的响应帧内容和FX2N写操作发送帧的转换。

4 扩展PLC中编程注意点

FX2N中编写程序时,先在D1000向上的寄存器中设定对CPM1A软元件读操作的描述。根据设定中各次读操作的软元件数,即可确定各次从CPM1A中读得的返回值在D2000向上数据寄存器中的存放位置,根据对应所读软元件的类型可确定数据的意义(数值或状态),作为控制条件,编写入PLC控制程序。

需要说明的是,由于上位机通信本身的实时性不强,对实时性要求较高的控制点,应直接从扩充PLC的输入点引入,必要时在扩充PLC中采用中断实现快速响应。

5 结语

本篇为描述方便,没有涉及FX2N对CPM1A的写操作功能,以及FX2N运行过程中改变对CPM1A读操作等内容,对于这些可类似加以设计,扩展功能。程序完成后,可在KeilC51中仿真运行调试[5],借助GX-Developer和CX-Programmer软件,可很方便地观察FX2N和CPM1A中软元件内容,验证通信效果。本设计实际应用于特殊玻璃生产的均质炉控制系统中,目前效果良好。

参考文献

[1]徐爱均,彭秀华.单片机高级语言C51Windows环境下编程与应用[M].北京:电子工业出版社,2003.

[2]肖闽进.基于P89C669微控制器的MODBUS协议转换器设计与实现[J].常州工学院学报,2006,19(2):12-15.

[3]李众,高键.单片机与FX系列PLC通信协议应用研究[J].华东船舶工学院学报,2001,15(5):44-48.

[4]欧姆龙(中国)有限公司.SYSMAC CPM1A可编程控制器操作手册[Z].1997.

通信转换 篇3

根据实际项目的使用要求, 本文使用TI公司的TMS320F2812 DSP芯片与Xilinx的FPGA芯片XC3S400以及ASIX公司的AX88180芯片完成了基于网卡通信控制系统。

1 方案设计

系统以TI公司的TMS320F2812 DSP为中央处理器, 该芯片是用于测控领域的16位定点DSP, 处理速度达到150 MHz, 其主要特点是采用哈佛总线结构, 具有快速中断响应和处理能力, 具有4 M线性程序地址与4 M线性数据地址, 16位的数据总线, 以及1 M寻址空间的地址总线;三个外部芯片选择信号[6,7]。DSP负责通信数据信息的处理, 接收网络接口数据包, 将其转换成串行通信数据包, 并且将接收到的串行通信数据返回给网络接口。网络接口控制芯片对收到的网络数据进行处理, 将以太网传输的数据格式转换成数据, 与DSP处理器进行交互。采用Xilinx公司的Spartan系列的Spartan3-SC3S400芯片作为外部微处理器, 该芯片有400 K门, 8 M逻辑单元, 32×28个CLB (Configurable Logic Block) 内部资源。可获得的LUT门为7 168;可以使用的逻辑区为3 584[8]。FPGA完成以太网接口芯片AX88180的控制和UART实现, 采用DS90LV019进行TTL信号与差分信号转换;DSP与FPGA之间采用总线方式进行数据读写操作。系统功能框图如图1所示。

2 硬件电路设计

系统硬件设计分三部分: (1) 中央处理器TMS320F2812DSP与FPGA之间的接口部分, 这部分负责系统的通信转换控制; (2) 网络控制芯片与FPGA之间的接口, 这部分负责以太网数据与总线数据之间的转换; (3) UART接口, 这部分负责串行通信数据串并转换。

2.1 DSP+FPGA硬件电路

TMS320F2812作为中央处理器;FPGA作为外部接口XINTF与DSP连接, 连接内容包括:地址总线Address (18~0) 、数据总线 (15~0) 、片选信号 (XZCS0AND1) 、DSP读使能 (XRD) 、DSP写使能 (XWE) 、外部保持请求 (XHOLD) 、外部保持应答 (XHOLDA) 、外部准备后信号 (XREADY) 、中断控制信号XINT。DSP与FPGA连接原理框图如图2所示。

DSP处理器与FPGA处理器之间采用XINTF总线接口进行数据交互, FPGA作为DSP的一个外部扩展区, DSP处理器需要通过读、写、片选三个控制信号, 以及地址总线、数据总线以访问外部SRAM的方式进行读写控制, 控制信号通过DSP的外部I/O进行。实现方法如下:首先在FPGA内部构建一个基于分布式块区域异步IP核的SRAM, 该SRAM的数据宽度是16位, 深度是1 024, 具有读写控制信号WE, 读时钟RCLK和写时钟WCLK。读时钟RCLK由DSP的读信号XRD赋值, 写时钟WCLK由DSP的写信号XWE赋值, 读写控制信号WE由DSP的外部扩展IO赋值, 当DSP需要写外部SRAM时, IO设置为低;当DSP需要读外部SRAM时, IO设置为高。

2.2 网络接口

网络控制器选择ASIX公司的AX88180芯片, AX88180芯片是台湾ASIX公司推出的全球第一款NonPCI接口的千兆以太网络控制芯片。

通过FPGA芯片需要配置其控制信号, 网络接口芯片控制原理图如图3所示。

2.3 UART接口

UART接口芯片采用DS90LV019芯片, 该芯片电压是3.3 V, 接口是RS422/RS485接口与TTL电平转换, 电路原理图如图4所示。

3 软件设计

系统软件由两部分组成, DSP软件和FPGA软件, 其中DSP软件负责系统的控制工作。FPGA负责系统底层工作, 包括网络接口芯片的驱动及数据转换和UART接口的实现。

3.1 DSP软件设计

DSP作为系统的核心处理器, 系统地控制全部工作过程。DSP首先完成上电初始化, 并进行参数设置, 完成中断源XINT设置、GPIO设置, 然后进入主循环程序, 进行系统需要的运算处理。处理过程中, DSP以中断方式接收FPGA提供的中断信号, 该中断信号表示网络接口芯片AX88180已经接收到完整的一帧UDP数据包, 接收到中断信号后, DSP设置FPGA内部的网络接口SRAM为读操作, 读取接收到的网络通信数据。进行数据判断与处理之后, DSP需要通过FPGA内部的发送SRAM向控制端返回数据, DSP先把需要发送的数据写到FPGA内的发送SRAM, 这时SRAM的操作信号由DSP产生, 数据写好以后, DSP需要产生一个低电压有效的宽度为1μs的脉冲信号, 作为网络发送数据的起始信号。发送SRAM与接收SRAM是FPGA内部建立的两个独立的SRAM, 这两个SRAM可以并行操作。需要注意的是, 网络接收的数据格式与SRAM内顺序保存的数据格式不同, 需要DSP进行数据格式转换。

DSP处理器接收到数据包以后, 需要将接收到的网络数据写给UART接口SRAM, 然后由UART接口完成数据发送。UART接口接收过程与网络接口接收过程是一致的。

DSP接收网络数据包流程图如图5所示。

3.2 FPGA软件设计

3.2.1 网络接口芯片

网络接口操作是由FPGA使用VHDL语言实现的, 所以接收和发送两个进程可以并行操作。图6是网络接口发送流程图。

当网络上有数据时, AX88180对数据包进行分析, 如果UDP数据包的目的地址、源地址、端口号都正确, 进入数据接收进程, 按网络格式把数据保存到FPGA的接收SRAM内, 这时, 接收SRAM的控制信号是由FPGA产生的, 包括写信号、写时钟。数据接收完成后, 产生中断信号, 并且把SRAM的控制信号交给DSP。

数据发送进程如下:当接收到DSP产生的发送脉冲后, FPGA操作SRAM, 并且读出数据, 封装目的IP地址、源IP地址、端口号等固定格式, 产生UDP数据包, 通过网络发送。

3.2.2 UART接口

UART接口与网络接口一样, 都采用DSP的外接总线接口XINTF实现, 通过两个SRAM与DSP处理器进行数据交互。篇幅原因, 这里不再重复。不同的是, UART这里没有采用专用的接口芯片, 而是由FPGA使用VHDL语言实现, 这样对于程序控制更简单。

4 实验结果

本文提出的硬件设计已经通过实验验证, 系统在网络通信速度为1 Gb/s、串行通信速度为230.4 kb/s、8位数据位环境中运行稳定可靠。

本文设计了采用TMS320F2812DSP和以太网控制器芯片AX88180实现的嵌入式系统, 设计了系统的硬件电路、以太网接口和UART接口及软件程序。实验表明, 该电路实现简单、工作稳定, 具有一定的实用价值。

摘要:为了实现以太网数据与RS422串行通信接口之间的转换, 设计了采用TMS320F2812DSP和以太网控制器芯片AX88180实现的嵌入式系统, 给出了系统的总体方案、硬件结构、数据交互方法以及软件实现方法。在网络通信速度为1 Gb/s、串行通信速度为230.4 kb/s的实验环境下进行测试, 测试结果表明, 该方案设计简单, 运行稳定可靠, 具有一定的使用价值。

关键词:DSP,控制,以太网,串行通信

参考文献

[1]刘岩俊, 闫海霞.HDLC通讯协议中CRC的应用[J].电子测量技术.2010, 33 (3) :21-23.

[2]周益, 周清根, 乔鹏, 等.基于FPGA+DSP微小型捷联惯导系统的设计[J].电子测量技术, 2008, 31 (2) :119-122.

[3]刘岩俊, 闫海霞, 何昕.基于FPGA的HDLC协议实现[J].电子器件, 2009, 32 (3) :707-710.

[4]徐义忠, 孙苓生.基于FPGA的测量数据存储交换技术[J].电子技术应用, 2008, 34 (1) :62-64.

[5]王海涛, 段哲民.多路数据采集与网络远程传输系统实现[J].计算机测量与控制, 2008, 16 (3) :421-423.

[6]姜培培, 裘燕青, 傅志辉, 等.基于DSP和FPGA的多路型光纤光谱仪系统[J].光学精密工程, 2006, 14 (6) :944-948.

[7]万山明.TMS320F281xDSP原理及应用实例[M].北京:北京航空航天大学出版社, 2008.

通信转换 篇4

现代工业中,传统的通讯协议转换器不够灵活,不能满足不同的应用环境需求,误码率较高,传输速率较慢。国外,施耐德公司生产了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.

通信转换 篇5

我国是世界上移动通信使用量最大, 也是发展速度最快, 发展变化最大的移动通信市场。据《2011年全国电信业统计公报》统计, 2011年, 全国移动电话用户达12725万户, 创历年净增用户新高, 累计达到98625万户。全国电信主营业务收入累计完成9880亿元, 同比增长10.0%。其中, 移动通信业务收入7162亿元, 增长13.8%, 占主营业务收入的比重上升到72.5%。可见, 中国电信业的发展极为迅速, 而移动通信业务的发展也极其迅猛。

但随着移动通信技术的不断成熟及通信业的成熟发展, 技术手段同质化日趋严重, 资费水平不断下降, 顾客可以自由选择质量更好、价格更低的产品和服务, 转换行为发生的频率日益增高, 消费者在选择购买时的游移, 提高了通信企业的运营成本, 加剧通信企业间的竞争, 影响移动通信企业的盈利能力。顾客转换意向已成为学术研究和企业应用的热门话题。本研究基于keaveney等人的研究成果, 结合中国移动通信行业的特殊环境和大学生的特殊购买特征, 通过实证验证顾客转换意向影响因素, 并依此对移动通信企业提出管理实践的建议。

二、理论基础及假设

1. 顾客转换意向影响因素。

顾客转换意向影响因素的研究, 最早的具有影响力和公信力的是keaveney (1995) 的研究, 通过关键事件技巧法 (Critical incident Technique:CIT) , 对在当时过去六个月以来, 曾经接受过服务业服务的800多名顾客进行引导, 归纳出价格、便利性、核心服务失败、服务人员接触、服务失败补救不当、竞争吸引力、厂商社会道德、非自愿因素8类导致顾客转换的因素。而在国内, 符国群、冯冈平、俞文皎 (2004) 研究表明, 顾客转换服务商的最重要的原因是核心服务失败、服务接触失败、竞争者吸引, 并将顾客需求改变和追求多样性、服务环境、服务品种或服务范围小纳入到转换服务商的研究模型中。

在文献研究基础上, 通过对沈阳市大学生不同层次的15名学生进行深度访谈, 发现“顾客特征”一项被访谈者普遍否定。将上述剩下的八个因素进行问卷设计, 采用当面发放问卷的方式进行调查, 对问卷的有效性及可靠性进行验证, 经过项目分析、因子分析、内部信度检验的过程, 确定转换意向影响因子五项———价格因素、核心产品/服务、服务质量、便利性、厂商社会道德因素。提出研究模型如图1。

2. 顾客转换意向。

顾客转换行为是指顾客意图停止消费目前的品牌、服务或产品, 或从原先使用的品牌、服务或产品转换使用其它品牌、服务或产品的行为 (Keaveney, 1995) 。顾客转换意向是指顾客意图停止消费目前的产品或从原先使用的产品转移至其它产品的一种心理倾向 (Keaveney, 1995) , 是顾客忠诚度降低的一种表现。

在衡量顾客转换意向的问题上, 有很多前人的研究值得我们学习和借鉴, 笔者沿用Kim (2004) 对韩国移动通信行业客户转换意愿实证研究的测量量表, 仍然采用Likert-5级量表, 分别以“您倾向于换一家运营商?”、“您不会继续在这家运营商办理业务?”、“您不希望与现在这家运营商保持关系?”三个题项, 测量顾客转换意向。

3. 假设。

研究模型描述了价格因素、服务质量、核心产品/服务、厂商社会道德、便利性五个因素与大学生顾客转换意向的关系, 这些关系即本研究需要验证的假设。H1:价格因素与顾客转换意向有直接的负向影响;H2:服务质量因素与顾客转换意向有直接的负向关系;H3:便利性与顾客转换意向有直接的负向影响;H4:核心产品/服务与顾客转换意向有直接的负向影响;H5:厂商社会道德与顾客转换意向有直接的负向影响。

三、实证方法和数据

1. 实证方法。本研究利用相关分析和回归分析的方法进行实证分析, 软件采用spss15.0。

2. 数据收集和样本特征。

为了更好地确定各项因子与顾客转换意向的关系, 选取沈阳地区诸如东北大学、辽宁大学等几所高校的大学生作为研究对象进行研究。本研究在2011年4月共发放问卷300份, 回收问卷248份, 回收率为82.7%, 其中有效问卷为235份。在所有调查对象中, 女生为126人, 占总抽样样本的53.6%, 男生为109人, 占总抽样样本的46.4%, 样本中男女生比例均衡。其中, 大一、大二、大三、大四、研究生及博士研究生所占比例分别为14.48%、23.82%、30.22%、22.55%、5.11%、3.82%。在所有调查对象中, 月话费集中在50~100元, 占总样本的60%, 低于50元的占总样本的29.4%。

3. 变量的度量。

在文献研究基础上, 通过对沈阳市大学生不同层次的15名学生进行深度访谈, 发现“顾客特征”一项被访谈者普遍否定。将上述剩下的八个因素进行问卷设计, 采用当面发放问卷的方式进行调查, 对问卷的有效性及可靠性进行验证, 经过项目分析、因子分析、内部信度检验的过程, 确定转换意向影响因子五项———价格因素、核心产品/服务、服务质量、便利性、厂商社会道德因素。

四、数据分析及结果

1. 数据可靠性分析。

从表2中可以看出, 量表中各因素的内部一致性系数, 即cronbach a系数在0.73~0.85之间, 符合Price (1997) 指出的可靠性系数大于0.7时, 数据具有良好可靠性, 表明量表中各变量的度量都比较可靠。

2. 数据的描述性统计分析。

影响大学生移动通信顾客转换意向的五个要素的最小值、最大值、均值、标准差见表3。

3. 相关分析。

影响大学生移动通信顾客转换意向的五个要素和顾客转换意向的相关系数见表4。通过相关分析可见, 因子分析抽取的五个因子与顾客转换意向的相关系数。

4. 回归分析。

本研究使用回归分析方法来确定五个要素对顾客转换意向的影响程度。顾客转换意向为因变量, 价格、便利性、核心服务/产品、社会道德、服务质量这五个要素为自变量, 从回归分析可以看出, F=12.877, sig=0.015, 表明在a=0.05的情况下, F检验通过, 回归分析具有显著意义, 回归效果显著。还可知R2=0.69, 调整R2=0.71, 表明自变量与因变量的密切程度较高, 自变量可以很好地解释因变量。

5. 假设检验。

判断假设成立通常依据回归系数的正负和显著性检验结果。如果回归系数通过假设检验, 且为正 (负) 值, 则说明两变量正 (负) 相关;如果未通过假设检验, 则无论正负值, 都不能说明两变量之间有关系。通过检验可以看出, H1、H2、H3、H4、H5都成立, 说明价格因素、核心服务、厂商社会道德、服务质量和便利性都对大学生顾客转换意向作用显著。

五、结论及对移动通信运营商的实践意义

1. 结论。

通过以上分析, 本研究得出两条结论: (1) 价格因素、核心服务、厂商社会道德、服务质量和便利性是大学生顾客转换意向的决定性因素。 (2) 五个因素对大学生移动通信服务顾客转换意向影响的权重不同, 其中, 服务质量是最有力的因素;其次依次是核心服务、便利性、价格、厂商社会道德。

2. 对移动通信运营商的指导意义。

(1) 提高技术水平, 保证通信质量。短信收发不及时或重复发送、网络信号不好等核心服务的不足, 都会严重引起顾客的满意度急剧下降, 从而发生转换倾向。 (2) 完善服务内容, 狠抓服务质量。作为服务型企业, 服务质量的有效性能给顾客带来安全、高效、温暖、可靠的认知。企业应不断完善各项服务标准, 以顾客为中心, 了解顾客需求, 以综合服务质量求胜, 不断提高功能质量、服务质量。 (3) 加强营业网点建设, 保障服务流程畅通。快速解决服务问题将有助于公司形象的提升, 为了符合更快捷的服务、更准确的信息回馈以及更方便的顾客互动方式, 顾客服务区域化、实体渠道与虚拟渠道配合并行是未来的发展方向。 (4) 提供优质服务套餐, 重视顾客服务体验。本次研究发现, 价格因素也是当代大学生发生转换行为的原因之一。套餐的资费结构及收费标准、增值服务的类型及收费标准都将成为影响顾客满意及忠诚度的重要原因。因此, 移动通信行业应加大套餐及增值服务定价的合理性, 让大学生感受超值服务的同时, 抵抗竞争的诱惑, 保持客户忠诚。

参考文献

[1].汤俊.移动通信顾客满意度影响因素的探索性研究[J].市场研究, 2010 (5)

[2].马军平, 李纯青, 李欣.大学生选择移动通信运营商影响因素实证分析[J].经济师, 2006 (12)

[3].严浩仁.服务质量对移动电话顾客满意度影响的实证研究[J].移动通信, 2004 (1)

通信转换 篇6

基于可靠性、安全性、易于安装维护及方便使用等方面的设计考虑,将太阳能热水器控制系统分成两部分,通过低压直流电源线和通信线连接。安装在户外的主控制器主要完成水位和水温的实时检测和水泵的开关控制,户内的线控器主要实现显示状态及控制功能。

1 系统结构框图

太阳能热水器控制系统组成框图如1所示。

主控制器与线控器均采用微处理器作为核心器件。微处理器内部带有通用异步收发器(UART),其硬件上有两根引线,一根为接收线,一根为发送线,接口电平为CMOS电平。为了延长通信距离、提高通信质量,通常转换成标准的全双工RS 232接口或半双工RS 485接口。RS 232接口在20 m以内通信,RS 485可以在1 200 m内通信[1]。

无论采用以上哪种通信接口,主控制器与线控器的连接线需要两根电源线,两根通信线,布线成本较高。若微处理器的UART接口转换为一线接口,只要两根用作电源线,一根用作通信线,对于远距离通信的应用场合,不仅安装方便,而且降低布线成本。故此,国内外科研人员纷纷投入研究,并且取得了良好的应用效果[2,3,4]。但与UART接口连接时,1-Wire总线和LIN总线需要使用专用芯片实现接口转换[5,6],不仅增加了成本,且受协议约束增加了使用的复杂性。

本文采用普通元器件,在原有电路的基础上,设计了一种一线通信接口转换电路,能在UART接口之间实现高速远距离透明传输,达到了降低布线成本、使用简单灵活的目的。

2 问题的提出

一种应用于UART接口的一线通信接口转换电路由输出转换电路和输入转换电路两部分构成,其中输出转换电路由Q1,Q2,D1,R1,R2组成,输入转换电路由Q3,D2,R3~R5组成,D1和D2为保护二极管,电路原理图如图2所示。

UART接口处于接收状态时,发送端TXD为高电平,使Q2饱和导通,Q1截止,通信线(通信接口P1的2引脚)为低电平;Q3也处于截止状态,接收端RXD为高电平。若通信线为高电平,Q3进入饱和状态,接收端RXD为低电平。UART接口处于发送状态时,发送端TXD的电平有高有低,若为低电平时,使Q2截止,Q1饱和导通,向通信线输出高电平;此时,接收转换电路的Q3也进入饱和状态,使得接收端RXD为低电平,引发接收中断。当主控制器与线控器安装的距离较远时,就不得不考虑分布电容的影响,导线间的分布电容可用电平行导电板之间的电容计算公式直接求得[7]:

式中:ε为导线绝缘层的介电常数;S为导线的水平截面积;d为导线间距离。

若通信线的长度有50 m,分布电容[8]有2 nF,取2 nF电容并连在通信线上进行仿真实验,观察上升沿和下降沿的延迟情况,第一通道为主控制器中TXD端的波形,第二通道为线控器中RXD端的波形,测试结果如图3所示。

从图3可以看出分布电容使得RXD端产生50μs的延迟,根据UART接口通信的波特率误差不大于4.5%的要求,在分布电容2 nF的情况下,通信的波特率可以算出:

式中:Bd为波特率;T为延迟时间;R为允许误差。

将T=50μs,R=4.5%代入式(2)中,得:

使用该接口转换电路,可选用的常用通信波特率的最大值仅600 b/s。

因此,该转换电路存在的不足在于:

(1)UART接口会接收到本机发送的数据,引发接收中断,降低了微处理器的通信可靠性及工作效率;

(2)受导线分布电容影响,通信速率低,影响了线控器的响应速度,降低了人机交互的操作体验。

3 接口转换电路的设计

图4为基于74HC00与非门IC设计的一种新型一线通信接口转换电路。图中,输出转换电路由U1A,U1C,Q1,Q2,D1,R1,R2组成,输入转换电路由U1B,D2,D3,R3~R5组成,D1和D3为保护二极管,D2为5.1 V稳压二极管。当UART接口发送数据,TXD端为低电平时,与非门U1B的4引脚为低电平,6引脚为高电平,使RXD端一直保持高电平,从而克服了本机发送数据时反馈到接收端的问题。

在输入转换电路中,由D2和R4构成了触发电路[9],能够减少通信线上分布电容的影响,提高通信速率。通过式(4)可计算出RXD端从低电平转变成高电平时通信线上的最高电压UTL:

式中:VZ为稳压二极管D2的稳压值,VCC×30%是74HC00芯片输入为低电平的条件[10]。将VZ=5.1 V,VCC=5 V代入式(4)中,得UTL=6.6 V。当通信线上的电压小于6.6 V时,RXD端将从低电平转变成高电平。通过式(5)可计算出RXD端从高电平转变成低电平时通信线上的最低电压UTH:

式中:VCC×70%是74HC00芯片输入为高电平的条件。将VZ=5.1 V,VCC=5 V代入式(5)中,得UTH=8.6 V。当通信线上的电压大于8.6 V时,RXD端将从高电平转变成低电平。

取2 nF电容并连在通信线上进行仿真实验,观察上升沿和下降沿的延迟情况,第一通道为主控制器中TXD端的波形,第二通道为线控器中RXD端的波形,测试结果如图5所示。

从图5可以看出分布电容使得RXD端产生0.729μs的延迟,在分布电容2 nF的情况下,将T=0.729μs代入式(2)中,得:

使用该接口转换电路,可选用的常用通信波特率的最大值为57 600 b/s。同时,电路中74HC00芯片的工作电压范围为2~5 V,能够与工作在2~5 V的微处理器UART接口直接连接,不需要进行电平转换,因此使用变得简单灵活。

4 结论

本文设计的太阳能热水器线控器一线通信接口转换电路,已应用于福州众望达太阳能技术开发有限公司的工程项目中,结果表明:该电路具有通信速率高、节省布线成本、工作稳定可靠的优点。本文对于分体空调、各种监控系统的通信接口设计具有一定的参考价值。

参考文献

[1]彭刚,徐庆江,张崇金,等.基于STM32单片机的RS485总线分布式数据采集系统设计[J].伺服控制,2011(2):64-67.

[2]王景军,赵启永,宋卫权.LED显示系统的单线串接通信方法[J].杭州电子科技大学学报,2009,29(5):18-22.

[3]朴昌浩,刘其峰,黄智宇,等.基于LIN总线的阀控式铅酸蓄电池管理系统设计[J].电源技术,2011,35(12):1562-1565.

[4]宋晓博,柴波.基于1-Wire总线的嵌入式测温系统设计[J].现代电子技术,2009,32(4):162-168.

[5]Dallas.DS2480 Serial 1-wire lin driver data sheet[EB/OL].[2009-10-15].http://www.maximintegrated.com.

[6]Infineon.TLE7259 LIN transceiver data sheet[EB/OL].[2012-12-22].http://www.infineon.com.

[7]马世燕.控制电缆分布电容对继电器控制系统的影响[J].供电与配电,2012(3):3-9.

[8]智兆华,李文朝,耿晓娟.通信电缆监控系统的设计[J].电气应用,2011,30(13):76-78.

[9]康华光.电子技术基础:模拟部分[M].5版.北京:高等教育出版社,2009.

[10]Philips.74HC00 Quad 2-input NAND gate data sheet[EB/OL].[2010-11-25].http://www.semiconductors.philips.com.

[11]沙晶晶,董洪军,李蒙.多路数据采集系统的设计与实现[J].现代电子技术,2012,35(21):59-61.

通信转换 篇7

分布对象的异步消息传递机制是构造大型分布应用必不可少的机制之一,但是在目前的典型分布式应用支撑平台中,没有很好地解决消息的异步机制问题,缺乏对消息异步传递、服务质量控制和时间无关的存储转发机制的支持。目前,在分布式对象中间件平台中,支持异步机制的研究主要有两个方面,第一种异步机制是通过中间件代理服务解耦对象请求端与接收端,以实现异步、松耦合和多对多通信。这种方式适合构造基于事件的中间件应用,不能够支持消息接收端向消息发送端返回应答。第二种异步机制是基于方法级支持请求发送端与接收端之间的异步通信,它可以直接支持消息接收端向发送端返回应答。这种基于方法级的异步机制有两种基本的模型:异步回调模型和异步轮询模型。这两种异步模型能够解耦消息发送端和接收端,消息发送端发送请求之后不需要阻塞等待应答结果。但回调和轮询异步模型存在以下缺点:

(1) 要求消息发送端和接收端都必须处于活动状态,具有时间紧耦合的缺点。

(2) 消息的服务质量支持不足,对消息的可靠性传递不能保证。

(3) 无法支持消息应答双方是不同对象的请求,具有空间紧耦合的缺点。

针对上述方法级异步消息模型存在的问题,我们设计了一种支持时间解耦的分布对象异步消息模型TIAIM(Time Independent Asynchronous Invoke Model )。该模型引入了消息转换层MCL(Message Conversion Layer)来完成消息的提取、包装和变换,以实现原始的请求消息转化为一个可存储转发的消息。该模型设计了一种软件路由代理SRA(Software Route Agent)来存储和转发消息,以支持消息异步传递和时间无关激活,同时很好地支持消息服务质量的控制。本文主要针对TIAIM中消息转换机制进行研究。

1 基于软件路由代理支持时间解耦的TIAIM

时间解耦异步消息模型TIAIM属于方法级的异步机制,它基于回调和轮询异步模型进行扩展。TIAIM可形式化地定义为:

定义1 TIAIM=<DE,O,MCL,SRA>,其中,分布式对象O=<Oc,Orh ,Op ,Osrh ,Os> Oc表示客户请求对象,Os表示服务对象,Orh为Reply Handler对象,它是异步回调模型中引入的接收应答对象,Op 为异步轮询模型引入的查询(Poll)对象,Osrh是针对TIAIM中的异步轮询模型引入的由系统维护的应答接收对象。MCL为消息转换层,负责原始请求消息的转换。SRA为软件路由代理,它基于DE分布环境,对MCL转换后的消息进行存储转发。

基于时间解耦的分布对象中间件异步通信模型如图1所示。

2 TIAIM消息转换层MCL

2.1 TIAIM消息转换层MCL体系结构

TIAIM的消息转换层MCL的结构如图2所示。

MPA:提取原始GIOP Request消息,请求消息包括GIOP主版本号、次版本号、服务上下文、应答标志、对象Key、操作名及IN/OUT类型参数。

PI: MCL提供给Client选择使用的一组有关路由策略接口,实现了路由策略设置与具体实现的无关性。

QSI: MCL提供的QoS接口,以控制消息的服务质量。QSI设置的服务质量信息将作为请求消息的一部分随消息进行传递,并影响SRA对消息的处理。

RE:根据RE作用的不同,RE可以分为三种:转换规则、路由规则及其它应用层规则。转换规则的作用是将GIOP Request消息转换为可以存储转发的消息。路由规则作用是选择开始的路由器。

MAA:在MT的控制下,将转换后的请求消息、路由信息、服务质量信息、应答目的地信息包装为一个可以存储转发的消息Request Info,通过DE发送出去。

2.2 MCL消息提取适配机制

GIOP(General Inter-ORB Protocol)是OMG在CORBA规范中定义的一个ORB间的通信协议。GIOP请求消息由GIOP固定消息头、请求消息头和请求消息体组成。

为了包装和重构一个请求消息,以便SRAT能够激活一个GIOP Request,MPA需要提取以下信息:GIOP_version、flags、response_expected、reserved、Object_key、operation、Service_context。MPA提取信息的处理算法如下:GIOP_version、flags、response_expected、reserved、Object_key、operation、Service_context。

2.3 MCL策略接口PI及算法

PI为MCL向上提供一组与路由有关的策略接口,供Client选择使用,实现路由策略设置与具体实现分离。在异步消息模型中,由于SRA之间互连构成了一定的拓扑结构图,消息要从一个Client传递到一个Server,可能要经过SRA的多次存储转发,而SRA传递消息的效率取决于寻径算法,算法的优劣会给系统的正确性、可扩展性、可靠性带来很大的影响,因此寻径算法设计是异步消息模型研究中的一个重要问题。

SRA之间可以采取静态或动态路由的策略。静态路由策略,在生成服务方对象引用时,在对象引用中嵌入路由信息。动态路由策略,每个SRA都动态地更新路由信息。我们结合TCP/IP协议的IP寻径技术与IRP寻径方法的优点,设计了链路-状态寻径(L-S)算法。利用该算法,消息传递的路径不依赖于Server提供的路径构件,而是通过SRA之间周期性地交换路径信息,来更新SRA维护的路由拓扑图的信息表为消息的传递提供路径。

链路-状态寻径算法是一种动态路由算法,能够适应大规模分布式对象环境的变化,保证消息的正确寻径,具有较大的应用前景。由于篇幅的原因,不对该算法进行详细描述。

2.4 MCL服务质量接口及算法

MCL提供了QSI,对消息的服务质量进行控制,实现了策略和机制的分离。服务质量信息是客户对Client及SRA处理消息的一种要求。客户方通过QSI设置自己的服务质量策略,该策略不仅控制客户方的行为,并随着RequestInfo传递来影响SRA的行为。

排序策略对消息的服务质量有较大的影响。排序策略不同,消息被服务的先后顺序不同。在分布对象异步消息模型中,消息的发送不必等待前面异步消息应答的返回,并且它们的传递路径可能不同,因此消息的发送极有可能出现“先发后服务”、“后发先服务”的情况。在这种情况下,客户方得到的应答结果可能是错误的。所以,排序策略及其核心算法是一个值得研究的问题。我们从Client-Server的全局的角度出发,设计了一种基于优先级的消息排序算法能够解决上述问题。

基于优先级的消息排序算法根据消息的优先级和同一客户方发出消息的依赖关系,控制消息被目标对象服务的顺序,有效地解决了服务顺序不合理的问题。

2.5 MCL消息装配适配机制

MAA的任务可以分为两个阶段:第一阶段:首先把Request Body中的信息与字节顺序装配为MessageBody结构,然后把MPA提取的信息与MessageBody装配为一个RequestMessage结构。

第二阶段:将RequestMessage及服务质量信息Qos、路由信息 RouteInfo、应答目的地 Target装配为一个可以存储转发的消息RequestInfo。

2.6 基于异步轮询的MCL处理算法设计

针对异步回调和异步轮询应答处理方法的不同,MCL的处理算法不同。在基于异步回调的TIAIM模型中,MCL需要对ReplyHandler对象的引用进行注册,并把提取出的请求消息包装为可以存储转发的消息。在基于异步轮询的TIAIM模型中,MCL不需要进行以上操作,但是要创建Poller对象并将它返回给Client。下面给出基于异步轮询的TIAIM模型中MCL的处理算法。

MCL处理算法:

由该算法可以看出,路由策略是影响MCL的主要因素。当使用TIAIM时,MCL激活MT,MT通过MPA提取原始请求消息,然后由MAA将消息进行装配为可以存储转发的消息,算法执行完毕时返回一个poller对象。算法的复杂度为O(n)。

3 TIAIM实现与测试

基于我们开发的CORBA企业级异构集成中间件平台,对TIAIM进行实验性实现与测试。引入TIAIM模型之后,应用系统发生了改变,主要表现在:

(1)客户方利用MCL将消息转换后,需要启动SRAs,服务方需要启动SRAT,中间节点可选择若干SRAM。(2)将SRAs对象引用配置到请求发送方。(3)配置SRA之间的路由关系,客户方代码只需设置适当的存储转发策略,服务器方不需要改变。引入TIAIM前后的性能如图所示。

引入TIAIM的企业级异构集成中间件平台实现了常规CORBA系统无法实现的功能,例如:消息的存储转发、断开的Client/Server应用、时间无关的激活和移动应用。在系统的性能方面,引入SRA后请求执行路径变长,对系统的性能产生影响。我们选择引入SRA前后的同一测试程序,在线程容量为75时的性能测试。H1表示引入SRA之后的测试结果,H1测试时要保证测试实体之间的连接,否则无法比较延迟。H2表示引入SRA前的测试结果。分析该图可以看出,在保证连接的情况下,引入SRA后的延迟大于引入SRA前的延迟。测试结果符合实际情况,因为引入SRA后请求执行的路径变长,在消息存储转发过程中,要进行对象创建和激活、请求排队以及包装应答结果等,对于要求时间无关的异步激活应用,是可以接受的。

4 结束语

实现分布对象中间件异步通信的时间解耦问题,是当前大型分布式应用软件的需求。通过在分布对象中间件异步通信模型中,引入消息转换机制和软件路由代理机制可以较好地解决上述时间解耦问题。本文重点论述了在分布对象客户请求端的消息转换机制。TIAIM在我们开发的基于CORBA标准的企业异构集成中间件中进行了实验,结果表明分布对象异步调用模型对于时间无关性有了很大的改进。

摘要:针对目前分布对象中间件消息通信机制中不支持时间解耦和服务质量控制的问题,提出一种能够支持消息异步传递和时间解耦的异步通信模型,通过在客户端引入消息转换层来完成异步消息的提取、包装和转换,将原始的请求转换为一种可路由的消息,然后设计一种软件路由代理来实现异步消息的传递与转发。重点论述了分布对象中间件异步通信消息的转换机制。

关键词:分布对象中间件,异步通信模型,时间解耦,消息转换机制

参考文献

[1]Vinoski Steve.New features for CORBA3.0.Communications of theACM,1998,41(10):44-52.

[2]Tai S,Rouvellou I.Srrategies for integrating messaging and distributedobject transactions.In:Proceedings of IFIP/ACM International Con-ference on Distributed Systems Platforms and Open Distributed Pro-cessing,New York,USA,2000:308-330.

[3]朱其亮,郑斌.CORBA原理及应用.北京:北京邮电大学出版社,2001.

[4]Object Management Group.CORBA Messaging Specification.http://www.omg.org,1998.

[5]Aahlad Y,Martin B,Marathe M,et al.Asynchronous notification a-mong distributed objects.Toronto:Proceedings of the 2nd Conferenceon Object-Oriented Technologies,1996,6.

上一篇:肿瘤血管下一篇:游乐场所的安全问题