CN106656701B - 一种can自动路由系统和方法 - Google Patents
一种can自动路由系统和方法 Download PDFInfo
- Publication number
- CN106656701B CN106656701B CN201510713684.4A CN201510713684A CN106656701B CN 106656701 B CN106656701 B CN 106656701B CN 201510713684 A CN201510713684 A CN 201510713684A CN 106656701 B CN106656701 B CN 106656701B
- 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.)
- Active
Links
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (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单元,即CANID网络节点,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;当用户需要接收数据时,只有用户成功注册的描述符对应的有效CAN ID才能被有效接收,否则无法接收到底层的对应用户数据。自动路由模块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 (8)
1.一种CAN自动路由系统,其特征在于,包括:
硬件模块(10)、硬件驱动模块(20)、自动链路模块(30)和自动路由模块(40);
所述硬件模块(10)、所述硬件驱动模块(20)、所述自动链路模块(30)和所述自动路由模块(40)依次连接;
所述硬件模块(10)连接于链路层,用于为数据传输提供硬件基础;
所述自动链路模块(30)用于标准的CAN链路层数据接收或发送;
所述自动路由模块(40)用于用户注册,并根据所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态生成相应的描述符;
所述硬件驱动模块(20)用于根据所述描述符驱动所述硬件模块(10)接收或发送数据;
所述自动路由模块(40)还用于在所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态正常的情况时生成成功描述符;在所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态不正常或产生错误时生成错误描述符;
所述自动链路模块(30)还用于自动链路接收所述数据,并将所述数据发送到所述自动路由模块(40);
所述自动路由模块(40)还用于把接收到的数据通过所述描述符与ECU节点信息对应进行数据发送。
2.根据权利要求1所述的CAN自动路由系统,其特征在于,
所述自动路由模块(40)还用于直接将需要发送的所述数据发送至所述自动链路模块(30);
所述自动链路模块(30)还用于根据所述数据的长度大小,对所述数据进行分包发送。
3.根据权利要求2所述的CAN自动路由系统,其特征在于,
用户发送所述数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
4.根据权利要求1所述的CAN自动路由系统,其特征在于,
用户接收所述数据的接口为:can_read(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要接收的数据缓冲区地址;len为用户接收数据的长度。
5.一种CAN自动路由方法,涉及权利要求1至4任一项所述的CAN自动路由系统,其特征在于,包括步骤:
S1、开启所述硬件模块(10),系统初始化;
S2、用户通过所述自动路由模块(40)进行注册,再通过所述自动链路模块(30)接收或发送标准的CAN链路层数据;
S3、所述自动路由模块(40)根据所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态生成相应的描述符;所述硬件驱动模块(20)根据所述描述符驱动所述硬件模块(10)接收或发送数据。
6.根据权利要求5所述的CAN自动路由方法,其特征在于,所述步骤S3还包括:
判断所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态是否正常;若是,则生成成功描述符;若否,则生成错误描述符。
7.根据权利要求6所述的CAN自动路由方法,其特征在于,所述步骤S3还包括:
所述自动路由模块(40)直接将需要发送的所述数据发送至所述自动链路模块(30);所述自动链路模块(30)根据所述数据的长度大小,对所述数据进行分包发送;
用户发送所述数据的接口为:can_write(fd,buf,len);
其中,fd为系统自动分派的有效描述符;buf为用户需要发送的数据缓冲区地址;len为用户发送数据的长度。
8.根据权利要求6所述的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 CN106656701A (zh) | 2017-05-10 |
CN106656701B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220124017A (ko) * | 2021-03-02 | 2022-09-13 | 현대모비스 주식회사 | 다용도 목적 기반 모빌리티의 중앙 통신 장치 및 이의 동적 네트워크 구성 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101572641A (zh) * | 2009-05-26 | 2009-11-04 | 阴晓峰 | 基于can总线的控制器网络监控系统及监控方法 |
CN103997450A (zh) * | 2014-05-28 | 2014-08-20 | 天津瑞能电气有限公司 | 一种基于DSP28335的CANopen主站实现方法 |
Family Cites Families (1)
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 |
-
2015
- 2015-10-28 CN CN201510713684.4A patent/CN106656701B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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网络数据链路层和传输层软件的设计与实现;李璐璐;《中国优秀硕士学位论文全文数据库信息科技辑》;20140115;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN106656701A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105939239B (zh) | 虚拟网卡的数据传输方法及装置 | |
CN106664261B (zh) | 一种配置流表项的方法、装置和系统 | |
CN106656801B (zh) | 业务流的转发路径的重定向方法、装置和业务流转发系统 | |
CN106375142B (zh) | 应用程序的测试方法和装置 | |
CN106844000A (zh) | 一种多用户环境下利用浏览器访问Linux容器集群的方法和装置 | |
CN106130894B (zh) | 一种业务功能链的创建方法及系统 | |
CN104468368B (zh) | 配置bgp邻居的方法及装置 | |
CN105210337A (zh) | 一种nfv系统的业务实现方法及通信单元 | |
CN103036784A (zh) | 用于自组织二层企业网络架构的方法和装置 | |
CN108566445A (zh) | 一种报文传输方法及装置 | |
CN105306368B (zh) | 一种数据报文的传输方法和装置 | |
CN107404436A (zh) | 用于虚拟可扩展局域网的通信方法和装置 | |
CN101924699B (zh) | 报文转发处理方法、系统和运营商边缘设备 | |
CN105162674A (zh) | 一种物理机访问虚拟网络的方法及网卡 | |
CN105743684B (zh) | 一种ap模式下路由器的配置方法及路由器 | |
CN104580029B (zh) | 地址分配方法及装置 | |
CN105763297B (zh) | 一种基于云计算系统的远程数据优化传输方法和装置 | |
CN105122741A (zh) | 业务流的业务链控制方法和装置 | |
CN107147533A (zh) | 一种基于sdn框架的流表配置下发方法及系统 | |
CN110311860A (zh) | Vxlan下多链路负载均衡方法及装置 | |
CN105099770B (zh) | 一种空间无线即插即用系统 | |
CN106656701B (zh) | 一种can自动路由系统和方法 | |
CN104717312B (zh) | 一种确定访问网络资源接口的方法及装置 | |
CN106130926B (zh) | 一种报文的处理方法及装置 | |
CN105099923B (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 |