并完成了软硬件的实现。
本文详细介绍了变M/T测速法和道路滑行试验法的软件设计。软件实现主要通过硬件描述语言Verilog HDL编程;硬件为FPGA黑金开发板及HGAIN S5208-1024BW型增量式光电编码器。以靠轮式光电编码器作为速度传感器,FPGA作为信号处理部件组成的测控系统,充分发挥了FPGA作为一种高密度可编程器件的强大的时序处理能力、极高的运行速度和丰富的内部资源等特点,克服了传统单片机系统中因内部指令运行延时误差导致的测量精度下降。同时达到了简化电路设计、提高系统稳定性和可靠性的目的。
10
第二章 FPGA技术及硬件介绍
2.1 FPGA概述及特点
FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。[11]
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 (3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FLEX系列等。[12]
2.2 Verilog HDL语言介绍
为了在运动控制板卡的FPGA上实现第二章所确定的速度测量算法,本课题
11
采用了Verilog HDL作为算法的开发语言,并采用了Quartus II这款软件作为算法的开发平台,用于算法程序在FPGA上的测试和实验。[13]
Verilog HDL 是在用途最广泛的 C 语言的基础上发展起来的一种硬件描述语言(HDL:Hardware Description Language),是一种以文本形式来描述硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog HDL和VHDL 是目前世界上最流行的两种硬件描述语言,两种HDL均为IEEE标准。
Verilog HDL 是由 GDA(Gateway Design Automation)公司的 Phil Moorby 在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得Verilog HDL成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog HDL,并成立LVI组织以促进 Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995。
[14]
Verilog HDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握。同时Verilog HDL的语法也较自由。基于Verilog HDL以上优点及实验室的开发传统,本课题采用其作为速度测量算法及滑行时间测算在FPGA上实现的开发语言。[15]
2.3 Quartus II介绍
由于本课题应用的数字处理模块采用的是Altera公司的 Cyclone IV 系列芯片,因此程序的运行平台也就理所当然地选择了Altera公司为FPGA开发而设计的Quartus II软件了。
[16]
Quartus II 是一种综合性的PLD开发软件,支持原理图、VHDL、Verilog HDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内
12
嵌自带的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。
同时,Quartus II 支持 Altera 的 IP 核,包含了LPM/Mega Function宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,Quartus II还包含许多十分有用的LPM(Library of Parameterized Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可在Quartus II普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。
Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。Quartus II拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错误。对于使用HDL的设计,可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。在进行编译后,可对设计进行时序仿真。在作仿真前,需要利用波形编辑器编辑一个波形激励文件,用于仿真验证时的激励。编译和仿真经检测无误后,便可以将下载信息通过Quartus II提供的编程器下载入目标器件中了。
在图2-1上排的是Quartus II编译设计主控界面,它显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。在图2-1
13
下排的流程框图,是与上面的Quartus II设计流程相对照的标准的EDA开发流程。[17] 图形或HD编辑 Analysis & Synthesis (分析与综合) Fitte (适配器) Timing Analyzer (时序分析器) 设计输入 综合或编译 适配器 下载 Assembler (编程文件汇编) 编程器 仿真
图2-1 Quartus II设计流程
2.4 开发板介绍
本设计选择的是由黑金动力社区(HTTP://www.heijin.org)研发设计的FPGA黑金开发板。此开发板采用的是Altera公司Cyclone IV系列EP4CE15F17C8芯片,提供了丰富的硬件资源。开发板上使用JTAG接口对芯片进行编程仿真调试,利用AS配置EPCS64 Flash芯片。开发板上通过排针引出了32个I/O口,实验中光电编码器通过杜邦线与开发板I/O口连接,接收编码器信号的同时为编码器供电。
图2-2所示为黑金开发板底板,本设计中用到了开发板的数码管和按键等部分。
2.5 数码管显示原理
七段数码管是利用7个LED外加一个小数点的LED组合而成的显示设备,可以显示0~9十个数字及小数点,使用非常广泛。这类数码管按连接方式分为
14