一、设计要求
1、使用FPGA完成PM2.5传感器驱动;
2、使用FPGA完成温湿度传感器的驱动;
3、获取PM2.液晶1602上实时显示5的数据和温湿度传感器的数据;
二、硬件描述
1、FPGA普通使用IO本设计的开发板如下图所示。开发板可输出5V供电方便传感器供电;可以有专门的液晶接口;鉴于囊中的害羞,我在这里用的液晶是LCD液晶显示模块1602。
2、PM2.5传感器采用ZPH02 粉尘传感器,实物图如下,可以买到宝藏。传感器的使用uart串口协议可以驱动,电平TTL。使用开发板开发时,必须确定FPGA的IO电平属性。
3.温湿度传感器使用实物图如下,数据传输协议如下uart协议,电平TTL。选择传感器的时候要结合开发板的引出的IO选择管脚电平。
4.使用液晶模块lcd带字库的1602液晶模块,实物图如下,
三、FPGA结构设计
1、顶层设计如下:
内部结构如下:
主要包括三个模块,lcd1602显示模块,PM2.5驱动模块,温湿度传感器驱动模块;
四、FPGA程序设计
1、PM2.5模块设计
1、根据PM2.可以看出传感器的数据传输协议和工作原理,FPGA只需通过串口接收传感器的数据,无需发送指令PM2.由于传感器会间隔1秒主动发送一帧数据信息,FPGA波特率默认为9600,传感器非常简单。
2、FPGA接收数据的处理部分代码如下,通过通信命令格式,将接收到的数据取第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