基于嵌入式处理器软核Nios II的IP复用技术及应用
就是在FPGA上高度集成,尽量减少芯片外部连线,十分符合汽车行驶记录仪对体积和可靠性的要求。
汽车行驶记录仪应该具备适应用户需求变化的能力,具备良好的可扩展性和升级特性。可编程逻辑器件FPGA以及Nios II的特点使得通过对软件代码的更新就可以完成系统的维护和升级。
3.1 硬件平台的搭建
根据汽车行驶记录仪的功能,将整个系统划分为四个部分,如图1所示。
图1 系统整体框图
图1中各部分的功能如下:
Nios II系统模块:中央控制单元。包含Nios II处理器,Avalon总线,中断时钟以及与外设的接口。控制程序由运行在Nios II CPU上的软件完成,负责对信号的采集,处理和存储操作,并控制通信过程;
信号输入部分:接收外部传感器和开关量信号,并进行处理,将处理后的数据送到Nios II系统模块的数据采集端口(PIO);
存储器部分:存储采集的数据;
通信模块:采用RS-232,负责与分析仪之间的通信。
根据各个部分的功能和开发板的配置(本项目所用的开发板为Stratix 1s10,FPGA的型号为:EP1S10F780C6),需要用到的外围器件有:对模拟输入信号进行模数转换的ADC0809;用于试验中存储数据的 SRAM存储器;用于试验数据备份的Flash存储器;装载软件程序、异常处理的SDRAM存储器;记录仪与分析仪之间的通信接口RS232;用于超速报警的LED;等等。
按照系统的硬件规划,在SOPC Builder需要添加如下IP模块:
l Nios II 32位CPU 软核处理器;
l Interval_timer 中断时钟,每0.2秒发出中断;
l Keydoor_pio 接收钥匙门信号的输入;
l Power_off_pio 接收掉电信号的输入;
l Vehicle_speed_pio 连接车速传感器输出脉冲计数器的输出端;
l Over_speed_alarm_pio连接超速报警LED;
l Rotate_speed_pio 连接曲轴传感器输出脉冲计数器的输出端;
l Initial_pio 系统复位端口;
l Adc_control_pio ADC 0809控制端口;
l Adc_eoc_pio连接ADC 0809转换结束指示引脚;
l Adc_data_pio 连接ADC 0809的8个数据输出引脚;
l Switch_input_pio 接收开关量的输入;
l Sdram 软件程序,异常处理存储器;
l Ext_ram_bus 外部存储器总线;
l Ext_ram 外部RAM接口;
l Ext_flash 外部flash接口;
l Uart通用异步接收发送器,实现RS_232接口;
l Jtag_uart 调试用接口;
3.2 软件实现
汽车行驶记录仪的各种应用功能是由C/C++语言编写的软件程序来完成。在Nios II IDE中新建一个工程时,系统会针对目标硬件平台自动生成硬件抽象层的应用程序接口(HAL API)供程序编写人员调用。
汽车行驶记录仪的工作过程如下:
1.汽车行驶过程中,记录仪每0.2秒采集并记录事故疑点数据;每分钟记录行驶状态数据;在记录的过程中要记录最高车速。
2. 汽车停驶时,记录仪并没有停止工作,但此时不进行数据的采集和记录。在停车过程中,分析仪可以采集记录仪的数据。
3.车辆,驾驶员基本信息采取系统初始化时预置进记录仪的形式。
4.记录仪是否采集数据用钥匙门控制,接收到钥匙门启动车辆的信号,记录仪开始记录;接收到钥匙门的熄火信号,停止记录。
5.记录仪掉电,备份数据,停止工作。
根据上述记录仪的工作过程,软件程序整体流程设计如图2所示。
图2 汽车行驶记录仪工作整体流程图
结论:本文所介绍的新一代汽车行驶记录仪,采用了基于嵌入式处理器Nios II的SOPC设计技术,能够更完整,更精确,更多样化的记录汽车在行驶过程中的各种数据,符合国家标准,取得了较满意的效果。在设计过程中大量复用成熟的IP软核,很大程度上提高了系统的稳定性,大大节省了系统开发时间,充分体现了IP复用技术带来的好处。
参考文献
1 任爱锋 初秀琴 常存 孙肖子. 基于FPGA的嵌入式系统设计. 西安:西安电子科技大学出版社,2004年10月
2 彭澄廉 周博等. 挑战SOC-- 基于Nios的SOPC设计与实践. 北京:清华大学出版社.2004年7月
3王金明 杨吉斌. 数字系统设计与Verilog HDL. 北京:电子工业出版社, 2003年6月
4 GB/T 19056—2003 汽车行驶记录仪国家标准
5朱运航 李雪东. 基于IP核复用的SoC设计技术探讨. 微计算机信息. 2006 年3-2. 2
6 司利增. 汽车计算机控制. 北京 人民交通出
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)
- 嵌入式系统实时性的问题(06-21)
- 嵌入式实时系统中的优先级反转问题(06-10)
- 嵌入式Linux系统中MMC卡驱动管理技术研究(06-10)
- FPGA的DSP性能揭秘(06-16)