基于CAN总线的老化测试系统的设计方案

发布者:乘风翻浪最新更新时间:2016-05-09 来源: eefocus关键字:CAN总线  老化测试系统 手机看文章 扫描二维码
随时随地手机看文章
  1 引言

  汽车上用的电子设备的可靠工作与优良性能关系者驾驶者的生命安全。车用电子设备出厂前要求对设备内部电路板进行长时间老化测试,以检测电路板在高温环境和各种输入信号条件下,是否仍正常工作。只有经过老化测试的电路板才能出厂。由于需要老化测试的电路板数量巨大,要求该系统能同时老化测试许多块被检测电路板,因此设计了本老化测试系统。整个老化测试由 1个通信模块、 10个测试模块、1个温控模块及上微机软件构成。本老化检测系统的系统结构图如图 1所示。

  图 1 系统结构图在本系统中,每个检测模块最多可同时检测 10块电路板,共有 10个检测模块,因此,整个系统在一次老化检测过程可以同时检测100块电路板。检测模块将检测的数据通过 CAN通信送给通信模块,由通信模块通过串行通信发送给上位机,由上位机软件对检测数据进行解析,判断被测电路板的工作状态,显示每一块被测电路板的工作状态,存储每块被测电路板的检测数据,生成历史报表。上位机软件还向操作员提供良好而方便的人机交互界面,操作员通过该界面,可以设置系统老化的时间、温度与测试模式。

  

 

  2 通信模块设计

  通信模块在老化系统中处于核心地位,它完成两方面的任务:一方面,通过串行异步通信与上位机通信,接收用户通过上位机发来的控制命令,向上位机发送检测的数据。另一方面,通过 CAN通信方式与 10个检测模块及 1个温控模块通信,向检测设备发送命令和采集数据。通信模块的硬件系统框图如图 2所示。

  

 

  2.1 硬件设计

  通信模块采用 C8051F040作为核心。C8051F040具有许多优点。

  1).采用高速 8051微控制器内核,流水线结构,大部分指令的执行时间为一或两个系统时钟周期。

  2).有 4352字节的内部 RAM和 64K字节的 FLASH,满足大多数应用设计对存储空间的需要,无需外接存储器,因而了简化系统设计。

  3).配置多种端口,如 SPI、SMBus和 UART。

  4).C8051F040内置标准 CAN控制器,只要外接 CAN通信接口芯片就可以进行通信,方便实现 CAN总线通信,提高通信的可靠性。

  由于 C8051F040集成的是 CAN控制器,要使实现 CAN总线通信,还需要外接 CAN总线收发器,常用的 CAN总线收发器有 Philips公司的 PCA82C250收发器、高速 TJA1050收发器等。本设计采用了 TJA1050高速 CAN收发器,TJA1050具有电磁辐射低、防短路、不上电时对总线无影响等特点。为了进一步提高系统的抗干扰能力,C8051F040的 CAN控制器引脚CANTX、CANRX和收发器 TJA1050之间并不直接相连,而是通过由高速光耦 6N137构成的隔离电路后再与 TJA1050相连,这样就可以很好的实现了 CAN总线上各节点的电气隔离。增加隔离电路虽然增加了节点的复杂性,但它却提高了节点的稳定性和安全性。此外,为避免信号反射,导致通信的可靠性与抗干扰能力下降,甚至无法通信,因此,在 CAN总线的两端需要加有 2个 120欧姆的总线阻抗匹配电阻。由于 C8051F040的端口电压为 3.3V,串行通信电路采用的电平转换芯片为 MAX3232。

  2.2 软件设计

 

  2.2.1 串行通信程序设计

  通信模块一方面通过串行通信接收上位机的命令,主要命令有启动、停止和参数设置命令。用户通过参数设置命令为系统设置不同参数,可以保证老化的正确进行。另一方面通过串行通信向上位机发送检测到的数据。为简化设计,通信模块和上位机的串行通信采用固定长度的信息帧格式,一帧信息包括帧头、有效数据或命令、 CRC16校验位等。通信模块接收上位机信息通过中断方式实现。在中断服务程序中,每接收到一个帧头后,开始接收后面若干字节的信息,经 CRC16校验有效后,就认为是一个有效的信息帧,按照约定的串行通信协议解析该信息帧,取出其中的有效命令。通信模块每收到一个有效命令帧,向上位机发送一帧应答信息。为保证通信正确,上位机软件对通信采用超时机制。

  由于通信模块接收命令和处理命令速度的不同步,为保证上位机发来的每条命令得到执行,需要将有效命令放入到命令缓存队列的队尾。该命令缓存队列采用环形结构,接收的有效命令被放到队尾,而主程序从命令缓存队列的头部取出一条命令,进行后期处理。为方便从命令缓存队列存放或存取一条命令,在实现命令缓存队列时,采用了二维数组结构,即数组的每一个元素为一条固定长度的有效命令。通过选取适当的队列长度,可以保证在正常工作中,保证命令缓存队列不会产生溢出。本设计中,命令缓存队列的数据结构如下:

  unsigned char s_queue[QUEUE_LEN][CMD_PACK_LEN];

  unsigned char s_front;

  unsigned char s_rear;}

  通信模块向上位机发送检测数据时,按照约定的串行通信协议把一组完整的检测数据组装成一个信息帧发送。为简化设计,该信息帧的发送不采用中断方式,而是采用查询方式完成。为减少 C8051F040的等待时间,结合 C8051F040的时钟频率,串行通信采用了的波特率为 57600bps。经过在现场测试,在此波特率下进行串口通信,没有引起通信的错误。

  2.2.2 CAN通信程序设计

  通信模块与 10个检测模块及 1个温控模块通过 CAN总线连接。理论上,在 CAN总线上,任意一个检测模块都可以向通信模块发送检测到的数据,通信控制板模块可以同时向 10个检测模块发送命令。 CAN总线上的发送的数据帧带有 ID字段,ID字段的值决定每个数据帧的优先级,数据帧的 ID值越小,该数据帧的优先级越高。同一时间,在 CAN总线上,不同的节点,不能发送相同 ID值的数据帧。否则会造成通信错误。在本设计中,分配每个检测模块 1个固定的 ID值,可以看作该设备的地址编号。这样不同的设备发出的数据帧具有不同的优先级。这样导致一个问题:如果任由每个检测模块主动向通信模块发送数据帧,会造成 ID值较大的数据帧因优先级低,而不能发出。另外,每个检测模块的设计也采用了 C8051F040的作为控制核心,一方面完成信号检测,另一方面完成与通信模块的 CAN通信。

  在 C8051F040的 CAN控制器内部有 32个缓冲区,每个缓冲区为 8字节,每个缓冲区需要指定一个固定的 ID值。每个缓冲区可以被设置为发送缓冲区或接收缓冲区。当某个缓冲区被设置为发送缓冲区时,该数据帧在底层带有 ID值。当该缓冲区被设置为接收缓冲区时,则仅接收 CAN总线上具有相同 ID值的数据帧。

  在设计中,通信模块的 CAN控制器的 32个缓冲区与 ID值分配如下:第 1至第 10缓冲区为发送缓冲区,对应的 ID值 21至 30。第 1缓冲区用于向第 1个检测模块发送数据帧,依次类推,第 10缓冲区用于向第 10个检测模块发送数据帧。第 11缓冲区为发送缓冲区,对应 ID值为 31,用于向温控模块发送数据帧。第 20缓冲区至第 30缓冲区为接收缓冲区,对应 ID值 50至 60。与此对应,则 10个检测模块的 CAN控制器的 32个缓冲区内的第 1缓冲区均为接收缓冲区,分别对应的 ID值是 21至 30。第 2缓冲区至第 11缓冲区均为发送缓冲区,对应的 ID值 50至 60。即 10个检测模块发送的 CAN数据帧具有相同的 ID值。采用上述分配的原因在于:每个检测模块同时检测 10个被测电路板,每次有 10个数据帧要同时向通信模块发送。前提条件,10个检测模块不能同时向通信模块发送数据。

  通信控制板和检测模块之间通信采用主从应答通信方式。在工作过程中,通信模块从串口命令缓冲队列的队首取出一条命令,进行协议转换,组装成 8字节的 CAN信息帧。其中最后 1个字节值设为前 7个字节的 CRC8校验值,虽然 CAN总线本身具有 CRC校验,在应用层再次进行校验,可以提高通信的可靠性。

  通信模块将该 CAN信息帧通过 CAN内部第 1缓冲区发送,这样 CAN总线上的第 1个检测模块收到该信息帧,该检测模块校验信息帧,如果通过校验,进一步解析该信息帧。如果是参数设置命令,则检测设备提取其中的参数,然后向通信模块发送 1个信息帧作为响应。如果是读数据命令,则将 10个被测电路板的参数组装成 10个 CAN数据帧,分别通过检测设备的 CAN缓冲区的第 2至第 11缓冲区向外发送,该 10个数据帧,仅被总线上的通信模块接收,分别放在第 20至第 30缓冲区。通信模块将这些信息通过串口向上位机发送。按照同样的方式,通信模块与其它 9个检测模块及 1个温控模块完成 CAN通信,实现了命令的设置与测试信息的获取。

  3 检测模块的设计

  老化系统的 10个检测模块完全一样,完成同样的功能。根据分析被测电路板的特性,设计了检测模块实现检测的方法与流程。检测模块首先检测被测电路板是否存在短路故障与断路故障,如果发现被测电路板存在断路故障或断路故障,则不再进一步检测,在与通信模块通信过程发送该故障信息。如果被测电路没有短路故障或断路故障,则检测模块向被测电路板加上额定工作电压与有效的激励信号,使被测电路板正常工作,然后检测被测电路板的输出信号的波形类型及频率,按照设定的检测算法判断被测电路板是否存在其它故障。在 100多个小时的测试过程中,测试环境的温度可以根据用户的设置不断变化或自动变化,检测模块提供的输入激励信号采用多种组合。

  4 温控模块设计

 

  在老化过程,被老化的电路板被放置在密闭的柜体中。该柜体内的温度保持在一定的范围,以模拟中电路板的实际工作环境的温度。温控模块通过 CAN总线接收通信模块发来的信息帧,解析信息帧,得到用户要设置的温度值。温控模块检测柜体温度,控制加热装置加热与否,使柜体的温度达到用户设置的温度。

  温度检测采用 DS18B20完成,在温控模块中设置 4个 DS18B20。将测得的 4个温度值进行算术平均,作为老化柜体内的温度值。温控模块的继电器输出接加热棒及排风风扇。采用了 PID控制算法,使柜体内温度达到用户设置温度。4 上位机软件的设计上位机软件采用 VC++ 6.0设计完成,串口通信部分使用 Windows API函数完成,使用 API函数处理串口灵活高效。上位机软件实时显示每个被测电路板是否正常工作及当前老化柜的温度及老化时间等信息,还提供历史数据查询及参数设置等功能。

  5 结束语

  本老化测试系统,采用 CAN总线作为系统的主要通信方式,采用模块化结构,方便系统的设计与调试,同时,各模块挂在 CAN总线,易于系统实现与扩展。本系统已经应用于生产中,达到了设计要求,运行效果稳定良好。本系统已产生经济效益近 30万元。

  本文作者创新点:本老化系统的检测模块与通信模块采用 CAN总线进行通信,通信稳定,高速;整个系统采用检测模块-通信模块-上位机的三层结构,实现了对大批量被测电路板的检测。

  帧命令后的若干时间没有收到通信模块的应答信息,就再次发送该命令信息,连续 3次没收到应答信息,就可以认为存在通信故障,从而产生报警信息,提示用户处理。

关键字:CAN总线  老化测试系统 引用地址:基于CAN总线的老化测试系统的设计方案

上一篇:基于CAN总线GaAs光电阴极制备测控系统的研究
下一篇:基于CAN总线的并联逆变电源通信监控系统研究

推荐阅读最新更新时间:2024-05-03 00:22

CAN总线技术概况
  1 需要与ESP同步开发的技术——CAN总线技术   1.1 CAN总线技术概况   CAN,全称为“Controller Area Network”,即控制器局域网,是国际上应用最广泛的现场总线之一。它是由德国BOSCH公司从80年代初为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1MBPS。在汽车环境中CAN被设计用于微控制器间通讯,在车载各电子控制装置ECU之间交换信息,形成汽车电子控制网络,可以有效支持分布式控制或实时控制。得益于其通信速率高、容易实现、且性价比高等优点,CAN网络在现代汽车上得到了大量应用,比如
[嵌入式]
基于DSP芯片与CAN总线的电源监控系统设计
  电源技术发展的方向之一是运用电源模块并联技术实现功率合成,组成积木式、智能化的分布式大功率电源系统。为使并联的各个模块协调工作,对分布式电源系统进行可靠的监控是电源技术发展的热点之一。 目前对分布式电源监控普遍采用的做法存在的问题主要在数字化程度不高,速度不够快,精度和可靠性不够高等问题,然而在工业控制中电源控制显的十分的重要。 1电源监控系统总体设计 传统电源系统并联系统多是采用模拟的方法实现模块间的电流均流的,但存在着一些共同的不足:必须有均流控制母线,需要增加专门的均流控制器。且均流母线属于模拟电平信号线,抗干扰能力较弱;难于保证电源模块调制频率的一致。同时,当多个子并联电源单元组成分布式电源系统时,对整个系统进行实
[嵌入式]
两种采用CAN总线进行通信的系统比较
    CAN总线是一种有效支持分布式控制或实时控制的串行通信网络,它可实现全分布式多机系统,且无主、从之分;具有传输速度快、自动解决总线竞争、实时性好、可靠性高、纠错能力强等特点,目前已成为一种国际总线标准。由于can总线具有诸多优点,它的应用范围遍及从高速网络到低成本的多线路网络。在自动化电子领域的汽车发动机控制部件、传感器、抗滑系统、工业自动化、建筑物环境控制、机床、电梯控制、医疗设备等领域得到了较为广泛的应用。   sja1000是一种独立的can控制器,主要用于移动目标和一般工业环境中的区域网络控制。它是philips半导体公司pca82c200can控制器(basiccan)的替代产品,而且它增加了一种新的操作模式
[嵌入式]
基于DTMF和CAN总线的家居安防系统设计方案
   摘要: 介绍了一种以AT89S52单片机为控制核心, 通过DTMF公用电话网和CAN 总线传递的多节点家居安防系统设计方案。本智能家居安防系统集防火、防盗、防燃气为一体, 可实现自动检测与自动语音拨号报警。详细介绍了DTMF收发电路、通话电路和CAN 总线传输等电路。实验结果表明, 本系统功能实用, 信息传递实时可靠,适用于家居安防或其他场所的安防系统。 1 引言   现在,人们对工作和生活环境不仅要求舒适健康、可靠便利, 而且更加看重安全性,并利用安防系统来提高家庭抵御各种意外情况的能力。现在的安防系统可借助计算机技术、IC 卡技术、通信技术等来实现,CAN总线应用于安防系统对家居智能化发展起到了良好的促进作用。CAN
[安防电子]
基于DTMF和<font color='red'>CAN总线</font>的家居安防系统设计方案
采用can总线技术解决电动汽车充电机模块间的通信问题
1、引言 电动汽车(ev)是由电机驱动前进的,而电机的动力则是来自可循环充电的电池,并且电动汽车对电池的工作特性的要求远超过了传统的电池系统,因此电动汽车电池系统电压高而且电流大,所以对电动汽车充电机的要求比较高。 电动汽车充电机需要能够在以分钟计算的时间内完成对电池的充电,而不是通常的以小时来计算。以一个电池容量为30kwh的电动汽车蓄电池来计算,如果在15分钟内将它充满,那么充电功率将达到120kw,假设电动汽车的充电电压在200~400v,那么相应的他的充电电流将会达到300a。如此大的充电电流,如果仅用单一的电源模块很难实现。面对充电机的日益大容量化,并联均流是一个很好的解决方法。因为软件均流具有成本较低,扩容能力强,
[嵌入式]
采用<font color='red'>can总线</font>技术解决电动汽车充电机模块间的通信问题
CAN总线布线规范
  所谓磨刀不误砍柴功,合理的总线布局布线等于成功的一半,那么总线布线时如何选取 导线 ?如何选取布线拓扑结构呢?   一、 导线选型   1、 导线类型   CAN总线布线时必须采用 双绞线 ,且需采用特征阻抗约120Ω的双绞线,在通信距离较长或电磁环境恶劣的情况下最好用 屏蔽双绞线 ,这样可以有效抑制电磁干扰,保证可靠的通信。   2、 线长与直流 电阻   当客户的通信距离较长时就不得不考虑线路损耗了,如果使用的线缆太细,导线的直流电阻太大。那么在总线起始端发出的信号在经历漫长的路途之后到达末端的节点时信号将大幅衰减,最终导致通信失败。那么线长和传输线截面积,线长与通信波特率又有什么关系呢?我们总结如下图1所示。   CAN
[嵌入式]
基于CAN总线的智能超声液位变送器设计
  O 引言   现场总线是用于现场仪表与控制系统和控制室之间的一种全分散、全数字化、智能、双向、互连、多变量、多点、多站的通信网络。CAN(Controller Area Network,控制器局域网)是德国Bosch公司在80年代初为解决现代汽车中大量的控制与测试仪器之间的数据交换而提出的一种串行数据通信协议。CAN总线是国际上应用最广泛的现场总线之一,由于采用了许多新技术以及独特的设计,与一般的通信总线相比,CAN总线的数据通信具有突出的性能,且可靠性、实时性和灵活性强。   近些年来,随着超声技术研究的不断深入,再加上其具有的高精度、无损、非接触等优点,超声的应用变得越来越普及。超声波液位测量有许多优点:检测元件可以不与被
[单片机]
基于<font color='red'>CAN总线</font>的智能超声液位变送器设计
突破汽车联网传统应用,医疗、能源将成为CAN总线技术新领地
CAN总线刚出现的时候,是作为轿车内的控制器连网手段。在非营利组织CiA (CAN in Automation)的推动下,CAN正在向更多的应用领域渗透。 虽然汽车仍将是CAN技术的自留地,但支持者预期许多新的领域可能应用这种“嵌入网络”。正如CiA总经理Holger Zeltwanger所言,一旦CANopen协议完成标准化,厂商就可以利用该标准“把它们的应用与产品扩散到全新的市场”。有些人把CAN技术称为“嵌入网络”。 在纪念成立15周年的活动期间,CiA在慕尼黑召开的一个记者会上介绍了标准化的进展情况,以及CAN阵营的变化。虽然CiA会员数量在过去三四年里一直停滞在400个左右,但2007年其会员急剧增加。“在过去几年里
[焦点新闻]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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