大气环境传感器的选择
目前,大气环境监测节点可通过采集板连接PM2.5、PM10、SO2、NO2、CO、O3等传感器,并预留了额外的接口用于接入其他传感器。对SO2、NO2、CO、O3等气体的检测方法主要有光谱吸收法、电化学法和各种化学方法26,27,28。化学实验的方法不能应用于在线监测站。红外线检测法由于其传感器成本较高,不适合大面积的监测站。因此,在线监测设备中一般采用电化学传感器。PM2.5和PM10是颗粒污染物。传统的重力测量法和微型振荡天平法在实验室中普遍使用,而激光散射法可以通过使用小型和低成本的传感器自动监测颗粒物的浓度29。系统中选择了一个激光散射传感器进行监测。该传感器的模型和详细参数见表1。该传感器的测量范围可以完全满足大气环境监测的需要,其较短的响应时间可以减少系统的功耗。
数据存储驱动器
嵌入式系统设备通常需要大容量的存储设备来存储数据。目前,可以集成通用的可擦写可编程只读存储器(EEROM)、FLASH(闪存)和安全数字存储器(SD)卡。前两种SD卡的容量通常小于1MB。SD卡的存储容量通常大于1GB。本系统使用SD卡来存储传感器数据,SD卡具有可拆卸的特点,便于直接读取传感器数据。在本设计中,大气数据是单一的,为了节省处理器资源,所以只使用SD卡作为节点的大容量数据存储单元,没有复杂的文件系统。系统中实现了SD卡的初始化和单块读写操作。
如图4所示,SD卡与ARM之间的通信采用了发送-回复机制,SD卡与ARM之间的数据交换通过SDIO总线进行。
要初始化SD卡,请完成以下软件配置。
1.SD的默认工作模式是SD。为了简化读写操作,它被配置为工作在SPI模式。首先,STM32F107初始化SDIO总线,将SPI设置为工作在三线制,并将工作频率设置为400kHz以下。
2.打开SD电源,将芯片选择信号CS设置为高电平,等待SD内部存储的初始化完成,这至少需要80个SPI时钟周期。
3.通过降低芯片选择信号CS,启用SD卡。STM32F107向SD卡发送CMD0命令,SD卡进入SPI模式。
4.发送CMD1命令并返回正确的响应0×00后,SD卡初始化成功,数据传输开始。
SD卡的数据传输主要是通过命令交互完成的。SD卡的数据读取过程如下。
1.拉下芯片选择信号,发送CMD17命令后接收R1正确响应。
2.在收到令牌0XFE后,发送开始数据。
3.对收到的数据进行CRC完整性检查。
4.数据接收完毕,拉起芯片选择信号,无SD卡。
在SD卡上写入数据的过程如下。
1.拉下芯片选择信号,发送CMD24命令后接收R1的正确响应。
2.发送开始写入令牌0XFC后,写入数据。
3.发送要写入的数据,然后发送数据块的两个字节的CRC校验码。
4.接收数据写入状态,写入失败后再次写入,写入数据成功结束后,拉高芯片选择信号CS。
原创文章,作者:中国IPv6网,如若转载,请注明出处:https://www.ipv6s.com/basis/application/202209222268.html