为代替传统繁杂的汽车线束, 汽车CAN 总线应运而生。以CAN 总线为基础, 结合51 系列单片机技术, 研究开发了汽车前照灯的CAN 总线多路传输系统。按照整体结构进行了CAN 总线传输节点的软件设计, 设计出并口CAN 适配卡, 通过编写动态链接库( DLL) ,向上层应用软件提供读/ 写函数接口, 实现了上位机与下位机的通信。该设计使得传统线束大大简化, 可靠性得到了极大提高,有效节约了线束安装空间。
0 引言
CAN( Cont ro ller Ar ea Netw ork) 数据总线是一种适用于汽车环境的汽车局域网。它属于多路传输系统中的一种, 是由德国博世( Bosch) 公司在20 世纪80 年代初为解决现代汽车中众多的控制单元与测试仪器之间的数据交换而应用开发的一种串行通信协议。目前,在汽车设计领域中, CAN 几乎成了一种必须采用的技术手段, 尤其是在欧洲, 如奔驰、宝马、保时捷等都采用CAN 总线实现汽车内部控制系统与各检测和执行机构间的数据通信。此外, 美国汽车厂也将控制器联网系统逐步由Class2 过渡到CAN。CAN 国际标准只定义了物理层和数据链路层, 实际应用中, 一些厂家和公司又定义了相应的应用层规范, 使CAN 的应用更加广泛和可靠。
CAN 信号传输介质为普通双绞线, 通信速率最高可达1 Mbps/ 40 m, 直接传输距离可达10 km/ 5 Kbps。
CAN 的信号传输采用短帧结构, 每一帧的有效字节数为8 个, 因而传输时间短, 受干扰的概率低, 由于其采用CRC16 的校验方式, 误码率仅为3 10- 5 。当节点严重错误时, 具有自动关闭的功能, 以切断该节点与总线的联系,使通信线上的其他节点机通信不受影响, 具有较强的抗干扰能力。控制器局部网( CAN) 属于现场总线范畴,它是一种有效支持分布式控制或实时控制的串行通讯网络。
CAN 作为汽车环境中的微控制器通讯, 在车载各电子控制装置ECU 之间交换信息, 形成汽车电子控制网络。比如: 发动机管理系统、变速箱控制器、仪表装备、电子主干系统中, 均嵌入CAN 控制装置。但是CAN 总线多路传输系统还没有实际应用到汽车前照灯。传统的汽车系统布线工作量很大, 一旦线路发现故障, 诊断工作十分困难,同时由于数据传输线很长, 导致传输速度下降,可靠性、实时性差等问题。CAN 总线技术作为最有前途的现场总线之一, 依靠其可靠性高,适应环境能力强, 纠错能力突出, 性价比高等特点成为解决这一问题的新选择。正是基于这种研究背景, 本文研究并开发出了基于CAN 总线的汽车前照灯多路传输系统。
1 CAN 控制器SJA1000
1. 1 SJA1000 的硬件结构和功能
CAN 的通信协议主要由CAN 控制器完成。CAN控制器主要由实现CAN 总线协议部分和微控制器接口部分组成。不同型号的CAN 总线通信控制器, 实现CAN 协议部分电路的结构和功能大都相同,而与微控制器接口部分的结构及方式存在一些差异。SJA1000是一种独立CAN 控制器, 是PHILIPS 公司首推新一代控制器。支持CAN 2. 0B 协议。
SJA1000 的主要特性如下:
器件管脚和电器特性均和PCA82C200 兼容; 时钟频率24 MHz; 支持CAN 协议2. 0 标准位速率可达1 Mb/ s;同时支持11 位标识符和29 位标识符; 扩展的接收缓冲器( 增至64 B, PCA82C200 只有20 个字节) ; 对不同微处理器的接口; 可编程的CAN 驱动器输出。
SJA1000 具有两种工作模式: 基本模式和Peli 模式。其中基本模式符合CAN 协议2. 0A 标准, 和PCA82C200 兼容。设置时钟分频器( CDR: Clock divider Reg ister) 的最高位模式选择位( CDR. 7) ,可在基本模式和Peli 模式之间切换。
1. 2 CAN 收发器82C250 的硬件结构和功能
82C250 是CAN 控制器与物理总线间的接口, 最初主要应用于汽车高速控制场合。它向总线提供了差动的发送能力, 向CAN 控制器提供了差动的接收能力。
82C250 主要特性如下: 与ISO/ DIS11898 标准兼容; 高速( 最高可达1 Mb/ s) ; 具有抗汽车环境下的瞬间干扰, 保护总线能力; 降低射频干扰( Radio FrequencyInterference, RFI) 的斜率( slope) 控制; 热防护; 防护电池与地之间发生短路; 低电流待机方式; 某一个节点掉电不会影响总线; 可有110 个节点相连接。
2 系统硬件电路图设计
2. 1 汽车前照灯线路示意图
汽车前照灯传统供电线路示意图和汽车前照灯多路总线传输系统示意图如图1, 图2 所示。
2. 2 系统硬件电路原理图
CAN 智能节点电路图的设计是本系统的核心, 下面给出详细的CAN 节点硬件电路设计。
图3 是汽车汽车前照灯的CAN 总线多路传输系统的硬件电路原理图。从图中可以看出,电路主要由三大块组成。第一块是前照灯的开关电路部分, 主要包括微控制器89C51 单片机、独立CAN 通信控制器SJA1000, CAN 总线收发器82C250; 第二块是上位机,包括CAN 总线适配卡以及数据显示部分; 第三块是前照灯的用电器电路部分,主要包括的也是微控制器89C51 单片机、独立CAN 通信控制器SJA1000, CAN总线收发器82C250。需要说明一点的是,本系统用4 个发光二极管来代替具体的汽车前照灯中的近光灯,远光灯, 示宽灯, 雾灯。
微处理器89C51 负责SJA1000 的初始化, 通过控制SJA1000 实现数据的接收和发送等通信任务。
SJA1000 的AD0 ~ AD7 连接到89C51 的P0 口,SJA1000 的连接到89C51 的P2. 0, P2. 0 为0 时,CPU 片外存储器地址可选中SJA 1000, CPU 通过这些地址可对SJA1000 执行相应的读/ 写操作。SJA1000的ALE 分别与89C51 的引脚相连, 接89C51 的, 89C51 也可以通过中断方式访问SJA1000。
82C250 与CAN 总线的接口部分采用了一定的安全和抗干扰措施。82C250 的CANH 和CANL 引脚各自通过一个5 的电阻与CAN 总线相连, 电阻可起到一定的限流作用, 保护82C250 免受过流的冲击。
CANH 和CANL 与地之间并联了2 个30 pF 的小电容, 可以起到滤除总线上的干扰和一定的防电磁辐射的能力。82C250 的Rs 脚上接有一个斜率电阻, 电阻大小可以根据总线通信速度适当调整, 一般在16~ 140 k 。
2. 3 微处理器的选择
汽车电子控制系统的实时性是建立在微处理器的高速运算功能上的, 因此微处理器的选择是系统设计的重要环节, 与一般的电子设备相比较,汽车电子控制系统的微处理器特点在于经常处理大量的输入和输出信号, 而且要实现高精度和实时控制,因此必须能够同时进行多种独立的操作。为了满足这些要求,微处理器必须具有高速计算、高速实时输入和输出以及多种中断响应等特性。由于通用电子计算机电子控制系统的控制功能较为简单,所以大多数电子控制单元( ECU ) 中主要使用8 位微处理器。在选择微处理器上, 不仅要注重满足技术要求,还要综合考虑成本和实用因素, 不应片面追求微处理器的高速和高位数。
本研究是对按钮开关的逻辑信号进行处理, 对微处理器的控制核心CPU 的要求不高, 选用AT89C51 即可满足要求。
3 汽车前照灯CAN 总线多路传输系统的软件设计
多路传输系统的软件设计包括CAN 节点的初始化、CAN 报文的发送和接收、PC 机与CAN 适配卡的通信。
3. 1 初始化
系统节点初始化包括: 自检、CAN 通讯初始化、A/ D初始化、各种系统标志初始化以及看门狗初始化等。其中89C51 的CAN 控制器初始化流程如图4所示。
3. 2 CAN 子节点收发软件设计
子节点主要功能是实现对按键信号进行采集, 并响应主控节点命令, 通过CAN 总线向主控节点发送检测点信息。在软件设计上,子节点采取命令应答方式, 即等待命令—分析命令类型—发回相应数据。
系统中子节点在上电复位后主要工作为:
( 1) 对系统进行初始化;( 2) 向主控节点发出加入请求;( 3) 主控节点接受请求, 并给该子节点一个网络编号;( 4) 等待主控节点命令;( 5) 根据命令将监测点的相关数据通过CAN 总线发送给主控节点。
因此, 子节点的主要流程如图5 所示。
[page]
3. 3 主控节点软件设计
主控节点软件采用事件驱动方式, 事件信号由各种中断信号产生; CPU 在进入中断处理程序后, 仅仅判断事件类型,设置相应的事件标志位, 并不对事件做任何处理; 主控节点主程序将循环读取事件标志, 并转入相应的事件处理程序。
主控节点具有两种工作模式。一种是系统中存在上位机, 上位机作为命令发出点, 主控节点处于被动控制模式。此时,主控节点的工作是通过RS 232 接收上位机的命令, 分析命令的目的节点, 并将命令通过CAN网络发送给目的节点; 同时,主控节点检测CAN 网络上的节点数据, 将节点发出的数据通过RS 232 发送给上位机; 重复以上流程直到工作方式发生改变。在这种方式下主控节点的主要工作流程如图6 所示。
当系统中不存在上位机或上位机发出脱离系统命令后, 主控节点进入主动控制工作模式。在这种状态中, 命令发送者为主控节点,主控节点可通过定时器事件轮循查询各节点工作状态; 响应键盘事件, 并根据用户输入的命令向目标节点发出命令或响应相应子节点的数据; 通过LED 灯显示子节点工作状态。
两种工作模式间可以通过上位机发出命令、用户通过键盘输入命令以及主控节点查询上位机工作状态异常( 如在被动状态中,上位机长时间没有命令) 等几种方式切换。
3. 4 上位机监控系统设计
上位机监控系统基于C+ + 设计, 可以实现同时对多路数据进行采集、存储, 并设计了图形化的监控显示。监控系统功能包括:
( 1) 向主控节点发出联机或脱机命令, 切换节点工作状态;( 2) 定时发送节点查询命令, 查询子节点工作状况,更新系统节点表;( 3) 根据用户需要, 定时向监控节点发送读取命令, 取得节点的监控数据, 并保存数据, 形成监控数据文件;( 4) 以图形化的方式显示监控曲线。
上位机系统中还包含了数据分析功能, 其中设计了算法接口; 系统用户可编写自己的算法库,系统可调用用户算法库对采集的原始数据进行进一步的分析。
4 结 语
由于CAN 总线具有极强的抗干扰能力, 系统在使用现场数据通讯非常可靠, 并且通过CAN 中继器可以进一步提高通讯质量和距离。随着CAN 总线芯片性能的提高、价格的降低, 逐渐应用到普通轿车上,也为其在农业机械上的应用提供了条件。研究CAN 总线在拖拉机等农业机械上的应用, 对于提高农机性能和经济性, 促进我国农业机械化发展,具有重要意义。
上一篇:一种用于汽车电磁阀质量测试电源的设计
下一篇: 汽车显示器接口设计关键技术分析
推荐阅读最新更新时间:2024-05-02 21:30