差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
智能接近系统设计 [2018/10/23 16:00] anran [实验原理] |
智能接近系统设计 [2020/01/18 21:56] (当前版本) gongyu |
||
---|---|---|---|
行 1: | 行 1: | ||
- | =====智能接近系统设计===== | + | ### 基于接近式传感器的智能接近系统设计 |
- | ----- | + | |
- | ====实验任务==== | + | --- |
+ | |||
+ | #### 实验任务 | ||
* 任务:智能手机通话,手机靠近耳朵后关闭屏显,基于 STEP-MAX10M08核心板 和 STEP BaseBoard V3.0底板 完成智能接近系统设计并观察调试结果 | * 任务:智能手机通话,手机靠近耳朵后关闭屏显,基于 STEP-MAX10M08核心板 和 STEP BaseBoard V3.0底板 完成智能接近系统设计并观察调试结果 | ||
行 7: | 行 9: | ||
* 解析:通过FPGA编程驱动接近式传感器APDS-9901,获取接近距离信息,然后根据距离信息编码控制8个LED灯按能量条方式点亮。 | * 解析:通过FPGA编程驱动接近式传感器APDS-9901,获取接近距离信息,然后根据距离信息编码控制8个LED灯按能量条方式点亮。 | ||
- | ====实验目的==== | + | #### 实验目的 |
本节实验主要学习I2C总线工作原理、协议及相关知识,掌握FPGA驱动I2C设备的原理及方法,了解输入输出型端口的模型及控制实现,最终实现智能接近系统的总体设计。 | 本节实验主要学习I2C总线工作原理、协议及相关知识,掌握FPGA驱动I2C设备的原理及方法,了解输入输出型端口的模型及控制实现,最终实现智能接近系统的总体设计。 | ||
行 14: | 行 16: | ||
* 完成智能接近系统设计实现 | * 完成智能接近系统设计实现 | ||
- | ====设计框图==== | + | #### 设计框图 |
根据前面的实验解析我们可以得知,该设计可以拆分成两个功能模块实现, | 根据前面的实验解析我们可以得知,该设计可以拆分成两个功能模块实现, | ||
行 21: | 行 23: | ||
{{:9-Top-Down层次设计.png?500|Top-Down层次设计}} {{:9-模块结构设计.png?500|模块结构设计}} | {{:9-Top-Down层次设计.png?500|Top-Down层次设计}} {{:9-模块结构设计.png?500|模块结构设计}} | ||
- | ====实验原理==== | ||
- | ===I2C总线介绍=== | + | #### 实验原理 |
+ | |||
+ | ##### I2C总线介绍 | ||
I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。 | I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。 | ||
行 57: | 行 60: | ||
常见的I²C总线依传输速率的不同而有不同的模式:标准模式(100 Kbit/s)、低速模式(10 Kbit/s),但时钟频率可被允许下降至零,这代表可以暂停通信。而新一代的I2C总线可以和更多的节点(支持10比特长度的地址空间)以更快的速率通信:快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。 | 常见的I²C总线依传输速率的不同而有不同的模式:标准模式(100 Kbit/s)、低速模式(10 Kbit/s),但时钟频率可被允许下降至零,这代表可以暂停通信。而新一代的I2C总线可以和更多的节点(支持10比特长度的地址空间)以更快的速率通信:快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。 | ||
- | ===APDS-9901模块连接=== | + | ##### APDS-9901模块连接 |
STEP BaseBoard V3.0底板上的接近光传感器APDS-9901模块电路图如下(上拉电阻未显示): | STEP BaseBoard V3.0底板上的接近光传感器APDS-9901模块电路图如下(上拉电阻未显示): | ||
行 67: | 行 70: | ||
{{:9-APDS-9901内部框图.png?600|APDS-9901内部框图}} | {{:9-APDS-9901内部框图.png?600|APDS-9901内部框图}} | ||
- | ===双向端口设计=== | + | ##### 双向端口设计 |
可综合Verilog模块设计中必须有端口存在,端口有输入input,输出output,双向inout,对于输入和输出型端口我们很好理解,我们来了解一下双向端口信号的处理。 | 可综合Verilog模块设计中必须有端口存在,端口有输入input,输出output,双向inout,对于输入和输出型端口我们很好理解,我们来了解一下双向端口信号的处理。 | ||
行 94: | 行 97: | ||
</code> | </code> | ||
- | ===APDS-9901驱动设计=== | + | ##### APDS-9901驱动设计 |
通过前面的了解,我们对于整个I2C总线的驱动原理有了一定的了解,接下来我们根据APDS-9901的芯片手册了解其驱动方法及参数要点。 | 通过前面的了解,我们对于整个I2C总线的驱动原理有了一定的了解,接下来我们根据APDS-9901的芯片手册了解其驱动方法及参数要点。 | ||
行 335: | 行 338: | ||
</code> | </code> | ||
- | ===系统总体实现=== | + | ##### 系统总体实现 |
程序中我们做了一个简单的滤波处理,为了保证数据的有效,将瞬间变化太大的采样数据舍弃,程序实现如下: | 程序中我们做了一个简单的滤波处理,为了保证数据的有效,将瞬间变化太大的采样数据舍弃,程序实现如下: | ||
行 396: | 行 399: | ||
- | ====实验步骤==== | + | #### 实验步骤 |
- 双击打开Quartus Prime工具软件; | - 双击打开Quartus Prime工具软件; | ||
- 新建工程:File → New Project Wizard(工程命名,工程目录选择,设备型号选择,EDA工具选择); | - 新建工程:File → New Project Wizard(工程命名,工程目录选择,设备型号选择,EDA工具选择); | ||
行 407: | 行 410: | ||
- | ====实验现象==== | + | #### 实验现象 |
将设计加载到FPGA,手指在接近光传感器上下移动,观察核心板上8个LED灯的状态,APDS-9901还是环境光传感器,有兴趣的同学可以尝试一下其他应用。 | 将设计加载到FPGA,手指在接近光传感器上下移动,观察核心板上8个LED灯的状态,APDS-9901还是环境光传感器,有兴趣的同学可以尝试一下其他应用。 | ||
{{:9-实验现象.png?600|实验现象示意}} | {{:9-实验现象.png?600|实验现象示意}} |