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

电气与电子系统是车辆的重要组成部分,其工作状态直接影响车辆的性能。按照传统设计思想设计车辆电气系统时,往往采取堆积各种子系统的途径来提高系统的性能,因此车辆内部各子系统之间单纯面向任务而不考虑与全局的关系。随着子系统及装置数量不断增加,传统设计方法遇到了一系列问题:线路增多、布线复杂、电磁干扰增加、系统可靠性下降、检查维修困难等。为了解决上述问题,现代车辆采用了综合电子系统。总线是综合电子系统的基础,通过总线节点,综合电子系统可采集、使用、分配和共享车内所有电子系统的各种信息,达到弱化矛盾、增强整体功能的目的。can总线由于具有性价比高、可靠性高、实时性好、灵活性强等特点,得到广泛应用。本文针对can总线,提出了一种基于c8051f040的通用总线智能节点的设计方法。
1 总体设计
本文采用c8051f040单片机作为智能节点的主控芯片来设计can总线通用智能节点。智能节点通过现场信号调整、高速数据采集获取该节点下设备的参数,并通过总线收发器将数据发送到can总线,同时根据参数及总线上的其他信息和命令对设备进行控制。通过can总线智能节点,可将车辆电气系统各子系统及设备紧密联系在一起,构成一个实时控制网络,如图1所示。
考虑到智能节点的通用性,经过对车辆各子系统和设备参数进行分析,确定了智能节点主要指标。
①信号输入:8路模拟信号输入,16路数字信号输入,2路脉冲量输入;
②控制信号输出:2路模拟控制信号输出,8路数字信号输出;
③can总线接口:1个can总线接口(支持can2.0a和can2.0b)。
2 硬件设计
can总线节点有两种设计方法,一种采用通用微控制器结合独立can控制器加上收发器,另一种采用集成can控制器的微控制器结合can收发器。本文采用第二种设计方法,选用1片c8051f040单片机作为智能节点的主控芯片。主控芯片内部集成can控制器,兼容can2.0a和can2.0b,配合总线收发器后可完成can通信。此外,主控芯片还使用内部集成的a/d转换器完成对模拟信号的采集,同时向被控设备输出模拟和数字控制信号。主控芯片各种资源的相关情况见参考文献。
智能节点的硬件系统包括:模拟信号采集电路、开关信号采集电路、开关信号输出、lcd电路、can总线电路等。硬件原理框图如图2所示。
2.1 模拟信号采集电路
模拟信号采集电路用于采集受控设备输出的模拟信号。该电路由模拟信号调整电路、spi总线a/d转换器mcp3208、高速光电耦合器2801以及外围电路组成,其电路原理图如图3所示。
模拟信号调整电路可用于测量模拟电压信号、模拟电流信号以及电阻信号。以连接到mcp3208第1通道的电路为例:当r2断开,r4和r1连接适当阻值的电阻时,该电路可用于测量模拟电压信号;当r2断开,r4短路,r1连接采样电阻时,该电路可用于测量模拟电流信号;当r1断开,r4短路,r2连接适当阻值的电阻时,该电路可用于测量电阻信号。r5与二极管d1和d2组成保护电路。r6、r9及c4组成分压和滤波电路。
为了保证系统稳定、可靠工作,控制模块的数字地与模拟地严格分开。因此,模块没有使用c8051f040内部集成的a/d转换器,而是使用外部spi总线a/d转换器mcp3208。mcp3208是12位逐次逼近型模/数转换器,具有片上采样和保持电路。该a/d转换器使用与spi协议兼容的简单串行端口与主控芯片相连,转换速率可高达100 ksps。主控芯片c8051f040是8位单片机,其spi端口要求以8位数据为一组来收发数据。同时,为了与mcp3208通信,将主控芯片spi口设置为主方式,时钟下降沿输出数据,时钟上升沿锁存数据。
设计中,8路模拟信号经调整后与mcp3208的8个模拟输入端相连。a/d转换器的电源与参考电压输入端通过电感l1与5 v电源相连,模拟地通过电感l2与5 v电源地相连,以减小电源扰动对a/d转换的影响。同时,mcp3208的spi接口与单片机之间也使用光电耦合器隔离,从而保证数字地与模拟地严格分开。图中只给出了mosi与miso光耦隔离的原理图,sclk与cs隔离的原理相同。
2.2 开关信号采集电路
开关信号采集电路用于采集受控设备输出的开关信号。该电路由光电耦合器2801及其外围电路组成,其电路原理图如图4所示。当外部开关信号的高电平信号接于开关信号采集电路输入端时,光耦内部发光二极管工作,光敏三极管导通,光电耦合器输出低电平信号。主控芯片通过i/0口扫描光电耦合器输出端即可采集开关信号。r1、r2、c1组成输入分压滤波电路。
2.3 can总线接口电路
由于c805lf040内部集成了can总线控制器,外电路中只要设置总线收发器即可完成通信。can总线接口电路用于完成can总线通信,由总线收发器vp251、光电耦合器0211及外围电路组成,其电路原理图如图5所示。
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控制网络完成了对整个平台设备的综合控制,性能良好。

第一代计算机
年终好价节 盘点最值得入手的4款3D打印机
三星可折叠手机已获得中国无线电管理认证
勒姆森SK-Alpha无线蓝牙耳机评测 外观设计动感时尚做工精致且极其轻巧
电源延迟接通电路,NE555 time-delay circuit
C8051F040的车用CAN总线智能节点设计
将异构块添加到固态电解质中的策略
量子货币是怎么一回事
5mm红外线发光二极管 佰鸿红外发射管的常规参数
老龄化社会催生的跌倒检测报警系统的设计
特斯拉推出货真价实的太阳能“屋顶” 与屋子连成一体
应用于大规模自然驾驶数据的收集和分析
是情怀还是炒作?诺基亚3310复刻版预定量惊人
人工智能如何协助企业来减少资源的浪费
Monster开发出创新的无线数字音频系统
微网与传统电网的区别 微电网的6大关键技术
SpaNSion FL-K闪存
一种用于数据中心的间接液冷系统的设计与性能研究
sdram基础知识总结
德国Sypro Optic公开超小型LED投影仪性能指标