四、毫米波(mmWave)从串口数据中提取目标坐标——以pplcount实验为例

一.前言

本人所用如下配置执行此实验
硬件:IWR1642
toolbox版本:mmwave_industrial_toolbox_3_2_0
实验名称:lab0011-pplcount 实验文件下载
可在TI官网下载对于版本的toolbox找到此实验。

本文从采集数据开始。

二.数据采集

毫米波模块有两个串口通道,user port和data port。
要想获取毫米波从传回的数据需要先通过user port 向毫米波写入cfg配置信息,及后data port就会传回数据。

1.串口助手配置

首先需要打开两个串口软件,我使用VOFA+,并双开。user port的端口依照自己电脑的设备管理器查看,波特率为15200;data port的波特率则不同设置为921600
在这里插入图片描述

2.写入配置信息

通过连接user port的串口软件窗口写入配置信息,按顺序输入如下信息

dfeDataOutputMode 1
channelCfg 15 3 0
adcCfg 2 1
adcbufCfg 0 1 1 1 
profileCfg 0 77 30 7 62 0 0 60 1 128 2500 0 0 30
chirpCfg 0 0 0 0 0 0 0 1
chirpCfg 1 1 0 0 0 0 0 2
frameCfg 0 1 128 0 50 1 0
lowPower 0 1
guiMonitor 1 1 0 0
cfarCfg 6 4 4 4 4 16 16 4 4 50 62 0
doaCfg 600 1875 30 1
SceneryParam -6 6 0.05 6
GatingParam 4 3 2 0
StateParam 10 5 10 100 5
AllocationParam 450 0.01 25 1 2
VariationParam 0.289 0.289 1.0
PointCloudEn 1
trackingCfg 1 2 250 20 200 50 90
sensorStart

输入正确毫米波会回传“done”
在这里插入图片描述

3.接收数据

执行完上述步骤 data port就会回传数据。
在这里插入图片描述

三.数据分析

可以参照官方文档对数据的解释
传回数据包含frame header(帧头)和TLV;TLV下包含TLV Header+point cloud TLV、TLV Header+Target object TLV、TLV Header+Target Index TLV。
在这里插入图片描述
如果全部数据都要讲解篇幅会很长,我以获取目标坐标为例。

1.寻找目标坐标数据

由于毫米波的数据是不断更新数据庞大,对单个数据包将进行提取,首先需要找到单个数据包的头部,对单个数据包的整体位置进行定位,根据官方文档帧头为“ 02 0104 03 06 05 08 07”
在这里插入图片描述

在这里插入图片描述
那么单个数据包就是两个橙色颜色块中间的数据。
坐标数据在TLVs数据段内的TLV Header+Target object TLV下,标志为“07 00 00 00“在这里插入图片描述
在这里插入图片描述
一直到”08 00 00 00“之前都是TLV Header+Target object TLV的数据。
那么下面就要解构TLV Header+Target object TLV的数据。
posX和posY就是我所寻找的数据。
在这里插入图片描述
在这里插入图片描述
posX和posY就在TLV Header+Target object TLV字段下的13至20字节。
”07 00 00 00”是--------‘type’, {‘uint32’, 4}, … % TLV object Type
“4C 00 00 00”是--------‘length’, {‘uint32’, 4}); % TLV object Length, in bytes, including TLV header
“00 00 00 00"是--------‘tid’, {‘uint32’, 4}, … % Track ID
”4E A8 01 3E“是-------‘posX’, {‘float’, 4}, … % Target position in X dimension, m
”87 1E 5E 3F“是--------‘posY’, {‘float’, 4}, … % Target position in Y dimension, m
在这里插入图片描述
posX为“4E A8 01 3E”
posY为“87 1E 5E 3F”
这是32 位浮点类型。数据是小端的。可以使用python,或者matlab转换为float。
此代码完成从串口获取数据到坐标数据的提取一系列操作。

import serial
from time import sleep
import binascii
from ctypes import *

list = []## 空列表

#将byte类型转为用str表示的hex(串口传回的byte类型)
def byte_to_hexStr(byte):
    return binascii.hexlify(byte).decode('utf-8')

def get_serial(): #串口数据处理+接收
    return byte_to_hexStr(ser.read())

def big_to_small_convert(data): #大小端转换
    return bytes.decode(binascii.hexlify(binascii.unhexlify(data)[::-1]))

def convert(data):
    s=big_to_small_convert(data)     #大端转小端
    i = int(s, 16)                   # convert from hex to a Python int
    cp = pointer(c_int(i))           # make this into a c integer
    fp = cast(cp, POINTER(c_float))  # cast the int pointer to a float pointer
    return fp.contents.value         # dereference the pointer, get the float


ser = serial.Serial ("COM11", 921600)    #Open port with baud rate
print("running")
while True:
    if get_serial()=="07":
        for i in range(19):
            list.insert(i,get_serial())
        if list[0]=="00" and list[1]=="00" and list[2]=="00":
        #直接在串口传回的数据中寻找“07 00 00 00”这个标志位
            print("origin",list[0:19])
            print("list:", list[11:19])
            posX = "".join(list[11:15])
            posY = "".join(list[15:19])
            print("posX",posX,"posY",posY)
            print("posX%.2f"%convert(posX),"posY%.2f"%convert(posY))
            print("----------------------------------------")


        

  • 9
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 毫米波信道模型是用于描述毫米波频段通信信道特性的数学模型,它可以用来预测信号在毫米波频段的传输损耗、时延、抖动、多径传播等情况。由于毫米波频段的波长很短,信号容易受到衰减和反射。 毫米波信道模型一般分为两部分:路径损耗模型和多径传播模型。路径损耗模型主要考虑信号在传输过程的衰减情况,可以采用自由空间传播模型、两线模型等来描述。而多径传播模型主要考虑信号在传输过程经过多条传播路径,产生相位失真、多径干扰等问题,可以采用统计模型、几何模型等来描述。 毫米波信道模型的应用非常广泛,比如5G通信、雷达信号处理、毫米波测距等领域。通过对毫米波信道模型的研究,可以更好地理解毫米波通信的信号传输特性,为设计更加高效的毫米波通信系统提供理论基础。 ### 回答2: 毫米波信道模型是一种用于描述毫米波频段无线通信的模型。毫米波频段的无线通信是指在频率范围从30GHz到300GHz之间进行的通信。这一频段为通信提供了更高的速度和更大的带宽,但由于信号衰减等问题,对信道的研究也变得更为复杂。 毫米波信道模型包括了信号传输的路径、信号衰减、解复用方式等方面的考虑。在信号传输的路径方面,模型考虑到了多径传播、可见性、及反射、折射等情况。多径传播是指同一信号在到达接收器前经过不同的路径后所产生的多个版本,可见性是指信号之间的可用或被阻止的状态,反射和折射则是指信号从信号传输路径的物体上反弹或折射的情况。 信号衰减方面,毫米波信道模型考虑到了自由空间的衰减、产生的因素,如大气湿度、大气温度等,以及晶体管和天线等硬件设备的损耗。解复用方面,模型考虑了波束成形、空时编码、空频分离、频率回收等多种技术,以优化数据传输。 毫米波信道模型是毫米波频段无线通信技术的重要基础,可以帮助无线通信技术工程师更好地了解并应对毫米波频段无线通信的各种问题,以确保无线通信技术的进一步发展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值