CN105117359A - 一种can口复用装置及方法 - Google Patents

一种can口复用装置及方法 Download PDF

Info

Publication number
CN105117359A
CN105117359A CN201510449058.9A CN201510449058A CN105117359A CN 105117359 A CN105117359 A CN 105117359A CN 201510449058 A CN201510449058 A CN 201510449058A CN 105117359 A CN105117359 A CN 105117359A
Authority
CN
China
Prior art keywords
data
application program
canid
unique identification
mouth
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
Application number
CN201510449058.9A
Other languages
English (en)
Other versions
CN105117359B (zh
Inventor
谭芳慧
涂岩恺
李家祥
周炜峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Yaxon Networks Co Ltd
Original Assignee
Xiamen Yaxon Networks Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Yaxon Networks Co Ltd filed Critical Xiamen Yaxon Networks Co Ltd
Priority to CN201510449058.9A priority Critical patent/CN105117359B/zh
Publication of CN105117359A publication Critical patent/CN105117359A/zh
Application granted granted Critical
Publication of CN105117359B publication Critical patent/CN105117359B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4208Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a system bus, e.g. VME bus, Futurebus, Multibus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及汽车电子技术领域,具体涉及一种CAN口复用装置及方法,包括注册模块,需求管理模块和CAN口收发模块,注册模块为每个需要利用CAN口收发数据的应用程序分配唯一性标识,并与应用程序建立主动设置通道和数据透传通道两个通信通道,需求管理模块建立哈希表统一管理应用程序对CAN?ID的订阅需求,并向CAN口收发模块设置所需过滤的CAN?ID,CAN口收发模块连接CAN控制器芯片,根据过滤表从CAN总线上收取数据,或往CAN总线上发送数据。本发明为多个应用程序使用同一个CAN控器制芯片的情况提供一个统一的管理框架,减少各应用程序去缓存和挑选所需CAN数据的消耗,实现比较高效的多应用程序对同一个CAN口的复用。

Description

一种CAN口复用装置及方法
技术领域
本发明涉及汽车电子技术领域,具体涉及一种CAN口复用装置及方法。
背景技术
通常汽车电子设备需要通过一个CAN口(即支持CAN数据连路协议的控制器芯片,如PCA82C200)与CAN总线通信,进行数据收发。单个汽车电子设备中CAN总线上的数据并不是全部需要的,由于汽车CAN总线上的数据量非常大,且数据产生的频率非常高,因此CAN控制芯片需要设置过滤CANID,只从CAN总线上接收需要的CANID对应的数据。
随着汽车电子设备的性能不断提高,汽车电子设备变得越来越复杂。在高等级汽车电子设备上会存在多个并行的应用程序,每个应用程序需要的CANID并不相同,在只采用一个CAN口条件下,如果CAN控制器芯片直接把所接收到的数据不加区分的送往每个程序,则每个程序需自已去缓存、遍历、挑选自己所需的CAN数据,在并行程序较多的情况下,每个程序都去做这样的处理会浪费大量的内存和计算资源。而如果为每个程序都对应一个专用的CAN控制器芯片并设置自己的过滤ID,则明显会增加设备的硬件成本和功耗。
发明内容
解决上述技术问题,本发明提供了一种CAN口复用装置及方法,为多个应用程序使用同一个CAN控器制芯片的情况提供一个统一的管理框架,减少各应用程序去缓存和挑选所需CAN数据的消耗,实现比较高效的多应用程序对同一个CAN口的复用。
为了达到上述目的,本发明所采用的技术方案是,一种CAN口复用装置,包括注册模块,需求管理模块和CAN口收发模块,注册模块为每个需要利用CAN口收发数据的应用程序分配唯一性标识,并与应用程序建立主动设置通道和数据透传通道两个通信通道,需求管理模块建立哈希表统一管理应用程序对CANID的订阅需求,并向CAN口收发模块设置所需过滤的CANID,CAN口收发模块连接CAN控制器芯片,根据过滤表从CAN总线上收取数据,或往CAN总线上发送数据。
进一步的,主动设置通道采用非阻塞式的进程间通信,数据透传采用阻塞式的Socket通信。
一种CAN口复用方法,该方法运用于上述装置,包括:
1)注册模块执行以下步骤:
步骤一:应用程序向注册模块发送连接请求,
步骤二:注册模块响应请求,并为该应用程序分配一个唯一性标识,
步骤三:注册模块中的连接服务与应用程序建立两个通信通道,一个为主动设置通道,另一个为数据透传通道,
步骤四:将应用程序唯一性标识,以及两个通道的通信资源移交给需求管理模块,
2)需求管理模块从注册模块接收应用程序唯一性标识,以及两个通道的通信资源,存入通道信息表中,两个通信通道各自独立工作,
当从主动设置通道接收到数据时:
步骤一:从主动设置通道接收应用程序发来的CANID设置信息或CAN数据发送信息。如果接收到的是CANID设置信息,进步骤二,如果为CAN数据发送信息,进入步骤三,
步骤二:从CANID设置信息中,取出第n个CANID,记为IDn,并取出设置信息,如果设置信息为订阅:
查询CANID需求HASH表的索引,是否包含IDn,如果不包含,则新建索引IDn,并将应用程序唯一性标识加入到索引内容中。由于新增了一个需要接收的ID,因此接着需要往CAN口收发模块发送过滤IDn,让CAN口收发模块把IDn设置进CAN控制器的过滤ID里,
如果已包含IDn,则查找索引内容中否已包含该程序唯一性标识,如果不包含,将应用程序唯一性标识加入到索引内容中,如果包含,则不做处理,
如果设置消息为取消:
查询CANID需求HASH表的索引,是否包含IDn,如果不包含,则不做处理,
如果已包含IDn,则查找索引内容中否已包含该程序唯一性标识,如果不包含,则不做处理,如果包含,将应用程序唯一性标识从索引内容中去除,接着判断索引内容是否为空,如果为空,则CAN口收发模块把IDn从CAN控制器的过滤ID里去除,如果索引内容不为空,则表示还有其它应用程序需要IDn的数据,做其它处理。
步骤三:将收到的CAN数据发送信息直接送往CAN口收发模块,往CAN总线发送,
当从CAN口收发模块收到数据Data时:
步骤一、从收到的数据Data中取出第i个CANID,记为IDi,
步骤二、从CANID需求HASH表中索引出IDi的内容,IDi的索引内容包含应用程序唯一性标识,
步骤三、从通道信息表中,查找应用程序唯一性标识对应的数据透传通道资源,
步骤四、将Data分别通过数据透传通道资源发送到各自的应用程序,
3)CAN口收发模块用于从需求管理模块接收过滤CANID,设置到CAN控制器芯片,并从需求管理模块接收发送数据信息,往CAN总线上发送,还利用CAN控制器芯片从CAN总线上接收CAN数据Data,并将Data送往需求管理模块。
本发明通过采用上述技术方案,与现有技术相比,具有如下优点:在电子设备上只有一个CAN控制器的条件下,每个需要CAN数据的应用程序提供性能优良的服务;对应用程序而言,接收到的CAN数据都是有用数据(相对本程序而言),减少了对CAN数据的挑选,缓存CAN数据和解析CAN数据帧的消耗,好比为每个需要CAN数据的应用程序配备了专门的CAN控制器。实现比较高效的多应用程序对同一CAN口的复用。
附图说明
图1是本发明的实施例的结构示意图。
具体实施方式
现结合附图和具体实施方式对本发明进一步说明。
作为一个具体的实施例,如图1所示,本发明的一种CAN口复用装置,包括注册模块,需求管理模块和CAN口收发模块,注册模块为每个需要利用CAN口收发数据的应用程序分配唯一性标识,并与应用程序建立主动设置和数据透传两个通信通道,主动设置通道采用非阻塞式的进程间通信,数据透传采用阻塞式的Socket通信,需求管理模块建立哈希表统一管理应用程序对CANID的订阅需求,并向CAN口收发模块设置所需过滤的CANID,CAN口收发模块连接CAN控制器芯片,根据过滤表从CAN总线上收取数据,或往CAN总线上发送数据。
过滤表是根据哈希表中的CANID构造,只接收有哈希表中对应CANID数据,CANID需求HASH表:
由CANID和应用程序建立的HASH表,每行对应用一个CANID,应用程序唯一标识至少有一个,也可以有多个,这里假设有三个应用程序的唯一标识分别为A,B,C;需要的CAN数据ID分别是A需要的CANID为(1、2、3),B需要的CANID为(1、3、4、5),C需要的CANID为(3,5),由这些信息建立的HASH表如下:
通道信息表:
应用程序唯一标识 通道信息
每个程序的唯一标识 主动设置通道、数据透传通道 资源
其中,主动设置通道采用非阻塞式的进程间通信,数据透传采用阻塞式的Socket通信。
一种CAN口复用方法,该方法运用于上述装置,包括:
1)注册模块执行以下步骤:
步骤一:应用程序向注册模块发送连接请求。
步骤二:注册模块响应请求,并为该应用程序分配一个唯一性标识,该标识可以是字符串,也可以是长整型ID,为唯一性标识,不与其它应用程序重复。
步骤三:注册模块中的连接服务(该服务为SocketServer)与应用程序建立两个通信通道,一个为主动设置通道,另一个为数据透传通道。其中主动设置通道为非阻塞式通信,优点在于主动设置信息一般较少,采用非阻塞式可节省通信资源;数据透传通道为阻塞式通信,优点在于数据透传一般数据量大,实时性高,采用阻塞式通信可保证大数据实时传送。
步骤四:将应用程序唯一性标识,以及两个通道的通信资源移交给需求管理模块。
2)需求管理模块
从注册模块接收应用程序唯一性标识,以及两个通道的通信资源,存入通道信息表中。两个通信通道各自独立工作。
当从主动设置通道接收到数据时:
步骤一:从主动设置通道接收应用程序发来的CANID设置信息或CAN数据发送信息。如果接收到的是CANID设置信息,进步骤二,如果为CAN数据发送信息,进入步骤三。
步骤二:从CANID设置信息中,取出第n个CANID,记为IDn,假设n为1,则为ID1,并取出设置信息(设置信息包括订阅和取消)。如果设置信息为订阅:
查询CANID需求HASH表的索引,是否包含ID1,如果不包含,则新建索引ID1,并将应用程序唯一性标识加入到索引内容中。由于新增了一个需要接收的ID,因此接着需要往CAN口收发模块发送过滤ID1,让CAN口收发模块把ID1设置进CAN控制器的过滤ID里。
如果已包含ID1,则查找索引内容中否已包含该程序唯一性标识,如果不包含,将应用程序唯一性标识加入到索引内容中,如果包含,则不做处理。由于ID1已索引,表示CAN控制器芯片内已对该ID设置过滤,因此不需要往CAN口收发模块发送过滤ID。
如果设置消息为取消:
查询CANID需求HASH表的索引,是否包含ID1,如果不包含,则不做处理。
如果已包含ID1,则查找索引内容中否已包含该程序唯一性标识,如果不包含,则不做处理。如果包含,将应用程序唯一性标识从索引内容中去除,接着判断索引内容是否为空,如果为空,表示该ID1已经没有应用程序需要它,因此接着需要往CAN口收发模块发送过滤ID1,让CAN口收发模块把ID1从CAN控制器的过滤ID里去除。如果索引内容不为空,则表示还有其它应用程序需要ID1的数据,做其它处理。
步骤三:将收到的CAN数据发送信息直接送往CAN口收发模块,往CAN总线发送。
当从CAN口收发模块收到数据Data时:
步骤一、从收到的数据Data中取出第i个CANID,记为IDi,假设为ID2,
步骤二、从CANID需求HASH表中索引出ID2的内容。假设ID2的索引内容包含如下几个应用程序唯一性标识:T1,T2,T3。
步骤三、从通道信息表中,查找T1,T2,T3对应的数据透传通道资源,假设为S1,S2,S3。
步骤四、将Data分别通过S1,S2,S3发送到各自的应用程序。
3)CAN口收发模块
CAN口收发模块是与CAN控制器芯片之间可以直接通信,CAN口收发模块能够从CAN控制器芯片上读取数据,也可以往CAN控制器芯片发送数据。主要实现下面三个作用:
1、从需求管理模块接收过滤CANID,设置到CAN控制器芯片;
2、从需求管理模块接收发送数据信息,往CAN总线上发送;
3、利用CAN控制器芯片从CAN总线上接收CAN数据Data,并将Data送往需求管理模块。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。

Claims (3)

1.一种CAN口复用装置,其特征在于:包括注册模块,需求管理模块和CAN口收发模块,注册模块为每个需要利用CAN口收发数据的应用程序分配唯一性标识,并与应用程序建立主动设置通道和数据透传通道两个通信通道,需求管理模块建立哈希表统一管理应用程序对CANID的订阅需求,并向CAN口收发模块设置所需过滤的CANID,CAN口收发模块连接CAN控制器芯片,根据过滤表从CAN总线上收取数据,或往CAN总线上发送数据。
2.根据权利要求1所述的一种CAN口复用装置,其特征在于:主动设置通道采用非阻塞式的进程间通信,数据透传采用阻塞式的Socket通信。
3.一种CAN口复用方法,该方法运用于上述装置,其特征在于:包括:
1)注册模块执行以下步骤:
步骤一:应用程序向注册模块发送连接请求,
步骤二:注册模块响应请求,并为该应用程序分配一个唯一性标识,
步骤三:注册模块中的连接服务与应用程序建立两个通信通道,一个为主动设置通道,另一个为数据透传通道,
步骤四:将应用程序唯一性标识,以及两个通道的通信资源移交给需求管理模块,
2)需求管理模块从注册模块接收应用程序唯一性标识,以及两个通道的通信资源,存入通道信息表中,两个通信通道各自独立工作,
当从主动设置通道接收到数据时:
步骤一:从主动设置通道接收应用程序发来的CANID设置信息或CAN数据发送信息,如果接收到的是CANID设置信息,进步骤二,如果为CAN数据发送信息,进入步骤三,
步骤二:从CANID设置信息中,取出第n个CANID,记为IDn,并取出设置信息,如果设置信息为订阅:
查询CANID需求HASH表的索引,是否包含IDn,如果不包含,则新建索引IDn,并将应用程序唯一性标识加入到索引内容中,并让CAN口收发模块把IDn设置进CAN控制器的过滤ID里,
如果已包含IDn,则查找索引内容中否已包含该程序唯一性标识,如果不包含,将应用程序唯一性标识加入到索引内容中,如果包含,则不做处理,
如果设置消息为取消:
查询CANID需求HASH表的索引,是否包含IDn,如果不包含,则不做处理,
如果已包含IDn,则查找索引内容中否已包含该程序唯一性标识,如果不包含,则不做处理,如果包含,将应用程序唯一性标识从索引内容中去除,接着判断索引内容是否为空,如果为空,则CAN口收发模块把IDn从CAN控制器的过滤ID里去除,如果索引内容不为空,则表示还有其它应用程序需要IDn的数据,做其它处理,
步骤三:将收到的CAN数据发送信息直接送往CAN口收发模块,往CAN总线发送,
当从CAN口收发模块收到数据Data时:
步骤一、从收到的数据Data中取出第i个CANID,记为IDi,
步骤二、从CANID需求HASH表中索引出IDi的内容,IDi的索引内容包含应用程序唯一性标识,
步骤三、从通道信息表中,查找应用程序唯一性标识对应的数据透传通道资源,
步骤四、将Data分别通过数据透传通道资源发送到各自的应用程序,
3)CAN口收发模块用于从需求管理模块接收过滤CANID,设置到CAN控制器芯片,并从需求管理模块接收发送数据信息,往CAN总线上发送,还利用CAN控制器芯片从CAN总线上接收CAN数据Data,并将Data送往需求管理模块。
CN201510449058.9A 2015-07-28 2015-07-28 一种can口复用装置及方法 Active CN105117359B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510449058.9A CN105117359B (zh) 2015-07-28 2015-07-28 一种can口复用装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510449058.9A CN105117359B (zh) 2015-07-28 2015-07-28 一种can口复用装置及方法

Publications (2)

Publication Number Publication Date
CN105117359A true CN105117359A (zh) 2015-12-02
CN105117359B CN105117359B (zh) 2019-03-08

Family

ID=54665356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510449058.9A Active CN105117359B (zh) 2015-07-28 2015-07-28 一种can口复用装置及方法

Country Status (1)

Country Link
CN (1) CN105117359B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338272A (zh) * 2021-12-30 2022-04-12 上海集度汽车有限公司 通信控制方法、装置、车辆及可读存储介质
CN114448744A (zh) * 2022-01-28 2022-05-06 航天科工火箭技术有限公司 复用标识号的can数据解析方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102226877A (zh) * 2011-05-16 2011-10-26 湖南南车时代电动汽车股份有限公司 一种基于网络协议的通用型can网络监控方法
CN103188122A (zh) * 2013-03-19 2013-07-03 深圳市汇川控制技术有限公司 基于can网络的通讯系统及方法
CN104320295A (zh) * 2014-10-08 2015-01-28 清华大学 Can报文异常检测方法及系统
CN104378274A (zh) * 2014-11-20 2015-02-25 中国船舶重工集团公司第七二六研究所 基于can总线的无主网络通信系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102226877A (zh) * 2011-05-16 2011-10-26 湖南南车时代电动汽车股份有限公司 一种基于网络协议的通用型can网络监控方法
CN103188122A (zh) * 2013-03-19 2013-07-03 深圳市汇川控制技术有限公司 基于can网络的通讯系统及方法
CN104320295A (zh) * 2014-10-08 2015-01-28 清华大学 Can报文异常检测方法及系统
CN104378274A (zh) * 2014-11-20 2015-02-25 中国船舶重工集团公司第七二六研究所 基于can总线的无主网络通信系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ROLAND KAMMERER等: ""Enhancing Security in CAN Systems using a Star Coupling Router"", 《7TH IEEE INTERNATIONAL SYMPOSIUM ON INDUSTRIAL EMBEDDED SYSTEMS (SIES"12)》 *
于成毅: ""CAN总线数据记录仪的研究与设计"", 《中国优秀硕士学位论文全文数据库信息科技辑》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338272A (zh) * 2021-12-30 2022-04-12 上海集度汽车有限公司 通信控制方法、装置、车辆及可读存储介质
CN114448744A (zh) * 2022-01-28 2022-05-06 航天科工火箭技术有限公司 复用标识号的can数据解析方法、装置、设备及介质
CN114448744B (zh) * 2022-01-28 2024-05-03 航天科工火箭技术有限公司 复用标识号的can数据解析方法、装置、设备及介质

Also Published As

Publication number Publication date
CN105117359B (zh) 2019-03-08

Similar Documents

Publication Publication Date Title
WO2011100921A3 (zh) 多业务节点管理系统、装置及方法
CN103780508A (zh) Can总线报文的软件滤波方法、系统及电子控制单元
CN106488560A (zh) 一种资源选择方法及装置
CN101425838A (zh) 一种数据通道配置方法及装置
CN103095568A (zh) 机架式交换设备实现堆叠的系统及方法
CN108337577A (zh) 一种新型的vpx集成背板
CN203590251U (zh) 基于串行RapidIO总线的FlexRay控制系统
CN103257946A (zh) 一种紧耦合多控存储系统控制器之间的高速互联方法
CN105117359A (zh) 一种can口复用装置及方法
CN101291294B (zh) 双主控交换设备、下发转发表项的方法及装置
CN101217786B (zh) 一种基带资源共享方法、通信系统及设备
CN105530157B (zh) Afdx网络交换机多个虚拟链路共享信用的架构及方法
CN103096473B (zh) 一种大容量基带池的基带资源共享方法及系统
CN102404849A (zh) 一种实现基站机框中基带资源配置的方法及系统
CN103312614B (zh) 一种组播报文处理方法、线卡及通信设备
JP2023535508A (ja) 通信方法および装置
CN102215152B (zh) 一种在虚拟设备之间实现流量间隔的方法和系统
CN202480901U (zh) 一种电动汽车电池管理系统通信线路
CN102841875A (zh) 一种具有智能总线接口的主机及安防系统
CN107357756A (zh) 多设备在主模式下进行iic通信的系统
CN104794091B (zh) 一种基于cpci接口的通信卡
CN102857445A (zh) 片上网络路由器的低开销分配结构及分配方法
CN101334763B (zh) 主机与设备之间的数据传送方法
CN102346503A (zh) 一种机柜及机柜系统
CN218162486U (zh) 一种车载路由网关、车辆及通信系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant