官方论坛
官方淘宝
官方博客
微信公众号
点击联系吴工 点击联系周老师
您的当前位置:主页-old > 新闻中心 > FPGA技术教程 > 温度检测 >

温度检测工程模块划分总结与分析(一)

发布时间:2021-04-15   作者:王斌 浏览量:

 

本文为明德扬原创文章,转载请注明出处!

很多朋友在学习FPGA的时候会发现模块划分很令人头大,今天我就通过明德扬温度检测工程来与大家分享一下本人的划分思路。

明德扬温度检测工程是基于FPGA的一个实用项目,可以在明德扬的MP801开发板上进行实验学习。本工程功能虽小,但基本上涉及了FPGA的常见功能,如接口传输、指令解析、外设的控制等,是比较好的入门工程。

 

一、模块划分要点总结

1、列出项目的功能要求(客户提出的产品功能要求)

 

2、画出硬件的系统结构框图(添加外设)

 

3、框图中每个外围接口都对应有一个接口转换模块

接口转换模块的作用是将外围器件的接口时序转为通用的接口时序,或者将通用接口时序转换为外围器件接口时序,这样使得FPGA内部其他模块不用再关心外围接口的时序了。

MDY规范通用接口时序:

l data以及对应的vld,传输单个数据格式

l MDY的包文格式,din,vld,SOP,EOP,MTY,ERR

l wren,waddr,wdata;rden,raddr,rdata,rdata_vld

 

4、考虑是否涉及指令系统(操作码+数据格式)

上位机,例如PC,ARM,DSP或者其他的器件,只涉及到一个接口,但是却有很多指令或者命令功能要发送,因此就需要一个指令系统。

指令系统一定会涉及到命令、地址和数据。这种情况,肯定会有一个“寄存器解析模块”,根据命令、地址和数据,改变相应的寄存器的值。

 

5、考虑外围器件是否涉及寄存器配置

项目中有某些外设,上电工作前需要进行配置才能按要求工作。因此需要对外设内部寄存器进行读写,这一流程是通过FPGA来进行配置。

遇到这个情况,使用MDY推荐的模块寄存器配置结构:

寄存器配置表模块+寄存器读写配置模块+外设配置接口时序转换模块

 

6、根据实际情况,增加、补充或者拆分,优化对应模块,随时调整

原则:根据接口信号,看模块间是否方便对接。接口就决定了模块功能。所以在这一层的调整,一定要清楚接口的定义。

 

7、考虑是否涉及多路进一路出,要用FIFO

调度FIFO要考虑自身带宽能否满足多路一起突发发送时的数据量情况。如果带宽不满足,就要要输出给上游模块RDY信号。此时RDY信号有效取决于自己设置FIFO的Almost Full信号。如果带宽满足则不必设RDY信号。

 

8、考虑是否涉及到速率匹配问题,要加上RDY信号或者FIFO

首先考虑与外围器件通信的接口上是否需要rdy信号(FPGA内部运行频率往往与设接口速率不一致),然后考虑FPGA内部模块间数据带宽是否不一致,有等一等的情况。

 

 

二、温度检测案例分析

接下来根据上面的总结的要点,通过实际项目案例来分析一下FPGA内部功能模块是怎样划分的。这里我们选取已经做过的温度检测项目,接下来按照上面总结的模块划分步骤,一步步完成模块初步划分!

1.列出项目的功能要求

    本项目功能要求:上位机通过发送一系列不同命令给FPGA,FPGA接收到指令后执行各个指令对应的操作。同时将DS18B20采集到的温度值实时在数码管上实时显示出来并传给上位机。要求上位机可以发送命令设置报警温度上限和下限值。当温度值超过温度上限或者下限,蜂鸣器就开始鸣响。可以发送命令关闭或打开数码管显示。

功能分析:

a) 上位机发送命令给FPGA(开关数码管显示、开关蜂鸣器、复位温度传感器、开启温度转换,读转换后温度值、设置报警温度上限下限值);

b) 读写DS18B20;

c) 数码管显示;

d) 数码管显示开关控制;

e) 计算温度值;

f) 将计算后的温度值发送给上位机;

g) 设置温度上限、下限;

h) 蜂鸣器开关控制。

 

2.画出硬件系统结构框图

根据步骤1总结出的功能要求,找到除FPGA外需要哪些外围器件。

外围器件总共需要四个:

a) PC

b) 数码管

c) 温度传感器DS18B20

d) 蜂鸣器

 画出系统框图如下所示:

 

3.框图中每个外围接口都对应有一个接口转换模块

首先要思考PC与FPGA通信需要哪种方式?

上位机PC与FPGA通信既有发送也有接收,由于PC发送命令给FPGA的速度慢于FPGA回传温度值给PC的速度,所以上位机PC与FPGA通信接口速度取决于FPGA回传温度值给PC的速度。

 

查阅手册如上图所示,得知DS18B20转换一次采集的温度值需要750ms。所以FPGA与上位机通信接口速率大于750ms就不会丢传数据。因此选用串口作为上位机与FPGA的通信接口足够满足要求了。

a) 数码管段选位选接口模块: 完成数码管位选和段选的输出

b) DS18B20单bit转换接口模块:DS18B20是单总线协议,只支持1bit数据传输,所以需要将MDY规范接口转换为1bit

c) 蜂鸣器开关使能接口模块:完成蜂鸣器开关使能


 

将串口接口转换模块功能细分为“串口接收串转并模块”和“串口发送并转串模块”,进一步转化为符合MDY规范的接口。如下图所示:

 

未完待续》》》

   拓展阅读