- UID
- 872339
|
关键字:无线传感器网络 底层平台 STM32 CC2520
目前,对WSN(Wireless Sensor Network)的研究主要集中在协议栈、定位算法、能耗管理以及体系结构设计上,而针对无线传感网络操作系统的研究却相对较少,尤其是对其底层平台的研究更少,所以针对无线传感网络操作系统底层平台的研究有十分广阔的空间。本论文针对意法半导体STM32系列MCU和TI公司的CC2520无线模块进行介绍。主要描述了操作系统底层平台的构建,以及硬件驱动程序的实现。本论文的底层硬件抽象层是针对CC2520无线射频模块的,包括了平台构建、相关寄存器,以及外围接口等各个部分。而硬件驱动程序主要是为完成无线通信所需的硬件驱动设计,这主要包括:相应异步事件的中断机制;和PC通信的USART驱动;连接MCU和CC2520的SPI驱动;完成超时计时的定时器等。这些模块的有效组成,才能构成一个完整的无线传感器网络最小通信系统,完成节点间数据传输、数据处理,以及定位和导航等任务。
STM32系列MCU采用ARM公司V7架构的CortexM3内核。CC2520是第二代ZigBee/IEEE 802.15.4收发器。
1 底层平台研究
硬件抽象层的底层硬件模块有很多,本节只简单介绍和无线传感器网络相关的底层模块设计。
1.1 定时器
STM32系列的 CPU能提供8个定时器,其中TIM1和TIM8是高级定时器,可用于各种用途,包括测量输入信号的脉冲长度(输入捕捉)或产生输出波形(输出比较)等,它们的时钟由 APB2提供。TIM2~TIM7是普通定时器,时钟由 APB1提拱。图1为STM32时钟树中有关定时器的部分。
图1 STM32中有关定时器的时钟树
从图1可以看出,从系统设置的时钟源产生的时钟频率输入到AHB预分频器,进行分频处理,然后经过APB1预分频器和APB2预分频器给不同模块提供不同的时钟频率。下面以定时器2作为例子说明。当AHB预分频器输入频率为72 MHz的时候,由于APB1支持的最大频率为36 MHz,所以APB1预分频器,设置必须大于或等于2,假设设置为2,则在APB1倍频器中,频率被设置为72 MHz(当APB1分频数=1的时候,APB1倍频器加倍系数为1,当APB1分频数>1的时候,APB1倍频器加倍系数为2),所以最终提供给定时器2~7的频率为72 MHz。所以只需要设置APB1预分频器和APB1倍频器的值,便可以提供不同频率的定时器。定时器采用计数溢出的方式触发定时器中断,因此想要使用定时器,必须先配置好定时器中断。
|
|