嵌入式
返回首页

车载CAN总线记录仪进行大容量存储系统的设计

2016-05-03 来源:eefocus

  引言

  CAN 是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。

  1 系统整体结构设计

  如图1所示,存储系统主要包括以下模块:FPGA主控模块、CAN总线监听控制模块、数据压缩模块、SDRAM控制模块和单片机控制CH376模块。本文主要介绍存储部分,CAN总线监听控制模块不做介绍。图中,点画线内的部分均由FPGA控制。后端SD卡由MSP430单片机控制,SD协议芯片采用CH376。FPGA控制CAN总线控制芯片、CAN总线收发器从总线上获取数据,经过数据压缩模块压缩,存入SDRAM里。这里采用两种存储模式:一种是利用SDRAM存储的可覆盖性进行周期存储,具体存储周期由压缩率和SDRAM容量决定;另一种是直接存储,SDRAM作为缓存。当选择直接存储时,FPGA与单片机通信,利用FIFO给单片机发送数据,单片机控制CH376将数据存入SD卡(存储时间由SD卡容量决定)。

  2 系统硬件设计

  2.1 FPGA主控模块

  FPGA选用Altera公司的Cyclone II系列芯片EP2C5T14418N,它具有内部资源丰富、速度快的特点。上电后,主控模块使能CAN总线监听控制模块、数据压缩模块、SDRAM控制模块。如果选择周期存储,则不使能单片机;若选择直接存储,则让单片机处于低功耗状态,当SDRAM有数据时FPGA把数据发给单片机,并使其控制CH376工作。

  2.2 数据压缩模块



  压缩算法采用LZW算法。该算法是一种基于字典的压缩算法,在数据的压缩过程中会根据输入的数据动态地建立一个字典。后续输入的数据都会在这个字典中进行匹配查找,根据查找是否成功决定压缩编码的输出。LZW压缩算法流程如图2所示。根据该流程,采用C语言设计压缩与解压缩软件以验证算法和硬件压缩的正确性,用Verilog语言编写了压缩代码,利用FPGA内部RAM资源建立字典。LZW压缩算法的硬件逻辑功能框图如图3所示。

  2.3 SDRAM控制模块

  SDRAM(同步动态随机存储器)是一种易失性存储器,以其容量大、价格低的特点得到越来越广泛的应用。但其控制逻辑复杂,需要周期性刷新操作、行列管理、不同延时和命令序列等。图4是SDRAM的控制状态转移图。

  2.4 单片机控制CH376模块

  CH376是一款国产文件管理控制芯片,用于单片机系统读写U盘或者SD卡中的文件。CH376内置了SD卡的通信接口、FATl6、FAT32以及FAT l2文件系统等固件,无需自己编写底层协议,控制简单,提供2 MB、24MHz的SPI设备接口,支持连接到单片机的SPI串行总线。CH376应用连接图如图5所示。

  3 系统仿真与测试

  程序编写完之后,利用Modelsim语言仿真软件对其进行仿真。ModelSim能提供友好的仿真环境,是单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,是FPGA/ASIC设计的首选仿真软件。硬件压缩与存储模块仿真如图6所示。仿真结果表明,硬件压缩与软件压缩完全符合。

  结语

  本文详细阐述了大容量存储系统系统的整体结构、硬件电路设计。利用“FPGA+单片机”作为存储控制器,采用基于LZW算法的数据压缩技术,以SDRAM作为周期存储和缓存,SD卡作为最终存储载体。实验结果表明,该存储系统可以很好地应用于车载信息记录仪。

进入嵌入式查看更多内容>>
相关视频
  • PX4固件二次开发课程

  • RISC-V嵌入式系统开发

  • NuttX Workshop 2024

  • 自己动手写操作系统

  • SOC系统级芯片设计实验

  • 自己动手做一台计算机

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • 开关电源的基本组成及工作原理

  • 带有短路保护系统的5V直流稳压电源电路图

  • 如何构建一个触摸传感器电路

  • 如何调制IC555振荡器

  • 基于ICL296的大电流开关稳压器电源电路

    相关电子头条文章