一种通讯协议转换卡的制作方法

文档序号:12068168阅读:268来源:国知局

本发明涉及通讯技术领域,特别是涉及一种通讯协议转换卡。



背景技术:

现有技术中,设备与设备在进行数据传输时通常需要遵循一些特定的协议,工业现场的许多设备采用的通信接口各不相同,由于各种通信结构的协议不兼容,使得异构网络之间的操作和信息交换难以进行。基于此,通讯协议转换卡应运而生,然而现有技术中的通讯协议转换卡通常结构复杂、体积大且成本高。

因此,如何提供一种解决上述技术问题的通讯协议转换卡是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种通讯协议转换卡,一方面,芯片数量少,电路简单、体积小且成本低,另外,采用CPLD作为数据通道,可在此基础上开发多款通讯协议,通用性好且灵活度高。

为解决上述技术问题,本发明提供了一种通讯协议转换卡,包括驱动电路、微控制单元MCU、复杂可编程逻辑控制器CPLD及硬件接口,其中:

所述驱动电路,用于将第一通讯设备发送的第一协议数据帧转换为所述MCU能识别的第一协议数据帧;还用于将所述MCU发送的第二协议数据帧转换为所述第一通讯设备能识别的第二协议数据帧;

所述MCU,用于对所述第一协议数据帧进行解析,得到解析数据,并将所述解析数据发送至所述CPLD的Mail OUT地址中;还用于从所述CPLD的Mail in中读取数据,并将所述数据组装成所述第二协议数据帧并发送至所述驱动电路;

所述CPLD,用于在其Mail OUT地址接收到所述解析数据时,通知所述第二通讯设备读取所述解析数据;还用于在其Mail in地址中存放所述第二通讯设备发送的数据,并通知所述MCU读取所述数据;

所述硬件接口,用于实现所述CPLD和所述第二通讯设备之间的数据交互。

优选地,所述MCU包括:

串口模块,用于采用中断方式获取所述第一协议数据帧和所述第二协议数据帧;

接收状态机,用于从所述串口模块接收所述第一协议数据帧,并调用解析模块;

所述解析模块,用于对所述第一协议数据帧进行解析,得到解析数据,并将所述解析数据发送至所述CPLD的Mail OUT地址中;

组装模块,用于从所述CPLD的Mail in中读取数据,并对所述数据进行组装,得到所述第二协议数据帧;

发送状态机,用于将所述第二协议数据帧发送至所述串口模块。

优选地,所述串口模块还用于判断是否在预设时间内接收到所述第一协议数据帧,当在预设时间内没有接收到所述第一协议数据帧时,发出故障告警。

优选地,所述接收状态机还用于判断所述第一协议数据帧是否满足预设条件,如果是,则进行后续步骤;否则,丢弃所述第一协议数据帧。

优选地,所述预设条件包括第一预设条件、第二预设条件、第三预设条件和第四预设条件,其中,所述第一预设条件为所述第一协议数据帧的第一个字节正确,所述第二预设条件为接收到的所述第一协议数据帧未超时且前导码正确,所述第三预设条件为所述第一协议数据帧的帧头数据符合帧头校验条件,所述第四预设条件为所述第一协议数据帧的数据段数据符合数据段校验条件。

优选地,所述发送状态机具体用于当接收到所述第二协议数据帧时,使能发送管脚,开始以字节为单位发送所述第二协议数据帧直至所述第二协议数据帧发送完成且接收管脚使能。

优选地,所述协议为BACnet/MSTP协议。

优选地,所述驱动电路为485驱动电路。

优选地,所述MCU为Cortex-M4处理器。

优选地,所述硬件接口为34脚排针。

本发明提供了一种通讯协议转换卡,包括驱动电路、微控制单元MCU、复杂可编程逻辑控制器CPLD及硬件接口,驱动电路,用于将第一通讯设备发送的第一协议数据帧转换为MCU能识别的第一协议数据帧;还用于将MCU发送的第二协议数据帧转换为第一通讯设备能识别的第二协议数据帧;MCU,用于对第一协议数据帧进行解析,得到解析数据,并将解析数据发送至CPLD的Mail OUT地址中;还用于从CPLD的Mail in中读取数据,并将数据组装成第二协议数据帧并发送至驱动电路;CPLD,用于在其Mail OUT地址接收到解析数据时,通知第二通讯设备读取解析数据;还用于在其Mail in地址存放第二通讯设备发送的数据,并通知MCU读取数据;硬件接口,用于实现CPLD和第二通讯设备之间的数据交互。可见,本发明提供的通讯协议转换卡仅包括驱动电路、MCU、CPLD及硬件接口,一方面,芯片数量少,电路简单、体积小且成本低,另外,采用CPLD作为数据通道,可在此基础上开发多款通讯协议,通用性好且灵活度高。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种通讯协议转换卡的结构示意图。

具体实施方式

本发明的核心是提供一种通讯协议转换卡,一方面,芯片数量少,电路简单、体积小且成本低,另外,采用CPLD作为数据通道,可在此基础上开发多款通讯协议,通用性好且灵活度高。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参照图1,图1为本发明提供的一种通讯协议转换卡的结构示意图,该通讯协议转换卡包括驱动电路1、微控制单元MCU 2(Microcontrol ler Unit,微控制单元)、复杂可编程逻辑控制器CPLD 3(Complex Programmable Logic Device,复杂可编程逻辑器件)及硬件接口4,其中:

驱动电路1,用于将第一通讯设备发送的第一协议数据帧转换为MCU 2能识别的第一协议数据帧;还用于将MCU 2发送的第二协议数据帧转换为第一通讯设备能识别的第二协议数据帧;

首先需要说明的是,这里的第一协议数据帧和第二协议数据帧均隶属于一个协议数据帧,例如均为Bacnet MS/TP协议数据帧,这里的第一和第二只是为了区分来自第一通讯设备和第二通讯设备这两个不同设备的数据帧。

在实际应用中,第一通讯设备与通讯协议转换卡之间通过双绞线连接,通过设定的协议进行通讯。因为双绞线上传输的是差分信号,而MCU 2只有一个接收引脚和一个发送引脚,因此,驱动电路要将第一通讯设备发送的第一协议数据帧转换为MCU 2能识别的第一协议数据帧;还要将MCU 2发送的第二协议数据帧转换为第一通讯设备能识别的第二协议数据帧,驱动电路1在第一通讯设备与MCU 2之间起到数据转换的作用。

作为优选地,驱动电路1为485驱动电路。

具体地,485驱动电路具体体积小、成本低的优点。当然,这里的驱动电路1还可以为其他类型的驱动电路,本发明在此不做特别的限定。

MCU 2,用于对第一协议数据帧进行解析,得到解析数据,并将解析数据发送至CPLD 3的Mail OUT地址中;还用于从CPLD 3的Mail in中读取数据,并将数据组装成第二协议数据帧并发送至驱动电路;

首先需要说明的是,本申请中,定义CPLD 3中的Mail OUT地址存放第一通讯设备发送至第二通讯设备的数据,定义CPLD 3中的Mail IN地址存放第二通讯设备发送至第一通讯设备的数据。当然,还可以采用其他方式来定义,本发明在此不做特别的限定。

MCU 2用于对协议数据帧的接收、解析,封装和发送。在接收到第一通讯设备发送的第一协议数据帧时,对第一协议数据帧进行解析,将第一协议数据帧中的数据部分解析出来,并将解析数据放入到CPLD 3的Mail OUT地址中;当需要向第一通讯设备发送数据时,MCU 2从CPLD 3的Mail in中读取数据,并将数据组装成第二协议数据帧并发送。

CPLD 3,用于在其Mail OUT地址接收到解析数据时,通知第二通讯设备读取解析数据;还用于在其Mail in地址中存放第二通讯设备发送的数据,并通知MCU 2读取数据;

处理器与第二通讯设备之间的数据交换需要通过双口RAM来实现,本申请中,采用CPLD 3来实现双口RAM的功能,两个CPU可同时对双口RAM进行读写操作。具体地,通过编程将CPLD分为几个地址块,不同的地址块存放不同的协议的数据,同一时刻多种协议对相应的数据区进行读写,互不影响,可实现多种通讯协议同时通讯。相比于专门的双口RAM,该方案灵活性高,通用性强。

另外,在实际应用中,这里的第一通讯设备可以为主站,第二通讯设备可以为从站,例如变频器。另外,这里的从站可以为多个,本发明提供的通讯协议转换卡适用于一主一从或者一主多从的通讯方式。

具体地,请参照表1,表1为本发明提供的一种当第二通讯设备为变频器、协议为Bacnet MS/TP协议时的CPLD的地址分配表。

表1CPLD的地址分配表

通讯卡标志寄存器:第二通讯设备(变频器)查询该标志可判断数据收发状态,当MCU 2向CPLD 3写数据时,相应地标志寄存器的状态更新,同时CPLD3输出中断给第二通讯设备(变频器),第二通讯设备(变频器)侧处理接收到的数据。

具体地,第二通讯设备(变频器)在接收到CPLD 3发送的中断时,查询CPLD 3中相应的标志寄存器的状态,当标识寄存器的状态更新了时,从Mail OUT地址中读取解析数据。

通讯卡中断输出寄存器:用于将数据的最低位作为第二通讯设备(变频器)中断引脚的状态,MCU写操作有效,初始化写0x01,要产生中断先写0x00,过t>=2us,再写0x01,以此产生中断,并将该中断输出给MCU的中断引脚。

第二通讯设备标志寄存器:通讯卡查询该标志可判断数据收发状态,当第二通讯设备向CPLD 3写数据时,该标志寄存器的状态更新,同时CPLD 3输出中断给MCU 2,MCU 2在接收到CPLD3发送的终端且查询到相应标识寄存器的状态更新时,从Mail in中读取数据,处理第二通讯设备第二通讯设备侧发来的数据。

第二通讯设备中断输出寄存器:用于将数据的最低位作为通讯卡端中断引脚的状态,第二通讯设备(变频器)写操作有效,初始化写0x01,要产生中断先写0x00,过t>=2us,再写0x01,以此产生中断,并将该中断输出给第二通讯设备(变频器)的中断引脚。

通讯卡计数器:MCU每隔10ms给该计数器加1,通讯卡配置有1ms的看门狗,在通讯卡死机的状况下,MCU中的看门狗会触发复位信号。

总线类型和模块类型:第二通讯设备(变频器)可支持多张通讯卡,不同通讯卡厂家和协议不同,对应的类型和模块也不同,第二通讯设备(变频器)相应的处理函数也不同,通过判断该地址可确定该调用哪个函数接口进行数据处理。

综上,采用CPLD 3编程实现双口RAM的方案,可在一张通讯卡中实现多种协议装换,不同协议数据区定义在不同的CPLD 3地址中,可允许多种协议同时进行数据交换。若需开发其他通讯协议,CPLD 3程序可不修改或少量修改即可实现,通用性和灵活性高。

硬件接口4,用于实现CPLD 3和第二通讯设备之间的数据交互。

作为优选地,硬件接口4为34脚排针。

当然,这里的硬件接口4还可以为其他类型的硬件接口,本发明在此不做特别的限定,根据实际情况来定。

作为优选地,MCU 2包括:

串口模块,用于采用中断方式获取第一协议数据帧和第二协议数据帧;

接收状态机,用于从串口模块接收第一协议数据帧,并调用解析模块;

解析模块,用于对第一协议数据帧进行解析,得到解析数据,并将解析数据发送至CPLD 3的Mail OUT地址中;

组装模块,用于从CPLD 3的Mail in中读取数据,并对数据进行组装,得到第二协议数据帧;

发送状态机,用于将第二协议数据帧发送至串口模块。

具体地,当数据从第一通讯设备发送至第二通讯设备时:

第一通讯设备发送的第一协议数据帧通过驱动电路1发送到MCU 2的接收引脚。MCU 2中的串口模块通过中断(接收到数据会产生中断)接收到第一协议数据帧。接收到的第一协议数据帧进入接收状态机处理,接收状态机在接收到第一协议数据帧后调用解析模块(网络层接口函数)对数据帧进行解析,提取出数据帧中的数据部分,并将此数据发送到CPLD 3的该协议对应的Mail OUT地址中。

Mail OUT地址中接收到数据,相应的标志会置位,并输出中断给第二通讯设备的处理器中(例如DSP),处理器在接收到中断请求且查询到相应的标志位置位时,从Mail OUT地址中读取数据,并进行相应的处理,将要返回的数据发送到Mail IN地址中。

例如,这里的第一协议数据帧中的数据部分为查询第二通讯设备的相关参数指令,则第二通讯设备获取到该指令时将自身相应的参数发送到Mail IN地址中,以便第一通讯设备获取。

当数据从第一通讯设备发送至第二通讯设备时:

第二通讯设备将返回的数据发送到CPLD 3的相应协议的Mail IN地址中,相应的标志位置位,并发送中断给组装模块。组装模块在接收到中断请求且判断得到相应标志位置位时,从Mail IN地址中读取数据,并将数据进行封装,组装成第二协议数据帧,然后发送状态机将第二协议数据帧通过串口模块发送给第二通讯设备。

作为优选地,串口模块还用于判断是否在预设时间内接收到第一协议数据帧,当在预设时间内没有接收到第一协议数据帧时,发出故障告警。

为了提高通讯协议转换卡的安全性能,串口模块在预设时间内没有接收到第一协议数据帧时,发出故障告警。

作为优选地,接收状态机还用于判断第一协议数据帧是否满足预设条件,如果是,则进行后续步骤;否则,丢弃第一协议数据帧。

为了能够正确完整的接收到有效数据,避免CPU处理过多无效数据而影响其他事务的执行,接收状态机还会根据预设条件判断第一协议数据帧是否为有效数据,只有在是时才进行后续步骤,否则,丢弃第一协议数据帧。

作为优选地,预设条件包括第一预设条件、第二预设条件、第三预设条件和第四预设条件,其中,第一预设条件为第一协议数据帧的第一个字节正确,第二预设条件为接收到的第一协议数据帧未超时且前导码正确,第三预设条件为第一协议数据帧的帧头数据符合帧头校验条件,第四预设条件为第一协议数据帧的数据段数据符合数据段校验条件。

具体地,第一预设条件对应的是接收状态机的接收状态空闲的时候,此时接收状态机等待接收第一协议数据帧的第一个字节,只有第一个字节正确时,才进入下一个状态。

第二预设条件对应的是接收到前导码时,需要说明的是,第一协议数据帧由多个字节构成,前导码由第一个字节和第二个字节构成,在进行传输时一个字节一个字节的传输,字节与字节之间是有时间限制的,当接收到的第一协议数据帧未超时且前导码正确时再进入下一个状态,否则,丢弃该第一协议数据帧,重新等待接收。

第三预设条件对应的是接收到帧头数据时,帧头数据包括前导码和长度信息,对于一些只是为了确认站点的数据帧,数据段数据长度为零,对于包括有效数据的数据,数据段长度不为零。因此,对接收到的帧头数据进行校验,校验通过且数据段长度为0时,认为接收到有效数据。校验通过且数据段长度不为0,接收到的数据帧为包含有效数据,进去下一个状态,否则丢弃数据,等待接收。

第四预设条件对应的是接收到数据时,对数据段数据进行校验,校验通过,则认为接收到有效数据,否则为无效数据,之后进入接收空闲状态,等待接收。

综上,只有当第一协议数据帧均满足第一预设条件、第二预设条件、第三预设条件和第四预设条件时才认为该第一协议数据帧为有效数据。

作为优选地,发送状态机具体用于当接收到第二协议数据帧时,使能发送管脚,开始以字节为单位发送第二协议数据帧直至第二协议数据帧发送完成且接收管脚使能。

具体地,发送状态机分三个状态执行,实现完整数据帧的一次性发送。防止接收设备时序比较严格时,认为该数据包无效而丢弃不处理。

在实际应用中,在进行第二协议数据帧发送时,会依次将第二协议数据帧的字节发送寄存器中,当寄存器中的字节发送了时,相应标志位状态会更新,另外,每个字节的发送时间均需要在预设范围内。

发送过程具体包括:

1)发送等待

当接收到第二协议数据帧时,使能发送管脚,开始发送数据;

2)发送数据

发送完一个字节,开始发送下一个字节,直至发送完整个数据帧,进入下一个状态;

3)发送结束

最后一个字节发送完成时,整个数据帧发送完成且接收管脚使能,发送结束。

作为优选地,协议为BACnet/MSTP协议。

当协议为BACnet/MSTP协议,则上述的第一协议数据帧和第二协议数据帧均为BACnet/MSTP协议数据帧,相应的CPLD 3中的地址为BACnet/MSTP协议Mail OUT和BACnet/MSTP协议Mail IN。

当然,这里的协议还可以为其他协议,本发明在此不做特别的限定,根据实际情况来定。

作为优选地,MCU 2为Cortex-M4处理器。

当然,这里的MCU 2除了可以为Cortex-M4处理器外,还可以为其他类型的处理器,本发明在此不做特别的限定,能实现本发明的目的即可。

下面以协议为BACnet/MSTP协议、第一通讯设备为Bacnet主站、第二通讯设备为变频器、MCU 2为Cortex-M4处理器为例,以下将Cortex-M4简称为M4,对在同一时刻,两个协议的执行过程作介绍:

Bacnet主站发送数据帧给M4,M4的bacnet协议部分的程序对数据帧进行解析,将数据发送给Bacnet MS/TP协议Mail OUT地址区,变频器读取该地址数据进行相应处理。将返回数据发送至Bacnet MS/TP协议Mail IN地址区,M4读取该地址数据,封装成数据帧,发送给Bacnet主站。

与此同时,协议2也在通讯。协议2的主站(或通讯对象)发送数据帧给M4(处理器),M4的协议2部分的程序对数据帧进行解析,将数据发送给协议2的MailOUT地址区,变频器读取该地址数据进行相应处理。将返回数据发送至协议2的MailIN地址区,M4读取该地址数据,封装成数据帧,发送给主站(或协议2通讯对象)。

本发明提供了一种通讯协议转换卡,包括驱动电路、微控制单元MCU、复杂可编程逻辑控制器CPLD及硬件接口,驱动电路,用于将第一通讯设备发送的第一协议数据帧转换为MCU能识别的第一协议数据帧;还用于将MCU发送的第二协议数据帧转换为第一通讯设备能识别的第二协议数据帧;MCU,用于对第一协议数据帧进行解析,得到解析数据,并将解析数据发送至CPLD的MailOUT地址中;还用于从CPLD的Mail in中读取数据,并将数据组装成第二协议数据帧并发送;CPLD,用于在其Mail OUT地址接收到解析数据时,通知第二通讯设备读取解析数据;还用于在其Mail in地址存放第二通讯设备发送的数据,并通知MCU读取数据;硬件接口,用于实现CPLD和第二通讯设备之间的数据交互。可见,本发明提供的通讯协议转换卡仅包括驱动电路、MCU、CPLD及硬件接口,一方面,芯片数量少,电路简单、体积小且成本低,另外,采用CPLD作为数据通道,可在此基础上开发多款通讯协议,通用性好且灵活度高。

需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1