2.2 无线通信程序
无线通信程序主要完成基于NRF24L01的数据发送和接收,要严格遵守其发送及接收时序。由于温度采集时每个系统都可能成为发出同步启动信号的主机,因此采集前NRF24L01都配置为接受模式。若某个系统检测到已满足启动条件,则自动配置为发送模式,将同步启动信号发送给其它系统,于是同步采集开始。将NRF24L01配置为增强型ShockBurst模式并启动自动应答,这样可以在接收方接收到信号后自动产生应答以确认通信的正确性,发送方未收到应答则会自动重发,无需增加控制器的工作量。
2.3 SD卡读写程序
本系统SD卡采用了FatFS文件系统以方便将SD卡内的数据通过读卡器导入到上位计算机。FatFS是一种通用的文件系统模块,在小型嵌入式系统中实现FAT文件系统。FatFS文件系统使用非常方便,因为FatFS模块完全与磁盘I/O层分开,因此只需要改写对应的函数来实现底层物理磁盘的读写与获取当前时间即可。本设计中应用到这几个函数:disk_initialize用来初始化磁盘驱动器,这里初始化SD卡;disk_read用来读SD卡扇区;disk_write用来写SD卡扇区;disk_ioctl用来控制与设备相关的特性;get_fattime用来获取当前时间,为文件加盖时间戳。时间的获取采用读STM32内部RTC的方式实现,为此,要在RTC的备用电池引脚接3V的纽扣电池,以实现掉电后的时间维持。
3 实验参数
实验表明,NRF24L01芯片在2 Mbit/s的传输速率下,若SPI总线速率控制为4 Mbit/s,则主机发送从机地址与一个字节数据需要90μs左右的时间延迟,因此无线同步采集的时问误差可控制在90μs。若主机发送完同步信号后延迟90μs再启动采样,则同步采集的时间误差可控制在10μs内,可满足绝大部分同步采集的需要。经测试,只加板载天线时无线传输距离在空旷地可达50 m,若使用专用天线,则无线传输距离可达150 m,适用于多种测量领域。
4 结束语
本文所设计的温度同步采集系统具有成本低、精度高及可靠性高、通信距离远、存储容量大等优点,调节电位器即可实现温度量程的调节,既适用常温范围测量,又适用于工业温度范围测量。同步采集后的数据很容易在计算机中进行分析、处理及打印等。将温度调理电路做少量修改即可实现对压力、湿度等其它物理量的同步采集,因此应用领域广泛。