- 本课程为精品课,您可以登录eeworld继续观看:
- mmWave SDK
- 登录
- 课程目录
- 相关资源
- 课程笔记
mmWave SDK的部分
mmWave SDK
Okay
我这边用PDF好了
为什么我想用这个呢?
因为它是我们TRAINING.TI.COM 上面标准的东西。
我希望我用的就是
TRAINING.TI.COM上的东西
来跟各位解释。
各位今天现场听不清楚的时候
你还是可以回到TRAINING.TI.COM。
这边也要顺便再跟各位说明一下
TRAINING.TI.COM 是一个非常好的来源。
就说你想要知道
所有TI产品的一些知识
都可以在TRAINING.TI.COM 上面得到 。
像我们今天讲的毫米波雷达而言呢
如果你去TRAINING.TI.COM
然后 搜寻关键字
打mmWave的话
大概可以找到80个
大概可以找到80个Video
都是一系列的
那80个video内部有些还要再长出更多的细项
所以说是非常地丰富
那 erm mmWave SDK
简单来讲就是要开发我们这颗ICU的时候
要用的软体
要用的软体
这个软体是副单晶片
刚刚我不是提到有单晶片
还有串接式的影像雷达
串接式的影像雷达
我们会搭配另外一套SDK
叫雷达SDK
所以两个是不一样的东西
mmWave SDK只用在单晶片
雷达SDK会用在影像雷达
串接雷达
因为那种雷达SDK
它是必须要跑在更复杂的处理器上面
因为它结了好多颗的收发器
有很多资料进来
你需要做一些更复杂的处理
单晶片相对而言简单很多
所以它不需要这么复杂的架构
那mmWave SDK到底包含了什么呢
首先它里面有包含RTOS
TI的RTOS
然后 当然就是Chip的Driver
目前最新的mmWave SDK
已经到了3.0
我们从1.0, 1.1, 2.0, 2.1
现在已经到3.0了
在3.0的mmWave SDK
device driver 它事实上已经support所有的
1443,1642,6843,1843
这样子的东西
Driver都已经在里面了
好 这些Driver指的就是
因为我们终究还是有一些周边
比如 说举个例子
UR driver, SPI driver, King driver
King D 的driver
类似这样子的东西
Okay 此外我们还要support API
还有一些application 的 library
我们把它叫 mmWave的library
这个API的话 因为软体都是分很多层的
所以不同层会有不同API
我们等下也会看到
然后 最后还会附上一个
MMwave demo
MMwave demo 事实上也是
几乎是所有人
比如说你去买了一个开发版之后
你的第一件事情
接下来 大家就读一读开发版的user guide
读完 大家就知道上面的LED什么意思
jumper要怎么调
电要怎么插
接下来一定就是烧CODE
你要把CODE放在上面去嘛
把那个烧到上面去的
第一支 Sample code
往往就是
等一下会提到的 MMwave demo
SDK里面已经提供好preview 的 binary
你就可以很快地把 preview binary
透过一个烧入的工具
就把它写到开发版上
非常的快
我相信
我把这个过程称为开箱的过程
基本上开箱过程大概都是
可能3-4分钟内就可以搞定
非常非常的简单
而且非常非常的易用
非常容易使用
然后 另外还有一些Tool
就是在SDK的tool
SDK 的tool我相信一般人可能会比较忽略
为什么呢
因为大家build code的时候
可能就是
打make,make clean, make all
很少有人会关心
你MAKE 中间的流程到底发生了什么事。
实际上他的过程应该非常精彩丰富
我们等下如果有时间就来看一下
到了整个code都generate完之后
它需要做一些格式转换
最后 还要把它捆成一包印象档
最后通过[inaudible]把它烧进去
那个tool 都是做那样的事情
这就需要转换
这个其实也有
如果你是在做mmWave开发的话
TEAM里边可能也要一个人来
做这样子的事情
基本上是做一些整合的工作
这个是mmWave SDK
它的一个比较high level 的框图
你可以看得到
各式各样不同颜色
像这种
蓝色这边是TI的code
黄色这边本质上就是
customer自己的code
然后这边有个紫框
代表说 这个code
这个方块里面的code
是ISO26262 符合它规范的
我们先从最底下这边
就是刚刚提到的hardware的部分
hardware这边有雷达的SS部分
就是front end
雷达SS,[inaudible] SS在这边
然后这边是MSS
还有DSP等等
网上面会有TI的RTOS
然后 还有Driver
这边还有OSAL
OSAL的全名
不管是不是做软体的 很容易就猜到
就是OS的抽象层
abstraction layer 对不对
有这种抽象层是什么意思?
就代表说 DRIVER往下接口
它势必要调用一些OS的资源
那你调用OS的资源
可是有些customer就不想TI的RTOS
他想用他自己的RTOS
对不对 RTOS超多的
我们今天这样子的东西
就是它所有都是有
有OSAL这样子的设计的概念
所以换句话说你可以抽换掉自己的
抽换掉TI的RTOS变成自己的RTOS
然后你的DRIVER就透过OSAL来做嫁接
Okay 然后在这上边有mmWaveLink
mmWaveLink的API
好 这个东西还蛮重要的
因为 在TI所有的
跟前方的雷达Subsession 沟通的呢
都是靠mmWaveLink API
你可以说 其实你能够直接控制的就是
直接呼叫mmWaveLink API
然后它会把它转换成message 格式
把它送到Subsession里边
它收到message之后
会做相对应的处理
会做相对应的处理
所以这个东西是很重要
只不过在mmWave SDK
这个开发包里面
它对mmWaveLink 这种API的
说明比较没有琢磨
但是事实上TI有另一份文件
我们把它叫做AWR 1xxx
control interface
它那个control interface 指的就是
用mmWaveLink layer来对反应
雷达的反应做control
所以事实上这个是一切的基础
我是鼓励大家也必须要取得那份
control interface
control interface 实际上
比如说在刚才的单晶片收发器时候
它就是下SPI命令
对吧 下SPI命令
也是把它转发成MESSAGE 的那种格式
所以mmWaveLink 非常重要
mmWaveLib 指的是各式各样的application
比如说 像CFAR等等各式各样的
application方案
好 接下来 mmWave API
mmWave API 你可以把它想象成是mmWaveLink
还有一些架构的再包装
啊 再包装
就等于说,再把它简化
那各位的应用程式是mmWave
在我们这包里面是mmWave demo
mmWave demo 它实际上
呼叫呢 都是先呼叫mmWave API
然后 mmWave API包装一下
再去呼叫mmWaveLink
mmWaveLink发message到这边处理
回来的流程也是一路这样回来
那这个position指的是
因为雷达这边有一些一阶 二阶好的FFTE
然后 AOA等等的
甚至包含后面的一些处理列
是这样的意思
那SDK在目录的长相是这种样子
然后 要说明的是呢
这个目录长相
它是based on mmWave SDK
1点多跟2点多 长的是这个样子
3点多变掉了
3点多改变了3点多是一个比较大的改变
3点多目录长得
结构就不再是这种样子
那这里面,如果你
从网络上下载了
然后 安装以后
通常我们不会去改变它的目录
你一定把它装在
C driver下面的 TI目录下面
就会看到mmWave SDK
那打开第一件事当然就是document
document 这个 你要看一看
通常Release Notes 和 User Guides
都要把它看清楚
Release Notes 里面呢
如果在看Release Notes
通常会看 它到底有什么新东西
比如说每版SDK到底有什么新东西
还有在这一版SDK里面
它有没有 known bug
是不是还有哪些bug
然后或者是说这一版SDK
到底解掉了那些BUG
这是我关心的
所以 我在Release Notes里面
就看这样的东西
那在User Guide 就是针对
mmWaveSDK 的讲解
这边firmware
firmware的东西指的是
刚刚Luke不是有提到吗
在雷达的那个subsession
MSS 那边事实上还有
处理器的 R4
那个处理器里面的firmware呢
对customer而言
我们的 RF系统事实上就是一个黑盒子
你也不用管它
你能接触它的界面就是
mmWaveLink
你不用管它 那个黑盒子怎么样运作的
那这个就是黑盒子的firmware
那在我们SDK里面
是以binary的方式附上去
是以binary的方式附上去
当然 在上电开机之后
这种firmware就会被载到里面去
好 还有Tool
Too 就是刚才讲的
它做 image 的一些转换跟配置等等
进来以后
从package这边进来
有TI
TI里面 通常如果你拿到
一开始 你通常会到demo这边
就是开始去看一些
mmWave Demo的程式
看它是怎么写的
driver 通常一般不会去看
因为它就是写好在那边的嘛
我们都有调用 所以
没事的话 大家不会去看
也不会去改这种driver 了
没事的话 不会去动这部分
alg 的话 大家都会自己加了
control 就包含 mmWave 跟 mmWaveLink
就是刚才讲的 那两层
你的 demo 会去call mmWave 的API
mmWave API 再去call mmWaveLink API
这样子的部分 然后Platform
Platform 这里面放的 大概都是跟Platform的配置比较相关的
配置比较相关指的就是说 比如说
它的硬体相关的机体配置
等等 这样子的东西
最后还有一些功用的软体层
这个driver
这是一个driver API的长相
这边就是 ADC buffer
这里面的driver 它开出来 API
大概都长的蛮像的
不外乎就是init, open control, close 类似这样
或者是 left right 对不对
大概就是长的这种样子
刚刚有提到就是说
调用资源的话就是
透过 比如说 Semaphore, memory
或者 等等的一些资源的话
透过这个来调用
来调用
透过这个 当然也可以把它转成其他的RTOS
如果 你要的话
好 mmWaeLink API
这个API 你可以在刚刚的 mmWaveLink的目录下面看到
它的名字都是 R 开头的
R 开头的 我们把它分成两大类
一大类是device manager 另外一大类是sensor control
sensor control 它都是 R 开头的
所以 其实我应该这么说
就是说 如果你真的要把雷达单晶片
用到镜子的话
其实你的API的对象应该是这个
而不是什么mmWave API
因为 mmWave API 只是在包装
当然你应该不会对这种不满意
因为这种东西通常只是做一些包装的动作
因为 最后终究还是要把它
打包成message 送到刚刚的雷达那边去
雷达的firmware 那边去嘛
好 那再这边都是再做这种打包的动作
把你上层传下来的参数
依照一定的格式把它填好转换
做成message 再送出去
每一个长相大概都是这种样子
但是应用面
都是其实必须要呼叫这样子的API
好 这个是更上层了
就是我刚才讲的
mmWave API 会call mmWaveLink
然后 再到这边
那当然 如果不同盒之间
要做一些IPC的话呢
mmWave API 它有一些
可以做这样的事情
在MSS 跟 DSS之间做调用
好 library
Library 这边当然就是像
有一些
比如说像 CFAR等等
FFT等等的
Windowing 的这些library
它是放在那个下面
它都是用
function code 方式让你去呼叫它的
所以 使用起来
就是这样子
好 这就是一个处理电的过程
我想 前方就跟大家讲的
雷达的SS吗
那进来以后 这边ADC
ADC 进到ADC buffer
然后 我们会去
呼叫函数对它做Range FFT的运算
目前这张是based on 1642
1642 它有DSP
主要的一些FFT运算都是在DSP上面
去完成的
去完成的
如果是未来的一些
比如说 1843
或者是像 过去的一些1443
它有所谓的加速器
加速器
那个加速器 最主要也是拿来做FFT
DSP 的loading 就可以释放出来
FFT就让加速器去做就好了
DSP再可以去做其他事情
这张图就会换成其他的长相
不过我们这边是以1643来做例子
这边的话 是一截
然后 接着 在L3里面是放雷达的cube
然后 接着再做二截的FFT
然后 做detection, angle estimation 这样子的东西
接下来就把一些资料送到MSS这边
那MSS这边呢
以一般目前的customer而言
因为 就我所知 有些客户
他已经有这种clustering跟tracking
这种application
那种Application 呢
看起来 有些客户的application
也是based on 这种on-base的application
所以他把这个东西丢在这边以后
clustering 跟 tracking 的这种application
就可以在MSS R4F这边执行
执行完 最后再把结果
透过
比如说 车用
那就是透过 [inaudible]
往外丢
或者是像工业这边
可能也许就透过UART
把结果往外丢
那个结果可能就包含了
我今天又侦测到几个目标
然后每个目标误差的 information是什么
距离等等的
这样子的information
所以大概是这样
所以 比如说 我在这边描述的东西
也曝露了一个设计上的难题
因为TI 以后的毫米波雷达
会有非常多样化的硬体的组合
有很多硬体的组合
那 part number 有很多种
它内部的硬体长相可能会
不太一样
那对software的人就变成一个很大的挑战
你没有办法
比如说 今天1443是没有DSP的
但是它有hardware加速器
1642呢 它是没有hardware 加速器
但是有DSP
然后 有DSP
1843 是两个都有
这个combination就好多种
对于 software 的人来说
其实就是噩梦 对不对
很讨厌
如果你把工业的这种application
的应用再考量进来的话
你会觉得这更是噩梦中的噩梦
为什么呢?因为工业不像车用的application
这么单纯
工业用的application
可能是非常非常的发散
它的这种处理链
长相可能都会很不一样
同意吗?
它的处理链长相可能都不太一样
它的流程不一定都是长的这种样子的
流程不一定长的这种样子的
如果software也没有一个好的方法的话
那几乎 等于每次要做一个东西
大概就是要重写了
讲白了就是要重写
所以TI的software的RT
理解到 也意识到这样的问题
好 这也是为什么会有
mmWave 3.0的发生
我们把它叫做scalable的SDK
我们把它叫做scalable的SDK
为的就是解决刚刚的那些问题
等下我们就会看到
这个就是呼叫流程了
我想呼叫流程
这个就不一一过
因为这种东西
完全可以带过
大家可以在
看就好了
我们还是直接来看
scalable的SDK到底
到底它有一些什么改变
它的概念跟这个其实还有差异蛮大的
好 那我们来看3.0的部分
猜你喜欢
换一换
推荐帖子
- 【学习心得+DLP】什么是DLP Pico微投技术?
- 德州仪器DLP Pico微型投影(一):什么是DLP Pico微投技术? 什么是DLP Pico微投技术?且听我慢慢道来,首先我先问下大家知道什么是DLP吗?你们肯定不知道,知道就不看我的帖子了,嘎嘎。下面我来简单的介绍下,DLP的英文名叫Digital Light Procession,哦,对了既然来了我们中国,它就得...
- Sur TI技术论坛
- lm3s9b92 usb device
- 现有lm3s9b92 的demo板子,想要把他作为USB从设备,与电脑通信 我烧写usb_dev_bulk例子,电脑发一条数据,9b92能正常回复一条! 但是,我想要让9b92直接发送数据到电脑,而不是回应,却怎么也实现不了,郁闷。。。。 有没有谁用M3系列的作过USB方面的,我需要的功能能不能实现,能不能提供简单的例子 刚接触TI芯片,请大家帮忙 ...
- jinglin 微控制器 MCU
- Tiva TM4C123GXL单片机软件模拟IIC问题
- 需要实现用TM4C通过IIC读取数据,,,硬件不好移植然后自己写了个软件的模拟IIC,SDA和SCL都外部自己加有上拉电阻,一开始读出来都是0,,后面检查发现从机无应答,,接着检查时序发现是SDA引脚输入无反应的问题,下面是主函数的内容int main(void) { ROM_FPUEnable(); ROM_FPULazyStackingE...
- spuer_liu TI技术论坛
- 求高手!!!关于430电源的问题
- 我是新手,我想用个3V的扣电池驱动430,不知道怎么抗干扰,就下拉个电容就可以了吗??? 可不可以用个LDO,以及3V对DCO的影响...
- katrina 微控制器 MCU