设为首页 加入收藏

TOP

TinyOS在CC2530上移植之USART
2014-11-24 11:15:13 来源: 作者: 【 】 浏览:0
Tags:TinyOS CC2530 移植 USART

网上关于TinyOS在CC2430上移植的文章到处都是,http://www.tinyos8051wg.net/ 8051工作组提供了最新版本的TinyOS8051wg-0.1pre4.tgz 软件包。但是,我个人觉得,这个资源包仅仅是实现了TinyOS能够运行于CC2430这样的以8051为内核的SOC上,只是告诉世人TinyOS能够支持当前最流行的无线单片机。。。比如,USART,只是在HalCC2530SimpleUartP.nc文件中实现了最简单的串口收发功能,不知道这样的系统能够应用于哪些场合。想要真正意义上的实现TinyOS对CC2530的完全支持,那么,就应当充分体现TinyOS的特点,要彻底改变目前普通顺序式结构,采用事件触发以及任务调度实现“并行操作”。


效仿TinyOS在MSP430上USART功能的实现,应用资源仲裁合理分配硬件资源。总体架构如下所示:(以端口P0上的SPI模式0为例)


TinyOS在CC2530上移植之USART


供外部调用的顶层配线CC2530SpiP00C提供的给应用程序调用的接口有SpiPacket、SpiByte、Resource,资源申请以及资源配置通过配件CC2530UsartP00C连接到CC2530UsartShareP00P。使用的


接口CC2530SpiConfigure由调用者提供,用于配置SPI工作模式,当接口没有给出实现时,采用默认配置。中间配件CC2530UsartP00C如下图所示:


TinyOS在CC2530上移植之USART


该配线把上层掉用的资源申请以及资源仲裁任务连接到配件CC2530UsartShareP00P上,如下图:


TinyOS在CC2530上移植之USART


本层完成了资源申请与仲裁的配线,中断接口连接到CC2530UsartShareP组件上进行统一管理,中断源取决于所连接的底层配件,并由组件HplUsartInterruptP提供硬件中断,该中断触发硬件描述层中的事件,此例HplCC2530Usartp00P组件中事件将被触发。HplCC2530Usartp00C配线如下图所示:


TinyOS在CC2530上移植之USART


该层属于硬件描述层,最终实现USART接口的相关操作。提供的接口主要有HplUsart、


HplUsartInterrupts。HplUsart接口实现寄存器配置,接收/发送缓冲区的读写,以及中断使能、标志位的清除等。HplUsartInterrupts对上次提供供USART中断信号,由组件HplUsartInterruptP中的硬件事件触发。使用的接口包括I/O引脚的配置、中断源的选择。接口Leds用于调试。在TinyOS for CC2430中并没有给出HplCC2530GeneralIo接口的实现,给接口除了给CC2530GpioC中的GeneralIO接口连接外,还提供了IO引脚第二功能的选择及判断。


为了便于调试,使用原有的StdOut接口,该接口独立与上述USART接口模型,只有硬件中断共用。顶层配件StdOutC平台相关,所以连接到位于平台目录下的PlatformStdOutC,如下图;


TinyOS在CC2530上移植之USART


TinyOS在CC2530上移植之USART


硬件适配层HalCC2530SimpleUartP提供接口SerialByteComm,实现串口的基本操作。使用的接口SimpleUartConfigP位于平台目录下,实现对串口的配置。HalCC2530SimpleUartC配线如下图所示:


TinyOS在CC2530上移植之USART


到这里基本上实现了CC2530 USART模块在TinyOS上的移植。CC2530分别提供了4组SPI和UART,所以在具体实现中,分别提供4组顶层配线:SPI:CC2530SpiP00C、CC2530SpiP01C 、CC2530SpiP10C、CC2530SpiP11C,UART: CC2530UartP00C、CC2530UartP01C、CC2530UartP10C、CC2530UartP11C。这种方式的优点在于思路清晰,使用简单,不易出错,其缺点也是显而易见的:当使用多组SPI或UART时,代码重用率较低,占用内存较大。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇TinyOS for CC2530中startup.a51.. 下一篇Ubuntu 下TinyOS msp430 Toolchai..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)
·使用华为开发者空间 (2025-12-27 04:19:24)
·Getting Started wit (2025-12-27 03:49:24)
·Ubuntu 上最好用的中 (2025-12-27 03:49:20)