4 基于FPGA的汽车电子设计
4.1 系统设计
系统FPGA器件选用Ahera公司的 Cyclone II系列的EP2C35F672C8N,该系统设计实现密码锁和指纹识别、GPS导航、GSM通信、汽车防盗自动报警、倒车影像和车内摄像、收音机、车载电视、USB数据传输等功能,除此之外还设置CAN总线控制器接口,便于后续系统开发。该系统设计采用可编程的片上系统SoPC(System On Programmable Chip)技术将处理器、存储器、I/O口等模块集成到一个可编程器件,构成一个可编程的片上系统。用这种方式设计的系统在规模、可靠性、体积、功耗、功能、性能指标、上市周期、开发成本、产品维护及硬件升级等多方面实现最优。使用Quartus II SoPCBuilder和Nios II IDE 3个软件组合完成系统设计和调试。设计过程中,对于相对简单的控制(如密码锁模块)可直接在Quartus II编写Verilog代码,仿真优化,引脚分配最后生成模块;对于相对复杂的模块控制,在Quartus II中建立工程,然后打开Sopc Builder组建系统,图1为采用SoPC Builder搭建的硬件系统原理图。系统组建完毕进行地址分配和系统仿真,最后生成系统模块,然后在Nios II IDE环境下进行系统编程完成系统软件开发,最后在Quartus II中连线并分配引脚,仿真,测试,编译生成下载文件,通过JTAG接口下载到FPGA器件,完成系统开发。
4.2 系统模块设计
4.2.1 密码锁和指纹识别
这两个模块主要用于加强汽车的防盗安全系数。两模块可同时启用,也可单独启用,当单独通过其中之一验证,不能对系统做任何更改,只有两模块同时通过验证才能对此系统设置。
密码锁模块采用0~9中的任意6个数字作为系统密码,模块设计原理如图2所示。此模块主要包括键盘。密码验证和结果输出。其中键盘通过在Quartus II环境下采用Verilog语言编程实现,其程序由时钟分频、键盘扫描和键译码转换组成。而密码验证和结果输出两模块当用户通过键盘输入密码时,在 LCD上以“*”显示密码以及输出结果,完全通过Verilog编程实现。
图3为指纹识别模块设计原理图。通过指纹采集模块采集指纹,把数据通过串口输入到FPGA器件进行图像预处理,转换成具有一定灰度级的数字图像,然后提取特征点。与指纹库指纹图像相对比,最后输出对比结果。该模块采用Nios II处理器设计实现。
4.2.2 GPS导航模块
构建GPS导航系统需GPS天线、接收模块、存储器、处理器、相应的控制按键和地图LCD显示设备。为了提高开发周期,系统直接采用GARMIN公司的GPS25 OEM开发板,它与FPGA开发板的连接电路如图4所示。
此GPS模块经MAX232器件转换串口信号电平,然后连接到开发板的串口,实现硬件系统的搭建。系统软件设计是在NiosIDE环境下用C编程读取 GPS信息,提取GPS坐标信息并导入到存入存储器中的地图软件,通过LCD控制模块在LCD中显示导航图像。从而实现GPS导航模块设计。