一种CAN自动路由系统和方法技术方案

技术编号:15296264 阅读:147 留言:0更新日期:2017-05-11 16:25
本发明专利技术提供一种CAN自动路由系统,包括:硬件模块、硬件驱动模块、自动链路模块和自动路由模块;硬件模块、硬件驱动模块、自动链路模块和自动路由模块依次连接;硬件模块连接于链路层,用于为数据传输提供硬件基础;自动链路模块用于标准的CAN链路层数据接收或发送;自动路由模块用于用户注册,并根据硬件驱动模块和自动链路模块的工作状态生成相应的描述符;硬件驱动模块用于根据描述符驱动硬件模块接收或发送数据。自动实现底层CAN网络协议的链路层协议,可进行有效的封装,大大节省了开发时间。自动实现各ECU单元的自动路由供功能,让用户/开发者像网络编程一样简单。让用户/开发者实现硬件的无关性,只关注应用层的开发设计,达到硬件无关性。

CAN automatic routing system and method

The invention provides a CAN automatic routing system, including: hardware module, hardware drive module, automatic link module and automatic routing module; hardware module, hardware drive module, automatic link module and automatic routing module are connected sequentially; the hardware module is connected to the link layer, to provide hardware basis for data transmission; automatic link module is used for standard the CAN data link layer received or transmitted; automatic routing module for user registration, and generates the corresponding descriptors according to the hardware driver module and automatic link module working state; hardware drive module is used for driving the hardware module according to the descriptor to receive or transmit data. Automatic realization of the underlying CAN network protocol link layer protocol, can be effectively packaged, greatly saving the development time. Automatic realization of each ECU unit for automatic routing functions, so that users / developers as simple as network programming. Let the user / developer to achieve the independence of the hardware, only focus on the development of the application layer design, hardware independence.

【技术实现步骤摘要】

本专利技术涉及互联网领域,更具体地说,涉及一种CAN自动路由系统和方法
技术介绍
由于现有车辆前装CAN网络的设计越来越复杂,各ECU节点单元也越来越多,各ECU独立单元需要对CAN网络进行对应的设计。目前汽车产业更加产业化、智能化。其CAN网络设计应用越来越广泛。而在整个CAN网络中如何更好更快去找寻自己的ECU单元(CANID),如何能轻松访问并发送数据,在用户数据多包发送更为突出,而现有系统未能整体去实现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单元(CANID寻址)的自动路由供功能,让用户/开发者像网络编程一样简单。让用户/开发者实现硬件的无关性,只关注应用层的开发设计,达到硬件无关性。附图说明下面将结合附图及实施例对本专利技术作进一步说明,附图中:图1是本专利技术CAN自动路由系统的系统方框图;图2是本专利技术CAN自动路由方法的流程方框图。具体实施方式本专利技术针对的是在现有技术中未能整体去实现CAN网络的应用层、链路层,导致需要开发CAN网络的厂家设计上比较困难,独立去做的复杂度相对高的问题,提供一种CAN自动路由系统和方法,能够自动实现底层CAN网络协议的链路层协议,可进行有效的封装,开发者不需要关心底层链路如何实现,大大节省了开发时间。自动实现各ECU单元(CANID寻址)的自动路由供功能,让用户/开发者像网络编程一样简单。让用户/开发者实现硬件的无关性,只关注应用层的开发设计,达到硬件无关性。为了对本专利技术的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本专利技术的具体实施方式。如图1所示,CAN(ControllerAreaNetwork),中文名称为控制器局域网络,通常称为CANbus,即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到用户,即系统中唯一动态分派的路由成功标识符本文档来自技高网...
一种CAN自动路由系统和方法

【技术保护点】
一种CAN自动路由系统,其特征在于,包括:硬件模块(10)、硬件驱动模块(20)、自动链路模块(30)和自动路由模块(40);所述硬件模块(10)、所述硬件驱动模块(20)、所述自动链路模块(30)和所述自动路由模块(40)依次连接;所述硬件模块(10)连接于链路层,用于为数据传输提供硬件基础;所述自动链路模块(30)用于标准的CAN链路层数据接收或发送;所述自动路由模块(40)用于用户注册,并根据所述硬件驱动模块(20)和所述自动链路模块(30)的工作状态生成相应的描述符;所述硬件驱动模块(20)用于根据所述描述符驱动所述硬件模块(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自动路由系统,其特征在于,用户发送所述数据的接口为:c...

【专利技术属性】
技术研发人员:夏明辉同选民苗亮亮
申请(专利权)人:深圳市赛格导航科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1