本文是RT-Thread用户@文武兵兵原创发布,是用于参加RT-Thread与国民技术联手推出N32G457 RT-Thread设计大赛,原文:https://club.rt-thread.org/ask/article/3471.html
介绍
一个简洁方便的的usb2can调试器,可用于can总线数据调试和一般的can总线故障排查。在基于RT-Thread和N32G457的软硬件平台的基础上,使用SLCAN协议配合USB CDC类通信可以实现将can数据转发到PC或者上位机上,供上位机软件进行分析。
主要功能
- 可以实现接收can总线数据收发功能,从can总线发送到usb上位机或者从usb上位机发送到can总线。
- 可以设置can波特率,支持扩展帧和远程帧。
- slcan通用协议,ascii字符可以直接通过串口查看数据,linux工具can-utils中的slcan_attach、slcand、slcanpty可以直接驱动此协议转换成linux下的socketcan。
- usb cdc免驱可以实现win10、linux即插即用。
- 同时还有 python-can 、cantact-app等多种工具实现can数据采集分析。
硬件和软件框架
硬件上使用 国民技术提供的N32G45XVL-STB v1.1开发版加上一个TJA1050的can收发器。
硬件 | 描述 |
---|---|
芯片型号 | N32G457VEL7 |
CPU | ARM Cortex M4 |
主频 | 144M 180DMIPS |
片内SRAM | 144K |
片内FLASH | 512K |
串口 | 7路 (UART4路 USART3路) |
USB | 全速USB 2.0接口 |
CAN | 2路 CAN 2.0A/B总线接口 |
从硬件到软件
硬件上主要使用USB和CAN功能。
- USB作为USB device设备,实现一个全速的usb cdc功能,再通过rtthread的device框架注册成为一个字符设备 vcom 。上层应用可以通过vcom设备直接与PC上位机通信。
- CAN接口,原本N32G457应该有两路can接口,但是由于使用了usb device,can1和