引 言
无线数据通信技术被越来越多地使用到嵌入式系统中,在简化布线的同时,也使数据交换变得更加便捷。本文介绍一种适用于远程计数无线传输的测试系统,该系统主要由德州仪器(TI)公司的CC1100射频收发器和飞利浦(Philips)公司的微处理器P89LPC922构成。
1 硬件设计
(1)总体方案设计
本设计由1个主机和1~32台终端从机组成。从机通过内部传感器计数后将数据以无线方式传送给主机,主机负责整个系统的调度、显示、配置。
(2)微控制器P89LPC922
P89LPC922芯片具有8 KB Flash程序存储器、1 KB可擦除扇区和64字节可擦除页,可擦除单个字节,指令执行时间只需2~4个时钟周期,指令执行速率6倍于标准80C51器件,有可配置的片内振荡器和 RC振荡器、增强型UART,具有波特率发生器及自动地址识别和通用的中断功能。
(3)射频芯片CC1100
CC1100的主要特点有:体积小(20引脚,QLP 4 mm×4 mm),工作频率为300~1000 MHz,接收灵敏度高(1.2 kb/s下110 dBm),数据传输率最大可达500 kb/s,功耗低(RX中15.6 mA,2.4 kb/s,433 MHz),在所有频段输出功率高达+10 dBm;SPI接口,支持ASK、OOK、2-FSK、GF-SK和MSK调制模式,具有无线唤醒(WOR)功能等。
由于高频收发信号会对MCU部分产生干扰,所以无线通信部分应单独做1块PCB板,并外加屏蔽。P89LPC922和CC1100的连接如图1所示。
2 软件设计
(1)数据包格式
CC1100数据包格式包含以下几部分:前导、同步词汇、可控数据包长度、可选地址字节、有效载荷、可选的2字节CRC。它支持恒定长度和可变长度数据包协议,其数据长度可达255字节,对于更长的数据包,必须使用无限长度数据包协议。本系统采用可变长度数据包格式。
(2)状态及寄存器设置
CC1100有一个内置的状态机,用来在不同的操作状态(模式)之间切换。状态的变化要么通过命令滤波,要么通过内部事件(如TX FIFO下溢)改变。当前状态可从状态寄存器MARCSTATE获得。CC1100的寄存器比较多,可根据需要配置,有一部分需由软件SmartRF Studio给出。
CC1100的3个数字输出引脚SO(GDO1)、GDO0、GDO2也可以通过IOCFGX寄存器配置成所需的功能接口。设计中,GDO0 IOCFGO=Ox06,引脚会在收发到同步词汇的时候置成高电平,当数据包传输结束时变成低电平。此外,当收发FIFO溢出时也将变成低电平。 GDO2IOCFG2=Ox0B,引脚输出一连续时钟,可以用来检测CC1100是否工作。
(3)收发数据
CC1100上电后,需要依次对芯片进行复位、寄存器设置、功率设置等。收发数据可以通过GPO0引脚产生中断,然后依据不同的情况处理。程序如下: