TinyOS操作系统开发技术及实践课件第5章TinyOS应用开发.ppt

TinyOS操作系统开发技术及实践课件第5章TinyOS应用开发.ppt

第5章 TinyOS应用开发         5.1 概述   TinyOS应用开发是学习TinyOS的核心,是直接面向用户的,本章将从以下两个方面讲解TinyOS的开发技术:   TinyOS的编程方法:包括在TinyOS开发过程中所使用的与平台相关的硬件资源的编程方法以及与平台相关的应用编程方法。   TinyOS特殊的实例编程:包括基于CC2530的串口通信、无线射频的点对点通信和CC2530芯片ADC的信息采集。       5.2 TinyOS编程方法   由于TinyOS的体系结构采用分层式结构,因此TinyOS的编程的基本思想也基于分层结构,即上层调用下层,其分层结构大致可以分为底层驱动层、中间层和应用层,其结构如图5-1所示。 图5-1 TinyOS编程分层结构        5.3 串口通信   本节将讲解TinyOS操作系统的CC2530与PC机串口通信,包括CC2530串口的配置、串口通信相关组件及接口的使用以及TinyOS操作系统下串口通信协议的分析。另外本节还通过两个串口的实例讲解串口的用法。 5.3.1 串口配置   在TinyOS操作系统中,平台采用的芯片配置同样由组件和接口来完成。本书中采用CC2530的串口0进行传输,完成CC2530串口相关配置的组件为底层组件HplCC2530UartP组件。HplCC2530UartP组件位于“cygwin\opt\mytinyos\tos\ chips\cc2530\uart\”目录中,其主要代码如代码5-1所示。 【代码5-1】 HplCC2530UartP.nc   module HplCC2530UartP   { //串口初始化接口 provides interface Init as Uart0Init; //TX控制接口 provides interface StdControl as Uart0TxControl; //RX控制接口 provides interface StdControl as Uart0RxControl; //串口发送接收设置接口 provides interface HplCC2530Uart as HplUart0; uses interface McuPowerState;  }   在HplCC2530UartP文件中对串口进行初始化,并且设置了用户所需要的波特率。在本节内容中,将波特率设置为57600,具体代码如代码5-2所示。 【代码5-2】 HplCC2530UartP.nc   /*串口的初始化*/ command error_t Uart0Init.init() { //采用串口备用位置1 PERCFG = ~0x01; //选择P0口作为串口 P0SEL = 0x3c; // 0011 1100 //采用UART模式,接收使能 U0CSR |= 0x80 | 0x40; /*串口波特率的设置采用57600*/ U0GCR = 0x0b; U0BAUD = 216; return SUCCESS; } 5.3.2 通信帧格式   TinyOS 2.x为串口通信提供了专用通信协议,即HDLC协议帧,其以0x7e作为帧分隔字符,0x7d作为转义字符。在TinyOS 2.x的串口通信组件中维护了10个状态位,接收路径和发送路径各有一个状态位,用于表示是否使用转义符(有关HDLC帧格式以及相关内容请参照实践4的知识拓展)。   TinyOS 2.x串口协议数据帧具体格式如图5-2所示。 图5-2 串口协议数据帧格式 5.3.3 相关组件及接口   TinyOS 2.x版本的串口协议栈可以划分为5个功能组件,自底层至上层分别是原始串口组件、编码/装帧组件、协议组件、分派组件和用户接口组件。其组件关系如图5-3所示。 图5-3 串口组件关系   1. 原始串口组件   在TinyOS 2.x版本中原始串口组件为串口的硬件接口层组件,位于平台目录tos/platforms下。一般情况此组件的命名与平台相关,不同的平台命名方式不同。本书以mytinyos平台为例讲解。   原始串口组件在mytinyos平台中名为PlatformSerialC,其位于“mytinyos\tos\platforms\ cc2530”目录下。在项目的开发过程中,可以调用此组件通过串口直接将硬件平台的数据输出至PC机,即数据并没有被TinyOS封装成串口数据帧格式。此组件提供的接口如代码5-3所示。 【代码5-3】 PlatformSerialC.nc configuration PlatformSerialC { provi

文档评论(0)

1亿VIP精品文档

相关文档