CC2650设计相关 - RF内核、HAL、协议相关及实例 (1)

+荐课 提问/讨论 评论 收藏
  • 本课程为精品课,您可以登录eeworld继续观看:
  • CC2650设计相关 - RF内核、HAL、协议相关及实例 (1)
  • 登录
大家好 今天呢我们来一起看看 TI CC2650 这个芯片 它的射频相关的一些内容 我们按照这个次序 来对今天的这个视频进行讲解 首先我们来看一看 RF 内核的一些情况 然后来看一看硬件抽象层的一些情况 最后后面是协议相关的一些情况 最后我们用 contiki 的示例 来结束本次视频 CC2650 它里面集成有一颗 Cortex-M0 控制的 2.4G 射频收发控制器 这颗控制器 可以支持低功耗蓝牙 BLE IEEE 802.15.4 和专用协议这三种应用 radio 子系统接口 通过接受命令的形式 在 MCU 和 Radio 之间进行消息的传递 消息可以包括命令状态数据事件等等 我们这里所关注的 802.15.4 呢 就是 ZigBee 和 6loWPAN 的底层物理标准 这个射频子系统呢 由 Cortex-M0 控制器 调制器频率综合器 RF接口 内外的一些总线桥 外部的射频驱动 内部的专用 SRAM 还有一些片上的一些驱动库 还有它的安全系统 接口 这些所构成 我们可以看看它的一个整体的框图 这边呢就是我们的系统 MCU 包括它的 Flash 系统的 RAM 还有它的安全接口 我们是挂载在一个总线上面 这个总线呢 通过我们的总线桥 可以跟 RF core 这里面进行一些相关的操作 这个 RF core 呢 里面包括一个 Cortex-M0 包括一些频率相关的一些组件 包括一个外部的 radio 的这样一个接口 在系统的 MCU 呢这一部分系统的 MCU 我们是可以运行 flash 中的代码 也可以在他的boot rom 里面去运行 driverlib 的一些代码 我们也可以运行用户层的一些应用 这个 MCU 呢它还要运行无线的一些协议栈 包括 ZigBee 的协议栈 6loWPAN 协议栈等等 比如说 BLE 低功耗蓝牙的协议栈等等 我们还需要在系统 MCU 里面呢 保持各种协议栈和应用的一些配置 并且处理一些协议栈中上层 MAC 的一些特性 系统 MCU 就是在这一头 系统的 RAM 20KB 的这样一个系统 RAM 它里面存放的是数据报负载 也就是TX和RX的包 还有各种的配置参数 安全子系统的 我们是可以直接被 RF core 来使用的 它呢主要提供验证和授权的这样一个功能 DMA 这一块 DMA它是一个主设备 BUS Master 主设备 它可以在 RF core 专用的 4K SRAM 和 MCU SRAM 之间进行数据的搬运 我们也可以看到在 RF 这一侧 RF core 这一侧 它里面有 RF 的 MCU 这一块 M0 的 MCU 它是接收来自 系统 MCU 的命令 调度这些命令实际的运行 他还有一个调制频率综合器 和 RF 接口就是这一块 它是在 bit 信息与调制信号之间 相互转换的这样一个外设 一个机构 RF 内核接收来自 MCU 的命令 验证并且执行这些命令 这些命令包括了发送接收这些面向应用的命令 也包括校准测试调试等等面向环境维护的命令 也包括校准测试调试等等面向环境维护的命令 RF 内核从系统 RAM 或者是 RF 专用 RAM 中 取得数据和配置参数 共享内存是 RF 内核与系统 MCU 的信息交互手段 这样的手段呢 可以减小 RF 内核自身对存储的需求 同时呢 MCU 和 RF 内核之间 避免了不必要的传输操作 从总体上面减小功耗 RF 内核收到数据报之后 对数据报进行解码 附带上它的一些状态信息 一起存储在系统 RAM 中 RF 内核可以使用 MCU 中的一个安全子系统 RF 内核呢也识别来自系统 MCU 的复杂指令 比如说 CCA 传输 RX 自动应答等等 这些呢在 802.15.4 里面有一些专门的论述 大家有兴趣的话可以去看一看 RF 内核内部将这些指令分解成子命令 然后自动的执行 这个当中我们是不需要有系统 MCU 的干涉的 Radio doorbell 是内核的一个模块 直译是门铃的意思 其实它就是一套命令系统 就比如说我们 MCU 里面的 event fabric 就是前面我们讲的一个路由 其实也就是消息路由这个东西 所以说名字很不知道什么意思 但是我们也能够知道他其实就是一个命令系统 这套命令系统 也叫做 CPE Command and Packet Engine CPE 这是一个简写 他负责在系统 MCU 和 RFMCU 之间传递信息 CPE 在 MCU 空间当中可以用 RFC_DBELL 这个寄存器进行访问 doorbell 呢他是有访问寄存器 参数和数据的一些 RAM 不管是在系统里面 还是在 RF 这个系统里面 一些数据和参数 还有它的一些中断的情况 RAM 呢数据和参数都是放在 RAM 当中 既可以是 SYS 也就是系统的RAM系统 MCU 的 RAM 也可以是RF自己的专用 RAM 如果这个信息是放在系统的 RAM 当中的话呢 系统 MCU 是不可以关闭电源的 因为关了的话这个信息就没有了 如果信息是存放在 RF 自己的 RAM 当中的话 系统 MCU 是可以切断电源降低功耗的 这个时候他的所有信息 都是保存在 RF 自己的 RAM 当中 具体上来说呢 我们 RF MCU 从 RAM 中读取数据和参数 这个具体的操作我们可以在后面的 contiki 的实际应用当中看到 然后操作这些 RF 不管是调制也好 还是解调也好 更新 RAM 当中的数据和参数 根据状态发出我们的中断 中断它只分了四个 有 CPE 0 1 hardware 中断 和 CMD_ACK 应答中断 这些中断呢 在我们的手册里面 都有一个详细的一个说明 这里面就不仔细说 可以查看在 interrupt 这里 使用上呢 每一个中断都基本上 和 Cortex 本身的使用没有太大的区别 只是说中断源是从 RF core 里面出来的 我们需要在 MCU system MCU里面 抓住这些中断的一些钩子 然后来执行它 RF core 它这个里面呢 还包括了一个自由的时钟 自由运行的时钟 这个时钟呢 是以四兆赫兹的固定频率来运行的 它有八个比较和捕获的这样一个功能 八个通道其中五个呢被 RF内核使用 剩下三个是可以用户自己使用的 手册里面也有相关的一些描述 是在 radio timer 这个里面 这个时钟呢使用上面 和我们普通的时钟也基本上是类似的 大家可以有兴趣看一看 我们硬件抽象层呢它是由命令组成的 这个命令呢 它也同时包括 RAM 内存中的命令结构 也包括 ROM 当中可调用的一些函数 我们在 TI 官方的公开资料当中呢 也没有找到特别详细的一些描述 这个例子呢也没有特别好的例子 所以说我们也不得不查看 contiki 它的一种操作 命令分三种形式的命令 第一种是radio操作命令 第二种是立即操作命令 第三个是直接操作命令 这张图呢我们也可以看到 这个命令的具体的一些格式 pointer to command structure 这个里面告诉我们 这个命令是以 structure 的形式存在的 后面我们可以看到这个 structure 的 一些具体形式 这个命令的形式呢是 direct command 就是直接命令的一些操作形式 那么这三个命令之间有什么区别呢 我们可以看到 radio 命令 它的操作是和 RF 相关的 比如说初始化 RF TX RX 这些一些 BUFFER 协议相关的等等 大多数的这些 radio 操作命令呢 只能在 RF idle 也就是说不工作的这样一种状态下面发出命令 立即命令它是有关修改或者是设置 RF 状态 操作 RX TX队列等等这样一种操作 我们在任何时刻都可以发出立即命令 然而大多数立即命令的响应 都希望能够得到正在运行的 RF 内核的一些状态 还有就是我们的直接命令 直接命令 direct direct command 这个直接命令 它其实就是简单的没有参数 或者是一两个字节参数的立即命令 那我们可以看看这些命令的一些具体状态 这里是它的响应状态 响应状态的话 我们也是按照一个字 按照一个字节的形式 result 给出来 command status 32 的这样一个字段 但是最后的八位一个字节 我们是一个 result 就叫相当于是我们的状态 然后剩下的三个字节 就是我们的一个返回的字节 我们可以在这个列表里面查看到一些 result 和一些 return byte 的一些东西 这个在手册上面也有 我们的命令和数据呢 可以有三种形式的访问 两种形式的访问 两种形式访问 第一种形式是直接访问 就是说我们在我们的数据结构里面 直接把它填充进去 第二种形式是单链表形式的这样一个访问 我们在我们的命令字段 命令数据结构里面 有相应的链表图指向下一个命令 和我们下一个下一个命令 比如说我们把所有的命令 通过一个单链表的形式把它串起来 这样的话我们在 RF core 里面 可以自动的按照一个命令 chain 命令链表的形式来执行每一个命令 我们每一个命令呢 还可以有它自己的触发条件 每一个触发条件呢 有一些它的一些触发的触发源 触发的一些标准 触发的判断等等这些我们在手册里面的 这个这里面也能够有一个比较好的描述 包括他的 trigger never 永远不触发等等 随着 2650 这颗芯片当中的 系统 MCU 和我们的 RF MCU之间 是通过 SRAM 进行了一个共享内存 这种形式的信息交互 所以说我们呢 需要有一些命令的一些列表 这个东西我们可以在手册上面 看的比较仔细一些 包括协议无关的一些操作 包括 NOP Radio 的建立 频率的一些东西 包括我们的 RX 其他的一些测试等等 也包括跟协议相关的一些命令 比如说我们的 Command IEEE 读取信号的一些 SCAN 等等 这里面呢比较有意思的是 它是用的是两部分 一部分称之为命令的头部 也就是说所有命令 只要是 radio operation command 这个命令 它都必须要有的 这 14 个字节 一个是命令的体 命题体也就是说每一个命令 比如说这里的 command radio setup 有它自己的一个特殊的体 包括我们在这里看到的第 14 个字节 第 15 个字节 跟这里所显示的一共 14 个字节接起来之后 形成一个完整的 command radio setup 这样一个命令 command radio setup 这样一个命令 因为也就说我们这里 每一部分都是不完整的 但是他们需要合起来 那么它就是一个完整的这样一个命令 这种命令呢我们也可以在手册里面的 比如说 radio command setup 这里是第 15 个字节 那么我们前面的 这里就是我们的命令的头部 就是它的 radio operation command 一个公共的这样一个头部 接下来呢我们用一个 contiki 的一个 运行的一个演示 来结束本次的这样一个视频
课程介绍 共计11课时,3小时7分49秒

EEworld原创:大话TI CC2650

TI 无线 Wi-Fi CC2650 Wi-Fi产品

     本系列视频由电子工程世界(EEworld)联合TI重磅推出。
     该视频由EEworld社区资深工程师主讲,结合802.15无线器件,组网,应用等使用经验,讲述CC26xx芯片分析介绍、CC2650DK出厂演示程序使用和用途分析,射频相关基础闲聊等。旨在帮助新进工程师快速开启最新最潮的cc26xx系列无线设计。

推荐帖子

【C2000 LaunchPad】高精度数控恒流恒压同步整流电源
【C2000 LaunchPad】高精度数控恒流恒压同步整流电源 功能描述:使用C2000 LaunchPad作为控制板,使用降压型DC-DC转换器kis3r33s电源模块和LM324运放组成稳压电路,调整28027的PWM输出控制输出电压,输出电压的范围控制在0~20V。通过运放和二极管组成稳流电路,调整电流的控制PWM,使得电流的调整范围控制在0~3A. 电源的实现原理: &nbs...
IC爬虫 微控制器 MCU
双稳态开关电路图
      双稳态控制电路的工作原理如图。这里举一个多地控制开关的例子,可供参考。假设负载是电灯,当按动按钮AN1时,给了IC1“CP1”端一个正脉冲,使得IC1的Q1端输出高电平,于是IC2的“CP2”端也随之输入一个正脉冲,其IC2的Q2端变为高电平,此时由于控制器DM的④脚与IC2的 Q2端相连,自然也为高电平,信...
Jacktang 模拟与混合信号
TI CC6678数字信号处理器 (DSP) 的50种用法
      一款8内核C66x DSP特别有意思,这是因为这款器件是市面上较早的高性能多核DSP之一。虽然有超过100名客户已经在他们的产品中采用了C6678 DSP,但是我可以很肯定地说,对于定点和浮点C6678 DSP来说,至少有50种不同的使用方法!不过也别担心,我不会将这个冗长的列表直接抛给你,我只是想与你分享其中5个最常见的应用。   &nb...
Aguilera 微控制器 MCU
orangepi zero gpio控制
编译安装WiringOP 源码  WiringOP-zero.zip 解压 unzip WingOP-zero.zip 编译安装 cd WingOP-zero ./build 测试是否安装成功 gpio -v gpio readall 例子程序,控制gpio0闪烁 vim test_gpio.c demo code #include <wir...
fish001 DSP 与 ARM 处理器
分享到X
微博
QQ
QQ空间
微信

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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