基于汽车CAN总线的老化测试系统的设计
送检测数据时,按照约定的串行通信协议把一组完整的检测数据组装成一个信息帧发送。为简化设计,该信息帧的发送不采用中断方式,而是采用查询方式完成。为减少 C8051F040的等待时间,结合 C8051F040的时钟频率,串行通信采用了的波特率为 57600bps。经过在现场测试,在此波特率下进行串口通信,没有引起通信的错误。 1.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通信,实现了命令的设置与测试信息的获取。
2 检测模块的设计
老化系统的 10个检测模块完全一样,完成同样的功能。根据分析被测电路板的特性,设计了检测模块实现检测的方法与流程。检测模块首先检测被测电路板是否存在短路故障与断路故障,如果发现被测电路板存在断路故障或断路故障,则不再进一步检测,在与通信模块通信过程发送该故障信息。如果被测电路没有短路故障或断路故障,则检测模块向被测电路板加上额定工作电压与有效的激励信号,使被测电路板正常工作,然后检测被测电路板的输出信号的波形类型及频率,按照设定的检测算法判断被测电路板是否存在其它故障。在 100多个小时的测试过程中,测试环境的温度可以根据用户的设置不断变化或自动变化,检测模块提供的输入激励信号采用多种组合。
3 温控模块设计
在老化过程,被老化的电路板被放置在密闭的柜体中。该柜体内的温度保持在一定的范围,以模拟中电路板的实际工作环境的温度。温控模块通过 CAN总线接收通信模块发来的
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)