车载CAN总线记录仪实现大容量存储系统

引言
can 是controller area network 的缩写(以下称为can),是iso国际标准化的串行通信协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。本文利用“fpga+单片机”作为存储控制器,采用基于lzw算法的数据压缩技术,以sdram作为周期存储和缓存,sd卡作为最终存储载体,实现车载can总线记录仪实现大容量存储系统。
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卡作为最终存储载体。实验结果表明,该存储系统可以很好地应用于车载信息记录仪。

紫光展锐表示,2019年将实现5G芯片的商用,年底推出8核5G芯片手机
如何做好质量管理?
三星UHD分辨率OLED显示屏预计二月份批量生产
小米6和苹果8都将在四月份发布,你更期待那个?
四大巨头公开宣战,智能硬件之争被推向高潮
车载CAN总线记录仪实现大容量存储系统
NASA进行月球导航的可能性验证
Reno A系列新品亮相,骁龙710处理器及6.5英寸显示屏
浅谈电机与驱动器的同步测量
小米MIX4将配潜望式三摄镜头 或首次采用折叠屏设计
催化歧化抑制Li-S袋状细胞中的多硫化物穿梭:超越吸附相互作用
用于智慧出行的智能车辆系统
分析师看衰RIM发展前景:缺乏复苏迹象
理想运放的特点是什么
氢燃料电池:助力无人机续航,能让无人机不停地飞两个小时
yunos系统介绍_和安卓有什么区别
瑞萨电子推出功能先进的驱动器IC
MAX16800测试板
如何正确选择电路保护器件
区块链试点已被证明是没有什么变革性的