引言
CAN(Controller Area Network,控制器局域网)总线是德国Bosch公司在20世纪80年代初,为了解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议。它的短帧数据结构、非破坏性总线性仲裁技术以及灵活的通信方式适应了汽车的实时性和可靠性要求,倍受汽车生产厂商的青睐。随着汽车电子技术的发展,汽车上的ECU(Electronic Control Unit,电子控制单元)越来越多,如电控燃油喷射系统、防抱死制动系统、防滑控制系统等,相应的数据量也越来越大,如何采用合理的存储方案是记录仪等大容量存储系统的关键。本文详细阐述了大容量存储系统系统的整体结构、硬件电路设计。利用“FPGA+单片机”作为存储控制器,采用基于LZW算法的数据压缩技术,以SDRAM作为周期存储和缓存,SD卡作为最终存储载体。实验结果表明,该存储系统可以很好地应用于车载信息记录仪。
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所示。[page]
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+单片机”的车载CAN总线采集系统。利用FPGA的优势编写了数据压缩和SDRAM控制两个模块,作为存储系统的核心部分;利用单片机控制能力强、简单的特点设计了SD卡存储控制器,作为数据的最终存储介质,以方便用户在计算机上直接读取数据。实验表明,该系统工作稳定,适合长时间记录数据。
关键字:车载通讯 CAN总线 记录仪 大容量存储系统
引用地址:
车载通讯CAN总线记录仪的大容量存储系统设计
推荐阅读最新更新时间:2024-05-02 22:17
如何进行汽车CAN总线开发?
CAN总线和基于CAN总线的诊断完全不是一个概念,CAN总线的硬件也不一定是OBD的硬件。至于“多去4S店问问技师,车厂的人大部分的人都不一定比这些人懂的多”,你让这些技师给我写个能用的ECU CAN接口出来? 以下开始正式答题。
首先,请看这份恒润工程师写的论文《CAN总线系统测试技术》。
里面基本描述了CAN总线开发的流程,但主要侧重于CAN总线的测试,不过也能让你有所了解。
根据你的描述,假设你的要求是:能够基于某嵌入式平台(最好该平台在汽车ECU开发中被广泛使用),根据给定的通信协议(一般由通信矩阵描述),编写CAN接口代码,并能通过相关设备进行简单测试。
推荐的学习步骤为:
[嵌入式]
基于CAN总线的电梯外呼系统方案设计
随着现代社会的发展,科学技术的进步,出现了众多高层建筑和智能建筑。电梯,作为高层建筑内部一种重要的交通工具,其应用规模日益扩大。而作为电梯系统中必不可少的一部分,电梯召唤显示板(简称电梯外呼板)的应用也随之剧增。 电梯外呼板应用于每层楼的电梯门外,供乘客及电梯维保人员使用。电梯外呼板将乘客及维保人员的需求信息通过CAN总线传达给电梯主板,电梯主板接收信息并执行相应的操作。同时,电梯主板将电梯的实时运行信息通过CAN总线传递给电梯外呼板,通过外呼板LED显示出来,供乘客参阅。 AVR单片机具有高可靠性、功能强、高速度、低功耗和低价位的特点,本系统选用了高档ATmega列AVR单片机ATmegal6。它具有先进的RI- SC结构,具有1
[单片机]
韩国初创公司研发360度无缝行车记录仪 可检测驾驶员状态
(图片来源:ArVizon官网) 据外媒报道,韩国一家科技初创公司推出一款360度全方位智能行车记录仪,帮助驾驶员在行车过程中保持清醒。ArVizon公司生产的Vezo 360,内置人工智能机器学习系统,可以检测司机们的睡意,并发出警报,提醒他们保持清醒。该公司宣称,这是唯一能够360度无缝拍摄4K视频的双广角镜头行车记录仪。除此之外,还可以当作普通相机用,可连接4G LTE网络。 这款360度行车记录仪,可以从各个方向捕捉并记录画面,涵盖所有可能的角度,车内情况也可记录。如果发生事故,能提供更加真实的证据。不只是记录犯罪,它首先防止犯罪发生,停车时,记录仪前部的LED环灯始终亮着,起到威慑作用。通过4G网络,如果有人破坏,V
[汽车电子]
基于LabVIEW的电池管理系统监控平台开发
1 引 言 动力电池集成作为电动汽车核心技术之一对电动汽车运行的性能有着决定性的作用, 为保证动力电池安全且高效的应用, 需要对其运行状态进行实时在线的监测并同时对其进行控制, 电池管理系统在动力电池与整车控制之间起到了这样关键的桥梁作用。为保证电池管理系统为电动汽车提供准确可靠的动力电池信息并对电池进行可靠的管理, 需要对电池管理系统自身运行的各项功能进行实时的监测, 以及对电池运行数据进行采集分析, 同时在动力电池系统出现故障时需要对其进行诊断, 基于LabV IEW 的电池管理系统监控平台即是为实现上述需求而开发设计。 LabV IEW ( Labora tory V irtual INStrumentat
[电源管理]
基于CAN总线的多路电源智能监控系统
引言 邮电通信线路的供电电源的稳定性和可靠性对整个邮电通信起着关键作用。因此要求能对供电电源的运行状态进行实时监控,及时发现异常情况和事故隐患,在出现异常和故障时迅速进行诊断并予以修复。
1 CAN总线与485总线的比较
1)485总线的特点
相对于RS一232,RS一485半双工异步通信总线具有通信距离远、通信速率高、成本低等特点,是一种被广泛使用的数据通信总线。但485总线的波特率设置受到单片机的波特率设置的限制,在单片机使用24M晶振的情况下,也只可以设置到9600bps的波特率。485总线的容错和应用层的协议,可以自己通过软件来实现,比较灵活,但是编程的工作就变得复杂。因此在对速度要求高、数据
[嵌入式]
基于CAN总线的分布式铝电解控制系统
摘要: 介绍了基于CAN总线的分布式铝电解控制系统的设计和实现方法,给出了CAN总线的硬件接口电路设计和槽控机逻辑电路结构图。
关键词: CAN总线 电解槽 槽控机
铝电解生产计算机监控系统的形成和发展,已由早期的集中型发展到集散型,又进一步发展到了分布式系统。集中控制采用单机群控技术,比较成功地解决了铝电解生产过程监控系统的设计和应用问题。为了对每台铝电解槽比较复杂的控制进行解析、响应现场实时性强的多种操作、控制程序多任务调度等,同时也为了解决集中控制的脆弱性、实时性差等问题,需要对铝电解槽实施分布式控制方案。现在分布式控制已成为铝行业计算机控制系统的发展趋势。为此,本文介
[工业控制]
如何用Pico示波器进行CAN总线解码分析
Pico示波器具有串行解码的功能,能够对CAN、FlexRay、I²C、I²S、SPI、LIN或UART等串行总线进行解码。Pico示波器比较适合做串行解码,因为它们的深度存储器可以让软件采集较长时间、不间断的数据,尤其是6000系列能够在几秒内采集数千个数据帧存入到512M的样本存储器。下面将介绍如何用一个款Pico示波器进行CAN总线数据解码。 1关于CAN总线解码 1.1 什么是CAN总线? 数据通信时,物理线路上传输的信号是由一系列高低电平组成的,这些高低电平携带了我们所需要的信息,在数据接收端,我们需要将这些物理电平按照原始的编码规则进行解析,从而得到实际的物理信号。 CAN(控制器区域网络)总线是一种在汽车和工
[测试测量]
基于虚拟仪器和CAN总线集成方案实现车用驱动电机测试平台的设计
引言 能源短缺和环保问题促使人们转向开发低污染或者零污染的清洁汽车。燃料电池汽车被认为是最有希望替代内燃机汽车成为下一代公路运输工具的主流。无论是纯电动、混合动力还是燃料电池汽车,都以电动机作为驱动力源。一套适用的车用驱动电机的测试平台对于整车动力系统的开发非常重要。然而目前国内的电机测试平台一般不是针对车用驱动电机而设计,而且自动化程度不高,无法满足测试的要求。因此需要开发一套专用的车用驱动电机测试平台,这对于整车动力系统的设计及优化至关重要。 虚拟仪器技术是近几年在自动化测试和控制领域发展起来的一项新技术。其代表产品为美国NI 仪器公司的LabVIEW ,目前在包括汽车行业的众多领域得到广泛应用。本文结合燃料电池轿车的技术
[测试测量]