微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > C8051F040的车用CAN总线智能节点设计

C8051F040的车用CAN总线智能节点设计

时间:12-05 来源:互联网 点击:

CAN总线接口电路采用VP251作为总线收发器,该收发器主要用于单端信号与差动信号之间的相互转换。此外,单片机最小控制电路与总线收发器之间采用光电耦合器隔离,以提高系统工作的可靠性。光电耦合器采用2片高速光耦O211,1片用于接收,1片用于发送。
2.4 开关信号输出电路
开关信号输出电路用于向外部被控对象输出驱动信号。该电路由光电耦合器2801组成,其电路原理图如图6所示。当开关信号输出电路接收到低电平信号时,光耦内部发光二极管工作,光敏三极管导通,光电耦合器输出低电平信号。

2.5 电源电路
电源电路用于向其他功能电路供电。电源由输入滤波器CXDB2、电源模块PWB2405、三端稳压器AMS1117及外围电路组成,其电路原理图如图7所示。

为了限制传导干扰,电源模块使用电磁干扰(EMI)滤波器CXDB2来抑制电源输入中的传导噪声。输入电源经过滤波后送入2个独立的电源模块PWB2405中获得3组5 V电源。5V-2为模拟信号输入与A/D转换电路提供电源,5V-1向CAN总线收发器供电,5VG为模拟电源,地。VCC为采用5 V电压的数字电路提供电源,同时向三端稳压器模块AMSlll7提供电源。AMSlll7将VCC转换为2组3.3 V电源,3.3 V-1为C8051F040内部A/D转换器提供电源和参考电压,3.3V-2为单片机最小控制电路提供数字电源。

3 软件设计
3.1 主程序

主程序流程如图8所示。智能节点上电后,主程序首先完成系统初始化,主要内容包括:初始化I/0口、A/D转换器、SPI总线、LCD、CAN总线等,然后进入循环工作状态。程序采用扫描方式完成模拟信号采集和开关信号采集。采集得到的数据经过滤波、补偿等方式处理后,通过CAN通信子程序发送到CAN总线。此外,循环工作过程中,系统还会通过LCD子程序显示相关信息。

3.2 信号采集程序
智能节点信息采集量较大,如何实现对多种、多路信号实时采集是系统设计的关键。电气系统典型信号主要包括模拟信号、开关信号等。
采集模拟信号时,利用外部12位A/D转换器,采用软件查询的方式采集模拟信号并进行数字滤波处理。由于所要采集的模拟信号较多,因此必须实现采集通道动态切换;采用定时扫描C8051F040数字I/O口的方法采集数字信号。
3.3 CAN通信程序
C8051F040内部的CAN控制器集成了用于接收及发送的所有硬件,与使用外部CAN控制器相比,可以大大减少占用CPU的时间。CAN总线接收采用中断方式完成,发送采用查询方式完成。CAN总线接收和发送的流程如图9所示。

4 结论
本文提出了一种基于C8051F040单片机的CAN总线智能节点设计方案。通过该智能节点能够实现设备的数据采集与控制,而且根据需要加入适当算法后,还可以实现智能控制和故障诊断等功能。该智能节点已应用于某型车辆的模拟教学平台中,通过由16个节点组成的CAN控制网络完成了对整个平台设备的综合控制,性能良好。

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

网站地图

Top