一、设计要求
1、使用FPGA完成PM2.5传感器的驱动;
2、使用FPGA完成温湿度传感器的驱动;
3、获取PM2.5的数据以及温湿度传感器的数据,在液晶1602上完成实时的显示;
二、硬件描述
1、FPGA使用带有普通IO的开发板,本次设计开发板如下图所示。开发板能够输出5V供电,便于给传感器供电;能够有专门的液晶接口;鉴于囊中羞涩,在这儿我是用的液晶是LCD1602液晶显示模块。
2、PM2.5传感器采用的是ZPH02 粉尘传感器,实物图如下,某宝就能够买到。该传感器的采用uart串口协议就能够驱动,电平TTL。大家在使用开发板进行开发时,一定要确定FPGA的IO电平属性。
3、温湿度传感器使用的是DL10-MTTL-V05-S1使,实物图如下,数据传输协议为uart协议,电平TTL。选择传感器的时候要结合开发板的引出的IO管脚电平进行选择。
4、液晶模块使用lcd1602带字库的液晶模块,实物图如下,
三、FPGA结构设计
1、顶层设计如下:
2、内部架构如下:
主要包含三个模块,lcd1602显示模块,PM2.5驱动模块,温湿度传感器驱动模块;
四、FPGA程序设计
1、PM2.5模块设计
1、根据PM2.5传感器的数据传输协议,以及工作原理可知,FPGA只需要通过串口进行传感器的数据接收即可,不需要发送制定的指令给PM2.5传感器,因为传感器会间隔1秒主动发送一帧数据信息出来,FPGA只需要接收即可,波特率默认9600,很简单的传感器哈。
2、FPGA接收数据的处理部分代码如下,由通讯命令格式,将接收到的数据取第3、4个字节即可,
2、温湿度传感器设计
1、温湿度传感器默认参数如下,
温湿度数据获取命令如下图,
2、FPGA指令发送实现部分,如下图,
3、FPGA数据接受处理部分,如下图,第3、4字节为温度值,第5、6字节为湿度值。
在显示的时候将数据划分开。
3、LCD1602驱动显示
1、LCD1602这个液晶很常用,在这儿就不详细说明了,有疑问请参见下方源码。
五、功能展示
1、下图液晶显示PM2.5的值为0.5%,室温25.6℃,湿度68.2%。
使用打火机靠近,温度有提升至30.6℃。
六、总结
该系统较为基础,需要注意的地方有如下几点:
1、uart波特率的匹配;
2、传感器的电平属性一定要和FPGA开发板的IO匹配,选型期间一定要注意。
七、附录
工程源码链接如下,
https://download.csdn.net/download/FDL_AQ/85291940https://download.csdn.net/download/FDL_AQ/85291940