- 本课程为精品课,您可以登录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秒
猜你喜欢
换一换
推荐帖子
- DSP28335—程序从flash复制到ram里的两种情况:部分复制和全部复制
- DSP从内存RAM中取指令的速度要比从flash中取指令要快好多倍,但是RAM的缺陷限制了其不能存储用户程序代码,因为RAM掉电会丢失数据,但是其速度要快,而flash内信息掉电不丢失,因此可以保存用户编程的代码,但是其运算速度使得在一些实时性要求高或者对时间要求苛刻的场合不能满足要求。如果能够将两者有机的结合到一起,从而可以解决这两者...
- fish001 DSP 与 ARM 处理器
- 请大家帮帮我
- 为什么我用MSP430F122进行串口通讯时(在默认时钟的情况下),为什么辅助时钟不能用啊,当选择辅助时钟时UxTD没有示波器上没有信号输出,但是用SMCLK,即来自DCO的始终时却有信号出现。当启动外部8M时钟,SMCLK,ACLK都没有看到波形。 请大家多多指点。想了好几天没想明白。。...
- zhanghui9191 微控制器 MCU
- F28027断开仿真器运行不正常
- 我在用F28027做个直流电源,把程序下载到F28027里和仿真器连接时程序运行正常。断开仿真器运行不正常。 ...
- fjl2010 微控制器 MCU
- 肖特基二极管用作与门或门的介绍
- 肖特基二极管用作与门 如下图,n个肖特基二极管组成n输入的与门,只要A1~An中有一个信号输出逻辑0,则Output输出逻辑0,只有A1~An中所有信号输出逻辑1,Output才能输出逻辑1。即实现了信号A1~An的相与。由于在数字电路中,芯片信号输入级基本都是高阻的,因此,用肖特基二极管组成的与门电路总体电流都是ua级别的,肖特基二极管压降都是极其小的,电平仍能满足设计要求。 肖...
- 灞波儿奔 模拟与混合信号