CC1310架构及工作原理

展开字幕 关闭字幕 时长:9分9秒
评论 收藏 上传者:hi5
大家好,我是德州仪器无线连接技术部门 的现场应用工程师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秒

CC1310软件速成

TI 软件 应用 开发 CC1310 1310 差异化 定制

带领您了解CC1310软件开发,从熟悉您的第一个CC1310例程到编写差异化定制应用,帮助您从入门到专家一步到位。

讲师

讲师: TI_Barbara

德州仪器无线连接部门应用工程师, 长期从事各种无线协议(私有协议,BLE等)的软件设计,擅长无线协议软件的开发与移植,功耗与代码的优化与提高。

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved