一、初闻SimpliciTI

SimpliciTI是TI在2007年宣布推出的针对小型简单RF网络的专有低功耗协议,因其简化了具体的实施操作,降低对微控制器资源的占用,故基于SimpliciTI的RF网络有助于用户在不需要深入理解无线网络具体细节的情况下,快速推出低功耗、低成本、低数据率的无线自组织网络解决方案。SimpliciTI是一个基于连接的对等网络通信协议,理论上单一网络可容纳255的节点,支持点对点、星状、串状三种网络拓扑结构。

1SimpliciTI体系结构

图1 SimpliciTI体系结构

2SimpliciTI源码目录结构

在浏览SimpliciTI代码之前,有必要对源码的整体分布情况进行了解。安装完协议栈后,可以在(安装盘:\Texas Instruments\SimpliciTI-CC430-1.1.0-Demo\)路径下找到源码。分布情况如图5.1所示。以下针对SimpliciTI-CC430-1.1.0-Demo,对源码目录下各子目录进行简单介绍。

图2 SimpliciTI源码目录结构

1、Components

SimpliciTI协议栈的代码位于该目录下,共包含3个子目录。

(1)bsp

表1 bsp文件夹目录结构

\boards\ :与开发板相关

\CC430EM\

\bsp_external\

mrfi_board_defs.h

\schematics\

EM430F6137RF900.pdf

bsp_board.c

bsp_board_defs.h

bsp_button_defs.h

bsp_config.h

bsp_driver_defs.h

bsp_drivers.c

bsp_led_defs.h

\drivers\ :驱动

\code\

bsp_buttons.c

bsp_generic_buttons.h

bsp_generic_leds.h

bsp_leds.c

bsp_buttons.h

bsp_leds.h

\mcus\

bsp_msp430_defs.h

bsp.c

bsp.h

bsp_macros.h

(2)mrfi

表2 mrfi文件夹目录结构

\radios\ :射频

\common\

mrfi_f1f2.c

mrfi_f1f2.h

\family5\

mrfi_radio.c

mrfi_radio_interface.c

mrfi_radio_interface.h

\smartrf\ SmartRF studio 导出配置

\CC1101\

rfstudio.srfs1101

smartrf_CC1101.h

mrfi.c

mrfi.h

mrfi_defs.h

(3)simpliciti

表3 simpliciti文件夹目录结构

\nwk\ :网络层

nwk.c

nwk.h

nwk_api.c

nwk_api.h

nwk_app.h

nwk_frame.c

nwk_frame.h

nwk_globals.c

nwk_globals.h

nwk_QMgmt.c

nwk_QMgmt.h

nwk_types.h

\nwk_applications\ :网络应用层

nwk_freq.c

nwk_freq.h

nwk_ioctl.c

nwk_ioctl.h

nwk_join.c

nwk_join.h

nwk_link.c

nwk_link.h

nwk_mgmt.c

nwk_mgmt.h

nwk_ping.c

nwk_ping.h

nwk_security.c

nwk_security.h

2、Documents

该目录下的文件是关于SimpliciTI协议的帮助文档。开发者可通过阅读这些文档,快速了解SimpliciTI协议的基本信息及其相关特性。

3、Projects

Projects目录下的是SimpliciTI的示例程序。

表4 Examples文件夹目录结构

\Examples\ :示例

\Applications\

app_remap_led.h

main_2EDOnePolls.c

main_AP_Async_Listen.c

main_AP_Async_Listen_autoack.c

main_AP_RE.c

main_babble.c

main_ED_Sniffer.c

main_LinkListen.c

main_LinkTo.c

main_manyEDs.c

main_manyEDs_autoack.c

\CC430EM\

AP_as_Data_Hub

Cascading_End_Devices

Polling_with_AP

Simple_Peer_to_Peer

3SimpliciTI的最小射频接口

MRFI(Minimal RF Interface,最小射频接口)。SimpliciTI共有5个Radio Family,每个Radio Family所支持的TI芯片及其描述,如表5所示。具体的代码请查看\Components\mrfi \mrfi_defs.h。

表5 Radio Family

Radio Family

芯片

描述

Radio Family 1

MRFI_CC1100

Sub 1 GHz RF Transceiver

MRFI_CC1101

Sub 1 GHz RF Transceiver

MRFI_CC1100E_470

Sub 1 GHz RF Transceiver (CC1100E Asia)

MRFI_CC1100E_950

Sub 1 GHz RF Transceiver (CC1100E Asia)

MRFI_CC2500

2.4 GHz RF Transceiver

Radio Family 2

MRFI_CC1110

Sub 1 GHz SoC

MRFI_CC1111

Sub 1 GHz SoC with USB controller

MRFI_CC2510

2.4 GHz SoC

MRFI_CC2511

2.4 GHz SoC with USB controller

Radio Family 3

MRFI_CC2420

2.4 GHz IEEE 802.15.4 RF Transceiver

MRFI_CC2520

2.4 GHz IEEE 802.15.4 RF Transceiver

Radio Family 4

MRFI_CC2430

2.4 GHz IEEE 802.15.4 SoC

MRFI_CC2431

2.4 GHz IEEE 802.15.4 SoC

Radio Family 5

MRFI_CC430

Sub 1 GHz MSP SoC

Radio Family 6

MRFI_CC2530

2.4 GHz IEEE 802.15.4 SoC

SimpliciTI-CC430-1.1.0-Demo中只有Radio Family 5的源代码。Radio Family的配置如图3所示,在“Defined Symbols”处声明即可。

图3 Radio Family配置

二、 开发工具

2.1、集成开发环境

1、IAR Embedded Workbench

图2.1 IAR主界面

2、TI Code Composer Studio

图2.2 CCS主界面

2.2SmartRF Studio

SmartRF Studio是TI推出的用于评估和配置其低功耗RF芯片的Windows应用程序,可作为单独的应用程序使用。该应用程序可帮助设计人员在射频系统设计初期评估RF芯片。它可以生成相关配置寄存器的值、对射频系统进行测试。

SmartRF Studio 7的最新版本是1.10,主界面如图2.3所示。可配置TI生产低于1GHz、2.4GHz频段的射频芯片和片上系统。

图2.3 SmartRF Studio 7主界面

图2.4 射频参数配置

、快速体验

3.1协议栈配置

协议栈的配置文件位于Demo程序工程目录下的Configuration文件夹中。其中,smpl_nwk_config.dat用于通用网络的配置,而Access Point、End Device、Range Extender各自文件夹下的smpl_config.dat则用于配置该功能角色,在Demo程序的工程中,仅默认使用MAX_HOPS、MAX_HOPS_FROM_AP、MAX_APP_PAYLOAD三个配置选项。

3.2、部分代码解读

(1)BSP层

BSP层是一个轻量级的板级支持包,只提供了LED、Button两个驱动支持。SimpliciTI协议栈对硬件驱动的支持很少,更多其他驱动需要用户自行开发,例如ADC、UART、Flash、PWM等。

BSP_Init函数主要负责硬件的板级初始化以及相关驱动的初始化。该函数必须在射频初始化和协议栈初始化之前调用执行。

代码清单 BSP_Init函数

驱动模块的动态加载过程,BSP层的驱动在bsp_drivers.c中定义,在bsp_drivers_defs.h中可以看到驱动的初始化。

代码清单  驱动模块的初始化

代码清单 驱动模块的加载

(2)MRFI层

代码清单 MRFI_Init函数

射频功率的设置可由上述的SmartRF Studio工具导出,共有4个功率值可选 ,分别是-12dBm、-6dBm、0dBm、10dBm。频率设置为433MHz。

代码清单 射频功率设置

代码清单 逻辑信道设置

---------------------------------------祝玩得愉快!------------------------------------------

SimpliciTI无线开发 — 快速搭建低功耗、低成本无线传感器网络的更多相关文章

  1. STM32W108无线传感器网络节点自组织与移动智能体导航技术

    使用STM32W108无线开发板及节点完毕大规模网络的自组建,网络模型选择树型,网络组建完毕之后,使用基于接收信号强度指示RSSI(ReceivedSignal Strength Indication ...

  2. JAVA学习:maven开发环境快速搭建

    转自:http://tech.it168.com/a2011/1204/1283/000001283307.shtml 最近,开发中要用到maven,所以对maven进行了简单的学习.因为有个mave ...

  3. 快速搭建 Node.js 开发环境以及加速 npm

    如何快速搭建 node 开发环境 npm 超慢 github 无法打开的问题 于是我觉得应该写一篇文章解答所有这些起步问题,让新同学也能顺顺利利入门. 快速搭建 Node.js 开发环境 如果你想长期 ...

  4. CentOS 7快速搭建Nodejs开发环境

    Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好.学习Nodejs首先需要会安装环境.这里我介绍如 ...

  5. 使用visual studio 2013 快速搭建phonegap开发环境

    前一段时间开发了一款简单的Phonegap应用,遇到了很多坑,其中有一个坑就是在搭建开发环境上.由于Phonegap 2.x 与3.x 区别比较大,导致了开发环境也有所不同.2.x 是这样的http: ...

  6. [转] 使用NVM快速搭建NODE开发环境

    export NVM_NODEJS_ORG_MIRROR=https://npm.taobao.org/mirrors/node 本文主要介绍最近自己碰到的几个坑以及搜索到的相应解决方案: 如何快速搭 ...

  7. Java Web 开发环境快速搭建

    Java Web 开发环境快速搭建 在因某种原因更换开发设备后,可依据此文快速搭建开发环境,恢复工作环境. Java开发环境: Windows 10 (64-bit) Oralce JDK Eclip ...

  8. Linux下快速搭建php开发环境

    php开发环境快速搭建 一.Linux下快速搭建php开发环境 1.安装XAMPP for Linux XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包,使用XA ...

  9. 【转】使用nvm快速搭建 Node.js 开发环境

    原文链接:http://www.cnblogs.com/shuoer/p/7802891.html 快速搭建 Node.js 开发环境 如果你想长期做 node 开发, 或者想快速更新 node 版本 ...

随机推荐

  1. codeforces 578c - weekness and poorness - 三分

    2017-08-27 17:24:07 writer:pprp 题意简述: • Codeforces 578C Weakness and poorness• 给定一个序列A• 一个区间的poornes ...

  2. Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)

    需求类似这样  ↓ ↓ ↓   -->    菜单A发生变化,动态取数据填充下拉菜单B. JS代码如下: <script type="text/javascript"& ...

  3. centos7 systemctl一些用法

    systemctl 是管制服务的主要工具, 它整合了chkconfig 与 service功能于一体. systemctl is-enabled servicename.service #查询服务是否 ...

  4. angular2.x 下拉多选框选择组件

    angular2.x - 5.x 的下拉多选框选择组件 ng2 -- ng5.最近在学angular4,经常在交流群看见很多人问 下拉多选怎么做... 今天就随便写的个. 组件源码 百度云   链接: ...

  5. 转载:Chrome 控制台不完全指南

    Chrome的开发者工具已经强大到没朋友的地步了,特别是其功能丰富界面友好的console,使用得当可以有如下功效: 更高「逼格」更快「开发调试」更强「进阶级的Frontender」 Bug无处遁形「 ...

  6. git 提交作业流程

    git 提交作业流程,主要分为4个步骤 # 拉取远程git最新版本到本地,每次都可以先执行这条命令,因为会有其他同学更新仓库 git pull # add需要上传的文件,那个文件修改或者新增的,就ad ...

  7. 为Spring Cloud Config Server配置远程git仓库

    简介 虽然在开发过程,在本地创建git仓库操作起来非常方便,但是在实际项目应用中,多个项目组需要通过一个中心服务器来共享配置,所以Spring Cloud配置中心支持远程git仓库,以使分散的项目组更 ...

  8. Hibernate[延迟加载] [三种状态] [脏检查] [缓存机制]

    一.持久化对象的唯一标识 java中按内存地址不同区分同一个类的不同对象,关系数据库用主键区分同一条记录,Hibernate使用OID来建立内存中的对象和数据库中记录的对应关系 什么是OID? 解析: ...

  9. proxy-target-class 作用

    该属性值默认为false,表示使用JDK动态代理织入增强;当值为true时,表示使用CGLib动态代理织入增强;但是,即使设置为false,如果目标类没有生命接口, 则Spring将自动使用CGLib ...

  10. Highcharts 基本曲线图;Highcharts 带有数据标签曲线图表;Highcharts 异步加载数据曲线图表

    Highcharts 基本曲线图 实例 文件名:highcharts_line_basic.htm <html> <head> <meta charset="U ...