CC1310架构及工作原理

主宰稳场 提交于 2019-12-22 00:28:30

CC1310架构及工作原理

CC1310组成部分:
主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,这样又会回到刚才的省电状态,所以整个系统的平均功耗并不是所有的部份同时工作的功耗,只有在需要射频工作的时候功耗才达到最高,其余的时候可以进入低功耗状态;
在这里插入图片描述

CC1310射频工作的基本原理:
CC1310作为德州仪器1G以下新一代的无线芯片,它的射频的操控构架和老一代的产品是不一样的;
老一代的产品主要是通过寄存器对RF进行控制,比如我们可以通过配置寄存器来改变不同的射频配置,也可以通过寄存器来打开不同的操作模式,比如发送接收进入IDLE或者SLEEP的状态都是通过寄存器控制的;
那么在1310这一边主要是通过API接口,也就是发送命令的方式来对它进行控制包括发送、接收、Sniff等等,所有的对射频的配置和不同操作的切换都可以通过命令的方式来解决;
我们可以看看老一代的无限芯片CC1120和CC1310在设置上的不同.这里以对射频合成器的配置来举例,那么在老一代的CC1120芯片上我们必须逐个的配置26个寄存器,而在CC1310上面只需要发送一个command CMD_FS就可以对射频合成器进行配置了;
在这里插入图片描述
在这里插入图片描述

每一个command的结构:
在这里可以看到一个命令它包含一个通用的命令头和每个命令独有的数据部份。通用的命令头包含六个部分:
commandNo:是每个命令独有的命令标示,无线射频模块通过这个命令标示来判定当前执行的命令是哪一个;
status:主MCU可以通过读取这个状态值来知晓当前的这个命令在无线模块中被处理的状态;
pNextOp:这个地方存储的可以是当前命令运行完之后需要运行的下一个命令的指针; 一个实际的应用实例可以是比如说当我们需要在接收完数据之后立即发送一个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相关的命令都可以通过CC13x0, CC26x0 SimpleLink™ Wireless MCU Technical Reference Manual来获取;
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!