微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > 基于CAN总线的老化测试系统的设计方案

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

时间:01-23 来源:互联网 点击:
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函数处理串口灵活高效。上位机软件实时显示每个被测电路板是否正常工作及当前老化柜的温度及老化时间等信息,还提供历史数据查询及参数设置等功能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top