This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] IWR6843:雷达模块的 20Hz 配置 — 观察到 CAN 总线上出现数据包丢弃

Guru**** 2419530 points
Other Parts Discussed in Thread: IWR6843

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1523772/iwr6843-20hz-configuration-for-radar-module---observed-packet-drops-on-the-can-bus

器件型号:IWR6843

工具/软件:

您好:

我正在使用 IWR6843 的 CAN 接口从雷达接收数据。 我使用了 TI 汽车雷达工厂中提供的 object_data_over_can 示例、用于实现工业雷达 IWR6843 的 CAN 传输。 但是、我目前面临的问题是、如果我将雷达帧周期增加到 20Hz 或每个 50ms、我可以看到一些数据包在 CAN 总线级别丢弃。  当我配置为 5Hz 时、不会观察到压降。 我已给出我要使用的配置:

"sensorStop\n",//stop sensor before configuring
    "flushCfg\n",//flush the configuration
    "dfeDataOutputMode 1\n",//frame based chirp configuration
    "channelCfg 15 7 0\n",//15 = 4 antennas 1111b, 7 = azimuth(tx1 & tx3) and elevation(tx2) both the antennas are enabled 111b, n/a
    "adcCfg 2 1\n",//2 = 16-bits adc, 1 = output format complex mode
    "adcbufCfg -1 0 1 1 1\n",//-1 = by default, 0 = adcbuf output format only complex mode, 1 = adcbuf iq swap selection, 1 = non-interleaved, 1 = only 1 supported
    "profileCfg 0 61 35 6 43.0 0 0 8.241 1 125 3433 0 0 48\n",//0 = profile identifier, 60 = frequency 60GHz, 35 = idle time in usec, 6 = adc start time in usec, 43.0 = ramp end time in usec, 0 = txOutPower(always 0), 0 = txPhaseShifter(always 0), 8.241 = freq. slope in MHz, 1 = txStartTime in usec, 125 = numOfADCSamples, 3433 = digOutSampleRate, 0 = HPF1 175KHz, 0 = HPF2 350KHz, 48 = rxGain
    "chirpCfg 0 0 0 0 0 0 0 1\n",// 0 = chirp start index, 0 = chirp end index, 0 = profile identifier, 0 = start freq variation in Hz, 0 = freq slope variation in KHz/us, 0 = idel time variation in us, 0 = adc start time variation in us, 1 = tx enable antenna 001b tx1 enabled & tx2 tx3 disabled
    "chirpCfg 1 1 0 0 0 0 0 2\n",// 1 = chirp start index, 1 = chirp end index, 0 = profile identifier, 0 = start freq variation in Hz, 0 = freq slope variation in KHz/us, 0 = idel time variation in us, 0 = adc start time variation in us, 4 = tx enable antenna 100b tx3 enabled & tx1 tx2 disabled
    "chirpCfg 2 2 0 0 0 0 0 4\n",// 2 = chirp start index, 2 = chirp end index, 0 = profile identifier, 0 = start freq variation in Hz, 0 = freq slope variation in KHz/us, 0 = idel time variation in us, 0 = adc start time variation in us, 4 = tx enable antenna 100b tx3 enabled & tx1 tx2 disabled
    "frameCfg 0 1 128 0 50 1 0\n",//0 = chirp start index, 1 = chirp end index, 128 = doppler chirps, 0 = num of frames, 100 = frame periodicity in ms, 1 = software trigger, 0 = frame trigger delay in ms
    "lowPower 0 0\n",//0 = dont care, 0 = regular adc mode
    "guiMonitor -1 1 0 0 0 0 0\n",//-1 = by default, 1 = enable export of point cloud(x,y,z,doppler,snr,noiseval), 0 = disabled to log magnitude range, 0 = disabled to log noise profile,
    "cfarCfg -1 0 2 8 4 3 0 10 1\n",//-1 = by default, 0 = detection in range direction, 2 = CFAR_CASO, 8 = noise avg window length, 4 = guard length, 3 = division shift, 0 = cyclic/wrap around mode disabled, 10 = threshold scale in dB, 1 = peak groupnig enabled to resolve radar freeze issue
    "cfarCfg -1 1 0 4 2 3 1 10 1\n",//-1 = by default, 1 = detection in doppler direction, 0 = CFAR_CA, 4 = noise avg window length, 2 = guard length, 3 = division shift, 1 = cyclic/wrap around mode enabled, 10 = threshold scale in dB, 1 = peak groupnig enabled to resolve radar freeze issue
    "multiObjBeamForming -1 1 0.5\n",
    "clutterRemoval -1 0\n",//disabled clutter removal to detect static objects
    "calibDcRangeSig -1 0 -5 8 256\n",
    "extendedMaxVelocity -1 0\n",
    "bpmCfg -1 0 0 1\n",
    "lvdsStreamCfg -1 0 0 0\n",
    "compRangeBiasAndRxChanPhase 0.0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0\n",
    "measureRangeBiasAndRxChanPhase 0 1.5 0.2\n",
    "CQRxSatMonitor 0 3 4 63 0\n",
    "CQSigImgMonitor 0 127 4\n",
    "analogMonitor 0 0\n",
    "aoaFovCfg -1 -60 60 -17 17\n",
    "cfarFovCfg -1 0 0 49.99\n",
    "cfarFovCfg -1 1 -30 30.00\n",
    "%SceneryParam -50 50 0.5 60 -6 6\n",
    "staticBoundaryBox -50 50 0.5 60 -0.5 6\n",
    "boundaryBox -50 50 0.5 60 -0.5 6\n",
    "gatingParam 4 6 6 6 10\n",
    "stateParam 4 10 60 600 20 600\n",
    "allocationParam 30 30 0.5 3 2 2\n",
    "maxAcceleration 0.1 0.1 0.1\n",
    "trackingCfg 1 2 250 20 78 121 99\n",
    "sensorPosition 2 0 0\n",
    "presenceBoundaryBox -3 3 2 6 0.5 2.5\n",
    "sensorStart\r\n",

有人能告诉我在 20Hz 下使用雷达是否存在任何固有限制、或者我应该使用什么指标来决定最大频率应该是多少吗? 指向应在其中搜索的相关文档的任何链接也很有帮助。

此致、
Prishat

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我们正在查看您的查询。 请允许我们在一天或两天内回复。

    此致

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好。

    是否已确保删除任何可能会减慢程序运行速度的调试语句或打印内容?

    此致、

    Santosh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    感谢您的建议。 我已经删除了所有调试语句。

    我忘记提及的一个重要注意事项是、我在同一 CAN 总线上使用 4 个雷达、采用以下寻址方案:

    MISTRAL_RADAR_HEADER_0          0xC01  
    MISTRAL_RADAR_PACKET_0          0xD01  
    MISTRAL_RADAR_SIDE_INFO_0       0xD07  
    
    MISTRAL_RADAR_HEADER_1          0xC11  
    MISTRAL_RADAR_PACKET_1          0xD11  
    MISTRAL_RADAR_SIDE_INFO_1       0xD17  
    
    MISTRAL_RADAR_HEADER_2          0xC21  
    MISTRAL_RADAR_PACKET_2          0xD21  
    MISTRAL_RADAR_SIDE_INFO_2       0xD27  
    
    MISTRAL_RADAR_HEADER_3          0xC31  
    MISTRAL_RADAR_PACKET_3          0xD31  
    MISTRAL_RADAR_SIDE_INFO_3       0xD37  
    
     

    当我运行一个雷达时、总线电平 CAN 帧降非常少、几乎不存在。 插入多个雷达时便开始出现问题。

    欢迎您提出任何建议。

    谢谢、此致

    Prishat Bachhar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Prishat。

    1) 您能否确认:1) CAN 总线上的所有节点具有自动重新传输功能;2) 确保所有器件具有相同的比特率和位时序参数(请勿从任何值中减去 1)。

    此致、

    Santosh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Santosh、

    澄清您提到的要点:

    1) 我正在使用  CANFD_transmitData () 驱动器功能。 我认为它本身不会重新传输、因此应用层有一个 while 循环、可在失败时连续向其发送数据。 以下是中的 SDK 代码部分 canfd.c ,我从中推断:

    if (index == (MCAN_getTxBufReqPend(baseAddr) & index))
    {
        *errCode = CANFD_EINUSE;
        retVal = MINUS_ONE;
    }

    2) 我已确认所有节点具有相同的比特率配置(所有 4 个雷达节点和接收 MCU)

    使用 while 循环时是否会出现问题、因为它会持续向驱动程序发送数据?

    此致、

    Prishat Bachhar

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好 Prishat。

    如果 DAR(自动重传)设置为 0、则不需要 while 循环;发送功能将自动重新传输未确认的帧。  我将使用 雷达工具箱上的 CAN 集成指南以及本指南底部链接的应用手册、仔细检查您的所有 CAN 设置和设置。  请确保所有内容都与本指南一致、并查看其是否能解决您的问题。