- 课程目录
- 相关资源
- 课程笔记
大家好,我是德州仪器无线连接技术部门
的现场应用工程师Barbara Wu
这里我要给大家介绍德州仪器一机以下无线芯片
CC1310软件开发的相关知识
第一讲中,我们一起来看一下
CC1310是由几个部份组成的
同时,这些部份是如何协同工作
完成各种功能又达到低功耗的
从框度中我们可以看到CC1310主要由四个部分组成
主MCU、RF核、SensorController Engine和一些外设
主MCU搭载的是ARM Cortex-M3
它作为CC1310主要的操控部份
包含的是RTOS和对底层外部接口的ㄧ些drivers
同时客户的应用程序也跑在这个部分
RF核顾名思义就是和射频相关的
它包含的是射频的一些接口
主MCU通过发送命令的方式可以控制射频进行工作
同时RF核会返回射频工作的结果给主MCU
Sensor Controller Engine是CC1310独有的一个部份
它可以独立于主MCU工作
主要操控的是外部传感器和一些接口
可以自己做一些小的编程
Peripherals就是一些外设
包括一些GPIO UART的口AES加密、Timers相关的
那么下面我们就来看一下
Sensor Controller和整个的这个系统是如何工作的
在这个例子中
CC1310需要完成的工作是以一秒的频率
从外部的传感器获取数据
然后把这个数据通过AES加密最后发送出去的
那么整个系统是如何达到低功耗的呢
我们可以看一下
首先,主MCU、RF Core和外设全部都是关闭的
Sensor Controller Engine独立于这三个部分独立工作
从外部的传感器以一秒的频率进行采样
Sensor Controller Engine它可以独立编程
那么在编程逻辑里面我们加入了对传感器数据的判断
如果传感器的数据高于预值
那么我们就唤醒主MCU
否则继续进行采样
在这样的工作状态下整个系统的平均功耗是1.6个微安
如果Sensor Controller获取到的传感器的数高于预值
那么它就会唤醒主MCU主MCU会调用AES加密
对数据进行加密同时准备对RF Core进行初始化
主MCU通过发送TX命令对RF Core进行操控
RF Core在接受到命令之后会自动对命令进行处理
并把数据返回给主MCU
在发送的过程中
整个的系统功耗是5.3个毫安
当发送完成之后主MCU会继续关闭RF Core
这样又会回到刚才的省电状态
所以整个系统的平均功耗并不是所有的部份同时工作的功耗
只有在需要射频工作的时候
功耗才达到最高
其余的时候可以进入低功耗状态
刚才我们一直有提到主MCU是通过命令的方式
来操控射频接口进行工作的
那么接下来我们就介绍一下CC1310射频工作的基本原理
CC1310作为德州仪器一机以下新一代的无线芯片
它的射频的操控构架和老一代的产品是不一样的
老一代的产品主要是通过寄存器对RF进行控制
比如我们可以通过配置寄存器来改变不同的射频配置
也可以通过寄存器来打开不同的操作模式
比如发送接收进入IDLE或者SLEEP的状态都是通过寄存器控制的
那么在1310这一边主要是通过API接口
也就是发送命令的方式
来对它进行控制
包括发送、接收、Sniff等等
所有的对射频的配置和不同操作的切换
都可以通过命令的方式来解决
我们可以看看老一代的无限芯片CC1120
和CC1310在设置上的不同
这里以对射频合成器的配置来举例
那么在老一代的CC1120芯片上
我们必须逐个的配置26个寄存器
而在CC1310上面
只需要发送一个command
CMD_FS
就可以对射频合成器进行配置了
那么每一个command
它的结构又是怎么样的呢
在这里可以看到一个命令它包含一个通用的命令头
和每个命令独有的数据部份
通用的命令头包含六个部分
命令号是每个命令独有的命令标示
无线射频模块通过这个命令标示
来判定当前执行的命令是哪一个状态
主MCU可以通过读取这个状态值
来知晓当前的这个命令在无线模块中被处理的状态
指向下一个命令的指针
这个地方存储的可以是当前命令运行完之后
需要运行的下一个命令的指针
一个实际的应用实例
可以是比如说当我们需要在接收完数据之后
立即发送一个ACK
那么我们就可以在每一次RX Command的下一个指针
指向TX Command
这样的话我们就可以提高RX和TX命令进行切换的一个效率
同时完成这样的一个功能
startTime是当前命令的执行时间
起始执行时间它可以是一个绝对时间也可以是一个相对的时间
绝对时间通常是必须要大于系统时间的
比如我们希望当前的命令
在具体的某一个系统时间进行执行
那么我们可以设定
这个参数为系统的一个绝对时间
那么到了这个系统的绝对时间
这个command就会被执行
startTrigger代表的是当前命令的一个触发条件
它可以有很多种不同的设定
比如现在就触发
或者在一个绝对时间触发
或者是从来都不触发
只是在be enable command这个条件为1的时候才触发
condition这个条件其实是对下一条命令来说的
它可以有很多种不同的执行条件
比如说COND_ALWAYS
就是每一次在当前command执行完成之后
下一条命令就会执行
COND_NEVER意思是从来不执行下一条命令
COND_STOP_ON_FALSE
意思是如果当前的命令执行返回为true
那么我就执行下一条命令
如果返回为false那我就停止执行
那么主MCU是如何和射频模块进行数据通信的呢
在途中我们可以看到
在主MCU和RF Core之间
其实是有一个Radio Doorbell的模块的
这个模块会根据当前RF Core的状态
和自己拿到的所有主MCU需要
RF Core这边执行的命令的列表
来进行命令的排序以及操控RF Core来进行执行
当命令需要被进行执行的时候
RF Core可以直接访问主MCU的内存
来读取当前命令的内容从而能够执行当前的命令
所有和CC1310相关的命令
都可以通过Technical Reference Manual来获取
在TI的官网上
可以找到这个文档的下载链接
文档中对所有的命令都有详细的解释
欢迎大家下载
谢谢大家的时间
课程介绍
共计4课时,36分29秒
猜你喜欢
换一换
推荐帖子
- MSP430 USB型仿真器V3固件降级工具
- MSP430 USB型仿真器V3固件降级工具,不好意思重新上传,原来的有问题 [ 本帖最后由 kingheimer 于 2012-4-26 17:19 编辑 ]...
- kingheimer 微控制器 MCU
- 无线通信的特点和研究分析以及举例说明
- 无线通信中,最让人难以捉摸的,就是那看不见,摸不着的无线信道了。但是,正因为它的变化莫测,才让无线通信具有了独特的魅力。 无线信道根据其自身特点和研究需要,可以建模成多种模型。其中最经典的,江湖人称“独立同分布模型(independentlyandidenTIcallydistribute,简称i...
- Jacktang 无线连接
- TI的POS设计参考的电池问题
- 又想起了那套POS的芯片,总想把他们利用起来,于是又看看大神发的这个帖子 https://bbs.eeworld.com.cn/forum ... =1#pid1441045%C2%A0 当然,看了看之后问题就来了 Battery Charger BQ2002镍氢电池充电 为什么用镍氢电池不用锂电池呢? 对电池不太懂,在网上找到这样的介绍: 《周工程师讲解电池...
- lidonglei1 模拟与混合信号
- MSP430F123使用经验
- 以前C51 ,S51, AVR,C8051 用的比较多,感觉还可以,由于工作原因要用TI 的单片机(MSP430系列),初看资料发现TI 的单片机太不一样了。跟51 一点都不兼容,完全是TI 自己的模具打造的产品。无论以前做了多少的单片机,到TI这里都要重新开始。 我用的主要是TIMSP430系列的MSP430F123,MSP430F1232这两款,下面简单说说学习过程中的要点: 1)软件环境...
- Jacktang 微控制器 MCU