文章目录
前言
接触汽车电子软件开发一年的时间里,主要进行CAN通信相关的开发工作,这就不可避免地需要CAN通信调试工具,基本上Vetor的权威工具,比如CANoe属于稀缺资源,排着队才能借到用。至于Pcan、周立功CAN也不是个人能舍得钱买得起的。就只好求助万能的某宝,在工作的过程中不断地寻找合适的(廉价的)CAN调试工具,能满足基本的调试功能就可,也不追求极致的性能和高大上的功能。能用就好,合适就好,价廉的同时能辅助完成自己的开发工作就好。
二、CANable开源软硬件
https://canable.io/getting-started.html
国外非常牛逼的CAN调试器软硬件开源项目,包括硬件原理图PCB设计以及多种可选固件,可以直接刷PCAN的固件,然后就可以开心的使用各种类似PcanView、BusMaster等上位机调试软件。
某宝搜canable就有现成品,以前还有99元,现在好像基本都在200元以上了。
三、AMP32F103 方案的自制USB2CAN 调试器
本来准备买个STM32F103 + TJA1042方案的小开发板,做个UDS和FOTA开发的DEMO,后来在某宝看中了AMP32F103 + TJA1042方案的小开发板,架不住便宜才20多块钱,作为STM32F103的替代品直接买了,反正就是练手用的。后来这个DEMO完成后,基本就闲置了。
再后来,手上的CAN调试工具总被借走,就开始准备捣鼓一个自己专用的CAN调试工具。查了下AMP31F103CB的用户手册,发现该芯片支持USB2和CAN同时工作使用(STM32F103的USB和CAN是不能同时使用的)。然后就利用AMP32官方提供的SDK,基于USB CDC的类,开发了USB虚拟串口转CAN的固件,然后上位机就可以基于串口开发了。(以前做过串口上位机开发,比较熟)。
四、TTCAN - USB2CANFD调试器
后来项目的需求,都开始上CANFD了,这就导致我手上上面两款廉价的CAN调试器无法满足我的调试需求了,某宝上花了60多买了这个USB2CANFD的调试器,也是USB虚拟串口的上位机通信方案。这样稍微修改下之前开发的上位机,基本就可以适配这个调试器了。虽然卖家也提供了上位机,但是用起来就是没有自己开发的上位机顺手和合适。
二、PyQT开发CAN调试器上位机
有了物美价廉的CAN调试器工具,就必须配一个满足自己所有需求的上位机,不然就是摆设啊。用PyQT5开发上位机界面,最后用Python实现上位机的逻辑功能。自己对上位机的基本需求:
(1)CAN通信速率可设,CAN/CANFD可选
(2)CAN报文的收发以及解析显示
(3)根据DBC文件对收发报文进行解包和组包
(4)UDS功能测试
除了基本的诊断功能测试,还提供测试用例自动化测试以及生成报告的功能
(5)FOTA功能(定制化需求)
基于以上的需求和实际开发工作中的需求,不断地完善上位机。