C8051F040的车用CAN总线智能节点设计
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控制网络完成了对整个平台设备的综合控制,性能良好。
收发器 相关文章:
- 藏在系统核心芯片中的DRAM控制器(12-10)
- 面向信号处理与通信系统的下一代设计流程(08-22)
- 为什么应该阻止静电放电?(05-28)
- 快速通往量产的四个步骤:利用基于模型的设计开发软件定义无线电(02-29)
- 一文打尽嵌入式系统设计中常用总线和接口(05-18)
- FPGA系统设计原则和技巧之:FPGA系统设计的3种常用IP模块(06-05)