关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > STM32和CC2520的TinyOS移植与驱动分析

STM32和CC2520的TinyOS移植与驱动分析

作者:时间:2012-12-06来源:网络收藏

摘要:系统以其组件结构模型、事件、并发型等优点成为目前最受关注的操作系统。但不支持和CC2 520芯片。因此在分析基本原理、NesC编程语言实现机制及其编译过程的基础上,介绍了基于的TinyOS方法,完成了的I/O组件、Timer组件、USART组件、SPI组件和芯片。在实现的基本通信功能基础上,实现简单MAC协议。最后测试了各组件的效果。实验测试结果表明,节点可以稳定可靠地通信。
关键词:;TinyOS;STM32;CC2520;移植;

引言
(Wireless Sensor Network,WSN)是一种应用相关的网络。需要对某些操作系统进行移植。本文采用TinyOS作为软件平台,成功移植了Radio、Timer、USART、SPI和General I/O等5个底层模块。测试结果表明,移植的5个底层模块能够正常工作。

1 MCU和无线模块介绍
STM32系列按性能分成两个系列:STM32F103“增强型”系列和STM32F101“基本型”系列,时钟频率达到72 MHz,是同类产品中性能最高的产品。本项目采用芯片STM32F103RBT6。CC2520选用第二代ZigBee/IEEE 802.15.4无线电频率(RF)收发器。

2 TinyOS操作系统和NesC分析
2.1 NesC介绍
NesC是专门为网络嵌入式系统设计的编程语言,是对C的扩展,它基于TinyOS的结构化概念和执行模型而设计。主要编程模式包括:事件驱动、弹性并发型和面向组件程序设计等。NesC编译器进行数据竞争检测(提高可靠性)、积极的函数内联(降低资源消耗)等整体程序分析,简化了应用程序的开发。
2.2 TinyOS分析
TinyOS(Tiny Micro Threading Operating System)是由加州大学伯克利分校开发的开源的传感器网络操作系统,其本身是由NesC语言编写。TinyOS的组件模型体系结构如图1所示。上层组件对下层组件发命令,下层组件向上层组件发信号通知事件,最底层的硬件抽象组件直接和硬件打交道。

本文引用地址:http://www.eepw.com.cn/article/159652.htm

c.JPG


TinyOS的硬件抽象层通常是3级抽象结构,称作HAA(Hardware Abstraction Architecture)。整个硬件抽象层分为硬件表示层(HPL)、硬件适配层(HAL)和硬件接口层(HIL)。
硬件表示层(Hardware Presentation Layer,HPL)是对硬件平台的功能性描述,主要通过存储单元和I/O映射端口访问硬件和通过硬件中断来实现以下功能:能量管理、控制硬件、硬件中断开闭、提供硬件中断服务程序等。
在HPL上的是硬件适配层(Hardware Adaptation Layer,HAL),该层是整个硬件抽象层的核心,利用HPL提供的原始接口建立硬件描述资源,并通过状态来反映硬件的使用情况以实现对硬件的仲裁控制,提高系统性能。
硬件抽象层的最高层是硬件接口层(Hardware Interface Layer,HIL),该层把HAL层提供的接口转换成硬件独立的接口,隐藏了平台之间的差异,并向上层提供统一的硬件API接口。

3 基于STM32和CC2520平台的TinyOS实现
由上文所述,将TinyOS移植到STM32核处理器和CC2520上的关键问题是硬件抽象层组件的定制和编译器工具链的配置。基于TinyOS开源代码的约定,主要修改代码放置在/tos/chips/STM32和tos/platforms/STM32p103。
3. 1 修改芯片文件
每个芯片都通过多个接口或组件提供它所实现的功能,这些接口或组件组成芯片的驱动。将芯片的结构抽象文件放于tos/chips。如果芯片有子系统则建立子目录,如:tos/chips/STM32/timer。需要改写的TinyOS和MCU相关模块如下所述。
3.1.1 STM32核处理器
为了同其他外围设备的驱动分开,需要在MCU相关的文件中增加两个定义;原子操作的开始和结束,在头文件hardware.h中定义;低功耗工作模式,由组件MCUSleepC定义。具体可以参考其他MCU文件编写。
TinyOS通过一些接口管理MCU的状态,决定MCU何时进入低功耗状态。MCUSleepC组件向上层提供McuSleep和McuPowerState接口。TinyOS调度器在原子操作中调用McuSleep.sleep(),保证在进入低功耗状态前处于开中断状态。在sleep状态,可以关闭一些高耗能的模块,比如:高频时钟、PLL等。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭