CN105117359A - 一种can口复用装置及方法 - Google Patents
一种can口复用装置及方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4208—Bus 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数据连路协议的控制器芯片,如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送往需求管理模块。
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)
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)
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总线的无主网络通信系统 |
-
2015
- 2015-07-28 CN CN201510449058.9A patent/CN105117359B/zh active Active
Patent Citations (4)
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)
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)
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 |