CN106656701A - 一种can自动路由系统和方法 - Google Patents
一种can自动路由系统和方法 Download PDFInfo
- Publication number
- CN106656701A CN106656701A CN201510713684.4A CN201510713684A CN106656701A CN 106656701 A CN106656701 A CN 106656701A CN 201510713684 A CN201510713684 A CN 201510713684A CN 106656701 A CN106656701 A CN 106656701A
- Authority
- CN
- China
- Prior art keywords
- module
- automatic
- data
- hardware
- descriptor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种CAN自动路由系统,包括:硬件模块、硬件驱动模块、自动链路模块和自动路由模块;硬件模块、硬件驱动模块、自动链路模块和自动路由模块依次连接;硬件模块连接于链路层,用于为数据传输提供硬件基础;自动链路模块用于标准的CAN链路层数据接收或发送;自动路由模块用于用户注册,并根据硬件驱动模块和自动链路模块的工作状态生成相应的描述符;硬件驱动模块用于根据描述符驱动硬件模块接收或发送数据。自动实现底层CAN网络协议的链路层协议,可进行有效的封装,大大节省了开发时间。自动实现各ECU单元的自动路由供功能,让用户/开发者像网络编程一样简单。让用户/开发者实现硬件的无关性,只关注应用层的开发设计,达到硬件无关性。
Description
技术领域
本发明涉及互联网领域,更具体地说,涉及一种CAN自动路由系统和方法。
背景技术
由于现有车辆前装CAN网络的设计越来越复杂,各ECU节点单元也越来越多,各ECU独立单元需要对CAN网络进行对应的设计。目前汽车产业更加产业化、智能化。其CAN网络设计应用越来越广泛。而在整个CAN网络中如何更好更快去找寻自己的ECU单元(CAN ID),如何能轻松访问并发送数据,在用户数据多包发送更为突出,而现有系统未能整体去实现CAN网络的应用层、链路层,导致需要开发CAN网络的厂家设计上比较困难,独立去做的复杂度相对高,通过CAN网络路由功能可实现应用层轻松使用CAN网络,能快速实现网络的开发,最终可实现产品的快速开发。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种CAN自动路由系统和方法。
本发明解决其技术问题所采用的技术方案是:提供一种CAN自动路由系统,包括:硬件模块、硬件驱动模块、自动链路模块和自动路由模块;所述硬件模块、所述硬件驱动模块、所述自动链路模块和所述自动路由模块依次连接;所述硬件模块连接于链路层,用于为数据传输提供硬件基础;所述自动链路模块用于标准的CAN链路层数据接收或发送;所述自动路由模块用于用户注册,并根据所述硬件驱动模块和所述自动链路模块的工作状态生成相应的描述符;所述硬件驱动模块用于根据所述描述符驱动所述硬件模块接收或发送数据。
在本发明的CAN自动路由系统中,所述自动路由模块还用于在所述硬件驱动模块和所述自动链路模块的工作状态正常的情况时生成成功描述符;在所述硬件驱动模块和所述自动链路模块的工作状态不正常或产生错误时生成错误描述符。
在本发明的CAN自动路由系统中,
所述自动路由模块还用于直接将需要发送的所述数据发送至所述自动链路模块;所述自动链路模块还用于根据所述数据的长度大小,对所述数据进行分包发送。
在本发明的CAN自动路由系统中,
用户发送所述数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
在本发明的CAN自动路由系统中,
所述自动链路模块还用于自动链路接收所述数据,并将所述数据发送到所述自动路由模块;所述自动路由模块还用于把接收到的数据通过所述描述符与ECU节点信息对应进行数据发送。
在本发明的CAN自动路由系统中,
用户发送所述数据的接口为:can_read(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要接收的数据缓冲区地址;len为用户接收数据的长度。
本发明还提供一种CAN自动路由方法,涉及上述的CAN自动路由系统,包括步骤:
S1、开启所述硬件模块,系统初始化;
S2、用户通过所述自动路由模块进行注册,再通过所述自动链路模块接收或发送标准的CAN链路层数据;
S3、所述自动路由模块根据所述硬件驱动模块和所述自动链路模块的工作状态生成相应的描述符;所述硬件驱动模块根据所述描述符驱动所述硬件模块接收或发送数据。
在本发明的CAN自动路由方法中,所述步骤S3还包括:
判断所述硬件驱动模块和所述自动链路模块的工作状态是否正常;若是,则生成成功描述符;若否,则生成错误描述符。
在本发明的CAN自动路由方法中,所述步骤S3还包括:
所述自动路由模块直接将需要发送的所述数据发送至所述自动链路模块;所述自动链路模块根据所述数据的长度大小,对所述数据进行分包发送;
用户发送所述数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
在本发明的CAN自动路由方法中,所述步骤S3还包括:
所述自动链路模块自动链路接收所述数据,并将所述数据发送到所述自动路由模块;所述自动路由模块把接收到的数据通过所述描述符与ECU节点信息对应进行数据发送;
用户发送所述数据的接口为:can_read(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要接收的数据缓冲区地址;len为用户接收数据的长度。
实施本发明的的CAN自动路由系统和方法具有以下有益效果:自动实现底层CAN网络协议的链路层协议,可进行有效的封装,开发者不需要关心底层链路如何实现,大大节省了开发时间。自动实现各ECU单元(CAN ID寻址)的自动路由供功能,让用户/开发者像网络编程一样简单。让用户/开发者实现硬件的无关性,只关注应用层的开发设计,达到硬件无关性。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明CAN自动路由系统的系统方框图;
图2是本发明CAN自动路由方法的流程方框图。
具体实施方式
本发明针对的是在现有技术中未能整体去实现CAN网络的应用层、链路层,导致需要开发CAN网络的厂家设计上比较困难,独立去做的复杂度相对高的问题,提供一种CAN自动路由系统和方法,能够自动实现底层CAN网络协议的链路层协议,可进行有效的封装,开发者不需要关心底层链路如何实现,大大节省了开发时间。自动实现各ECU单元(CAN ID寻址)的自动路由供功能,让用户/开发者像网络编程一样简单。让用户/开发者实现硬件的无关性,只关注应用层的开发设计,达到硬件无关性。
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。
如图1所示,CAN(Controller Area Network),中文名称为控制器局域网络,通常称为CAN bus,即CAN总线。是目前在国际上应用最广泛的开放式现场总线之一。CAN网络广泛应用于工业现场。汽车CAN网络通讯目前成为车辆最稳定的局域网通讯系统,承载着汽车各ECU控制单元的控制与通讯。
本发明提供了一种CAN自动路由系统,包括:硬件模块10、硬件驱动模块20、自动链路模块30和自动路由模块40;
硬件模块10、硬件驱动模块20、自动链路模块30和自动路由模块40依次连接;在本发明的一优选实施例中,硬件模块10通常包括CAN网络硬件部分,如CAN控制器、收发器等。
硬件模块10连接于链路层,用于为数据传输提供硬件基础;系统初始化时,通常首先要打开CAN网络设备,包括启用硬件模块10。
自动链路模块30用于标准的CAN链路层数据接收或发送;对CAN底层网络的数据的链路实现,主要针对数据多包收发的自动化实现。
自动路由模块40用于用户注册,并根据硬件驱动模块20和自动链路模块30的工作状态生成相应的描述符;实现系统自动路由功能,用户只需要动态注册一个ECU单元,即CAN ID网络节点,CAN自动路由模块就自动实现数据的收发功能。
硬件驱动模块20用于根据描述符驱动硬件模块10接收或发送数据。硬件驱动模块20提供了标准的CAN网络数据接收发空,CAN网络参数设置接口,如CAN网络的波特率等接口。
进一步地,自动路由模块40还用于在硬件驱动模块20和自动链路模块30的工作状态正常的情况时生成成功描述符。即在硬件驱动模块20和自动链路模块30的工作状态正常的情况时自动路由模块40自动分派路由接口,并成功返回自动链路描述符fd到用户,即系统中唯一动态分派的路由成功标识符,相当于套接字描述符。在硬件驱动模块20和自动链路模块30的工作状态不正常或产生错误时生成错误描述符。
当用户需要发送接收CAN数据时,直接操作申请的描述符,并用自动路由模块40成功分派的描述符调用接口进行收发CAN数据。自动路由模块40还用于直接将需要发送的数据发送至自动链路模块30;自动链路模块30还用于根据数据的长度大小,对数据进行分包发送。通常自动链路模块30根据数据的长度大小,按照CAN标准链路层协议对数据进行分包发送,实现标准的CAN链路层数据发送。
用户发送数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
自动链路模块30还用于自动链路接收数据,并将数据发送到自动路由模块40;当用户需要接收数据时,只有用户成功注册的描述符对应的有效CANID才能被有效接收,否则无法接收到底层的对应用户数据。自动路由模块40还用于把接收到的数据通过描述符与ECU节点信息对应进行数据发送。即把接收的数据通过描述符与CAN ID的对应关系进行数据分发,发送到对应的用户,实现CAN数据的接收。
用户发送数据的接口为:can_read(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要接收的数据缓冲区地址;len为用户接收数据的长度。
如图2所示,本发明还提供了一种CAN自动路由方法,包括上述的CAN自动路由系统,包括步骤:
S1、开启硬件模块10,系统初始化;通常首先要打开CAN网络设备。在本发明的一优选实施例中,硬件模块10通常包括CAN网络硬件部分,如CAN控制器、收发器等。
S2、用户通过自动路由模块40进行注册,再通过自动链路模块30接收或发送标准的CAN链路层数据;对CAN底层网络的数据的链路实现,主要针对数据多包收发的自动化实现。
S3、自动路由模块40根据硬件驱动模块20和自动链路模块30的工作状态生成相应的描述符;硬件驱动模块20根据描述符驱动硬件模块10接收或发送数据。实现系统自动路由功能,用户只需要动态注册一个ECU单元,即CAN ID网络节点,CAN自动路由模块就自动实现数据的收发功能。硬件驱动模块20提供了标准的CAN网络数据接收发空,CAN网络参数设置接口,如CAN网络的波特率等接口。
进一步地,
判断硬件驱动模块20和自动链路模块30的工作状态是否正常;若是,则生成成功描述符;若否,则生成错误描述符。通常在硬件驱动模块20和自动链路模块30的工作状态正常的情况时自动路由模块40自动分派路由接口,并成功返回自动链路描述符fd到用户,即系统中唯一动态分派的路由成功标识符,相当于套接字描述符。
进一步地,步骤S3还包括:
当用户需要发送接收CAN数据时,直接操作申请的描述符,并用自动路由模块40成功分派的描述符调用接口进行收发CAN数据。自动路由模块40直接将需要发送的数据发送至自动链路模块30;自动链路模块30根据数据的长度大小,对数据进行分包发送;通常自动链路模块30根据数据的长度大小,按照CAN标准链路层协议对数据进行分包发送,实现标准的CAN链路层数据发送。
用户发送数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
进一步地,步骤S3还包括:
自动链路模块30自动链路接收数据,并将数据发送到自动路由模块40;当用户需要接收数据时,只有用户成功注册的描述符对应的有效CAN ID才能被有效接收,否则无法接收到底层的对应用户数据。自动路由模块40把接收到的数据通过描述符与ECU节点信息对应进行数据发送;即把接收的数据通过描述符与CAN ID的对应关系进行数据分发,发送到对应的用户,实现CAN数据的接收。
用户发送数据的接口为:can_read(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要接收的数据缓冲区地址;len为用户接收数据的长度。
综上,本发明自动实现底层CAN网络协议的链路层协议,可进行有效的封装,开发者不需要关心底层链路如何实现,大大节省了开发时间。自动实现各ECU单元CAN ID寻址的自动路由供功能,让用户/开发者像网络编程一样简单。让用户/开发者实现硬件的无关性,只关注应用层的开发设计,达到硬件无关性。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (10)
1.一种CAN自动路由系统,其特征在于,包括:
硬件模块(10)、硬件驱动模块(20)、自动链路模块(30)和自动路由模块(40);
所述硬件模块(10)、所述硬件驱动模块(20)、所述自动链路模块(30)和所述自动路由模块(40)依次连接;
所述硬件模块(10)连接于链路层,用于为数据传输提供硬件基础;
所述自动链路模块(30)用于标准的CAN链路层数据接收或发送;
所述自动路由模块(40)用于用户注册,并根据所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态生成相应的描述符;
所述硬件驱动模块(20)用于根据所述描述符驱动所述硬件模块(10)接收或发送数据。
2.根据权利要求1所述的CAN自动路由系统,其特征在于,所述自动路由模块(40)还用于在所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态正常的情况时生成成功描述符;在所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态不正常或产生错误时生成错误描述符。
3.根据权利要求2所述的CAN自动路由系统,其特征在于,
所述自动路由模块(40)还用于直接将需要发送的所述数据发送至所述自动链路模块(30);
所述自动链路模块(30)还用于根据所述数据的长度大小,对所述数据进行分包发送。
4.根据权利要求3所述的CAN自动路由系统,其特征在于,
用户发送所述数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
5.根据权利要求2所述的CAN自动路由系统,其特征在于,
所述自动链路模块(30)还用于自动链路接收所述数据,并将所述数据发送到所述自动路由模块(40);
所述自动路由模块(40)还用于把接收到的数据通过所述描述符与ECU节点信息对应进行数据发送。
6.根据权利要求5所述的CAN自动路由系统,其特征在于,
用户发送所述数据的接口为:can_read(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要接收的数据缓冲区地址;len为用户接收数据的长度。
7.一种CAN自动路由方法,涉及权利要求1至6任一项所述的CAN自动路由系统,其特征在于,包括步骤:
S1、开启所述硬件模块(10),系统初始化;
S2、用户通过所述自动路由模块(40)进行注册,再通过所述自动链路模块(30)接收或发送标准的CAN链路层数据;
S3、所述自动路由模块(40)根据所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态生成相应的描述符;所述硬件驱动模块(20)根据所述描述符驱动所述硬件模块(10)接收或发送数据。
8.根据权利要求7所述的CAN自动路由方法,其特征在于,所述步骤S3还包括:
判断所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态是否正常;若是,则生成成功描述符;若否,则生成错误描述符。
9.根据权利要求8所述的CAN自动路由方法,其特征在于,所述步骤S3还包括:
所述自动路由模块(40)直接将需要发送的所述数据发送至所述自动链路模块(30);所述自动链路模块(30)根据所述数据的长度大小,对所述数据进行分包发送;
用户发送所述数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
10.根据权利要求8所述的CAN自动路由方法,其特征在于,所述步骤S3还包括:
所述自动链路模块(30)自动链路接收所述数据,并将所述数据发送到所述自动路由模块(40);所述自动路由模块(40)把接收到的数据通过所述描述符与ECU节点信息对应进行数据发送;
用户发送所述数据的接口为:can_read(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要接收的数据缓冲区地址;len为用户接收数据的长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510713684.4A CN106656701B (zh) | 2015-10-28 | 2015-10-28 | 一种can自动路由系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510713684.4A CN106656701B (zh) | 2015-10-28 | 2015-10-28 | 一种can自动路由系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106656701A true CN106656701A (zh) | 2017-05-10 |
CN106656701B CN106656701B (zh) | 2019-10-08 |
Family
ID=58829436
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510713684.4A Active CN106656701B (zh) | 2015-10-28 | 2015-10-28 | 一种can自动路由系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106656701B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002682A (zh) * | 2021-03-02 | 2022-09-02 | 现代摩比斯株式会社 | 专用车辆的中央通信单元及其动态网络的配置方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040136371A1 (en) * | 2002-01-04 | 2004-07-15 | Muralidhar Rajeev D. | Distributed implementation of control protocols in routers and switches |
CN101572641A (zh) * | 2009-05-26 | 2009-11-04 | 阴晓峰 | 基于can总线的控制器网络监控系统及监控方法 |
CN103997450A (zh) * | 2014-05-28 | 2014-08-20 | 天津瑞能电气有限公司 | 一种基于DSP28335的CANopen主站实现方法 |
-
2015
- 2015-10-28 CN CN201510713684.4A patent/CN106656701B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040136371A1 (en) * | 2002-01-04 | 2004-07-15 | Muralidhar Rajeev D. | Distributed implementation of control protocols in routers and switches |
CN101572641A (zh) * | 2009-05-26 | 2009-11-04 | 阴晓峰 | 基于can总线的控制器网络监控系统及监控方法 |
CN103997450A (zh) * | 2014-05-28 | 2014-08-20 | 天津瑞能电气有限公司 | 一种基于DSP28335的CANopen主站实现方法 |
Non-Patent Citations (1)
Title |
---|
李璐璐: "车载CAN网络数据链路层和传输层软件的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115002682A (zh) * | 2021-03-02 | 2022-09-02 | 现代摩比斯株式会社 | 专用车辆的中央通信单元及其动态网络的配置方法 |
CN115002682B (zh) * | 2021-03-02 | 2023-11-28 | 现代摩比斯株式会社 | 专用车辆的中央通信单元及其动态网络的配置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106656701B (zh) | 2019-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103141058B (zh) | 用于虚拟分布式业务的网络接口控制器 | |
CN103166858B (zh) | 一种报文传输方法和设备 | |
CN101924699B (zh) | 报文转发处理方法、系统和运营商边缘设备 | |
CN104852893A (zh) | 用于以太网和can通讯之间信号转换的车载设备及其控制方法 | |
CN103501236B (zh) | 网络控制平面逻辑拓扑生成方法及装置 | |
CN104424105B (zh) | 一种内存数据的读写处理方法和装置 | |
CN105103493A (zh) | 实现网络虚拟化的方法及相关装置和通信系统 | |
CN105162674A (zh) | 一种物理机访问虚拟网络的方法及网卡 | |
CN103139075B (zh) | 一种报文传输方法和设备 | |
CN104580029B (zh) | 地址分配方法及装置 | |
CN106506595A (zh) | 基于点对点的物联网智能社区设备的升级方法 | |
CN107094109A (zh) | 一种车载电子处理单元系统公共网络通讯方法 | |
CN107181615A (zh) | 一种对crh2列车通信网络仿真的方法及装置 | |
CN107404512A (zh) | 资源订阅方法、资源订阅装置和资源订阅系統 | |
CN108111413A (zh) | 叠加网络的路由方法、系统及设备 | |
CN108512755B (zh) | 一种路由信息的学习方法及装置 | |
CN110311860A (zh) | Vxlan下多链路负载均衡方法及装置 | |
CN115065637B (zh) | 传输算力资源信息的方法、装置和电子设备 | |
CN102299862B (zh) | 二层隧道快速转发设备和方法 | |
CN108667817A (zh) | 报文转换系统和报文转换方法 | |
CN106656701A (zh) | 一种can自动路由系统和方法 | |
CN105635312B (zh) | 基于WinCE系统单网卡实现多局域网络通信的方法 | |
CN105933235A (zh) | 数据通信方法及装置 | |
CN105763411A (zh) | 一种建立组播隧道的方法及装置 | |
CN107645432A (zh) | 应用特定的包的传输 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |