基于FPGA超声波测距设计

2017-12-15 04:00曹雪伟
无线互联科技 2017年23期
关键词:测距编程超声波

马 凯,曹雪伟

(1.南京科技职业学院,江苏 南京 210048;2.高等教育出版社有限公司,北京 100039)

基于FPGA超声波测距设计

马 凯1,曹雪伟2

(1.南京科技职业学院,江苏 南京 210048;2.高等教育出版社有限公司,北京 100039)

文章介绍了一种超声波测距控制器设计方案,使用Microsemi公司的FPGA芯片搭建了测距系统硬件电路,然后利用Verilog HDL语言进行编程、仿真和调试,实现了预期任务要求。

FPGA;超声波;测距

利用超声波技术可以直接测量近距离目标,纵向分辨率高,适用范围广,方向性强,并具备不受光线、烟雾、电磁干扰等因素影响,且覆盖面较大等优点。目前,超声波测距已普遍应用在移动机器人定位、汽车导航、无人机蔽障等领域[1]。

随着IC设计技术的不断发展和提高,现场可编程门阵列(Field Programmable Gate Array,FPGA)开始应用到超声波测距系统中,FPGA强大的在线可编程特性能够实现一个复杂测距系统的硬件设计、逻辑运算、软件编程、仿真和调试功能。

FPGA是一种可以现场编程的集成电路芯片,它的逻辑门电路数是万量级别,常用的基本逻辑门电路或者更复杂的组合功能电路都可以用简单地编程来实现。FPGA设计通常指定用硬件描述语言(Hardware Description Language,HDL),系统设计人员可以方便地连接、设置逻辑功能块,可靠实现控制要求的逻辑函数,而且很多的FPGA器件内部配置基本存储单元或者留存完整的数据存储区域[2]。

本文介绍了超声波测距系统中用FPGA来实现对超声波传感器的收发控制及数据处理。考虑系统中对输入输出接口的需求和FPGA产品的代表性,主控芯片选用了Microsemi公司PA系列的FPGA,型号为APA300PBGA456I。

1 PFGA芯片简介

1.1 性能简介

APA300是Microsemi公司PA系列芯片,拥有可再编程Flash技术、非易失性存储器技术特性,允许开发人员移植现有的FPGA设计流程和开发工具,设计新系统。PA系列PFGA器件的特点包含:(1)多电压(3.3 V,2.5 V)工作环境;(2)双时钟系统,每个时钟系统都有锁相环、延迟线、乘法器/除法器;(3)两个差分输入对(LVPECL),用于接收时钟或数据;(4)支持高达72 k的两端口嵌入SRAM和290个可用的I/O口;(5)上电即工作[3]。

1.2 结构特点

PA系列的FPGA内部结构主要由基本逻辑单元(Logic Unit)、随机寄存器(Random-Access Memory,RAM)、嵌入式FIFO块、输入输出接口(I/O口)、可编程连线等几部分构成。器件内部结构如图1所示。

图1 FPGA器件内部结构

1.3 内部资源及特点

芯片内部包含8 kB逻辑单元,每个逻辑单元可以通过不同的Flash开关互连,配置为一个三输入逻辑功能块。而且Flash开关分布于整个设备,能够提供非易失性,能够重构互连编程,可以实现更复杂的输入输出逻辑功能。

芯片内部有嵌入式的两端口SRAM块,自建FIFO/RAM控制逻辑,配置内容有同步或异步操作、双口RAM的设定、定义的深度和宽度、奇偶校验等。

APA300 FPGA另外一个显著特点是内部SRAM编程元件采用上电即通ISP闪存开关技术。APA300提供大量的I/O接口,而且电源电压是可配置,所有I/O接口内部都设计了静电保护电路,能够充分满足系统要求。I/O接口的输入、输出、双向缓冲或三态驱动等复用功能,可以通过编程设置实现[4]。

2 系统硬件设计

系统主要包括FPGA运算控制器模块和超声波收发模块及接口电路。FPGA通过定时运算产生脉冲信号,微弱的脉冲信号经接口电路放大后,驱动超声波收发模块的发射换能器发射出检测声波,经被测物反射后的回波信号,由超声波接收模块滤波放大后,再由FPGA检测回波信号,经计算后得到距离[5],系统组成框如图2所示。

图2 系统组成框

2.1 超声波测距原理

回波检测法中超声波传感器的发射换能器向外发射超声波,超声波在介质中传播,遇到障碍物后则会反射产生回波,超声波传感器的接收换能器接收回波,因此由超声波的传播速率和往返时问可确定超声波传感器与物体的距离。

2.2 外围芯片选用

Microsemi公司PA系列的FPGA芯片APA300PBGA456I,其原理图使用EDA软件设计,设计时按信号特性分为5个Bank,原理图信号清晰,可以提高设计的准确度。原理图块特性如表1所示。表1中Bank1和Bank2为I/O输入输出接口;Bank3为JTAG口;Bank4电源,Bank5为GND。

表1 原理图块特性

为满足FPGA的正常工作,需要提供不同等级的电压,对I/O接口进行信号隔离和驱动放大。电源方面采用MSK的电压转换芯片MSK5230,它可提供2.5 V和3.3 V稳定输出电压,满足了FPGA 3.3 V和2.5 V的供电要求;I/O接口芯片为74LVC4245A,该芯片是3.3 V供电,能够将输入信号转换为3.3 V信号,可实现I/O接口的信号隔离和驱动放大。

3 系统软件设计

软件设计方面,软件总体架构是采用主流的从上到下(Top-Down)的模块化设计方式,编程上利用广泛通用的Verilog HDL语言进行[6]。

3.1 模块化设计

FPGA软件功能模块框如图3所示。其中各个功能模块在FPGA内部并行运行,模块间的数据传输是通过寄存器完成。

FPGA主要软件模块的主要任务和具体功能如下。

(1)主模块即主程序,主要任务是实现对整个系统I/O接口信号的定义,同时定义各个功能子程序模块,明确主模块和各子模块之间关系。

(2)时序发生器模块主用任务是为其他模块提供时钟信号,它是整个FPGA工作的基础,能够确保系统各模块同步工作。

图3 FPGA软件功能模块框

(3)高速计数器模块主要任务是高速定时或计数,其功能是采样超声波驱动信号发出和回波信号返回时差间的脉冲数据,是测距运算的先决条件,FPGA的运行速度越高,在回波信号到达时刻捕获越准确,则测距精度就越高。

(4)波形发生器模块的任务是产生驱动脉冲,它是在时序发生器的作用下,分频处理得到符合超声波换能器工作的驱动脉冲信号。

(5)回波识别模块的任务是实时准确捕获回波信号到达时刻,是系统稳定可靠的关键,可以结合检波电路通过极值算法实现。

3.2 算法流程

具体的算法流程如4所示,首先上电复位系统初始化,各相关寄存器初始状态清零,FPGA各个子模块并行运行,然后时序发生器按照控制要求产生超声波驱动信号,同时高速计数器开始工作,随后等待回波信号中断请求,“是”则停止高速计数器计时,然后进行距离计算,“否”则继续等待回波信号到来。

图4 控制器软件程序算法流程

3.3 软件编写、仿真、实现

根据FPGA模块化设计思想和算法,本系统采用Libero Soc集成开发环境(Integrated Development Environment,IDE)开发,Libero Soc IDE软件设计功能完备、强大,支持Verilog HDL和VHDL输入,原理图输入,综合工具生成网表,测试向量文件的生成,仿真工具布局布线和程序下载等。

本系统设计选用Verilog HDL硬件描述语言进行编写,软件程序共分6个模块,即主模块、时序发生器模块、高速计数器模块、波形发生器模块、回波识别模块、距离计算模块。

主要过程如下:首先在Libero Soc IDE开发软件下选择合适的FPGA器件类型和规模,然后进行软件程序代码的编写设计,程序代码编写界面如图5所示。

程序编写完成后,进行Synplify综合生成网表,则程序会自动检查代码格式编写情况,会有出错或报警提示,如有Error进行及时改正,直到软件综合完成,程序综合界面如图6所示。

完成网表生成后,就可以编写testbench(测试代码)进行Modelsim前仿真,前仿真是复杂程序内部逻辑实现的关键,能够查看程序中各寄存器、状态机的工作状态,也是程序功能正确实现前提,程序仿真界面如图7所示。

测试仿真后,定义“PIN”管脚号(.gcf文件),然后布局布线及生成烧写(.stp)文件,布局布线和生成烧写文件如图8所示。

最后通过Flash Pro软件进行烧写文件下载,板上调试程序下载到FPGA内,再进行板上调试以达到预设功能。

4 结语

本文用FPGA实现对超声波传感器的收发控制及数据处理功能,系统硬件电路设计可靠,软件采用自下而上的模块化设计,通过Libero软件开发实现功能,为超声波ASIC芯片设计和开发提供了一定的参考价值。

图5 程序代码编写界面

图6 程序综合界面

图7 程序仿真界面

图8 布局布线和生成烧写文件

[1] 杨军,张伟平,赵嘎.面向sopc的fpga设计与应用[M].北京:北京科学出版社,2012.

[2] 杨恒、卢飞成.FPGA/VHDL快速工程实践入门与提高[M].北京:北京航空航天大学出版社,2003.

[3] 王诚.FPGA/CPLD设计工具-XilinxISE5.x使用详解[M].北京:人民邮电出版社,2003.

[4] 李戈,孟祥杰.国内超声波测距研究应用现状[J].测绘科学,2011(10):60-62.

[5] 杨兆飞,司洋.基于FPGA超声波测距系统的改进[J].电子测试,2012(8):39-41.

[6] 王红云,姚志敏,王竹林,等.超声波测距系统设计[J].仪表技术,2010(10):47-49.

Design of ultrasonic distance measuring based on FPGA

Ma Kai1, Cao Xuewei2

(1.Nanjing Polytechnic Institute, Nanjing 210048, China; 2.Higher Education Press Co., Ltd., Beijing 100039, China)

This paper introduces a kind of ultrasonic distance measuring controller design, using Microsemi’s FPGA chips build a distance measuring system hardware circuit, then utilizing Verilog HDL language to programme, simulation and debugging, which achieving the desired task requirements.

fi eld programmable gate array; ultrasonic; distance measuring

江苏省“青蓝工程”资助项目;项目编号:2017。南京科技职业学院科研项目;项目编号:NHKY-2017-11。

马凯(1978— ),男,江苏邳州人,讲师,硕士;研究方向:机电一体化,检测技术。

猜你喜欢
测距编程超声波
编程,是一种态度
编程小能手
纺织机上诞生的编程
类星体的精准测距
基于Niosll高精度超声波流量计的研究
浅谈超声波测距
蝙蝠的超声波
超声波流量计的研究
超声波流量计在兰干渠上的应用
基于PSOC超声测距系统设计