4软件设计
CC1100通过4线SPI兼容接口(SI、S0、SCLK和CSn)配置,这个接口同时用作写和缓存数据。SPI接口是一种同步串行通信接口,CSn是芯片选择管脚,当该管脚为低电平时,SPI接口可以通信,反之不能通信。SI和SO为数字传输管脚,分别用于数据输入和数据输出。SCLK为同步时钟,在时钟的上升沿或下降沿数字数据被写入或读出。在读或是写寄存器,首先要在SI管脚写入寄存器地址(Address)字节。地址字节有8位,最高位为读写位,后7位为地址位。当执行写寄存器操作时,读写位为O,当执行读寄存器操作时,读写位为1。无论是读操作还是写操作,在地址字节被写入时,CC1100S0脚上输出一个芯片状态字节,状态字节包含关键状态信号,对MCU是有用的。CC1100的TXFIF0(发射先进先出堆栈)和RXFIF0(接收先进先出堆栈)也可以用同样的读写方式进行访问,只是使用与配置寄存器不同的地址段加以区别。另外,CC1100的指令也是通过SPI接口传送,CC1100有14个内部指令。这些指令用来关闭晶体振荡器,开启传输模式,状态转换和电磁波激活等。软件流程如图3所示。
通过SI写入特定的字节使CC1100执行不同的命令,CC1100共有20个引脚,可通过4线SPI兼容接口配置(包括数据线SI、S0、时钟线SCLK、使能线CSn)。其中CSn可以连接到一个IO口来模拟时序,而其他三个脚则接到主MCU的SPI接口。通过重复使用SPI接口上的SI、SCLK和CSn,可使通信的主要状态执行一个简单的三脚控制,即休眠、空闲、RX和TX。CC1100有两个专用的配置引脚和一个共享引脚,能用于输出对控制软件有用的内部状态信息,并能用来对MCU产生中断,其引脚名为GD00和GD01。共享引脚为SPI接口上的S0脚。GDOl/SO的默认设置为3状态输出。通过选择任意其他的控制选项可使GD01/SO脚成为一般引脚。当CSn为低时,此引脚的功能如一般S0脚;而在同步和异步连续模式下,处于传输模式时,GD00脚被用作连续TX数据输入脚。
5结论
无线自动抄表系统是未来发展的必然趋势,而对于抄表系统的改造,由AT89S52单片机和CC1100构成的无线自动抄表系统具有使用方便、成本低、应用灵活、价格适中的优点。家庭内部的三表可以统一抄送。还可以应用在低功率遥感勘测,住宅和建筑自动控制,无线警报和安全系统,工业监测和控制,无线传感器网络,遥控遥测系统中,而且适用于电子消费产品、住宅、建筑物自动控制等诸多无线应用领域。