IWR1642毫米波雷达使用Debug方式提取adcDataIn数组数据

本文介绍了如何在CCS环境中,通过MATLAB处理IWR1642传感器采集的ADC数据,包括添加数组存储、1DFFT处理和数据可视化,以便于后续深度理解和仿真。
摘要由CSDN通过智能技术生成

项目场景:

读取IWR1642采集到的adc数据,可以用matlab做后续处理加深对原理理解
CCS版本12.4.0
SDK版本2.0.0.4
Toolbox版本1.20.00.11
本次使用的例程是NonOS OOB 16xx,无操作系统版本

在这里插入图片描述


解决方案:

1.首先导入上面的代码,在dss_data_path.c里面找到MmwDemo_interChirpProcessing函数
我们只需要在这个函数中添加一个数组adc_din_test来存储adcDataIn的数据

void MmwDemo_interChirpProcessing(MmwDemo_DSS_DataPathObj *obj, uint8_t chirpPingPongId)
{
    uint32_t                       antIndx, waitingTime;
    volatile uint32_t              startTime;
    volatile uint32_t              startTime1;
    short ii;
    cmplx16ReIm_t adc_din_test[256];


    MmwDemo_DSS_dataPathContext_t *context = obj->context;

    waitingTime = 0;
    startTime   = Cycleprofiler_getTimeStamp();

    /* Kick off DMA to fetch data from ADC buffer for first channel */
    EDMA_startDmaTransfer(context->edmaHandle[MMW_DATA_PATH_EDMA_INSTANCE],
                          MMW_EDMA_CH_1D_IN_PING);

    /* 1d fft for first antenna, followed by kicking off the DMA of fft output */
    for (antIndx = 0; antIndx < obj->numRxAntennas; antIndx++)
    {
        /* kick off DMA to fetch data for next antenna */
        if (antIndx < (obj->numRxAntennas - 1))
        {
            if (isPong(antIndx))
            {
                EDMA_startDmaTransfer(context->edmaHandle[MMW_DATA_PATH_EDMA_INSTANCE],
                                      MMW_EDMA_CH_1D_IN_PING);
            }
            else
            {
                EDMA_startDmaTransfer(context->edmaHandle[MMW_DATA_PATH_EDMA_INSTANCE],
                                      MMW_EDMA_CH_1D_IN_PONG);
            }
        }

        /* verify if DMA has completed for current antenna */
        startTime1 = Cycleprofiler_getTimeStamp();
        MmwDemo_dataPathWait1DInputData(obj, pingPongId(antIndx));
        waitingTime += Cycleprofiler_getTimeStamp() - startTime1;

        mmwavelib_windowing16x16_evenlen(
            (int16_t *)&obj->adcDataIn[pingPongId(antIndx) * obj->numRangeBins],
            (int16_t *)obj->window1D,
            obj->numAdcSamples);
        memset((void *)&obj->adcDataIn[pingPongId(antIndx) * obj->numRangeBins + obj->numAdcSamples],
               0,
               (obj->numRangeBins - obj->numAdcSamples) * sizeof(cmplx16ReIm_t));

        for(ii = 0;ii < 256;ii++){
            adc_din_test[ii] = obj->adcDataIn[ii];
        }
        DSP_fft16x16(
            (int16_t *)obj->twiddle16x16_1D,
            obj->numRangeBins,
            (int16_t *)&obj->adcDataIn[pingPongId(antIndx) * obj->numRangeBins],
            (int16_t *)&obj->fftOut1D[chirpPingPongId * (obj->numRxAntennas * obj->numRangeBins) +
                                      (obj->numRangeBins * antIndx)]);



    }

    if (obj->cliCfg->calibDcRangeSigCfg.enabled)
    {
        MmwDemo_dcRangeSignatureCompensation(obj, chirpPingPongId);
    }

    gCycleLog.interChirpProcessingTime += Cycleprofiler_getTimeStamp() - startTime - waitingTime;
    gCycleLog.interChirpWaitTime += waitingTime;
}

2.编译代码后点击Launch Selected Configuration将程序烧录进去

在这里插入图片描述

程序烧录完成后console会显示下面内容

在这里插入图片描述

3.在TI提供的可视化界面(mmWave_Demo_Visualizer)进行测试,点击SEND CONFIG TO MMWAVE DEVICE

在这里插入图片描述

可视化界面发送数据后CCS的 console会收到回显

在这里插入图片描述

这个时候回到可视化界面,打开Plots会有一些散点,这些散点就对应了目前雷达采集到的物体

在这里插入图片描述

4.返回CCS进入刚才修改的程序界面,在adc_din_test处双击插入断点

在这里插入图片描述

之后查看Variables中的adc_din_test数组就是我们要的数据

如果找不到Variables可以点击windows下的Reset Perspective

可以通过这里恢复界面

5.提取数据我们点击Memory Browser来查看SARAM中对应地址的数值

在这里插入图片描述

点击Save Memory,之后选择文件保存路径

在这里插入图片描述

下一步选择数组起始地址,数据是short类型,所以选16位,实部和虚部各256个一共512个,设置好后点击finish就可以了

在这里插入图片描述


最后可以把提取出来的数据和Variables中数组对比下,后续就可以进行MATLAB距离仿真了

在这里插入图片描述

在这里插入图片描述


在EURO NCAP 2025 Roadmap中,规划车内儿童存在检测的需求,促使汽车制造商在未来产品设计上须提供此功能。 借此帮助解决识别独自遗留在汽车中的儿童和警告驾驶员的问题,添加儿童存在检测功能可提高汽车的整体安全等级。 在此, 世平兴业特别介绍以TI IWR1642 雷达单芯片为主的模组,作为车内生命探测检测的推荐方案,其产品特点如下 1.其基于77GHz mmWave 射频互补金属氧化物半导体(RFCMOS)技术。调频连续波(FMCW)雷达可实现精确测量距离和相对速度。 2.可提供高达4 GHz的超宽频宽,能够以高于24-GHz窄带解决方案16倍的精度感测物体和运动。 3.雷达相对不受常见的环境条件的影响 如:灰尘,烟,光线….等。因为FMCW雷达传输特定信号并处理反射,它们可以在完全黑暗和明亮的日光下工作(雷达不受眩光影响)。 与超声波相比,雷达通常具有更长的距离和更快的传输时间信号。 此模组可结合3rd-party算法运作检测并安装于车内中,资讯可借由通讯协定(车厂规定或者T-Box所支援)透过UART/CAN Bus界面传递至车内T-Box。 T-Box端可接收模组所侦测到的生命迹象相关资料(人数/呼吸/心跳) ,进行资料采集以及监控的动作。 进一步更可以借此与车况资讯做判断,提供异常提醒或者通过CAN汇流排发送控制讯号对车辆控制。 其整理优点如下 1. 可稳定的用于车内之儿童存在检测,并进一步可让车辆在车内有生命迹象状况下无法上锁。 2. 另外可检测乘员生命特征,例如监控驾驶员健康状况,在发生车祸时部署安全气囊,提醒乘客使用安全带等,同时保持乘员身份不依赖相机进行存在检测的隐私 场景应用图产品实体图展示板照片方案方块图实车上测试示意图车内乘客呼吸心跳侦测示意图芯片功能核心技术优势IWR1642感测器的主要特性和优势包括: 1, 智能边缘自主运算: 整合的处理能力让感测器能减少误报并做出即时决策,免除了在许多系统中尚需使用额外微控制器或处理器的需求。 2, 最高分辨率感测: 超宽宽频毫米波感测器能侦测到物体、人以及非常细微的动作(如:呼吸和打字),且此感测器的分辨率为24GHz感测器的16倍。 3, 优化的感测功能: 毫米波技术实现了更智慧的人员计算、动作侦测、 机器人技术、安全防护和生命迹象监测等。 4, 强化的系统准确度: 77GHz毫米波感测器能操作在拥挤的空间,或各种照明和环境条件下, 且能穿透玻璃、塑胶和石膏板等材料进行运作,强化了现有系统的准确度。 5, 简化的产品设计: 设计师可以立即使用平台进行设计,此平台涵盖天线封装、可扩充的软体平台、特定应用算法和多种参考设计。方案规格1. 方案采用的 TI IWR1642 单片高集成 FMCW 雷达感测器芯片,尺寸小,集成度高 2. 芯片内含C674X DSP,可以实现客户特殊的雷达信号处理算法,同时片内 RAM 增加到 1.5MB。 3. 可以提供最大 4G Hz 的射频带宽以及0.01% 的线性度,可以实现更高的分辨率; 4. 因为 CMOS 工艺,将射频和和数位集成在单个雷达芯片上。可以更有效的实现线上即时监测和调试; 5. 方案精度高,测距精度可达 4cm。人体感测距离建议40M内 方案来源:大大通
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值