基于CAN总线的车辆虚拟仪表数据采集系统设计

发布者:CrystalBreeze最新更新时间:2011-09-29 关键字:CAN总线  车辆虚拟仪表  数据采集 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  现在总线技术有很多种。从成本上讲,RS-232/485的成本都比CAN低;速度上讲,工业以太网等也都不错。为什么唯独CAN在汽车电子中得到亲睐?

  从成本上来说,CAN比UART、RS-232/485高,但比以太网低;从实时性来说:CAN的实时性比UART和以太网高,为了保证安全,车用通信协议都是按周期性主动发送,不论是CAN还是LIN,对实时性要求高的消息其发送周期都小于10ms(每辆车都有好几条这样的消息),发动机、ABS和变速器都有几条这样的消息;从可靠性来说,CAN有一系列事故安全措施,这是UART和以太网都不具备的,多点冗余也是UART(点对点传输)和工业以太网(数据传输距离短)难于实现的,所以CAN出现后,由于价格的原因,最初应用得最多的地方并不是汽车,而是对成本不敏感的工业控制和医疗设备,如:工业上的DEVICENET、SDS、CANOPEN,医疗上MRI等。至于工业以太网的产生,其背景与个人PC的普及是分不开的,现在工业控制中的PCBASED就是一个例子,但汽车控制是不能用一台PC的,要达到汽车控制的要求,成本上也不容许。而LIN的传输过程只有20Kbps,显然不能作为独立的汽车总线控制要求,一般它只配合CAN在汽车上做辅助之用。

  车辆是一个特殊的应用环境,车辆自动化程度的不断提高给车辆仪表提出了更高的要求,传统的动磁式仪表已经越来越不适应现代智能交通工具发展的需要,而虚拟仪表因其具有交互、智能和便于扩展等特点而受到广泛重视。本课题要求为某车设计一套虚拟仪表,上位机采用基于RTOS开发环境的PC104嵌入式微机。车辆环境数据采集系统作为虚拟仪表的一个最重要的子系统,要求完成数据的采集和通信功能,而且具有较高的适时性和可靠性。本文根据作者体会介绍了用 Philips公司的高性能单片机P80C592设计车辆数据采集系统的方法,重点介绍了系统设计和CAN通信编程。

  2 系统简介

  根据设计要求,本系统主要完成传感信号的处理以及车辆的工况数据采集并将数据通过CAN总线送上位机,要求处理16路模拟信号、4路频率信号和32路扩展 IO信号,采集参数主要有:发动机机油压力、水温、油温、转速、车速、变速箱油压、油箱油量以及电网电压、车门状态、转向灯指示、车体超宽指示以及车内环境示警等,信号的形式有电压、频率、以及开关量信号,信号频率范围为0~ 6KHZ.

  2.1 系统硬件结构设计

  图1给出了系统硬件结构图。系统采用的核心器件为Philips公司的8位高性能微控制器P80C592,它与标准80C51完全兼容,其主要特性有:内建能与内部RAM进行DMA数据传送的CAN控制器;4个捕获端口和2个标准的16位定时/计数器;8路模拟量输入的10位ADC变换器;2×256字节在片RAM和一个Watch Dog.P80C592的在片CAN控制器可以完全实现CAN协议,减少了系统连线,增强了诊断功能和监控能力。数模转换器件选用12位的 AD1674A,分辨率为0.02%,转换时间为25uS.为了提高系统抗干扰能力,在模-数电路之间和系统到CAN总线之间采用了光电隔离,并且将模拟电路和数字电路分别设计成两块独立的PCB板,两板通过栈接组成一个完整的系统。

 

图1 系统硬件结构图

  硬件工作过程:温度、压力以及电压信号,经相关处理电路送至16路模拟开关MAX306EP,经电压跟随电路输入AD1674A进行A/D转换,为了提高可靠性和稳定性,系统没有采用微控制器的在片ADC变换器。在程序控制下对16路信号顺序选通,采集得到的数据在CAN控制器内完成CAN协议包的封装,由发送端口经光电隔离和发送器传送到CAN总线上。油量信号经光电隔离、整形和分频后送P80C592的捕获端口进行频率测量,转速车速信号经整形后被分为两路,一路经分频电路去单片机捕获端口,另一路经F/V转换后送ADC采样。对ADC和I/O扩展端口的访问通过GAL译码器的编程逻辑输出来控制。

  2.2 频率信号测量

  频率信号测量是本系统的一个设计难点,在本课题中,对于不同的车型所选用的传感器不同,因此对转速和车速频率信号的处理可以有两种方法:一是当选用输出频率范围为0-100HZ的接触式传感器时,采用CS289频压转换芯片,将频率信号转换成2.2~7.2V的电压信号然后送ADC采集;二是当选用输出信号频率范围为0~3000HZ的非接触式传感器时,通过单片机捕获端口用脉冲计数的方法进行频率测量。为提高系统的通用性,可以同时采用了这两种方法,具体采用哪一种方法得到的数据通过上微机软件设定。图2为F/V转换电路图。

 

  图2 F/V转换电路图

  CS289是美国Cherry公司生产的单片高精度专用转速测量芯片,在-400至+850温度范围内都能有很好的线性输出。它不仅可以用于F/V、V /F转换,还可以用作函数发生器以及动磁式仪表驱动。由其构成的F/V转换电路外围元件少,调试容易,工作稳定可靠。图2所示,整形后的转速脉冲信号经滤波网络和限幅输入CS289第10脚,电压信号由第8脚输出,经滤波消除可能的工频干扰后送采样电路。本电路中,输出电压和输入频率的关系由下式决定:上位机据此线性关系解算出频率值。为保证F/V变换具有足够高的线性度,应合理选取的值。

  3 系统软件设计

  系统软件主要完成三项任务:1、传感器信号的采样与解算;2、上位机请求数据时将采集的数据传送给上位机;3、接收到上位机自检命令时,上传数据完成传感器信号到标准信号的切换。程序流程如图3所示。

 

  图3 程序流程如图

  主程序采用模块化编程。具有故障自诊断功能是虚拟仪表的重要特征之一,为此数据采集系统中设计了3组标准信号,分别是频率信号、电压信号和电阻信号,自检模块的主要功能是:当接收到上位机发出的自检命令后,微控制器断开传感器输入,标准信号被接入数据采集系统,将得到的数据上传到上位机与标准值进行比较,以确定故障点是传感器系统还是数据采集系统,若自检通过则表示数据采集系统工作正常。数据发送模块主要实现对上位机的数据通信,本系统设计为每隔20毫秒将数据分组发送到上位机。数据转存模块完成各种数据写入在片主RAM的操作,为了区分数据类型,需要在数据块中添加相应的类型标识码,该码由用户层协议自行定义。A/D采样模块控制系统采样过程,并将每一路12位采样数据分两次读入指定的RAM单元中。

  频率信号处理模块完成对捕获端口频率的测量,其基本思想是:在被测信号的一个周期时间内,2次脉冲下降沿分别启动和停止定时器T2计数,两次计数值之差的倒数即为频率值,本模块只需计算差值,频率值由上位机解算。[page]

3.1 CAN控制器编程

  本系统软件设计的一个难点在于关于CAN的编程。本系统处理的CAN程序模块有:CAN初始化子程序、CAN中断程序和CAN数据收发子程序。

  CAN 是Controller Area Network 的缩写,是国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应"减少线束的数量"、"通过多个LAN,进行大量数据的高速通信"的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO11898 及ISO11519 进行了标准化,现在在欧洲已是汽车网络的标准协议。

  CAN总线的基本特点:

  *CAN协议废除了传统的站地址编码,采用数据通信数据块进行编程,可以多主方式工作。

  *CAN采用非破坏性仲裁技术,当两个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响地继续传输数据,有效避免了总线冲突。

  *CAN采用短帧结构,每一帧的 有效字节为8个(CAN技术规范2.0A),数据传输时间短,受干扰的概率低,重新发送的时间短。

  *CAN的每帧数据都有CRC效验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境中使用。

  *适用于现场设备与仪表之间或者与其上位设备间的通信网络,可以统一组态,相互操作,控制功能分散到最底层。

  *CAN节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其它操作不受影响。

  *CAN可以点对点、一点对多点(成组)及全局广播集中方式传送和接受数据

  *CAN总线直接通讯距离最远可达10km/5Kbps,通讯速率最高可达1Mbps/40m.

  *采用不归零码(NRZ-Non-Return-to-Zero)编码/解码方式,并采用位填充(插入)技术。

  CAN控制器是以CPU存储器映像外围设备出现的。P80C592的CPU与CAN控制器之间的数据传输通过4个特殊功能寄存器来实现,即: CANADR、CANCON、CANSTA和CANDAT,通过这四个特殊功能寄存器,CPU可以访问CAN控制器内部的任一寄存器(地址为0~29)和 DMA逻辑。表1给出了这四个SFR的功能简述,其中CANCON和CANSTA的读写操作含义不同。

表1 SFR功能简述

 

  CAN控制器初始化(图4)是CAN通信中一个非常重要的子程序,程序是否合理将直接影响整个通信过程。CAN控制器的初始化首先必须通过置位CAN控制寄存器的"复位请求"位,置位"复位请求"并不影响正在进行的一个收发作业,特别需要注意的是,只有当复位请求被置位时,CAN内部地址为4-8的寄存器方可被访问,在复位操作结束后必须将该位置0以保持所进行的设置并使CAN返回工作状态。

 

  图4 CAN通信中一个重要的子程序

  P80C592和其在片CAN控制器都具有中断寄存器,必须注意两者的区别。CAN中断子程序(图5)首先读CAN中断寄存器(IR)以判断中断类型,据此转入相应的操作。如果接收缓存器满而另一个报文的首字节又需要被存储时,数据超限位被置位,此时应清除超限并释放接收缓存,然后重新发送数据请求。在数据接受子程序中当数据被转入RAM区后,应及时释放接受缓存器,以便为接收下一帧数据做好准备。

 

  图5 CAN中断子程序

  数据发送子程序见图6.CAN控制器向总线发送数据时,首先将在片主RAM中数据存放的首地址写入CANSTA,然后读取CANSTA.6的值(读 CANSTA的操作其实是对CAN控制器内部状态寄存器的读操作,CANSTA.6是错误显示位,当至少有一个总线错误计数器计数达到CPU告警极限时,该位将被CAN控制器置位。),若检测出错,则执行CAN初始化子程序,若正常,则继续检测接收状态和发送缓冲器状态,若发送条件满足则在CANADR中写入发送缓存器地址并置位DMA控制位,DMA传送随即被启动,数据场由RAM拷贝到发送缓存器,置发送请求位后数据开始发送。

  4 结语

  用高性能的P80C592和AD1674A数据采集模块组成车辆环境数据采集系统具有较高的性价比,目前该系统已投入试用阶段,运行状况良好。CAN总线非常适合分布式控制或适时控制的串行通信网络,本课题只涉及了数据采集,如果在此基础上扩展车辆辅助控制和重要数据备份功能,系统将会有更广阔的应用前景。

 

关键字:CAN总线  车辆虚拟仪表  数据采集 引用地址:基于CAN总线的车辆虚拟仪表数据采集系统设计

上一篇:冗余CAN总线远程数据采集系统设计与研究
下一篇:基于MCP2515的多路CAN总线接口及驱动程序设计

推荐阅读最新更新时间:2024-05-02 21:37

如何抗干扰——CAN总线抗干扰的6条“军规”
随着CAN总线在电动汽车、充电桩、电力电子、轨道交通等电磁环境比较恶劣的场合应用越来越多,信号干扰的问题已经严重影响到使用者对CAN总线的信任。究竟如何才能抗干扰?本文展示了致远电子CAN总线抗干扰的6条“军规”。 在汽油车时代,CAN总线遇到的干扰少之又少,即使有一些继电器和电磁阀的脉冲,也不会有很大影响,稍微进行双绞处理,完全可以实现零错误帧。 可是到了电动汽车年代,逆变器、电动机、充电机等大功率设备对CAN的影响足以中断通讯,或者损坏CAN节点,如图1图2所示,就是被逆变器干扰的CAN波形。 图1 干扰前 图2 干扰后 面对干扰,各个汽车厂、零部件厂,测试诊断设备的厂商都纷纷研究抗干扰之“妙方”
[汽车电子]
如何抗干扰——<font color='red'>CAN总线</font>抗干扰的6条“军规”
基于ARM的在线更新机制的设计实现
0 引言 分散型控制系统中的现场终端一般由控制器和各检测模块构成,它们之间通过一定的通信网络建立数据的交换链路。这种系统具有高可靠、开放性、灵活性、协调性、易维护等优点。然而,该分散型系统也具有终端数量多、分布范围广的特点。一旦终端系统软件存在缺陷或用户提出新的功能和指标要求时,其升级、维护的工作量和成本都非常大。本文针对上述情况,设计了一种方便、灵活、快速及稳定地对MCU节点进行在线更新的机制。基于LPC11C24微控制器组成的CAN网络,采用IAP编程技术(In Application Programming),实现了对目标节点MCU的软件更新功能。 1 LPC11C24单片机和CAN总线 恩智浦半导体(NXP)推出业界首款内嵌
[单片机]
基于ARM的在线更新机制的设计实现
CAN总线及其在PLC上的应用
引言 数字电子信息技术的飞速发展对全世界的制造业日益起着巨大的推动作用,使得制造业的各种设备的设计越来越电子化,数字化,网络化,ECCT产品是艾默生CT推出的一款专门应用于纺织行业的具有CAN总线协议的专用PLC控制器,它不仅满足了纺织的基本I/O工艺需求,更是把CAN总线协议完美地融合进去,使用户很轻易地把系统的各种设备通过CAN协议进行连接,本文介绍了CAN总线功能在艾默生CT PLC上的应用。 CAN总线基础知识简介 CAN总线(CONTROLLER AREA NETWORK,控制器局部网络)由德国BOSCH公司首先提出来的,CAN总线是目前工业界广泛应用的总线。其特点简要归纳如下: 1)CAN控制器工作于多主站方式
[工业控制]
<font color='red'>CAN总线</font>及其在PLC上的应用
基于CAN总线的嵌入式汽车电子故障检测系统设计
汽车产业是国家的支柱产业,电子产业也是国家的支柱产业,作为汽车产业和电子产业的交集,汽车电子零部件产业的兴衰与国民经济息息相关。目前,我国汽车的产量逐年攀高,民族汽车品牌在自身不断成长的同时,也迫使国际汽车公司或合资公司不得不降低生产成本,实施汽车电子零部件国产化战略,这就为我国汽车电子产业化的发展提供了良好的机遇。 前装汽车电子产品除了其复杂的功能要求外,对于实时性、安全性、可靠性和环保性等的要求都非常严格,并且汽车厂商都具有自己相关的执行检测标准和生产流程规范,因此为前装汽车电子产品配套研发相应的故障检测系统是非常必要的。 1 系统设计方案 1.1 设计依据 CAN总线作为一种串行汽车总线,具有结构简单、可
[汽车电子]
基于<font color='red'>CAN总线</font>的嵌入式汽车电子故障检测系统设计
基于LabVIEW与单片机串口的数据采集系统
1LabVIEW部分设计 1.1VISA简介 LabVIEW提供了功能强大的VISA库。VISA(Virtual Instrument Software Architecture)——虚拟仪器软件规范,是用于仪器编程的标准I/O函数库及其相关规范的总称。VISA库驻留于计算机系统中,完成计算机与仪器之间的连接,用以实现对仪器的程序控制,其实质是用于虚拟仪器系统的标准的API。VISA本身不具备编程能力,它是一个高层API,通过调用底层驱动程序来实现对仪器的编程,其层次如图1所示。VISA是采用VPP标准的I/O接口软件,其软件结构包含三部分,如图2所示。 与其他现存的I/O接口软件相比,VISA的I/O控制功
[单片机]
基于LabVIEW与单片机串口的<font color='red'>数据采集</font>系统
闪存K9F3208W0A在放射性勘查仪数据采集器中的应用
    摘要: 文章针对野外测量数据存储方面的具体需要,介绍了采用大容量、低功耗、高可靠性的闪速存储器K9F3208W0A设计放射性勘查仪数据采集器的硬件电路和软件设计方法。同时介绍了K9F3208W0A闪存芯片的性能、特点和应用方法。     关键词: 闪速存储器 数据采集器 编程 K9F3208W0A 1 引言 放射性勘查仪是广泛应用于放射性矿藏普查和勘探、地球化学寻矿、放射性地质填图、放射性找水和环境监测的物探仪器。作为放射性勘查仪的重要组成部分,数据采集器的主要任务是采集和存贮核辐射仪探头输出的探测信号,并在野外测量结束返回基地后,再将存贮的数据传送给专用工作站或通用微机进行综合分析处理,或寻入数据
[测试测量]
数据采集终端系统设备
2023年8月8日,北京中盛新能科技有限公司正式推出数据采集终端系统设备。 该设备主要应用于道路数采系统,具备同时采集车辆总线信号、车内外场景动态音视频、车辆位置数据等功能,并且能够通过自动/手动触发功能记录对应的场景信息,协助工程师复现问题场景及试验数据;并且设备支持远程监控功能,可实现远程管理和远程试验的目的。 一、硬件配置: 二、数据分析软件: 采集的原始报文数据可以通过行业主流的CANOE软件进行数据分析,也可以通过随设备提供的inVIEW软件进行本地分析,实现CAN总线参数、行驶轨迹、视频、音频、开关量等多种数据类型同步回放。软件具有极大的灵活性,可以自定义分析流程和参数对应关系,自动生成各种
[嵌入式]
<font color='red'>数据采集</font>终端系统设备
具有高可靠性的高速连续数据采集的设计与实施方法
    摘要: 从硬件和软件设计两个方面介绍保证PCI总线的高速连续采集系统的数据完整性、可靠性的实用关键技术及具体实施方法、应用案例,列出了大量实用的设计技术及应用程序。该设计先进、可靠,在实践中得到了应用。     关键词: 高速数据采集 可靠性和完整性 关键技术 设计 在许多测量与控制领域,如电力谐波测试、声光信号处理、现代雷达系统等元均要求在线进行小波数字信号分析与处理,其中最为关键的是如何利用香农(Shannon)采样理论将外部信号毫无失真地采集并转化为计算机所用的数字信号。目前较为流行的方法是提高A/D的转换速率和计算机的处理速度。同时,提高数据的传输速率也是较为关键的。本文以高速数转换芯片AD16
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved