一种基于can总线技术的智能数据转发器的制造方法

文档序号:7782108阅读:371来源:国知局
一种基于can总线技术的智能数据转发器的制造方法
【专利摘要】本发明公开了一种基于CAN总线技术的智能数据转发器,该转发器包括CPU,RAM、ROM、时钟模块、人机接口、串口、以太网口、CAN接口模块以及CAN总线;RAM、ROM、时钟模块、人机接口、串口、以太网口、CAN接口模块与CPU通信连接,CAN接口模块与CAN总线相接。本发明采用了通信速度自适应技术,可以对挂接在网关上的输入通信端口自动实现速度适配。通过端口映射,可将不同范围类别的CAN网络连接起来,或者将CAN总线和以太网连接起来,实现不同网络的网关功能。并可以对输入的CAN总线数据进行开包解析,提取其中的数据,并且,按照事先的配置转发到另外一个CAN总线。当需要使用PC机实现CAN总线智能数据转发时,可以提供web访问方式,实现友好的人机交互,使操作更加方便。
【专利说明】一种基于CAN总线技术的智能数据转发器
【技术领域】
[0001]本发明涉及一种数据转发器,具体地说是基于CAN总线技术的智能数据转发器。【背景技术】
[0002]CAN (Controller Area Network,CAN)总线是现场总线中的一种,是一种高性能、高可靠性、易开发、低成本的串行通信总线。目前广泛应用于工业自动化、交通、医疗等领域。由于CAN总线的广泛应用,相应的产品层出不穷。在不同系统中,其通信速率往往不同,而不同通信速率之间不能之间进行直接数据传输。同时,由于一个CAN网络中的地址空间有限,当两个不同网络之间需要通信时,那么就有可能出现地址冲突,从而不能实现所需的点对点数据透明通信。这就造成传统的CAN网关等技术无法突破数据传输速率统一的瓶颈,亦无法实现CAN总线协议中通信数据的正确解析和对CAN总线的数据进行合适的打包转发,以达到透明数据传输的目的。

【发明内容】

[0003]本发明的目的是针对现有技术存在的不足,提供一种可以实现通信速度自适应的数据转发器,即可以对挂接在网关上的通信端口自动实现速度适配的基于CAN总线技术的智能数据转发器。
[0004]为实现上述发明目的,本发明采用的技术方案为一种基于CAN总线技术的智能数据转发器,包括CPU,RAM、ROM、时钟模块、人机接口、串口、以太网口、CAN接口模块以及CAN总线。
[0005]所述CPU为整个系统的控制核心,采用ARM处理器,对整个系统的工作进行控制。
[0006]所述RAM为随机存储器,为CPU工作提供数据缓冲的存储空间。
[0007]所述ROM为只读存储器,用于存储操作系统的程序以及用户应用程序,以保证系统在断电后也不会丢失数据。
[0008]所述时钟模块向CPU的工作提供精准的时钟脉冲,保证系统有一个稳定的同步时钟和通信速率。
[0009]所述人机接口是用户和系统之间建立联系、交换数据信息的输入与输出接口,保证用户对系统的正常通信。
[0010]所述串口、以太网口为通信接口,使设备与各种外部设备之间能进行数据交换。[0011 ] 所述CAN接口模块是可提供CAN数据帧与CPU之间的数据转换操作功能的硬件设备。
[0012]所述CAN总线为外部CAN总线数据传输的通道。
[0013]通过CAN接口模块对CAN总线传输的信号进行监听,并对CAN信号从最高速率至最低速率逐帧读取,并重新自动进行速率匹配,从而实现速率自适应功能。
[0014]通过以太网口,采用BOA服务器技术,利用CGI程序实现以太网用户访问系统的功倉泛。[0015]有益效果:本发明采用了通信速度自适应技术,可以对挂接在网关上的输入通信端口自动实现速度适配。通过端口映射技术,可将不同范围类别的CAN网络连接起来,或者将CAN总线和以太网连接起来,实现不同网络的网关功能。并可以对输入的CAN总线数据进行开包解析,提取其中的数据,并且,按照事先的配置转发到另外一个CAN总线。当需要使用PC机实现CAN总线智能数据转发时,可以提供web访问方式,实现友好的人机交互,使操作更加方便。在多个不同通信方式的CAN设备连接后,本发明可将不同设备的协议通信内容进行解析和组合,转换成统一的通信格式,再转发。在数据量较大的传输环境下,可根据应用需求,对CAN数据进行筛选和滤波,只将选定的数据传输到另外一个通信端口。
【专利附图】

【附图说明】
[0016]图1为本发明结构示意图;
[0017]图2为Web Server BOA的实现与配置图;
[0018]图3为串行帧转CAN报文图;
[0019]图4为CAN报文转串行帧图;
[0020]图5为CAN数据单元字段定义图;
[0021]图6为协议解析与协议集成流程图;
[0022]图7为速度自适应功能的实现的流程图;
[0023]图8为位速率检测算法流程图。
【具体实施方式】
[0024]下面结合附图和具体实施例,进一步阐明本发明,本实施例在以本发明方案为前提下进行实施,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围。
[0025]如图1所示,一种基于CAN总线技术的智能数据转发器,包括CPU、RAM、ROM、时钟模块、人机接口、串口、以太网口、CAN接口模块以及CAN总线。通过在数据帧中建立CAN报文ID与CAN数据域中字段的位置映射关系,可将接收到的CAN总线数据提取出来再重新组成格式统一的数据帧,并可通过串口或以太网转发。
[0026]CPU为整个系统的控制核心,采用高性能的ARM处理器,对整个系统的工作进行控制。RAM为随机存储器,为CPU工作提供数据存储空间。ROM为只读存储器,用于存储操作系统的程序以及用户应用程序,以保证系统在断电后也不会丢失数据。时钟模块向CPU的工作提供精准的时钟脉冲,保证系统有一个稳定的同步时钟。人机接口是用户和系统之间建立联系、交换数据信息的输入与输出接口,保证用户对系统的可操控性。串口、以太网口为通信接口,使设备与各种外部设备之间能进行数据交换。CAN接口模块是可提供CAN数据帧与CPU之间的数据转换操作功能的硬件设备。CAN总线为外部CAN总线系统。
[0027]通过CAN接口对CAN总线信号进行监听,并对CAN信号从最高速率至最低速率逐次采样,直至速率匹配,从而实现速率自适应。
[0028]通过以太网口,采用BOA服务器技术,利用CGI程序实现以太网用户访问系统的功倉泛。
[0029]一、Web 访问
[0030]目前,嵌入式设备的管理与交互主要是基于WEB方式的应用实现,其网络结构模式是B/S结构(Browser/Server,浏览器/服务器模式),即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,生成动态页面,而在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控。web server BOA是一个非常小巧的Web服务器,可执行代码只有约60KB。它是一个单任务Web服务器,只能依次完成用户的请求。由于web server BOA支持公共网关接口 CGI(Common Gateway Interface),能够通过fork函数为CGI程序提供一个新进程来执行。web server BOA的设计目标是高速和安全,在其站点公布的性能测试中,web server BOA的性能要好于Apache服务器。
[0031]web server BOA的实现与配置,如图2所示:
[0032]第一步是BOA程序的移植。这一步的工作在电脑主机上完成。下载BOA的tar包,下载到RedHat宿主机上后,解压到任意目录,然后根据路径boa/src/Makefile修改里面的编译器,随后进行编译。
[0033]第二步是BOA的配置。这一步的工作也在电脑主机上完成。在电脑主机上的BOA程序源码boa-0.94.13目录下已有一个不例boa.conf,可以在其基础上进行修改。修改Group、ScriptAlias、ServerName 等配置。
[0034]第三步是编写CGI脚本。CGI接口标准包括标准输入、环境变量、标准输出三部分。编写好CGI脚本拷贝到主板的指定路径下。
[0035]1.标准输入
[0036]CGI程序像其他可执行程序一样,可通过标准输入(stdin)从Web服务器得到输入信息,如Form中的数据,这就是所谓的向CGI程序传递数据的POST方法。这意味着在操作系统命令行状态可执行CGI程序,对CGI程序进行调试。POST方法是常用的方法。
[0037]2.环境变量
[0038]操作系统提供了许多环境变量,环境变量定义了程序的执行环境,应用程序可以存取环境变量参数。Web服务器和CGI接口又另外设置了自己的一些环境变量,用来向CGI程序传递一些重要的参数。CGI的GET方法还通过环境变量QUERY-STRING向CGI程序传递Form中的数据。
[0039]3.标准输出
[0040]CGI程序通过标准输出(stdout)将输出信息传送给Web服务器。传送给Web服务器的信息可以用各种格式,通常是以纯文本或者HTML文本的形式,这样我们就可以在命令行状态调试CGI程序,并且得到它们的输出。
[0041]第四步是BOA的执行。这一步的工作在电脑主机上完成。首先,将根文件系统ramdisk在电脑主机上mount-o loop ramdisk目标目录进行展开ramdisk的根文件夹,然后进行如下操作:创建日志文件目录和HTML文档的主目录,拷贝boa.conf文件和boa可执行文件到指定路径。重启设备,便可以通过远程访问到该设备。
[0042]利用BOA程序能够通过以太网访问到本设备的配置信息,并且对相关参数进行配置和修改。具体操作过程是:首先,通过以太网口连接网关设备,输入192.168.1.1 (默认IP),进行访问;其次,修改配置参数,并保存;最后,重新启动(复位)网关设备,重新加载参数,设备即可正常运行。
[0043]二、协议转换与数据打包
[0044]1、串行帧转CAN报文[0045]串行帧的全部数据依次填充到CAN报文的数据域里。一旦当芯片检测到串行总线上有数据后就立即接收并转换,根据用户的事先配置将接收的数据转换成CAN报文“帧信息”和CAN报文“帧ID”,并且在转换过程中“帧信息”和“帧ID” 一直保持不变(用户配置),数据转换的对应格式如图3所示。
[0046]如果接收到串行帧长度小于或等于8个字节,芯片转换时依次将数据O到η (η为串行帧长度)填充到CAN报文的数据域的数据O到η的位置。
[0047]如果串行帧的字节数大于8,那么处理器从串行帧首个字节开始,第一次取8个字节依次填充到CAN报文的数据域。将数据发送至CAN总线后,再转换余下的串行帧数据填充到CAN报文的数据域,直到其数据被转换完。此时的CAN报文中的帧信息及帧ID由用户
事先配置。
[0048]2、CAN报文转串行帧
[0049]对于CAN总线的报文也是收到一帧就立即转发一帧。数据格式对应如图4所示,转换时将CAN报文数据域中的数据依序全部转换到串行帧中。如果在配置的时候,“帧信息转换使能”项勾选了“转换”功能,那么芯片在转换时会将CAN报文的“帧信息”直接填充至串行帧中的首个字节。如果“帧ID转换使能”项勾选了 “转换”功能,那么也将CAN报文的“帧ID”字节全部填充至串行帧。
[0050]3、CAN转以太网
[0051]CAN转以太网模块工作原理很简单,接收到TCP或者UDP数据包后,首先安装TCP/UDP转换协议并解析接收到的数据,再将解析后的数据数据转换为CAN数据帧,最后将CAN数据帧从CAN接口发送到CAN网络。TCP/UDP转换协议规定TCP/UDP数据流为连续的CAN数据包流,每个CAN数据单元长度为13字节,一个TCP包可以承载多个CAN数据单元,详细字段定义如图5所示。
[0052]字段P2表示CAN数据单元信息,长度为I字节。Bit6为1,表示CAN数据单元为远程帧,为O表示CAN数据单元为数据帧。Bit7为I表示CAN数据单元为扩展帧,为O表示CAN数据单元为标准帧。BitO?3表示CAN数据单元中数据的长度,单位为字节,长度最大为8字节。
[0053]字段P3表示CAN数据单元的ID信息。
[0054]字段P4表示CAN数据单元的数据部分,数据单元最大长度为8字节。
[0055]连续发送2个CAN标准帧,CAN ID为0,数据长度8个字节,数据内容为:
O,I, 2, 3, 4, 5,6,7。
[0056]TCP/UDP发送数据如下:
[0057]08 00 00 00 00 00 01 02 03 04 05 06 07 08 00 00 00 00 00 01 02 03 0405 06 07
[0058]发送I个CAN标准帧,CAN ID为0,数据长度5个字节,数据内容为:0,1,2,3,4。TCP/UDP发送数据如下,黑色加粗部分是填充的无效数据。
[0059]05 00 00 00 00 00 01 02 03 04 05 06 07
[0060]接收到CAN数据帧帧后,首先保存在模块内部,然后按照TCP/UDP转换协议将CAN数据帧打包到TCP/UDP数据包中,然后自动发送到目标服务器。TCP/UDP转换协议规定TCP/UDP数据流为连续CAN数据单元的组合,每个CAN数据单元的长度为13字节,一个TCP包可以承载多个CAN数据单元,详细字段定义同上。
[0061]三、滤波功能
[0062]SJA1000独立控制器具有CAN滤波功能,验收寄存器及屏蔽寄存器,用来确定报文集成缓冲器中的报文是否应被载入接收缓冲器。
[0063]用来接收CAN “帧标识”的比较值和“过滤屏蔽码”应该按照位的关系相关与否来建立对应关系。当“过滤屏蔽码”设定为相关时,只有接收“帧标识(帧ID)”和“过滤验收码”相同,才会将该帧数据收到接收缓冲区中,否则不接收。
[0064]屏蔽码用来管理“过滤验收码”,按位相应管理。当“过滤屏蔽码”的位值为I时(意为相关),相应位的接收“帧标识”只有和相应位的“过滤验收码”相同,才会将该帧数据收到接收缓冲区中;当“过滤屏蔽码”的位值为O时(意为无关),相应位的接收“帧标识”为任何值都可以将该帧数据存储到接收缓冲区中。
[0065]表格I滤波、屏蔽寄存器真值表
[0066]
【权利要求】
1.一种基于CAN总线技术的智能数据转发器,其特征在于:包括CPU,RAM、ROM、时钟模块、人机接口、串口、以太网口、CAN接口模块以及CAN总线;所述狀11、ROM、时钟模块、人机接口、串口、以太网口、CAN接口模块与CPU通信连接,所述CAN接口模块与CAN总线相接;其中CAN接口模块与CAN总线相配合实现速率自适应功能。
2.根据权利要求1所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述CPU为整个系统的控制核心,采用ARM处理器,对整个系统的工作进行控制。
3.根据权利要求1所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述RAM为随机存储器,为CPU工作提供数据缓冲的存储空间。
4.根据权利要求1所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述ROM为只读存储器,用于存储操作系统的程序以及用户应用程序,以保证系统在断电后也不会丢失数据。
5.根据权利要求1所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述时钟模块向CPU的工作提供精准的时钟脉冲,保证系统有一个稳定的同步时钟和通信速率。
6.根据权利要求1所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述人机接口是用户和系统之间建立联系、交换数据信息的输入与输出接口,保证用户对系统的正常通信。
7.根据权利要求1所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述串口、以太网口为通信接口,使设备与各种外部设备之间能进行数据交换。
8.根据权利要求1所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述CAN接口模块是可提供CAN数据帧与CPU之间的数据转换操作功能的硬件设备。
9.根据权利要求8所述一种基于CAN总线技术的智能数据转发器,其特征在于:所述CAN总线为外部CAN总线数据传输的通道;通过CAN接口对CAN总线传输的信号进行监听,并对CAN信号从最高速率至最低速率逐帧读取,并重新自动进行速率匹配,从而实现速率自适应功能。
【文档编号】H04L12/46GK103716217SQ201310727992
【公开日】2014年4月9日 申请日期:2013年12月24日 优先权日:2013年12月24日
【发明者】杨维翰, 贺彬, 崔长杰 申请人:安徽旗翔科技发展有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1