实用新型内容
本实用新型提供一种协议转换装置,用以实现CANopen网络与HDLC总线的互联通信。
本实用新型提供一种协议转换装置,包括:
用于与开放式控制局域网络CANopen总线相互传输CANopen数据帧,且与所述CANopen总线相连的CANopen总线收发器;
用于与所述CANopen总线收发器相互传输CANopen数据帧,且与所述CANopen总线收发器相连的CANopen总线协议控制器;
用于从所述CANopen总线协议控制器内的CANopen数据帧中读取CANopen数据信息,并将读取的CANopen数据信息写入高级数据链路控制HDLC总线协议控制器,以及用于从所述HDLC总线协议控制器内的HDLC数据帧中读取HDLC数据信息,并将读取的HDLC数据信息写入所述CANopen总线协议控制器的,分别与所述CANopen总线协议控制器和所述HDLC总线协议控制器相连的主控单元;
用于与HDLC总线收发器相互传输HDLC数据帧,且与所述HDLC总线收发器连接的所述HDLC总线协议控制器;
用于与HDLC现场总线相互传输HDLC数据帧,且与所述HDLC现场总线相连的所述HDLC总线收发器。
上述协议转换装置,其中,所述CANopen总线协议控制器包括:用于存储所述CANopen总线收发器传输的CANopen数据帧和所述主控单元写入的HDLC数据信息的CANopen通讯存储器;用于将所述主控单元写入的HDLC数据信息编码成CANopen数据帧的CANopen编解码器;
所述HDLC总线协议控制器包括:用于存储所述HDLC总线收发器传输的HDLC数据帧和所述主控单元写入的CANopen数据信息的HDLC通讯存储器;用于将所述主控单元写入的CANopen数据信息编码成HDLC数据帧的HDLC编解码器。
上述协议转换装置,其中,所述主控单元包括:用于读所述CANopen通讯存储器,获取CANopen数据信息,将所获取的CANopen数据信息写入所述HDLC通讯存储器,以及用于读所述HDLC通讯存储器,获取HDLC数据信息,将所获取的HDLC数据信息写入所述CANopen通讯存储器的中央处理单元CPU。
上述协议转换装置,其中,所述主控单元还包括:用于存储配置信息的配置存储器,所述配置信息包括所述HDLC通讯存储器的地址、所述CANopen通讯存储器的地址、传输速率、传输周期和传输数据大小。
上述协议转换装置,还包括:用于向所述CANopen总线收发器、CANopen总线协议控制器、主控单元、HDLC总线协议控制器和HDLC总线收发器提供电源的,分别与所述CANopen总线收发器、CANopen总线协议控制器、主控单元、HDLC总线协议控制器和HDLC总线收发器连接的电源模块。
本实用新型的协议转换装置,协议转换装置通过主控单元将CANopen协议总线控制器中的CANopen数据信息转换为HDLC数据信息格式存储到HDLC协议总线控制器中,将HDLC协议总线控制器中的HDLC数据信息转换为CANopen数据信息格式存储到CANopen协议总线控制器中,而CANopen协议总线控制器和HDLC协议总线控制器分别将CANopen数据信息和HDLC数据信息发送到各自的应用环境中,实现了在CANopen网络与HDLC总线之间相互传输数据,实现了CANopen网络与HDLC总线的结合与互通。
具体实施方式
为使本实用新型实施例的目的、技术方案和优点更加清楚,下面将结合本实用新型实施例中的附图,对本实用新型实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本实用新型一部分实施例,而不是全部的实施例。基于本实用新型中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本实用新型保护的范围。
图1为本实用新型一实施例提供的协议转换装置的结构示意图。如图1所示,本实施例的装置包括:CANopen总线协议控制器11、CANopen总线收发器12、主控单元30、HDLC总线协议控制器21和HDLC总线收发器22。
其中,CANopen总线收发器12与CANopen总线2相连,用于与CANopen总线2相互传输CANopen数据帧,即CANopen总线收发器12一方面从CANopen总线2上接收CANopen数据帧,一方面将从CANopen总线协议控制器11一侧接收到的CANopen数据帧发送到CANopen总线2上。
CANopen总线协议控制器11与CANopen总线收发器12相连,用于与CANopen总线收发器12相互传输CANopen数据帧,即CANopen总线协议控制器11一方面接收CANopen总线收发器12发送的CANopen数据帧,另一方面将根据主控单元30写入的HDLC数据信息生成的CANopen数据帧发送给CANopen总线收发器12,从而由CANopen总线收发器12将CANopen数据帧发送到CANopen总线2上。
主控单元30,与CANopen总线协议控制器11相连,用于与CANopen总线协议控制器11相互传输数据信息;主控单元30还与HDLC总线协议控制器21相连,并用于与HDLC总线协议控制器21相互传输数据信息。具体的,主控单元30从CANopen总线协议控制器11内的CANopen数据帧中读取CANopen数据信息,并将读取的CANopen数据信息写入HDLC总线协议控制器21,以及从HDLC总线协议控制器21内的HDLC数据帧中读取HDLC数据信息,并将读取的HDLC数据信息写入CANopen总线协议控制器11。
HDLC总线协议控制器21,与HDLC总线收发器22连接,用于与HDLC总线收发器22相互传输HDLC数据帧,即HDLC总线协议控制器21一方面接收HDLC总线收发器22发送的HDLC数据帧,另一方面将根据主控单元30写入的CANopen数据信息生成的HDLC数据帧发送给HDLC总线收发器22,从而由HDLC总线收发器22将HDLC数据帧发送到HDLC现场总线3上。
HDLC总线收发器22,与HDLC现场总线3相连,用于与HDLC现场总线相互传输HDLC数据帧,即HDLC总线收发器22一方面接收HDLC现场总线3发送的HDLC数据帧,另一方面将HDLC总线协议控制器21发送的HDLC数据帧发送到HDLC现场总线3上。
本实施例的协议转换装置,通过CANopen总线协议控制器、CANopen总线收发器、主控单元、HDLC总线协议控制器和HDLC总线收发器等功能器件能够将CANopen数据帧中的CANopen数据信息转换为HDLC数据信息,然后转发给HDLC现场总线,并能够将HDLC数据帧中的HDLC数据信息转换为CANopen数据信息,然后转发给CANopen总线,实现在CANopen网络与HDLC总线之间相互传输数据,实现了CANopen网络与HDLC总线的互联与互通。
图2为本实用新型另一实施例提供的协议转换装置的结构示意图。如图2所示,本实施例的装置还包括:电源模块40。
其中,电源模块40,分别与CANopen总线收发器12、CANopen总线协议控制器11、主控单元30、HDLC总线协议控制器21、HDLC总线收发器22相连,用于向CANopen总线收发器12、CANopen总线协议控制器11、主控单元30、HDLC总线协议控制器21、HDLC总线收发器22提供电源能量。
进一步,如图2所示,本实施例的CANopen总线协议控制器11包括:CANopen通讯存储器111和CANopen编解码器112。
其中,CANopen通讯存储器111,用于存储CANopen总线收发器12传输的CANopen数据帧和主控单元30写入的HDLC数据信息。CANopen编解码器112,与CANopen通讯存储器111相连,用于将主控单元30写入的HDLC数据信息编码成CANopen数据帧。
相应地,HDLC总线协议控制器21包括:HDLC通讯存储器211和HDLC编解码器212。
其中,HDLC通讯存储器211,用于存储HDLC总线收发器22传输的HDLC数据帧和主控单元30写入的CANopen数据信息。HDLC编解码器212,用于将主控单元30写入的CANopen数据信息编码成HDLC数据帧。
更进一步,本实施例的主控单元30包括:中央处理单元(Center ProcessingUnit;简称为:CPU)301,程序存储器302、配置存储器303和数据存储器304。
其中,CPU301可以采用ARM7处理器。程序存储器302可由非易失性闪存(FLASH)组成,用于永久性存储相关的软件程序。配置存储器303可由非易失性闪存(FLASH)存组成,用于永久性存储CANopen协议总线控制器11和HDLC协议总线控制器21进行数据传输时的相关配置信息。相关配置信息主要包括:HDLC通讯存储器211的地址、CANopen通讯存储器111的地址、传输速率、传输周期和传输数据大小等。另外,配置存储器303还可以用于永久性存储用户的应用数据等。数据存储器304可由同步动态随机访问存储器(SDRAM)组成,由于具有速度快、容量大等优点,主要用于代码运行时的内存分配。
其中,CPU301用于读CANopen通讯存储器111,获取CANopen数据信息,将所获取的CANopen数据信息写入HDLC通讯存储器211。具体的,CPU301通过标准的总线读写来控制CANopen总线协议控制器11发送CANopen数据帧或接收CPU301发送给它的HDLC数据信息。CANopen总线协议控制器11负责CANopen总线的监视和管理、发送或接收数据、并负责编码或解码CANopen数据帧;CANopen总线收发器12负责将接收到的CANopen数据帧转换成符合CANopen总线物理层规定的电信号发送到CANopen总线2上,同时对CANopen总线协议控制器11、主控单元30、HDLC总线协议控制器21进行隔离和保护。
CPU301还用于读HDLC通讯存储器211,获取HDLC数据信息,将所获取的HDLC数据信息写入CANopen通讯存储器111。
标准的CANopen数据帧格式如表1所示,包括控制信息(CONTROL)和有效数据(DATA)两部分,其中有效数据部分(DATA)即为所述的CANopen数据信息。标准的HDLC数据帧格式如表2所示,包括:地址(ADDRESS)、控制信息(CONTROL)、有效数据(DATA)和冗余校验(FCS)信息,其中有效数据(DATA)即为所述的HDLC数据信息。
表1
表2
ADDRESS |
CONTROL |
DATA |
FCS |
1字节 |
1字节 |
0-128字节 |
1字节 |
基于上述,本实施例的CPU301具体用于读CANopen通讯存储器111,获取CANopen数据帧中的CANopen数据信息,将所获取的CANopen数据信息的前2个字节作为HDLC数据帧中的地址和控制信息,将所获取的CANopen数据信息的第3个字节和第3个字节之后的字节作为HDLC数据帧中的HDLC数据信息,分别写入HDLC通讯存储器211。结合表1和表2来说就是,主控单元30的CPU301提取表1所示的CANopen数据帧中DATA字段中的前2个字节作为表2所示的HDLC数据帧中的ADDRESS和CONTROL字段的值,写入HDLC通讯存储器211,并将表1所示的CANopen数据帧中DATA字段中的第3个字节和第3个字节以后的字节,作为表2所示的HDLC数据帧的DATA字段的值,写入HDLC通讯存储器211。
另外,CPU301还具体用于读HDLC通讯存储器211,获取HDLC数据帧中的HDLC数据信息,将所获取的HDLC数据信息的前2个字节作为CANopen数据帧中的控制信息,将所获取的HDLC数据信息的第3个字节和第3个字节之后的字节作为CANopen数据帧中的CANopen数据信息,分别写入CANopen通讯存储器111。结合表1和表2来说就是,主控单元30的CPU301提取表2所示的HDLC数据帧的DATA字段中的前2个字节作为表1所示的CANopen数据帧中CONTROL字段的值,将其写入CANopen通讯存储器111,并将表2所示的HDLC数据帧的DATA字段中的第3个字节和第3个字节以后的字节作为表1所示的CANopen数据帧的DATA字段的值,写入CANopen通讯存储器111。
进一步,在CPU301读CANopen通讯存储器111和HDLC通讯存储器211之前,也就是说CANopen网络和HDLC总线进行数据传输之前,CPU301还会读配置存储器303,获取配置存储器303中的配置信息,并根据配置信息对HDLC通讯存储器211和CANopen通讯存储器111进行初始化,使HDLC通讯存储器211和CANopen通讯存储器111处于通讯允许状态。
更进一步,在CPU301对HDLC通讯存储器211和CANopen通讯存储器111进行初始化之前,首先要设置CANopen总线协议控制器11和HDLC总线协议控制器21处于通讯禁止状态,以便于对CANopen总线协议控制器11和HDLC总线协议控制器21进行初始化。其中,可以由CPU301来设置CANopen总线协议控制器11和HDLC总线协议控制器21处于通讯禁止状态,也可以由工作人员以手动方式分别设置CANopen总线协议控制器11和HDLC总线协议控制器21处于通讯禁止状态。
本实施例的协议转换装置,通过CANopen总线协议控制器、CANopen总线收发器、主控单元、HDLC总线协议控制器和HDLC总线收发器等功能器件能够将CANopen数据帧中的CANopen数据信息转换为HDLC数据信息,然后转发给HDLC现场总线,并能够将HDLC数据帧中的HDLC数据信息转换为CANopen数据信息,然后转发给CANopen总线,实现在CANopen网络与HDLC总线之间相互传输数据,实现了CANopen网络与HDLC总线的互联与互通。
本实用新型一实施例提供一种使用本实用新型上述实施例提供的协议转换装置实现的数据传输方法,包括:
当CANopen总线协议控制器11接收到CANopen总线收发器12发送的CANopen数据帧时,主控单元30读CANopen总线协议控制器11,从CANopen总线协议控制器11接收到的CANopen数据帧中获取CANopen数据信息,将所获取的CANopen数据信息写入HDLC总线协议控制器21。或者
当HDLC总线协议控制器21接收到HDLC总线收发器22发送的HDLC数据帧时,主控单元30读HDLC协议总线控制器21,从HDLC总线协议控制器21接收到的HDLC数据帧中获取HDLC数据信息,将所获取的HDLC数据信息写入CANopen总线协议控制器11。
以下将以如图3A所示的CANopen设备6和HDLC现场总线设备5之间的数据通讯为例,说明本实用新型实施例提供的协议转换装置1的工作方式,如图3B。其中,图3B为本实用新型一实施例提供的一种数据传输方法的流程图。
如图3B所示,本实施例的一种数据传输方法包括:
步骤S01、初始化主控单元30、CANopen总线协议控制器11、HDLC总线协议控制器21。
该初始化操作包括:由工作人员手动设置或由CPU301自动设置CANopen总线协议控制器11和HDLC总线协议控制器21处于通讯禁止状态。主控单元30的CPU301进行初始化,CPU301读取配置存储器303中的配置信息,对CANopen总线协议控制器11和HDLC总线协议控制器21进行通讯参数配置,使CANopen总线协议控制器11和HDLC总线协议控制器21处于通讯允许状态。其中,具体是指CPU301分别对CANopen通讯存储器111和HDLC通讯存储器211进行传输对端的地址、传输速率、传输周期和传输数据大小等参数配置。
步骤S02、当CANopen总线协议控制器11收到CANopen数据帧后,主控单元30读CANopen通讯存储器111,获得CANopen数据帧中的CANopen数据信息,并将获取的CANopen数据信息写入HDLC通讯存储器211。
其中,如表1所示CANopen数据帧的DATA字段的第1字节和第2字节存放的是HDLC数据帧的ADDRESS和CONTROL的值。
基于此,主控单元30读CANopen通讯存储器111,获得CANopen数据帧中的CANopen数据信息,并将获取的CANopen数据信息传输给HDLC通讯存储器211,包括:主控单元30的CPU301读CANopen通讯存储器111,获取CANopen数据帧中的CANopen数据信息,提取获取到的CANopen数据信息的前2个字节作为HDLC数据帧中的地址和控制信息,写入HDLC通讯存储器211,并将获取到的CANopen数据信息的第3个字节和第3个字节以后的字节作为HDLC数据帧中的HDLC数据信息,写入HDLC通讯存储器211。
步骤S03、HDLC总线协议控制器21将主控单元30写入的CANopen数据帧中的CANopen数据信息进行编码,形成HDLC数据帧,通过HDLC总线收发器22将HDLC数据帧传输给HDLC现场总线3。
步骤S04、HDLC现场总线3将HDCL数据帧发送给HDLC现场总线设备5。
步骤S05、当HDLC协议总线控制器21收到HDLC数据帧后,主控单元30读HDLC通讯存储器211,获取HDLC数据帧中的HDLC数据信息,并将获取到的HDLC数据信息写入CANopen通讯存储器111。
其中,HDLC数据帧中的HDLC数据信息的第1字节和第2字节存放的是CANopen数据帧中的控制信息。
基于此,主控单元30读HDLC通讯存储器211,获取HDLC数据帧中的HDLC数据信息,并将获取到的HDLC数据信息写入CANopen通讯存储器111,包括:主控单元30读HDLC通讯存储器211,获取HDLC数据帧中的HDLC数据信息,提取获取到的HDLC数据信息的前2个字节作为CANopen数据帧中的控制信息,写入CANopen通讯存储器111,并将HDLC数据帧中的HDLC数据信息的第3个字节和第3个字节以后的字节,作为CANopen数据帧中的CANopen数据信息,写入CANopen通讯存储器111。
步骤S06、CANopen总线协议控制器21将主控单元30写入的HDLC数据帧中的HDLC数据信息进行编码,形成CANopen数据帧,通过CANopen总线收发器22将CANopen数据帧传输给CANopen总线2。
步骤S07、CANopen总线2将CANopen数据帧发送给CANopen设备6。
其中,通过循环执行步骤S02-步骤S07,将CANopen设备6与HDLC现场总线设备5之间的所有数据相互传输到对方。
在此说明,主控单元30的CUP301可以通过中断方式,也可以通过定期查询的方式,获知步骤S02中的CANopen总线协议控制器11收到CANopen数据帧和获知步骤S05中的HDLC总线协议控制器21收到收到HDLC数据帧。
在本实施例中,主控单元30将CANopen总线协议控制器11收到的CANopen数据帧发送到HDLC总线协议控制器21,最终发送给HDLC现场总线设备5,实现了CANopen设备6与HDLC现场总线设备5之间的数据传输。同时,主控单元30还将HDLC总线协议控制器21收到的HDLC数据帧发送到CANopen总线协议控制器11,最终发送给CANopen设备6,实现了CANopen设备6与HDLC现场总线设备5之间的数据传输。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本实用新型的技术方案,而非对其限制;尽管参照前述实施例对本实用新型进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本实用新型各实施例技术方案的精神和范围。