【毫米波雷达(九)】前雷达软件开发遇到的问题汇总及解决方法

前雷达软件开发遇到的问题汇总及解决方法

    • 一、CAN/CANFD通信
    • 1、雷达CAN未能正常发出数据
    • 2、雷达在车上接收不到车身信息
    • 3、程序下载失败
    • 4、DV试验发送数据偶发断连
    • 5、发送感知信息丢帧或者丢报文
    • 6、上电发出第一帧的报文时间长
    • 7、ZCANPRO有错误帧
    • 二、协议转换(以太网协议转换成CAN协议)
    • 1、车速不正常
    • 2、车辆倒车无负速度
    • 3、车速更新不及时导致急加速急减速感知有问题
    • 4、横摆角数值不对
    • 5、横纵向加速度数值不对
    • 6、方向盘转角数值不对
    • 7、发出的目标属性与以太网对不上
    • 8、发出的目标坐标系问题
    • 三、雷达启动
    • 1、车上测试雷达无数据
    • 2、雷达电流不对,比平时正常工作时电流小很多在100ma~200ma左右,且可能伴随着不断重启
    • 3、电流几乎为0
    • 四、雷达标定
    • 1、诊断指令不响应
    • 2、标定结果无目标
    • 3、标定误差过大
    • 4、带宽切换不成功
    • 5、现场标定,但是无标定条件
    • 6、售后标定开启失败
    • 五、雷达异常复位
    • 1、雷达启动后不断复位
    • 2、雷达运行过程中复位
    • 3、雷达二次复位后正常运行
    • 六、雷达以太网发送
    • 1、无数据发出
    • 2、协议属性不对
    • 3、发出的数据有耦合帧
    • 4、数据丢帧
    • 七、雷达仿真
    • 1、debug launch失败
    • 2、连不上雷达
    • 3、load不进去仿真文件
    • 4、断点打不上
    • 5、单步调试不按顺序执行
    • 八、诊断
    • 1、通过诊断写参数写不进去(SN号、硬件版本号等)
    • 2、31例程服务开启不成功
    • 3、实车上诊断不响应
    • 4、31服务的查询服务不响应
    • 5、非强制刷写预编程模式失败
    • 九、其他
    • 1、ZCANPRO可以打开,但是刷写或者诊断上位机报打开设备失败
    • 2、APP初始化启动慢
    • 3、从某一个线程处理出来的数据感觉不对,浮点数据
    • 4、FreeRTOS某一个线程明明写上sleep(500),但是并没有释放CPU资源
    • 5、所有数据都正常但是上位机不显示目标信息
    • 十、物理连接损耗
    • 1、稳压源明明供电12V,但是通过诊断读取电压为11V甚至更低
    • 2、CAN 或者以太网数据有问题,有错误帧或者通信不良。

此文档适用于前毫米波雷达软件集成工程师岗位,其他人可借鉴

一、CAN/CANFD通信

1、雷达CAN未能正常发出数据

解决思路:
主要分为两个环境:工位和实车。
如果在工位上代码运行雷达中没有发出数据:
①排查代码设计中配置有没有问题,波特率和CANFD(CAN)由上而下是不是配置对了。另外应用层发送的代码有没有顺利执行,功能配置上CANID注册有没有冲突。
在这里插入图片描述
②雷达是不是正常启动了,物理连接有没有问题
如果在工位上无问题在车上无数据发出:
解决思路几乎和工位上一致,只不过在工位上是点对点直连,实车上CAN网络上可能有其他节点。
①物理连接线束有没有问题,供电和通信线路有没有虚接,反接
②CAN线上是不是有别的节点,直连雷达有没有问题。如果直连雷达没有问题,那可能是网关转发有问题,或者CAN网络的阻抗有问题,CANFD或CAN正常通信的CANH和CANL之间的阻抗为60Ω左右,当然只要不是太离谱一版不会影响通信。(量阻抗的方式是万用表在整车和雷达全部下电的情况下量CANH和CANL之间的阻值)。
③另外就是实车上的CAN网络的各个节点的波特率或采样点是不是配置不一样,需要确认,甚至可以通过CAN设备的指示灯判断。
总之实车上的通信主要受物理连接上的影响。

2、雷达在车上接收不到车身信息

如果在车上收不到报文信息,首先需要在断掉雷达的情况下,使用CAN设备以及ZCANPRO直连整车CAN线,查看有无数据。
如果无数据直接跟项目经理反馈那就有可能是客户车的问题。
如果有数据,那基本和上面排查思路一致,首先排查物理连接和阻抗,很多时候都是阻抗不对引起的。

3、程序下载失败

这里主要分析整车上程序不能更新的问题。
①、根据上位机的失败log,先分析到下载的哪一步失败的,如果是直接提示雷达不在线,那需要排查雷达是否正常上电,雷达当前运行的程序是否支持诊断刷写,如果当前程序都不支持诊断刷写的话,需要强制刷写,如果整车没有强刷条件的话需要将雷达从车上拆下来刷写。
②、如果是诊断是通的,但是提示预编程检查失败,需要跟诊断开发人员确认预编程都需要哪些条件,一般的可能是电压、车速报文等,然后再进行下一步分析,不行就强刷。
③、如果出现36服务错误或者接收流控帧失败,那需要查看雷达CAN线上是不是有其他节点也在发数,一般诊断刷写的CANID优先级比较低,是不是收到CAN线上其他报文影响了或者线虚接,除线虚接之外其他的需要跟BT开发人员确认怎么回事。
④、BT 和 driver的匹配

4、DV试验发送数据偶发断连

一般DV试验不会只接一台雷达,会接至少3台,出现这类问题,
①、当然也是先排除物理连接的影响。
②、另外就是阻抗,所有都断电的情况下用万用表量阻抗。
③、CAN驱动配置上是否打开了自动重发功能,DV试验需要打开CAN线的自动重发功能

5、发送感知信息丢帧或者丢报文

①、如果是每一帧数据里偶发丢某条报文的话。如果是协议栈做的发送,直接找协议栈同事排查。如果是集成人员做的发送,排查是不是CANID注册有问题。或者发的报文太多了,一个周期内发送不出去。或者CAN网络负载很高,优先级低的报文被总线仲裁掉了。
②、如果是整帧丢,或者帧里面有重复的目标,需要查看有没有数据并发使用的问题,要发送的数据区可能会被别的线程修改。整帧丢的话需要查看数据产生的线程和数据发送的线程在处理周期时间上有没有问题。比如数据产生的线程周期快,数据发送的线程周期慢,这样肯定会丢帧。如果是事件性报文,有没有可能发送的线程有阻塞,消耗的时间长,长到数据产生的线程已经更新了两次以上数据了,数据发送线程上一帧还没发完。这一块主要是线程间时间和空间上的处理时序问题。

6、上电发出第一帧的报文时间长

①、这一块首先需要跟硬件同事一起用示波器查下APP启动之前的时间是否过长。一般示波器会至少探测3个信号:POWER、CAN信号、QSPI数据引脚,这样很方便看出来雷达的启动过程,如果APP启动之前的耗时就非常长(比如说大于300ms,一般在200ms以内),那不好优化,如果APP启动之前时间合理,那就是APP初始化的调整了。
在这里插入图片描述

上图为上电启动过程示波器截图,红色信号是flash数据,蓝色信号是看门狗CS片选,绿色信号是CAN报文,黄色信号是电源。
启动过程为:
1: 上电;
1-> 2 : 从上电至从flash读取boot及boot启动运行加载BT参数完成,1->2耗时为136ms。
1-> 3 :从上电至boot从flash加载APP启动,1->3耗时为321ms。
1-> 4 :从上电至APP从flash加载APP参数完成,1->4耗时为428ms。

②、初始化的调整一般有一个基础条件,发送CAN报文的线程越早初始化,报文发出的就越早,比如说协议栈,那就应该在各种外设中间组件初始化完成之后马上初始化协议栈,让其尽早跑起来,尽早发出第一帧报文,所以在这个前提下在保证功能正常的情况下调整初始化时序,一般调整的是初始化任务的优先级、初始化过程中的等待、操作flash耗时等,纯APP调整还是能调整出来的,尤其要比协议栈中NVM 的优先级要高。
③、但是如果遇到公CAN不发报文,私CAN发的事件性报文,那这个看能否跟客户提走偏差,毕竟射频启动时间较长,如果走不了偏差,那就只能APP启动后就来一个无效报文先发出去。

7、ZCANPRO有错误帧

检查物理连接虚接、阻抗、波特率配置等。

二、协议转换(以太网协议转换成CAN协议)

1、车速不正常

前提是在工位通过模拟报文已经测试通过。另外通信如果没问题,解析是不是根据实际的DBC协议解析的,大小端有没有搞错,位域有没有搞错、ID有没有搞错,录取报文离线分析实际的车速有没有问题。

2、车辆倒车无负速度

是不是没有根据DBC里的档位信号或者车辆行驶方向对车速取负,另外有个别协议车速信号直接是有符号的,这个需要注意。

3、车速更新不及时导致急加速急减速感知有问题

①车速适配线程运行的频次是不是很慢或者优先级很低,一般整车的车速报文周期为10ms,所以车身信息适配的时间最大不要超过10ms。
②另外车速给到感知的数据流是不是有问题,需要跟算法人员沟通车速的使用方法。

4、横摆角数值不对

DBC协议、角度?弧度?单位是不是搞错了,方向左正右负

5、横纵向加速度数值不对

DBC协议,单位,尤其是有些DBC里的单位是g/s²,不是我们常规的m/s²,需要*9.8 方向左正右负

6、方向盘转角数值不对

DBC协议、角度?弧度?单位是不是搞错了,方向左正右负

7、发出的目标属性与以太网对不上

协议反译问题,尤其是设计到位域、大小端问题,单位,如果是上位机的问题,要有充分的证据说明是上位机的问题。

8、发出的目标坐标系问题

当前一般发出的目标坐标系都是左正右负,坐标原点是车辆后轴中心,这里也涉及到跟上位机沟通显示的问题。

三、雷达启动

1、车上测试雷达无数据

雷达供电、CAN通信线路,甚至雷达是不是坏了,前提是程序在工位做过冒烟测试,不要出现不在工位进行冒烟测试就直接释放测试那边测试,内耗很大。

2、雷达电流不对,比平时正常工作时电流小很多在100ma~200ma左右,且可能伴随着不断重启

①、换一个确定没问题的APP测试是不是雷达坏了,如果连程序都强刷不进去的话,找硬件一起排查。
②、雷达没坏的话,APP是不是没有开启看门狗,程序是不是有bug,回滚排查,看是哪改出的问题。

3、电流几乎为0

物理连接没问题的话,找硬件人员协同排查,一般可能是休眠或者PMIC保护关机了,或者硬件坏了。

四、雷达标定

1、诊断指令不响应

①、APP是否正常开启了诊断?
②、如果其他诊断都响应,找协议栈人员咨询,标定例程是不是有什么条件限制
③、在车上的话,首先确认雷达是不是正常启动了,多种方式,比如说有没有应用报文,其他读服务是否响应。如果实在确认不了,只能拆雷达。如果能确认雷达上电了,需要协议栈人员介入一起排查,为什么不响应,集成这边也应该简单分析log,是在哪一条不响应的。

2、标定结果无目标

这个影响因素较多,标定环境、干扰、遮挡等都可能导致该问题,不过这是系统应该分析问题。
软件需要分析的主要有:
①、标靶距离是否根据需求设置了
②、有没有以太网数据供分析。
③、能配合系统端查问题,也有可能是幅相系数等问题导致的EOL没有筛选出来正常的点云。

3、标定误差过大

设计之初应该即使误差过大也要能例程执行完成,写入flash误差值(已标定标志不置位),这样可以通过诊断上位机读出的角度,分析是方位还是俯仰误差过大,这样才能引导客户去排查安装问题,不然没有举证。

4、带宽切换不成功

这里如果从软件分析主要是,带宽切换也涉及到通过SPI或者内部总线操作前端,所以带宽切换的时候不能有其他通过SPI或者内部总线操作前端,比如获取射频温度、开关射频,这一块要做到隔离,这个原因之外就是信号处理同事做的实际的带宽切换逻辑是不是有bug。

5、现场标定,但是无标定条件

①、尝试做售后标定
②、有没有自标定功能。
③、通报产品经理项目经理,看看如何做标定。

6、售后标定开启失败

售后标定31服务是不是有限制条件

五、雷达异常复位

1、雷达启动后不断复位

①、换一个确定没问题的APP测试是不是雷达坏了,如果连程序都强刷不进去的话,找硬件一起排查。
②、雷达没坏的话,APP是不是没有开启看门狗,程序是不是有bug,回滚排查,看是哪改出的问题。

2、雷达运行过程中复位

①、老生常谈,一般都是做复现,然后再去排查,当前一般都集中在算法那边导致的。
②、另外就是通过内部异常log日志,排查分析,所有项目都要添加上这个功能,有时候还是用的上的。

3、雷达二次复位后正常运行

初始化过程是不是添加了看门狗守护,是不是这里的问题,看看门狗时间是不是设计的短,或者确实是初始化哪里卡滞了。

六、雷达以太网发送

1、无数据发出

①、物理连接,电脑网卡配置,网口盒主从模式配置。
②、雷达硬件是否支持以太网
③、雷达APP是否正常启动

2、协议属性不对

排查协议挂接部分,写固定值排查。

3、发出的数据有耦合帧

线程间时间和空间上的是否存在时序耦合。

4、数据丢帧

①、数据处理是否超时
②、物理连接是否虚接
③、电脑是否卡顿,电脑重启试试

七、雷达仿真

1、debug launch失败

仿真器的USB线连接,换个仿真器试试

2、连不上雷达

①、转接板是不是有断裂
②、雷达硬件是不是没有去掉看门狗
③、雷达硬件是不是仿真状态(CCSDEBUG文件是不是未烧录,SOP状态是不是正确)

3、load不进去仿真文件

①、雷达硬件是不是仿真状态(CCSDEBUG文件是不是未烧录,SOP状态是不是正确)
②、重新关掉CCS,雷达断电上电再试试

4、断点打不上

①、load进去的仿真文件是不是不是要打断点的C文件编译出来的
②、打断点的地方是不是无效代码
③、打断点的C文件是不是开着优化,优化也可能会有这个问题

5、单步调试不按顺序执行

C文件是不是开着优化,开优化一定会有这个问题

八、诊断

1、通过诊断写参数写不进去(SN号、硬件版本号等)

①、咨询协议栈开发人员,是不是操作2E写服务有什么限制?
②、一般如果雷达存在相关的数据了,协议栈不会再让二次写了。

2、31例程服务开启不成功

咨询协议栈开发人员31服务的限制条件

3、实车上诊断不响应

①、APP是否正常开启了诊断?
②、在车上的话,首先确认雷达是不是正常启动了,多种方式,比如说有没有应用报文,其他读服务是否响应。如果实在确认不了,只能拆雷达。如果能确认雷达上电了,需要协议栈人员介入一起排查,为什么不响应,集成这边也应该简单分析log,是在哪一条不响应的。
③、一般这种情况就是排除雷达自身有没有问题,想尽一切办法能单独和雷达供电通信。

4、31服务的查询服务不响应

①、雷达是不是在31服务查询结果过程中重启了
②、31服务一般在开启后,应在一定时间内查询结果,超过一定时间后,31例程会自己退出。

5、非强制刷写预编程模式失败

咨询协议栈预编程条件都有啥,简单的可以自己排查,复杂的直接让项目经理安排协议栈人员排查

九、其他

1、ZCANPRO可以打开,但是刷写或者诊断上位机报打开设备失败

上位机目录下的DLL文件可能有问题,将能打开的上位机目录下的相关DLL文件拷到要使用的上位机目录下。

2、APP初始化启动慢

①、初始化是不是被其他已经起来的比它优先级高的任务抢占了?
②、初始化任务至少要比协议栈中NVM的优先级要高

3、从某一个线程处理出来的数据感觉不对,浮点数据

线程增加浮点保护

4、FreeRTOS某一个线程明明写上sleep(500),但是并没有释放CPU资源

在2944或者TPR12中,sleep的时间如果小于1000us的话,会死等
在这里插入图片描述
在这里插入图片描述

5、所有数据都正常但是上位机不显示目标信息

功能降级

十、物理连接损耗

1、稳压源明明供电12V,但是通过诊断读取电压为11V甚至更低

线束长了以后有线损

2、CAN 或者以太网数据有问题,有错误帧或者通信不良。

通信线路需要双绞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/15367.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

linux 下调试 bmp280 气压传感器

供自己备忘; linux 下有自带的 bmp280 驱动,实际测试数据抖动不理想; 于是自己重写一个 bmp280 驱动,实际测试数据依旧抖动,不理想; 考虑使用 SPL06 来测试看看效果; 1. 参考资料&#xff1…

『VUE』26. props实现子组件传递数据给父组件(详细图文注释)

目录 本节内容示例代码总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 本节内容 父组件传子组件–props 子组件传父组件–自定义事件 本节讲子组件传父组件–通过props里的方法传递,就是父亲写了一个函数,给子组件调用,然后…

Linux编辑/etc/fstab文件不当,不使用快照;进入救援模式

目录 红帽镜像9救援模式 现象 解决 第一步:修改启动参数以进入救援模式 第二步:进入救援模式、获取root权限、编辑/etc/fstab文件 第三步:编辑好后在重启 下面是ai给的模板 红帽镜像9救援模式 编辑/etc/fstab不当时 17 /dev/nvme0n3p1…

异地情侣远程玩游戏?GameViewer远程串流轻松实现!

情侣之间偶尔想远程玩游戏增进感情却苦于找不到合适的软件?想要寻找一款低门槛好上手操作便捷的串流软件 ? 在这里向你推荐 网易GameViewer远程 ! GameViewer是专为游戏玩家的设计远程控制软件,可以帮助异地情侣实现这一需求。它让…

1990-2020年中国人工林和天然林空间分布数据集

数据介绍 植树已被认为是减缓气候变化的潜在有效解决方案。自上世纪70年代以来,中国实施了世界上最大的造林和再造林工程,但中国人工林的高分辨率地图仍然无法获得。在这项研究中,我们探索了使用多源遥感图像和众包样本来制作第一张高分辨率…

[Docker#10] network | 架构 | CRUD | 5种常见网络类型 (实验)

目录 1. Docker 为什么需要网络管理 2. Docker 网络架构简介 CNM(Container Network Model) Libnetwork 驱动 3. ⭕常见网络类型(5 种) 4. Docker 网络管理命令 一. bridge 网络 1. 操作案例:容器间网络通信 …

Spring Cloud Gateway快速入门Demo

1.什么是Spring Cloud Gateway? Spring Cloud Gateway 是一个基于 Spring Framework 和 Spring Boot 构建的 API 网关服务。它提供了一种简单而有效的方式来路由请求、提供跨领域的关注点(如安全、监控/指标和弹性)以及其他功能。Spring Clo…

【AI换脸整合包及教程】Rope:AI 换脸工具的功能、原理、应用

在人工智能技术迅猛发展的当下,AI 换脸技术无疑是近年来备受瞩目的焦点之一。其中,Rope 作为一款开源的 AI 换脸工具,因其出色的易用性和强大的功能而广受青睐。本文将对 Rope 的功能、技术原理、应用场景以及所面临的法律和伦理问题进行详细…

Yocto项目 - VIRTUAL-RUNTIME,它有什么用?

Yocto 项目是一个完整的 Linux 分布构建工具集,提供了构建完全自定义小型核心或完整应用的能力。在这样一个构建系统中,VIRTUAL-RUNTIME这个概念是应用构建和选择处理中的重要部分。这篇文章将从概念、优势、应用场景和实战案例几个方面,全面…

BB1-NHS ester被用于将各种生物活性分子与蛋白质或其他生物大分子进行共轭连接,2082771-52-4

CAS号:2082771-52-4 中文名:BB1-琥珀酰亚胺酯,BB1-活性酯 英文名:BB1-NHS ester,或BB1-Succinimidyl Ester 分子式:C32H32N6O4 分子量:564.63 纯度:≥95% 供应商:陕…

初级数据结构——栈

目录 前言一、栈的基本概念二、栈的实现方式三、栈的性能分析四、栈的应用场景五、栈的变体六、出栈入栈的动态图解七、代码模版八、总结结语 前言 数据结构栈(Stack)是一种线性的数据结构,它只允许在序列的一端(称为栈顶&#x…

Jdbc学习笔记(四)--PreparedStatement对象、sql攻击(安全问题)

目录 (一)使用PreparedStatement对象的原因: 使用Statement对象编写sql语句会遇到的问题 ​编辑 (二)sql攻击 1.什么是sql攻击 2.演示sql攻击 (三)防止SQL攻击 1.PreparedStatement是什么 …

前端开发必备!2024年最全工具和框架资源大汇总

在前端开发的过程中,我们会使用各种工具、框架和库来提升开发效率和用户体验。随着技术的不断发展,前端生态系统逐渐丰富,开发者面临着越来越多的选择。本文将分享一些常见的前端资源,帮助开发者根据项目需求选择合适的工具。 1.…

备份可以起到什么作用?

在数字化时代,数据已经成为企业最宝贵的资产。然而,数据丢失和系统故障可能给企业带来巨大的损失。华为云备份服务作为一款全面的数据保护解决方案,致力于帮助企业保障数据安全,确保业务的连续性。九河云来给大家说一下华为云备份…

labview实现导出excel表格

有些项目数据读写在数据库里,有时客户会要求读写出来,这样就用到了labview把数据导出来,一般在测试程序界面,我们会把测试数据放在多列列表框里,这里我们需要对多列列表框进行操作。把多列列表框中的项名拆分出来。 接…

深度解读AI在数字档案馆中的创新应用:高效识别与智能档案管理

一、项目背景介绍 在信息化浪潮推动下,基于OCR技术的纸质档案电子化方案成为解决档案管理难题的有效途径。该方案通过先进的OCR技术,能够统一采集各类档案数据,无论是手写文件、打印文件、复古文档还是照片或扫描的历史资料,都能实…

vue3 vant4 NumberKeyboard 根据焦点输入

说明: 使用该组件时焦点在最后,客户要求可更改前面输错信息 实现逻辑 1.获取输入框焦点位置,此次采用的是ref,也可使用document相关 const inputElement numberKeyboardRef.value;if (inputElement) {cursorPosition.value i…

DHT22温湿度传感器(Espressif驱动)

DHT22&#xff1a; 温度范围&#xff1a;-40-80C温度精度&#xff1a;0.5C湿度范围&#xff1a;0-100%RH湿度精度&#xff1a;2-5%RH分辨率&#xff1a;0.1C / 0.1%RH #define LOG_LOCAL_LEVEL ESP_LOG_VERBOSE#include <stdio.h> #include <freertos/FreeRTOS.h>…

数据结构——排序(续集)

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…

MySQL主从复制

主节点 server id 1. 更改server id 指定二进制日志文件目录 [rootmaster ~]#vim /etc/my.cnf.d/mariadb-server.cnf [mysqld] server-id8 log-bin 2. 新建目录并赋予权限 mkdir -p /data/mysql/logbin/chowm -R mysql.mysql /data/mysql/ 3. 重新启动 systemctl enabl…