基于Python的CAN网络数据库管理分析.pdf
《基于Python的CAN网络数据库管理分析.pdf》由会员分享,可在线阅读,更多相关《基于Python的CAN网络数据库管理分析.pdf(7页珍藏版)》请在咨信网上搜索。
1、智能网联汽车AUTOMOBILE APPLIEDTECHNOLOGY2023 年10.16638/ki.1671-7988.2023.017.008基于Python的CAN网络数据库管理分析蓝启亮,吴光耀,王帅,陈聪(比亚迪汽车工业有限公司产品规划及汽车新技术研究院,广东深圳5 1 8 1 1 8)摘要:为高效管理车辆系统控制器局域网(CAN)网络数据,基于对CAN网络数据结构的研究及车载嵌入式软件开发测试经验的积累,提出一种基于Python的CAN网络数据库管理平台的方法,实现多种格式CAN网络数据库文件的导入、数据编辑、数据自动校验、数据自动对比和CAN网络数据库文件输出,解决了当前主流C
2、AN网络数据库管理工具编辑效率低、人工校验和比对数据易出错的缺陷,有效提高CAN网络开发及CAN网络各个节点控制器软件开发的效率。关键词:CAN网络数据库;数据抓取;Python中图分类号:U469.7Analysis of CAN Network Database Management Based on PythonLAN Qiliang,WU Guangyao,WANG Shuai,CHEN Cong(Product Planning and Automotive New Technology Research Institute,BYD Automobile IndustryCompan
3、y Limited,Shenzhen 518118,China)Abstract:In order to efficiently manage the controller area network(CAN)data of vehicle system,based on the research of CAN network data structure and the accumulation of experience in thedevelopment and testing of on-board embedded software,a method of CAN network da
4、tabasemanagement platform based on Python is proposed to realize the import,data editing,data automaticverification,data automatic comparison and CAN network database file output of various formats.Itsolves the defects of low editing efficiency of the current mainstream CAN network databasemanagemen
5、t tools and the error prone to manual verification and comparison of data,and effectivelyimproves the efficiency of CAN network development and CAN network node controller softwaredevelopment.Keywords:CAN network database;Data capture;Python控制器局域网(Controller Area Network,CAN)网络数据库文件定义了CAN网络中各个控制器节点报
6、文信号信息,是CAN总线网络通讯的作者简介:蓝启亮(1 9 9 3 一),男,硕士,研究方向为嵌人式软件开发与测试,E-mail:。文献标识码:A文章编号:1 6 7 1-7 9 8 8(2 0 2 3)1 7-42-0 7密码本 1-2。在实际的车型研发项目中,CAN网络数据库随着车型项目的推进逐步完善和迭代,各个控制器的数据收发模块必须严格遵循正确定义第1 7 期的CAN网络数据库进行开发,方可保证项目的安全推进 3。当前CAN网络数据库的管理一般以Excel表格管理*.xlsx格式文本的形式或者Vecotor公司开发的CANdb+工具管理*.dbc格式文本的形式进行CAN数据定义和编辑
7、4-5。随着汽车电动化、智能化的发展,CAN总线数据越来越多,当CAN网络数据库文件进行变更时,各个控制器软件开发工程师需要使用Excel或者CANdb+工具手动逐个筛选、检查和比对CAN总线数据然后再对嵌入式软件CAN通讯模块中的C代码进行逐一修改,如此逐个手动修改CAN报文信号重复低效的劳动方式特别容易出错且出错后不便于定位查找问题。对于采用CAN通讯的汽车嵌入式软件开发过程而言,软件运行时环境(RunTimeEnvironment,RTE)层CAN通讯数据交互定义方法固定,完全可以从嵌入式软件RTE层抓取控制器中实际定义的CAN网络数据,与系统输入的CAN网络数据统一实现同平台工具管理:
8、通过正则匹配的方式可以从嵌入式运行时环境RTE层C代码或其他类文本格式的CAN网络数据库文件中获取CAN网络数据库信息,利用统一的用户图形界面(G r a p h i c a l U s e r I n t e r f a c e,G U I)把不同版本的CAN网络数据显示在一个界面内,软件开发人员只需要通过操作控件即可实现不同版本CAN网络数据的导入、编辑、校验和对比,操作便捷高效,开发人员可以从低效重复的工作中解脱出来,把更多精力放到应用层策略开发中。1CAN总线与CAN总线数据库1.1CAN总线CAN是由博世公司开发的一个汽车计算机控制系统和嵌入式工业控制局域网的国际通用总线协议 6-7
9、。CAN总线是一种基于消息的广播式的串行通信总线协议,属于多主控的总线系统。为实现CAN报文的发送与接收,各个控制器在RTE层软件需要实现CAN总线数据的打包、解包、发送和接收等功能 8。1.2CAN总线数据库DBC(D a ta Ba s e C A N)文件是Vecor公司开发的用来描述单一CAN网络配置信息的一种特定格式文件,通过CANdb+数据库管理工具进行编辑管理,内容包含CAN总线上各个控制器节点信蓝启亮,等:基于Python的CAN网络数据库管理分析43息、报文信息和信号信息,它可以被专业CAN测试工具识别,用来监测与分析CAN网络上的报文数据,也可以用来模拟仿真某个CAN节点,
10、是总线开发的重要输出物,是软件开发和软件测试的重要参考。其主要内容包含但不限于如下:1)节点(Node):定义在CAN总线上的所有接收方或发送方,节点名唯一;2)报文(Message):报文是CAN网络中交换与传输的数据单元,即接收方或发送方一次性要交流的数据块。在DBC文件中,报文含有报文ID(M s g ID)、数据长度(Dlc)、发送周期(Cyctime)等信息;3)信号(Signal):信号是报文数据段的基本单元,在DBC中主要参数包含信号名(Signal)、起始位(Startbit)、信号长度(Length)、因子系数(Factor)、偏移量(Offset)等信息 9-1 0。DBC
11、文件仅能表达单一的CAN总线数据,且当报文顿数据长度超过8 个字节时无法通过CANdb+进行编辑 1-1 2。在实际工程项目中,对于多路CAN网络数据的管理和含有多帧总线数据的数据库管理通常以自定义的Excel表格进行数据管理,由于Excel的局限性,无法通过Excel自动对比两份不同的CAN总线数据的差异。不论DBC文件格式的CAN网络数据库文件或者Excel文件格式的CAN网络数据库文件抑或是RTE层代码中开发的CAN网络数据,其实质都是一个或多个储存了CAN网络通信规则的文本文件,其中的字符包含了关键的节点、报文和信号三大部分的信息,且这些信息都是按照固定的规则进行组织。本文通过对不同格
12、式的CAN网络数据库文件规则的分析,基于Python开发了一个DbcManager网络数据库管理平台,快速识别并抓取不同格式的CAN网络数据库文件信息,通过SQLite数据库和PyQt实现对CAN网络数据库文件数据的增删查改等数据管理;开发数据校验算法实现CAN报文信号数据的基本校验;开发数据比对算法实现同格式版本不同CAN网络数据库变更的比对和不同格式版本不同CAN网络数据库变更的比对,有效提高嵌入式软件开发效率,减少人工错误的引入。2基于 Python 的 DbcManager 网络数据库设计为了解决CANdb+或Excel管理CAN网络数44据编辑效率低、不能校验、无法对版本进行比对等难
13、题,本文基于 Python 开发了一个运行于Windows操作系统上的DbcManager网络数据库管理平台,集成CAN网络数据读取、编辑、校验、比对、输出等五项主要功能,所有的功能集中显示在一个GUI界面中,其功能架构如图1 所示。DbcManager变量展示、查询与编辑QChannel/msg/signal结构树信息模糊检索计算值自动填入数据处理营支持多格式CAN协议导入图1 CAN网络数据库管理平台1)C A N网络数据读取:支持从嵌入式软件RTE层代码中抓取CAN总线数据、读取标准dbc格式CAN总线数据和导入Excel格式总线数据共三种方式。2)C A N网络数据编辑:对数据的整理和
14、结构化处理后显示在GUI中,通过检索算法和数据的树结构方法实现数据的便捷查询和编辑。3)C A N网络数据校验:对CAN网络数据信息按照Channel/Msg/Signal 数据的基本规则进行数据检查,输出校验分析报告。4)C A N网络数据比对:支持不同版本的CAN网络数据的比对,输出比对分析报告。5)C A N网络数据库文件导出:CAN网络数据读取的反向操作。2.1CAN网络数据库管理平台的GUI界面开发CAN网络数据库管理平台的GUI界面由菜单栏、工具栏、数据栏和状态栏组成,如图2 所示。菜单栏:负责完成导入数据的功能,导入的格式包括*.xlsx格式的Excel网络数据库文件、*.dbc
15、格式的DBC网络数据库文件和嵌入式软件的路径。工具栏:负责完成对数据的编辑功能,可以插入数据、修改数据、删除数据、筛选数据、保存数据以及检查CAN网络数据库等。数据栏:数据栏中包含网络(Channel)、报文(M s g)和信号(Sig)的具体信息。汽车实用技术状态栏:显示当前GUI界面中导入的数据来源以及当前数据栏中网络(Channel)、报文(Msg)和信号(Sig)的数量。eMainwfindowU作诚行charrelamsgECMICANCCTRLICANESCICAN)EnergXCAN)CAN协议校验与版本比对latiomharrelmgECMICAN协议自校验报告ECM,10E协
16、议比对报告CAN协议多格式输出数据匹配数据结构化数据库2023年Cafestigbtz,channelINS,055EnergySRS,08CLET4G,0A2ESP_0D5ADM_OEFtedotalle:DlockaiADM,OF7igCM_100ECM.10EECM,10E_ShowTa_10_17AS_11FECM_10E,MaxTa,30_37ESP,121ECM_10E,MinTq_40_47ESP,122ECM_10E,NoTCUReqTE5P,123L8CM,12DM_10E_NoTCUROStTqSt76ECM_10E,NI workst done/channel4/msg1
17、47/sig15052.2CAN网络数据库的导入为了满足*.xlsx、*.d b c 和嵌入式软件RTE层代码路径三种不同格式的CAN网络数据库导入,基于正则匹配开发不同的算法抓取不同格式的CAN网络数据库文件中的CAN网络数据库信息,再通过统一定义的*json文件整理抓取到的数据,最后将*json数据插入到数据库中,由用户操作GUI界面与数据库进行交互并将所需数据显示在GUI界面上,如图3 所示。C文件表格文件抓取数据算法统一数据结构的json文件导入数据数据交互db3数据库文件GUI界面图3 导入数据的方式抓取C文件格式的CAN网络数据库数据和抓取*.dbc格式的CAN网络数据库数据的方式
18、原理基本一致,本质上都是将文本文件读取到内存中,然后采用特定的正则匹配方法获得所需数据。抓取*,xlsx格式的CAN网络数据库数据的方式也类似,唯一的区别是加载的数据来源于表格,通过openpyxl库可以定位到所需的sheet和cell 完成数据的逐个读取并整理到*json数据结构中。统一的*json数据结构不仅需要映射完整的CAN网络数据库字段以适配不同格式的CAN网络数据库数据,并且考虑到CAN网络数据库数据DLCEnergy0A2ESC005ECTRLCEFECTRLOF7ESCESCESCECM_131ECMBDC,14DECTRLBDC158ECTRLISG_166ECTRL8c.1
19、72ECTALsx D/AutoTestTol_ SW/Prcject/DBCManaget/docs/I4po.CanMatix图2 GUI界面Rx.or.TxRRRx121222312D13140158166172cyctime10001000100101020Rx108Rx10DBC文件第1 7 期之间有明显的内在层次和逻辑,通过多表外键级联的形式实现CAN网络数据库网络、报文和信号的关联,将*.json 文件分为Channel.json、M s g.j s o n和Signal.json三个文件对CAN网络数据库数据进行本地化的临时存储,每个json文件由若干个数据字典组成,每个字典对
20、应的关键字如表1 所示。表1*json数据字段定义Channel.jsonMsg.json序号数据字段1Channelname2Cantype34567891011121314151617182.3CAN网络数据库数据管理的实现SQLite数据库是一个轻量级的开源数据库系统,以其单一的磁盘文件形式、零配置的使用前提和简单易用的特性广泛应用在桌面应用程序的数据管理项目中。在本文的CAN网络数据库管理平台同样采用SQLite数据库对CAN网络数据库数据进行管控,自主开发了一系列的应用程序编程接(Application Programming Interface,API)函数,便捷地实现*json数
21、据的批量导入以及与GUI界面控件的数据交互,实现数据的增删查改,在GUI界面上显示用户需求的CAN网络数据库数据。为了将*json数据文件中的字典数据集高效地导入SQLite数据库,开发了*json矩阵数据批量插入到SQLite表中的算法,其运作方式如图4所示。首先确认*.json数据文件是否存在,若存在蓝启亮,等:基于Python的CAN网络数据库管理分析os模块判断*json文件是否存在?Signal.json数据字段数据字段MsgnameSignameb12_ChannelMsgIDMsgIDMulti_IDDec_MsgIDStartbitDLCLengthRx_or_TxByte_O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python CAN 网络 数据库 管理 分析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【自信****多点】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【自信****多点】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。