CC2650之射频(下)
Loading the player...
将在30s后自动为您播放下一课程
我们刚才已经在两块板子里面 分别烧录了 web-demo 和一个 rpl 这样一个路由环境 所以我们现在来实际地看一看它们的一个表现 我们首先需要安装一个虚拟的 32 口 那这个里面呢我们可以具体一下 百度或者是其他的一些搜索引擎 他们会告诉我们怎么去安装 我们可以看到在 dev 里面 我们已经安装了tap0 和 tap1 这样的一个虚拟的一个设备端口 现在我们进入我们的工程 里面的 tools 下面 我们首先生成 contiki 提供给我们的这样一个工具 这个工具呢就是用串口 来作为我们的一个传输手段 Device 下的 tty 我们用 aaaa::1 来作为我们的路由器的地址 啊这个具体的地址呢大家可以去了解一下 IPV6 的一些情况 这里链接上它 链接上它之后呢 我们再看看我们的 demo 的一些情况 可以当看到我们这个 demo 启动 这个是 contiki 版本 我们可以看到它的一些地址 这个地址本身呢是用 CC26xx 这个芯片里面的工程出厂的 给的这样一个地址 作为它的 mac 地址 那么我们 IPV6 跟 mac 地址之间的关系 大家也可以去简单了解一下 我们可以用我们的 mac 来做我们的 IPV6 里面的某一部分 这样做一个唯一的这样一个标识 也省去了我们在 32 位 IPV4 的时候 我们需要指定大量 ip 地址的这样一种烦恼 我们现在可以直接利用它的 mac 地址 作为ip地址的某一部分 比如说这里我们可以看到它已经建立了 在这个里面的路由我们可以看到 aaaa::2124b00...6586 作为我们路由器的这样一个本机地址 那我们的另外一个板子呢 aaaa::2124b00...4106 是我们 demo 的这样一个例子 但这两个例子我们可以看到 我们在 layer 里面我们可以看到 4106这里面是一样的 07af 对吧 4b00这个一样 这样一个组成的这样一种方式 所以说我们可以用 mac 很方便地 来凑成我们的这样一个 IPV6 的地址 好我们这里已经建立了路由 建立路由之后 我们就可以对它进行一个操作 我们可以去看看 我们可以看到在这里面 虽然说延迟有点大 但是至少整个通路还是通的 可以看到 那如果说是我们现在 临时的断掉我们的这样一个路由 就是把它这个进程杀掉 我们可以看到 就是 ping 的话呢就是我们的4106 就是我们的 demo 已经变成了一个不可答的这样一种状态 好我们现在重新把它这个路由加上去 我们可以看到它又变成一个可答状态 就说明我们这个路由 这样一种转发的这样一个 这样一种转发的这样一个 无线转发的这样一种功能 我们现在可以根据 web-demo 这个例子呢打开 一个 COAP 的这样一种状况 我们可以在 Firefox 里面去安装一个 copper 这样一个插件 这个插件呢就是 Firefox 能够支持我们的 COAP 这样一个协议 那我们先用 COAP4106 那我们先用 COAP4106 这个地址端口号是 5683 我们可以找到它里面的一些资源 可以来看一看 这个资源 discovering 接下来搜索一下里面有什么东西 我们可以找到 这些东西有 sensor 有 net 看看它具体的一些资源当中的分析 也就是说我们确实也通过 我们的路由 IPV6 路由 在demo web-demo 里面 找到了所有协议能够支持的一些我们的资源 具体的 6loWPAN 或者说是 contiki 的一些东西呢 因为毕竟不是重点 所以说我们在这里就不做太多介绍 我们现在来看一看 板子的一个具体的表现 因为这个一只手要拿手机录板子这边的话 所以说这个界面上有一些东西就已经先敲好了 等会就是看能拷就拷 这个现在看的是路由器 然后我们打开它的开关 现在跑了一遍 跑了一遍的话 同时我们在我们的界面上 就可以把这个路由加上 然后同时呢我们再打开我们的 web-demo 我们可以看到她这个灯 绿色这个灯的一直都在闪烁 闪烁同时呢 就是说他没有找到我们的 router 现在它的闪烁的频率 相对来说比较就比较低 因为它在我们界面上我们可以看到 它迅速的就跟我们的路由器 已经达成了一个路由关系 我们现在可以重新来启动一下它 来看看界面上的一些显示 它还是在不断的闪不断的闪 你可以看见他的一直闪 那我们看见他这个时候 他已经建立了我们的路由关系 那我们就来 ping 这个地址 可以看到我们这个现在已经 ping 通了 最后我们来看一看 TI CC2650 这颗芯片 在 Contiki 里当中的一些实际的使用情况 我们可以在 Contiki 下面找到我们的 芯片相关的一些文件 包括这里的时钟 包括它的一些地址 包括它的低功耗的东西 包括它的实时时钟 还有一些串口的网络协议 这个 SLIP 在我们刚才 rbl 路由应用当中也有所使用 现在来看我们关注的 RF core 这个文件 这里面最关键的几个文件呢 包括我们的 RF core 这个是一个与协议无关的 RF 子系统的这样一个操作 IEEE-mode.c 这个是 与 802.15.4 协议相关的 这样一个 RF 子系统的这样一个操作 然后比较重要的呢 就是我们的 common_cmd 就是说我们的通用的命令 和我们的 IEEE 协议相关的命令 我们来看 common_cmd 里面实际的一些 包括我们都是以 struct 结构的形式 来对我们所有命令进行一些定义 包括我们的 radio operator 和我们的立即命令 还有我们的直接命令等等 我们来看比如说 common radio setup 这样一条命令 第二条命令呢 我们同样也可以在手册当中 发现它在哪里 这就是我们的命令 包括我们的手册 我们可以看到它前面 14 个字节 都是没有描述的 但是呢我们前面的 14 个字节是在这个地方 就是说协议头里面对它进行描述 它一共 14 个字节 包括 command number status conditon 等等 触发条件等等 第 15 个字节开始呢我们就是 command radio setup 这条命令 它自己相关的一些字段域 可以看到它这里面包括它的命令号 802 包括之前前面的 condition command number status 这样一个公共的一个头 结构头 后面是他们 是这条命令 command radio setup 自己的一些相关的一些域 但是我们在这个手册里面呢 我们也可以看到 这些域的描述 有些东西呢我们是可以理解的 但是有一些呢 在这个整个手册的上下文当中 应该表现得不是特别的明显 所以说有很多相关的域 包括 Regoverride 这里面相关的一些 很多操作的方式 我们也确实没有办法在这样一个手册 和没有其他的 TI 官方例程的情况下 能够更深入的了解 他这些所需要表达的一些什么意思 所以说我们这里也就没有办法再深入的去 追究这些各个域里面的一些情况 那么我们现在开始来填充这个 radio setup 这样一个命令 我们可以看到在 ieee_mode.c 里面 我们有一个 RF radio setup 这个命令 我们可以看到在这里面的话 就相当于是在内存里面 开辟了一个这个命令的一个空间 也就是 RAM 里面的一个空间 那么首先呢 对这条命令进行一个简单的初始化 我们可以看到把它的命令号填进去 把它的一些条件填进去 然后呢对我们这条命令的 radio setup 特殊的地方 相关的地方特定的地方进行一些填充 填充之后呢我们就需要执行一个 RF core send cmd 这个东西 其实这个相对来说 也是比较简单的一种操作方式 它最核心的是在这里 就相当于是我们 把我们的 command 的这个地址 你可以看到这个地址 填充到我们的 doorbell 这个寄存器的 command register 这样一个寄存器里面去 我们看这个提示 它提示就是 4004 1000+0 这个寄存器呢在我们手册里面 也可以看到是在这个地方 就是我们的 doorbell command register 也就相当于我们把它写进去之后呢 在仲裁它可以运行的时候 它就把我们 command 里面 按照我们前面填充的所有字段的信息 进行一个执行 在这里呢然后我们马上就开始 从 command status 里面 读取这个命令具体的一些执行的一些状态 一直到我们没有错误的时候退出来了 然后我们就开始进行下面的一个操作
我们刚才已经在两块板子里面 分别烧录了 web-demo 和一个 rpl 这样一个路由环境 所以我们现在来实际地看一看它们的一个表现 我们首先需要安装一个虚拟的 32 口 那这个里面呢我们可以具体一下 百度或者是其他的一些搜索引擎 他们会告诉我们怎么去安装 我们可以看到在 dev 里面 我们已经安装了tap0 和 tap1 这样的一个虚拟的一个设备端口 现在我们进入我们的工程 里面的 tools 下面 我们首先生成 contiki 提供给我们的这样一个工具 这个工具呢就是用串口 来作为我们的一个传输手段 Device 下的 tty 我们用 aaaa::1 来作为我们的路由器的地址 啊这个具体的地址呢大家可以去了解一下 IPV6 的一些情况 这里链接上它 链接上它之后呢 我们再看看我们的 demo 的一些情况 可以当看到我们这个 demo 启动 这个是 contiki 版本 我们可以看到它的一些地址 这个地址本身呢是用 CC26xx 这个芯片里面的工程出厂的 给的这样一个地址 作为它的 mac 地址 那么我们 IPV6 跟 mac 地址之间的关系 大家也可以去简单了解一下 我们可以用我们的 mac 来做我们的 IPV6 里面的某一部分 这样做一个唯一的这样一个标识 也省去了我们在 32 位 IPV4 的时候 我们需要指定大量 ip 地址的这样一种烦恼 我们现在可以直接利用它的 mac 地址 作为ip地址的某一部分 比如说这里我们可以看到它已经建立了 在这个里面的路由我们可以看到 aaaa::2124b00...6586 作为我们路由器的这样一个本机地址 那我们的另外一个板子呢 aaaa::2124b00...4106 是我们 demo 的这样一个例子 但这两个例子我们可以看到 我们在 layer 里面我们可以看到 4106这里面是一样的 07af 对吧 4b00这个一样 这样一个组成的这样一种方式 所以说我们可以用 mac 很方便地 来凑成我们的这样一个 IPV6 的地址 好我们这里已经建立了路由 建立路由之后 我们就可以对它进行一个操作 我们可以去看看 我们可以看到在这里面 虽然说延迟有点大 但是至少整个通路还是通的 可以看到 那如果说是我们现在 临时的断掉我们的这样一个路由 就是把它这个进程杀掉 我们可以看到 就是 ping 的话呢就是我们的4106 就是我们的 demo 已经变成了一个不可答的这样一种状态 好我们现在重新把它这个路由加上去 我们可以看到它又变成一个可答状态 就说明我们这个路由 这样一种转发的这样一个 这样一种转发的这样一个 无线转发的这样一种功能 我们现在可以根据 web-demo 这个例子呢打开 一个 COAP 的这样一种状况 我们可以在 Firefox 里面去安装一个 copper 这样一个插件 这个插件呢就是 Firefox 能够支持我们的 COAP 这样一个协议 那我们先用 COAP4106 那我们先用 COAP4106 这个地址端口号是 5683 我们可以找到它里面的一些资源 可以来看一看 这个资源 discovering 接下来搜索一下里面有什么东西 我们可以找到 这些东西有 sensor 有 net 看看它具体的一些资源当中的分析 也就是说我们确实也通过 我们的路由 IPV6 路由 在demo web-demo 里面 找到了所有协议能够支持的一些我们的资源 具体的 6loWPAN 或者说是 contiki 的一些东西呢 因为毕竟不是重点 所以说我们在这里就不做太多介绍 我们现在来看一看 板子的一个具体的表现 因为这个一只手要拿手机录板子这边的话 所以说这个界面上有一些东西就已经先敲好了 等会就是看能拷就拷 这个现在看的是路由器 然后我们打开它的开关 现在跑了一遍 跑了一遍的话 同时我们在我们的界面上 就可以把这个路由加上 然后同时呢我们再打开我们的 web-demo 我们可以看到她这个灯 绿色这个灯的一直都在闪烁 闪烁同时呢 就是说他没有找到我们的 router 现在它的闪烁的频率 相对来说比较就比较低 因为它在我们界面上我们可以看到 它迅速的就跟我们的路由器 已经达成了一个路由关系 我们现在可以重新来启动一下它 来看看界面上的一些显示 它还是在不断的闪不断的闪 你可以看见他的一直闪 那我们看见他这个时候 他已经建立了我们的路由关系 那我们就来 ping 这个地址 可以看到我们这个现在已经 ping 通了 最后我们来看一看 TI CC2650 这颗芯片 在 Contiki 里当中的一些实际的使用情况 我们可以在 Contiki 下面找到我们的 芯片相关的一些文件 包括这里的时钟 包括它的一些地址 包括它的低功耗的东西 包括它的实时时钟 还有一些串口的网络协议 这个 SLIP 在我们刚才 rbl 路由应用当中也有所使用 现在来看我们关注的 RF core 这个文件 这里面最关键的几个文件呢 包括我们的 RF core 这个是一个与协议无关的 RF 子系统的这样一个操作 IEEE-mode.c 这个是 与 802.15.4 协议相关的 这样一个 RF 子系统的这样一个操作 然后比较重要的呢 就是我们的 common_cmd 就是说我们的通用的命令 和我们的 IEEE 协议相关的命令 我们来看 common_cmd 里面实际的一些 包括我们都是以 struct 结构的形式 来对我们所有命令进行一些定义 包括我们的 radio operator 和我们的立即命令 还有我们的直接命令等等 我们来看比如说 common radio setup 这样一条命令 第二条命令呢 我们同样也可以在手册当中 发现它在哪里 这就是我们的命令 包括我们的手册 我们可以看到它前面 14 个字节 都是没有描述的 但是呢我们前面的 14 个字节是在这个地方 就是说协议头里面对它进行描述 它一共 14 个字节 包括 command number status conditon 等等 触发条件等等 第 15 个字节开始呢我们就是 command radio setup 这条命令 它自己相关的一些字段域 可以看到它这里面包括它的命令号 802 包括之前前面的 condition command number status 这样一个公共的一个头 结构头 后面是他们 是这条命令 command radio setup 自己的一些相关的一些域 但是我们在这个手册里面呢 我们也可以看到 这些域的描述 有些东西呢我们是可以理解的 但是有一些呢 在这个整个手册的上下文当中 应该表现得不是特别的明显 所以说有很多相关的域 包括 Regoverride 这里面相关的一些 很多操作的方式 我们也确实没有办法在这样一个手册 和没有其他的 TI 官方例程的情况下 能够更深入的了解 他这些所需要表达的一些什么意思 所以说我们这里也就没有办法再深入的去 追究这些各个域里面的一些情况 那么我们现在开始来填充这个 radio setup 这样一个命令 我们可以看到在 ieee_mode.c 里面 我们有一个 RF radio setup 这个命令 我们可以看到在这里面的话 就相当于是在内存里面 开辟了一个这个命令的一个空间 也就是 RAM 里面的一个空间 那么首先呢 对这条命令进行一个简单的初始化 我们可以看到把它的命令号填进去 把它的一些条件填进去 然后呢对我们这条命令的 radio setup 特殊的地方 相关的地方特定的地方进行一些填充 填充之后呢我们就需要执行一个 RF core send cmd 这个东西 其实这个相对来说 也是比较简单的一种操作方式 它最核心的是在这里 就相当于是我们 把我们的 command 的这个地址 你可以看到这个地址 填充到我们的 doorbell 这个寄存器的 command register 这样一个寄存器里面去 我们看这个提示 它提示就是 4004 1000+0 这个寄存器呢在我们手册里面 也可以看到是在这个地方 就是我们的 doorbell command register 也就相当于我们把它写进去之后呢 在仲裁它可以运行的时候 它就把我们 command 里面 按照我们前面填充的所有字段的信息 进行一个执行 在这里呢然后我们马上就开始 从 command status 里面 读取这个命令具体的一些执行的一些状态 一直到我们没有错误的时候退出来了 然后我们就开始进行下面的一个操作
我们刚才已经在两块板子里面
分别烧录了 web-demo
和一个 rpl 这样一个路由环境
所以我们现在来实际地看一看它们的一个表现
我们首先需要安装一个虚拟的 32 口
那这个里面呢我们可以具体一下
百度或者是其他的一些搜索引擎
他们会告诉我们怎么去安装
我们可以看到在 dev 里面
我们已经安装了tap0 和 tap1
这样的一个虚拟的一个设备端口
现在我们进入我们的工程
里面的 tools 下面
我们首先生成 contiki
提供给我们的这样一个工具
这个工具呢就是用串口
来作为我们的一个传输手段 Device 下的 tty
我们用 aaaa::1 来作为我们的路由器的地址
啊这个具体的地址呢大家可以去了解一下
IPV6 的一些情况
这里链接上它
链接上它之后呢
我们再看看我们的 demo 的一些情况
可以当看到我们这个 demo 启动
这个是 contiki 版本
我们可以看到它的一些地址
这个地址本身呢是用 CC26xx
这个芯片里面的工程出厂的
给的这样一个地址
作为它的 mac 地址
那么我们 IPV6 跟 mac 地址之间的关系
大家也可以去简单了解一下
我们可以用我们的 mac
来做我们的 IPV6 里面的某一部分
这样做一个唯一的这样一个标识
也省去了我们在 32 位 IPV4 的时候
我们需要指定大量 ip 地址的这样一种烦恼
我们现在可以直接利用它的 mac 地址
作为ip地址的某一部分
比如说这里我们可以看到它已经建立了
在这个里面的路由我们可以看到
aaaa::2124b00...6586
作为我们路由器的这样一个本机地址
那我们的另外一个板子呢 aaaa::2124b00...4106
是我们 demo 的这样一个例子
但这两个例子我们可以看到
我们在 layer 里面我们可以看到
4106这里面是一样的
07af 对吧 4b00这个一样
这样一个组成的这样一种方式
所以说我们可以用 mac 很方便地
来凑成我们的这样一个 IPV6 的地址
好我们这里已经建立了路由
建立路由之后
我们就可以对它进行一个操作
我们可以去看看
我们可以看到在这里面
虽然说延迟有点大
但是至少整个通路还是通的
可以看到
那如果说是我们现在
临时的断掉我们的这样一个路由
就是把它这个进程杀掉
我们可以看到
就是 ping 的话呢就是我们的4106
就是我们的 demo
已经变成了一个不可答的这样一种状态
好我们现在重新把它这个路由加上去
我们可以看到它又变成一个可答状态
就说明我们这个路由
这样一种转发的这样一个
这样一种转发的这样一个
无线转发的这样一种功能
我们现在可以根据 web-demo 这个例子呢打开
一个 COAP 的这样一种状况
我们可以在 Firefox 里面去安装一个
copper 这样一个插件
这个插件呢就是 Firefox
能够支持我们的 COAP 这样一个协议
那我们先用 COAP4106
那我们先用 COAP4106
这个地址端口号是 5683
我们可以找到它里面的一些资源
可以来看一看
这个资源 discovering
接下来搜索一下里面有什么东西
我们可以找到
这些东西有 sensor 有 net
看看它具体的一些资源当中的分析
也就是说我们确实也通过
我们的路由 IPV6 路由
在demo web-demo 里面
找到了所有协议能够支持的一些我们的资源
具体的 6loWPAN
或者说是 contiki 的一些东西呢
因为毕竟不是重点
所以说我们在这里就不做太多介绍
我们现在来看一看
板子的一个具体的表现
因为这个一只手要拿手机录板子这边的话
所以说这个界面上有一些东西就已经先敲好了
等会就是看能拷就拷
这个现在看的是路由器
然后我们打开它的开关
现在跑了一遍
跑了一遍的话
同时我们在我们的界面上
就可以把这个路由加上
然后同时呢我们再打开我们的 web-demo
我们可以看到她这个灯
绿色这个灯的一直都在闪烁
闪烁同时呢
就是说他没有找到我们的 router
现在它的闪烁的频率
相对来说比较就比较低
因为它在我们界面上我们可以看到
它迅速的就跟我们的路由器
已经达成了一个路由关系
我们现在可以重新来启动一下它
来看看界面上的一些显示
它还是在不断的闪不断的闪
你可以看见他的一直闪
那我们看见他这个时候
他已经建立了我们的路由关系
那我们就来 ping 这个地址
可以看到我们这个现在已经 ping 通了
最后我们来看一看
TI CC2650 这颗芯片
在 Contiki 里当中的一些实际的使用情况
我们可以在 Contiki 下面找到我们的
芯片相关的一些文件
包括这里的时钟
包括它的一些地址
包括它的低功耗的东西
包括它的实时时钟
还有一些串口的网络协议
这个 SLIP 在我们刚才
rbl 路由应用当中也有所使用
现在来看我们关注的 RF core 这个文件
这里面最关键的几个文件呢
包括我们的 RF core
这个是一个与协议无关的
RF 子系统的这样一个操作
IEEE-mode.c 这个是
与 802.15.4 协议相关的
这样一个 RF 子系统的这样一个操作
然后比较重要的呢
就是我们的 common_cmd
就是说我们的通用的命令
和我们的 IEEE 协议相关的命令
我们来看 common_cmd 里面实际的一些
包括我们都是以 struct 结构的形式
来对我们所有命令进行一些定义
包括我们的 radio operator 和我们的立即命令
还有我们的直接命令等等
我们来看比如说
common radio setup 这样一条命令
第二条命令呢
我们同样也可以在手册当中
发现它在哪里
这就是我们的命令
包括我们的手册
我们可以看到它前面 14 个字节
都是没有描述的
但是呢我们前面的 14 个字节是在这个地方
就是说协议头里面对它进行描述
它一共 14 个字节
包括 command number status conditon 等等
触发条件等等
第 15 个字节开始呢我们就是
command radio setup 这条命令
它自己相关的一些字段域
可以看到它这里面包括它的命令号 802
包括之前前面的 condition
command number status 这样一个公共的一个头
结构头 后面是他们
是这条命令 command radio setup
自己的一些相关的一些域
但是我们在这个手册里面呢
我们也可以看到
这些域的描述
有些东西呢我们是可以理解的
但是有一些呢
在这个整个手册的上下文当中
应该表现得不是特别的明显
所以说有很多相关的域
包括 Regoverride 这里面相关的一些
很多操作的方式
我们也确实没有办法在这样一个手册
和没有其他的 TI 官方例程的情况下
能够更深入的了解
他这些所需要表达的一些什么意思
所以说我们这里也就没有办法再深入的去
追究这些各个域里面的一些情况
那么我们现在开始来填充这个
radio setup 这样一个命令
我们可以看到在 ieee_mode.c 里面
我们有一个 RF radio setup 这个命令
我们可以看到在这里面的话
就相当于是在内存里面
开辟了一个这个命令的一个空间
也就是 RAM 里面的一个空间
那么首先呢
对这条命令进行一个简单的初始化
我们可以看到把它的命令号填进去
把它的一些条件填进去
然后呢对我们这条命令的
radio setup 特殊的地方
相关的地方特定的地方进行一些填充
填充之后呢我们就需要执行一个
RF core send cmd 这个东西
其实这个相对来说
也是比较简单的一种操作方式
它最核心的是在这里
就相当于是我们
把我们的 command 的这个地址
你可以看到这个地址
填充到我们的 doorbell 这个寄存器的
command register 这样一个寄存器里面去
我们看这个提示
它提示就是 4004 1000+0
这个寄存器呢在我们手册里面
也可以看到是在这个地方
就是我们的 doorbell command register
也就相当于我们把它写进去之后呢
在仲裁它可以运行的时候
它就把我们 command 里面
按照我们前面填充的所有字段的信息
进行一个执行
在这里呢然后我们马上就开始
从 command status 里面
读取这个命令具体的一些执行的一些状态
一直到我们没有错误的时候退出来了
然后我们就开始进行下面的一个操作
我们刚才已经在两块板子里面 分别烧录了 web-demo 和一个 rpl 这样一个路由环境 所以我们现在来实际地看一看它们的一个表现 我们首先需要安装一个虚拟的 32 口 那这个里面呢我们可以具体一下 百度或者是其他的一些搜索引擎 他们会告诉我们怎么去安装 我们可以看到在 dev 里面 我们已经安装了tap0 和 tap1 这样的一个虚拟的一个设备端口 现在我们进入我们的工程 里面的 tools 下面 我们首先生成 contiki 提供给我们的这样一个工具 这个工具呢就是用串口 来作为我们的一个传输手段 Device 下的 tty 我们用 aaaa::1 来作为我们的路由器的地址 啊这个具体的地址呢大家可以去了解一下 IPV6 的一些情况 这里链接上它 链接上它之后呢 我们再看看我们的 demo 的一些情况 可以当看到我们这个 demo 启动 这个是 contiki 版本 我们可以看到它的一些地址 这个地址本身呢是用 CC26xx 这个芯片里面的工程出厂的 给的这样一个地址 作为它的 mac 地址 那么我们 IPV6 跟 mac 地址之间的关系 大家也可以去简单了解一下 我们可以用我们的 mac 来做我们的 IPV6 里面的某一部分 这样做一个唯一的这样一个标识 也省去了我们在 32 位 IPV4 的时候 我们需要指定大量 ip 地址的这样一种烦恼 我们现在可以直接利用它的 mac 地址 作为ip地址的某一部分 比如说这里我们可以看到它已经建立了 在这个里面的路由我们可以看到 aaaa::2124b00...6586 作为我们路由器的这样一个本机地址 那我们的另外一个板子呢 aaaa::2124b00...4106 是我们 demo 的这样一个例子 但这两个例子我们可以看到 我们在 layer 里面我们可以看到 4106这里面是一样的 07af 对吧 4b00这个一样 这样一个组成的这样一种方式 所以说我们可以用 mac 很方便地 来凑成我们的这样一个 IPV6 的地址 好我们这里已经建立了路由 建立路由之后 我们就可以对它进行一个操作 我们可以去看看 我们可以看到在这里面 虽然说延迟有点大 但是至少整个通路还是通的 可以看到 那如果说是我们现在 临时的断掉我们的这样一个路由 就是把它这个进程杀掉 我们可以看到 就是 ping 的话呢就是我们的4106 就是我们的 demo 已经变成了一个不可答的这样一种状态 好我们现在重新把它这个路由加上去 我们可以看到它又变成一个可答状态 就说明我们这个路由 这样一种转发的这样一个 这样一种转发的这样一个 无线转发的这样一种功能 我们现在可以根据 web-demo 这个例子呢打开 一个 COAP 的这样一种状况 我们可以在 Firefox 里面去安装一个 copper 这样一个插件 这个插件呢就是 Firefox 能够支持我们的 COAP 这样一个协议 那我们先用 COAP4106 那我们先用 COAP4106 这个地址端口号是 5683 我们可以找到它里面的一些资源 可以来看一看 这个资源 discovering 接下来搜索一下里面有什么东西 我们可以找到 这些东西有 sensor 有 net 看看它具体的一些资源当中的分析 也就是说我们确实也通过 我们的路由 IPV6 路由 在demo web-demo 里面 找到了所有协议能够支持的一些我们的资源 具体的 6loWPAN 或者说是 contiki 的一些东西呢 因为毕竟不是重点 所以说我们在这里就不做太多介绍 我们现在来看一看 板子的一个具体的表现 因为这个一只手要拿手机录板子这边的话 所以说这个界面上有一些东西就已经先敲好了 等会就是看能拷就拷 这个现在看的是路由器 然后我们打开它的开关 现在跑了一遍 跑了一遍的话 同时我们在我们的界面上 就可以把这个路由加上 然后同时呢我们再打开我们的 web-demo 我们可以看到她这个灯 绿色这个灯的一直都在闪烁 闪烁同时呢 就是说他没有找到我们的 router 现在它的闪烁的频率 相对来说比较就比较低 因为它在我们界面上我们可以看到 它迅速的就跟我们的路由器 已经达成了一个路由关系 我们现在可以重新来启动一下它 来看看界面上的一些显示 它还是在不断的闪不断的闪 你可以看见他的一直闪 那我们看见他这个时候 他已经建立了我们的路由关系 那我们就来 ping 这个地址 可以看到我们这个现在已经 ping 通了 最后我们来看一看 TI CC2650 这颗芯片 在 Contiki 里当中的一些实际的使用情况 我们可以在 Contiki 下面找到我们的 芯片相关的一些文件 包括这里的时钟 包括它的一些地址 包括它的低功耗的东西 包括它的实时时钟 还有一些串口的网络协议 这个 SLIP 在我们刚才 rbl 路由应用当中也有所使用 现在来看我们关注的 RF core 这个文件 这里面最关键的几个文件呢 包括我们的 RF core 这个是一个与协议无关的 RF 子系统的这样一个操作 IEEE-mode.c 这个是 与 802.15.4 协议相关的 这样一个 RF 子系统的这样一个操作 然后比较重要的呢 就是我们的 common_cmd 就是说我们的通用的命令 和我们的 IEEE 协议相关的命令 我们来看 common_cmd 里面实际的一些 包括我们都是以 struct 结构的形式 来对我们所有命令进行一些定义 包括我们的 radio operator 和我们的立即命令 还有我们的直接命令等等 我们来看比如说 common radio setup 这样一条命令 第二条命令呢 我们同样也可以在手册当中 发现它在哪里 这就是我们的命令 包括我们的手册 我们可以看到它前面 14 个字节 都是没有描述的 但是呢我们前面的 14 个字节是在这个地方 就是说协议头里面对它进行描述 它一共 14 个字节 包括 command number status conditon 等等 触发条件等等 第 15 个字节开始呢我们就是 command radio setup 这条命令 它自己相关的一些字段域 可以看到它这里面包括它的命令号 802 包括之前前面的 condition command number status 这样一个公共的一个头 结构头 后面是他们 是这条命令 command radio setup 自己的一些相关的一些域 但是我们在这个手册里面呢 我们也可以看到 这些域的描述 有些东西呢我们是可以理解的 但是有一些呢 在这个整个手册的上下文当中 应该表现得不是特别的明显 所以说有很多相关的域 包括 Regoverride 这里面相关的一些 很多操作的方式 我们也确实没有办法在这样一个手册 和没有其他的 TI 官方例程的情况下 能够更深入的了解 他这些所需要表达的一些什么意思 所以说我们这里也就没有办法再深入的去 追究这些各个域里面的一些情况 那么我们现在开始来填充这个 radio setup 这样一个命令 我们可以看到在 ieee_mode.c 里面 我们有一个 RF radio setup 这个命令 我们可以看到在这里面的话 就相当于是在内存里面 开辟了一个这个命令的一个空间 也就是 RAM 里面的一个空间 那么首先呢 对这条命令进行一个简单的初始化 我们可以看到把它的命令号填进去 把它的一些条件填进去 然后呢对我们这条命令的 radio setup 特殊的地方 相关的地方特定的地方进行一些填充 填充之后呢我们就需要执行一个 RF core send cmd 这个东西 其实这个相对来说 也是比较简单的一种操作方式 它最核心的是在这里 就相当于是我们 把我们的 command 的这个地址 你可以看到这个地址 填充到我们的 doorbell 这个寄存器的 command register 这样一个寄存器里面去 我们看这个提示 它提示就是 4004 1000+0 这个寄存器呢在我们手册里面 也可以看到是在这个地方 就是我们的 doorbell command register 也就相当于我们把它写进去之后呢 在仲裁它可以运行的时候 它就把我们 command 里面 按照我们前面填充的所有字段的信息 进行一个执行 在这里呢然后我们马上就开始 从 command status 里面 读取这个命令具体的一些执行的一些状态 一直到我们没有错误的时候退出来了 然后我们就开始进行下面的一个操作
我们刚才已经在两块板子里面
分别烧录了 web-demo
和一个 rpl 这样一个路由环境
所以我们现在来实际地看一看它们的一个表现
我们首先需要安装一个虚拟的 32 口
那这个里面呢我们可以具体一下
百度或者是其他的一些搜索引擎
他们会告诉我们怎么去安装
我们可以看到在 dev 里面
我们已经安装了tap0 和 tap1
这样的一个虚拟的一个设备端口
现在我们进入我们的工程
里面的 tools 下面
我们首先生成 contiki
提供给我们的这样一个工具
这个工具呢就是用串口
来作为我们的一个传输手段 Device 下的 tty
我们用 aaaa::1 来作为我们的路由器的地址
啊这个具体的地址呢大家可以去了解一下
IPV6 的一些情况
这里链接上它
链接上它之后呢
我们再看看我们的 demo 的一些情况
可以当看到我们这个 demo 启动
这个是 contiki 版本
我们可以看到它的一些地址
这个地址本身呢是用 CC26xx
这个芯片里面的工程出厂的
给的这样一个地址
作为它的 mac 地址
那么我们 IPV6 跟 mac 地址之间的关系
大家也可以去简单了解一下
我们可以用我们的 mac
来做我们的 IPV6 里面的某一部分
这样做一个唯一的这样一个标识
也省去了我们在 32 位 IPV4 的时候
我们需要指定大量 ip 地址的这样一种烦恼
我们现在可以直接利用它的 mac 地址
作为ip地址的某一部分
比如说这里我们可以看到它已经建立了
在这个里面的路由我们可以看到
aaaa::2124b00...6586
作为我们路由器的这样一个本机地址
那我们的另外一个板子呢 aaaa::2124b00...4106
是我们 demo 的这样一个例子
但这两个例子我们可以看到
我们在 layer 里面我们可以看到
4106这里面是一样的
07af 对吧 4b00这个一样
这样一个组成的这样一种方式
所以说我们可以用 mac 很方便地
来凑成我们的这样一个 IPV6 的地址
好我们这里已经建立了路由
建立路由之后
我们就可以对它进行一个操作
我们可以去看看
我们可以看到在这里面
虽然说延迟有点大
但是至少整个通路还是通的
可以看到
那如果说是我们现在
临时的断掉我们的这样一个路由
就是把它这个进程杀掉
我们可以看到
就是 ping 的话呢就是我们的4106
就是我们的 demo
已经变成了一个不可答的这样一种状态
好我们现在重新把它这个路由加上去
我们可以看到它又变成一个可答状态
就说明我们这个路由
这样一种转发的这样一个
这样一种转发的这样一个
无线转发的这样一种功能
我们现在可以根据 web-demo 这个例子呢打开
一个 COAP 的这样一种状况
我们可以在 Firefox 里面去安装一个
copper 这样一个插件
这个插件呢就是 Firefox
能够支持我们的 COAP 这样一个协议
那我们先用 COAP4106
那我们先用 COAP4106
这个地址端口号是 5683
我们可以找到它里面的一些资源
可以来看一看
这个资源 discovering
接下来搜索一下里面有什么东西
我们可以找到
这些东西有 sensor 有 net
看看它具体的一些资源当中的分析
也就是说我们确实也通过
我们的路由 IPV6 路由
在demo web-demo 里面
找到了所有协议能够支持的一些我们的资源
具体的 6loWPAN
或者说是 contiki 的一些东西呢
因为毕竟不是重点
所以说我们在这里就不做太多介绍
我们现在来看一看
板子的一个具体的表现
因为这个一只手要拿手机录板子这边的话
所以说这个界面上有一些东西就已经先敲好了
等会就是看能拷就拷
这个现在看的是路由器
然后我们打开它的开关
现在跑了一遍
跑了一遍的话
同时我们在我们的界面上
就可以把这个路由加上
然后同时呢我们再打开我们的 web-demo
我们可以看到她这个灯
绿色这个灯的一直都在闪烁
闪烁同时呢
就是说他没有找到我们的 router
现在它的闪烁的频率
相对来说比较就比较低
因为它在我们界面上我们可以看到
它迅速的就跟我们的路由器
已经达成了一个路由关系
我们现在可以重新来启动一下它
来看看界面上的一些显示
它还是在不断的闪不断的闪
你可以看见他的一直闪
那我们看见他这个时候
他已经建立了我们的路由关系
那我们就来 ping 这个地址
可以看到我们这个现在已经 ping 通了
最后我们来看一看
TI CC2650 这颗芯片
在 Contiki 里当中的一些实际的使用情况
我们可以在 Contiki 下面找到我们的
芯片相关的一些文件
包括这里的时钟
包括它的一些地址
包括它的低功耗的东西
包括它的实时时钟
还有一些串口的网络协议
这个 SLIP 在我们刚才
rbl 路由应用当中也有所使用
现在来看我们关注的 RF core 这个文件
这里面最关键的几个文件呢
包括我们的 RF core
这个是一个与协议无关的
RF 子系统的这样一个操作
IEEE-mode.c 这个是
与 802.15.4 协议相关的
这样一个 RF 子系统的这样一个操作
然后比较重要的呢
就是我们的 common_cmd
就是说我们的通用的命令
和我们的 IEEE 协议相关的命令
我们来看 common_cmd 里面实际的一些
包括我们都是以 struct 结构的形式
来对我们所有命令进行一些定义
包括我们的 radio operator 和我们的立即命令
还有我们的直接命令等等
我们来看比如说
common radio setup 这样一条命令
第二条命令呢
我们同样也可以在手册当中
发现它在哪里
这就是我们的命令
包括我们的手册
我们可以看到它前面 14 个字节
都是没有描述的
但是呢我们前面的 14 个字节是在这个地方
就是说协议头里面对它进行描述
它一共 14 个字节
包括 command number status conditon 等等
触发条件等等
第 15 个字节开始呢我们就是
command radio setup 这条命令
它自己相关的一些字段域
可以看到它这里面包括它的命令号 802
包括之前前面的 condition
command number status 这样一个公共的一个头
结构头 后面是他们
是这条命令 command radio setup
自己的一些相关的一些域
但是我们在这个手册里面呢
我们也可以看到
这些域的描述
有些东西呢我们是可以理解的
但是有一些呢
在这个整个手册的上下文当中
应该表现得不是特别的明显
所以说有很多相关的域
包括 Regoverride 这里面相关的一些
很多操作的方式
我们也确实没有办法在这样一个手册
和没有其他的 TI 官方例程的情况下
能够更深入的了解
他这些所需要表达的一些什么意思
所以说我们这里也就没有办法再深入的去
追究这些各个域里面的一些情况
那么我们现在开始来填充这个
radio setup 这样一个命令
我们可以看到在 ieee_mode.c 里面
我们有一个 RF radio setup 这个命令
我们可以看到在这里面的话
就相当于是在内存里面
开辟了一个这个命令的一个空间
也就是 RAM 里面的一个空间
那么首先呢
对这条命令进行一个简单的初始化
我们可以看到把它的命令号填进去
把它的一些条件填进去
然后呢对我们这条命令的
radio setup 特殊的地方
相关的地方特定的地方进行一些填充
填充之后呢我们就需要执行一个
RF core send cmd 这个东西
其实这个相对来说
也是比较简单的一种操作方式
它最核心的是在这里
就相当于是我们
把我们的 command 的这个地址
你可以看到这个地址
填充到我们的 doorbell 这个寄存器的
command register 这样一个寄存器里面去
我们看这个提示
它提示就是 4004 1000+0
这个寄存器呢在我们手册里面
也可以看到是在这个地方
就是我们的 doorbell command register
也就相当于我们把它写进去之后呢
在仲裁它可以运行的时候
它就把我们 command 里面
按照我们前面填充的所有字段的信息
进行一个执行
在这里呢然后我们马上就开始
从 command status 里面
读取这个命令具体的一些执行的一些状态
一直到我们没有错误的时候退出来了
然后我们就开始进行下面的一个操作
视频报错
手机看
扫码用手机观看
收藏本课程
视频简介
CC2650之射频(下)
所属课程:CC2650开发套件详解
发布时间:2015.12.11
视频集数:11
本节视频时长:00:14:19
该视频结合802.15无线器件,组网,应用等使用经验,讲述CC26xx芯片分析介绍、CC2650DK出厂演示程序使用和用途分析,射频相关基础闲聊等。旨在帮助新进工程师快速开启最新最潮的cc26xx系列无线设计。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>