主页(http://www.pttcn.net):基于CC1101的无中心数字对讲机设计(2) 为了提高系统稳定高质量的能源和准确的脉冲信号。CC1101单独使用了27 MHz的无源晶体振荡器,MCU则采用8 MHz,DSP与AIC23B共同使用一个12 MHz晶体振荡器,DSP再用软件设置为144 MHz。此时,DSP需要的内核电压为1.35 V,外围电压为2.7~3.6 V,AIC23B需要1.5 V,其他器件工作在3.3 V。所以系统电源将采用5 V供电,然后用LDO稳压器,分别降成各个器件所需的电压。 4 系统软件设计 CC1101拥有卓越的数据包处理能力。发送时,只需简单设置寄存器,当用户往CC1101内的TXFIFO写入数据后,器件自动在数据包内增加前导字节(长度可控),同步信息,CRC16校验,并根据寄存器设置将FIFO内写入的头两个字节数据标志为长度信息(此功能可选)和地址信息(可选)。接收状态下,器件自动侦测前导码,同步码,地址信息和计算并比较CRC16。此外,CC1101还支持变长数据包格式和交织功能。这些原本需要复杂算法和巨大运算量和存储空间的功能由硬件支持,MCU的编程难度大大降低,其负荷也大为减轻。 程序采用中断程序+循环主程序的方式。将最紧急需要立即处理的事件,设置为高优先级中断,以便在多个中断同时申请中断时能够优先得到响应。中断2~6分别是MCU与DSP和CC1101的数据收发及键盘信号监测。由于MSP430的速度很快,其他事件的处理都放在主程序中,循环执行。为了节省能量,若无外部信号要处理,主程序循环一段时间后,系统转入低功耗模式中。MCU程序的开发环境为IAR Systems,采用汇编语言编写。图4为系统软件设计流程。 5 CC1101编程要点 CC1101有2个64字节FIFO,一个接收数据(RX FI-FO),另一个发送数据(TX FIFO)。FIFO控制器能侦测RXFIFO是否上溢和TX FIFO是否下溢。但是写FIFO时,MCU必须控制TX FIFO是否产生溢出;读RX FIFO时,MCU也必须避免读空值,这些错误CC1101都无法侦测到。 6 结束语 (中国集群通信网 | 责任编辑:陈晓亮) |