基于CC1100和MSP430的无线UART实验设计
2012-07-13李晶晶吴学文
李晶晶,吴学文
(河海大学 计算机与信息学院,江苏 南京 211100)
随着计算机技术的发展和广泛应用,尤其是在工业控制领域的应用越来越广泛,计算机通信显得尤为重要。串行通信虽然使设备之间的连线大为减少,但随之带来串/并转换和位计数等问题,这使串行通信技术比并行通信技术更为复杂,串/并转换可用软件实现,也可用硬件实现。用软件实现串行传送大多采用循环移位指令将一个字节由高位到低位(或低位到高位)一位一位依次传送,这种方法虽然简单但速度慢,而且大量占用CPU的时间,影响系统的性能。更为方便的实现方法是用硬件,目前微处理器串行接口常用的LSI芯片是UART、USART和ACIA等,不论是哪一种芯片,它们的一种基本功能是实现串/并转换。正是这些串行接口芯片弥补了串行通信较为复杂这一缺陷[1]。因此在串行通信中,传输接口是首先需要解决的基本问题。通用异接收发送器简称UART,是一种应用广泛的异步串行通信的传输接口,专用UART芯片能够实现比较全面的串行通信功能,而在实际应用中往往只需要使用到UART的部分功能,在设计中如果使用无线数据节点即KM-DONE 433,那么在剩余资源充足的情况下就可以充分利用剩余资源实现所需的UART的功能,这样就无需再外接专门的UART芯片,从而简化了电路,缩小了体积、提高了可靠性、并且具有了更大的灵活性。
基于以上考虑,提出一种基于CC1100和MSP430F2132的无线UART实验设计,实现无线传感器节点间的通信。
1 总体设计
无线传感器网络系统通常包括若干个传感器节点、一个汇聚节点和一套管理节点。大量传感器节点随机部署在监测区域内部或附近,能够通过自组织方式构成网络。传感器节点具有本地数据采集传输和转发邻节点数据的双重功能,传感器节点监测的数据沿着其他传感器节点逐跳的进行传输,在传输过程中监测数据可能被多个节点处理,经过多跳后路由到汇聚节点,最后通过互联网或卫星到达管理节点[2]。
为简化网络结构,设计的网络结构是由端节点将接收到的数据发送至路由节点,再由路由节点将数据进行转发,最后通过网关节点发送至PC机,整个过程实现的是数据的发送、转发及接收,最终显示。
2 硬件实现
实验使用的硬件装置有端节点、路由节点和网关节点,其中端节点和路由节点都是使用的无线通信节点即KMDONE 433,如图1所示。
图1 KM-DONE 433结构图Fig.1 Framework of KM-DONE 433
KM-DONE 433硬件结构采用CC1100无线通信模块,MCU选用MSP430F2132,具有低功耗特性,两者的结合使用能满足本实验低功耗无线通信的要求。此结构的设计能实现串口通信透明传输,可配置各种数据格式,并且用户可选择保存配置信息,方便下次操作。同时,还能实现任意长度以及不间断无线数据长度的数据发送,并具有防碰撞机制,实现多用户的数据通信[3-4]。
3 软件设计
系统软件设计使用C语言在IAR[5]软件开发平台上通过JTAG调试功能在芯片内部进行引脚升级运行,主要包括端节点和路由节点两部分。程序设计思路是通过UART端口配置实现数据收发的串口通信,在发送一个字符时,每个位周期,UART驱动一次发送信号线的状态,从起始位到8个数据位直到结束位依次设置每个位的电平。在接收一个字符时,UART在第一个下降沿开始工作,之后在每个位时隙的中央对接收线上的信号状态进行一次采样[6-8]。端节点和路由节点程序流程图分别如图2、图3所示。
4 实验测试及结果分析
4.1 实验测试
待串口配置完成后先打开路由节点,观察现象和串口显示情况,然后再打开端节点并观察实验现象和串口显示情况,当接收足够的实验数据后,依次关闭各节点和串口,并对实验现象和数据进行分析,串口显示的数据如图4所示。
4.2 实验结果分析
首先,由实验现象得出的结论:在实验运行过程中,当给端节点接通电源时,观测到发送节点的绿灯有规律地闪烁,根据在实验前程序的设置,当发送完一个数据包时,绿灯闪烁,由此说明发送节点在接通电源时在发送数据成功;并且绿灯闪烁的次数就是发送数据包的个数。
图2 端节点程序流程图Fig.2 Flow chart of end node program
图3 路由节点程序流程图Fig.3 Flow chart of route node program
图4 实验数据Fig.4 Experimental data
端节点发送数据时路由节点的红灯也开始有规律地闪烁,说明路由节点数据接收并转发成功,红灯闪烁次数就是路由转发的数据包个数。 同样在端节点发送数据时网关节点的黄灯也开始有规律地闪烁,说明网关接收数据成功。其次,由PC机上串口显示的数据得出结论。
在网关节点闪烁的同时,可以看到PC机上的串口有数据出现,这就是网关接收的数据。如图5所示。
根据规定的发送数据的数据包格式,以节点的ID为数据包的第一个数据标志位,从串口显示的数据中可以看出:划实线标注部分是ID为OX01的端节点发送的数据 (为01 01 02 03 04 05 06 07 08 09),划虚线标注部分是ID为OX84的路由节点转发的数据(为84 01 02 03 04 05 06 07 08 09),由此可以轻易看出网关接收的端节点的数据与网关接收的路由节点的数据相同,再比较接收的数据与发送的数据(为01 02 03 04 05 06 07 08 09)也相同,由此可以断定,网关接收的数据就是端节点发送的数据。
5 结束语
基于CC1100和MSP430的无线UART实验设计的主要原理是通过IAR软件开发平台实现相应软件开发,并配合采用无线传感器节点及网关,最终实现无线传感器节点间的UART通信,即实现端节点的数据发送、路由节点的数据转发和网关节点的数据接收这一过程。通过观测各个节点亮灯情况、闪烁次数以及电脑上的数据显示来判定功能实现,综合实验现象及数据,表明无线UART通信实验设计取得成功,到达了预想的设计要求。
[1]孟志华.利用FPGA实现UART的设计[J].电子工程师,2007,33(4):14.
MENG Zhi-hua.Design and implementation of UART based on FPGA[J].Electronic Engineer,2007,33(4):14.
[2]孙利民,李建中,陈渝,等.无线传感器网络[M].北京:清华大学出版社,2005.
[3]沈建华,杨艳琴.MSP430系列超低功耗单片机原理与应用[M].北京:清华大学出版社,2004.
[4]孙维明,石江宏.由MSP430和CC1100构成的无线传感器网络[J].单片机与嵌入式系统应用,2007,7(8):31-33.
SUN Wei-ming,SHI Jiang-hong.Wireless sensor network based on MSP430 and CC1100[J].Microcontrollers&Embedded Systems,2007,7(8):31-33.
[5]徐爱钧.IAR EWARM V5嵌入式系统应用编程与开发[M].北京:北京航天航空大学出版,2009.
[6]黄海林,沈绪榜.基于有限状态机的UART设计[J].微电子学与计算机,2002,19(12):53-55.
HUANG Hai-lin,SHENG Xu-bang.FSM-based design methodology for UART[J].Microelectronics&Computer,2002,19(12):53-55.
[7]苏航,张宁.FPGA实现UART和MCU一体化设计[J].现代电子技术,2011(2):22-25,28.
SU Hang,ZHANG Ning.Integrated design of uart and MCU based on FPGA[J].Modern Electronic Technique,2011(2):22-25,28.
[8]王振华,何明华.基于Wishbone总线的UARTIP核设计[J].电子科技,2011(2):50-53.
WANG Zhen-hua,HE Ming-hua.A UART IP core for Wishbone bus interface[J].Electronic Science and Technology,2011(2):50-53.