做过一个比较奇怪的项目,基于无线连接的RFID设备,13.56MHz的TypeA型非接触智能CPU卡,因设备不便有线连接,故考虑无线连接方案,传输距离50到100米,工作在433MHz。
原型设计时 ,采用成熟的老产品,基于STC11F16XE单片机+复旦微电子的FM1702SL读卡芯片,无线连接采用TI的CC1101无线收发芯片,无线通讯频点选择433MHz。5200mAh锂电供电。
STC11F16XE单片机和CC1101通讯的时候主要值得注意的,用GPIO模拟SPI,实现和CC1101硬件之间的链接。编程实现的时候注意时序问题。SPI的时序都一样,但是操作芯片的时候可能有应答,可能没有应答。注意CC1101寄存器的配置。整个通讯成功与否,通讯效果好不好都在寄存器的配置上。必须理解各个寄存器的作用及使用的目的及意义了。GDO0等IO口的配置在整个系统中的运用非常重要。常见配置值0x01,0x02,0x03,0x06,0x07,其中配置值最为常用配置0x06。
接收端基于CC1110F32设计外置USB接收模块,频点当然也是433MHz,用1/4波长PCB线段简易天线。
原型很快做完,基本沿用原来设计,试运行正常。
无线通讯协议沿用串口协议,采用命令标志 + 命令有效长度 + 命令字 + 命令参数 + 校验和 + 命令结束标志, 命令有效长度从命令字字节到checksum之前的数据长度, 不包括长度和校验和。响应数据包采用同样结构。
未考虑待机省电设计,锂电供电的RFID设备待机时间较短,基本勉强维持4小时。
根据项目,正式设计,为了降低待机功耗采用MSP430F5438,RFID的读卡芯片也采用复旦微电子的FM1701读卡芯片,无线连接采用TI的CC1101无线收发芯片,无线通讯频点选择433MHz。仍然用5200mAh锂电供电。待机时关闭RFID和CC1101供电。待机时间稳定工作24小时。由于实际每天实际工作时间4小时,已经满足需要,没有进一步优化。
|