基于单片机的某车型can总线系统设计

上传人:wm****3 文档编号:41931734 上传时间:2018-05-31 格式:DOC 页数:3 大小:35.50KB
返回 下载 相关 举报
基于单片机的某车型can总线系统设计_第1页
第1页 / 共3页
基于单片机的某车型can总线系统设计_第2页
第2页 / 共3页
基于单片机的某车型can总线系统设计_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于单片机的某车型can总线系统设计》由会员分享,可在线阅读,更多相关《基于单片机的某车型can总线系统设计(3页珍藏版)》请在金锄头文库上搜索。

1、基于单片机的某车型基于单片机的某车型 CAN 总线系统设计总线系统设计类别:单片机/DSP 阅读:2440 摘要:简要介绍了 AT90CAN 28 的功能特点,讲述了 AT90CAN128 中 CAN 控制器的原理及使用方法,针对所设计车型 CAN 总线控制系统的构成特点,制定了通信协议,并以联合制动单元为具体实例,对其设计过程进行了详细的描述,使读者能更加深刻地体会到这款单片机的特别之处。 关键词:AT90CAN128;单片机;CAN 总线;联合制动;通讯协议 引言 现场总线技术1是目前自动化控制领域发展比较迅速的一门技术,其中CAN(Controller Area Network)总线2是

2、在国际上应用最广泛的现场总线之一。近几年随着汽车电子行业的发展,现代汽车中 CAN 总线已经成为必须采用的装置之一。本文以ATMEL 公司新近生产的一款内置 CAN 控制器的单片机AT90CAN128 为基础,设计了一款车载 CAN 总线系统,通过 CAN 智能测控仪表对车中部分单元参数量进行实时监控,使各单元之间协调运转。另外,传输线束大大简化,可靠性得到了极大的提高,有效节约了线束安装空间和系统成本。 1 AT90CAN128 特性概述 11 基本特性AT90CAN1283是基于 AVR RISC 结构的 8 位低功耗 CMOS 微处理器,它采用了先进的指令集以及单周期指令执行时间,其数据

3、吞吐率高达 1 MIPS/MHz,其内核具有丰富的指令集和 32 个通用工作寄存器。所有寄存器都直接与 ALU 相连接。通过将 8 位 RISC CPU与系统内可编程的 Flash 集成在一个芯片内,为许多嵌入式控制应用提供了灵活而低成本的方案。 12 内置 CAN 控制器概述 AT90CAN128 内置有完全符合 CAN2.0A 和2.0B 标准协议的 CAN 控制器。采用 MOb(消息对象)方式进行数据的发送和接收,共有15 个 MOb,它们具有相同的属性:有 11 位标识符(2.0A 协议),也可扩展至 29 位(2.0B 议);8 位数据缓冲(静态分配);Tx,Rx 帧 缓冲或自动响应

4、配置;时间标识。CAN 控制器的结构如图 1 所示。图 1、CAN 控制器结构 MOb 是一个 CAN 消息帧的描述符。它包括处理一个CAN 消息帧的所有信息。这意味着一个 MOb 可以看成一个对象,来描述一条 CAN 消息。MOb 的数目是从 0 到 14。它们相互独立,但在多重比较的时候,低位的 MOb 会获得优先权。每个 MOb 都被安置在一个页中来保存。页的序号就是 MOb 的序号。 2 车载 CAN总线控制系统4的设计 由于对实时性要求比较高,所以采用高速 CAN 总线,信息传输速度为 500kbps,连接的主要对象有:驾驶员计算机、发动机、自动变速器、安全气囊、仪表信号采集系统、联

5、合制动系统等。由于各个节点作用不同,所以在硬件搭建和软件设计以及通信协议的制定上都采用了相应的方案。下面以联合制动单元为例,做具体分析。联合制动单元接收由驾驶员计算机终端发送的 CAN 总线消息命令,根据对液力制动扭矩、机械制动扭矩、合成扭矩等参数进行检测的状态,经过电液控制算法计算,实现前驱、后驱制动控制。对正常制动回路油位、紧急制动回路油位的报警等信息,通过 CAN 总线反馈给驾驶员计算机终端。 21 联合制动单元硬件电路组成 以 AT90CAN128 单片机作为控制系统核心,外围设有 8 路光隔模拟量输入、4 路模拟量输出、多路光隔开关量输入、输出、LED 报警及 CAN 总线收发器,总

6、线的接口芯片选用的是 Philips 公司的PCA82C250。具体结构见图 2。图 2、制动单元硬件框图 22 通信协议制定 221 各终端消息标识符的定义 表 1 定义了驾驶员计算机终端及联合制动单元之间相互通讯的消息标识符。表 1、各终端的消息标识符 采用 CAN 扩展帧的 29 位标识符进行定义,其中 P 为 3 位优先级;R 为保留扩展位;8 位的 BW 为报文类型代码;8 位的 BD 为目标地址或报文类型扩展码;8 位的 BY 为发送报文源地址。部分设备节点名称和分配地址如下:主驾驶员终端地址 10、副驾驶员终端地址 20、联合制动单元地址 30。 222 各消息类型和命令值内容的

7、定义 驾驶员计算机终端对联合制动单元的控制消息内容为 2 个字节命令类型和命令值。命令类型包括:状态查询命令(数据 0x1,命令值 0x0)、前/后驱制动命令(数据 0x2/0x3,命令值 0x0)、联合制动单元前/后驱制动信息确认(数据0x4/0x5,命令值 0x0)等。 联合制动单元提供给驾驶员计算机终端的消息内容包括:联合制动单元状态信息(7 字节,分别为液力制动扭矩、机械制动扭矩、合成扭矩、速度以及紧急回路和正常油压的数值,以及正常制动回路油位和紧急制动回路油位的报警状态)、联合制动单元报警信息(2 字节,分别为正常制动回路油位报警和紧急制动回路油位的报警)、联合制动单元制动返回消息(

8、2 字节,分别为收到的前驱或后驱制动命令的命令数据和命令值)等。 23 软件设计(CAN 总线通讯部分) 231 初始化部分 初始化前将 CAN 通用控制寄存器的最高位置 1(复位模式)。完成后,回到操作模式。 下面给出了 CAN 控制器的初始化程序: void CAN_INIT ( void ) CANGCON = 0x80 ; /*进入复位模式并且复位 MOb*/ while ( ENFG = 1 ) ; /*测试 CANGSTA 中的 ENFG 位是否为0*/ CANGIE = 0xB0 ; /*使能所有中断及接收、发送中断*/ CANIE2 = 0xFF ; /*MOb 07中断使能*

9、/ CANIE1 = 0x00 ; /*MOb 814 中断禁止*/ CANBT1 = 0x02 ; /*设置波特率为500kbps*/ CANBT2 = 0x20 ; CANBT3 = 0x01 ; CANTCON = 0x8F ; /*设置定时器预定标*/ /*以“联合制动单元状态查询消息”为例*/ CANPAGE = TX_PAGE ; /*指定此消息的MOb 页(寄存器中的高 4 位)*/ CANCDMOB = 0x17 ; /*禁止状态,IDE 位为 1 表示扩展帧,数据长度代码为 7*/ CANIDT1 = 0x84 ; /*标识符设置*/ CANIDT2 = 0xB1 ; CAN

10、IDT3 = 0x18 ; CANIDT4 = 0xF2 ; CANIDM1 = 0xFF ; /*标识符屏蔽设置*/ CANIDM2 = 0xFF ; CANIDM3 = 0xFF ; CANIDM4 = 0xFF ; CANGCON = 0x02 ; /*进入操作模式*/ While ( ENFG = 0 ) ; /*测试 CANGSTA 中的 ENFG 位是否为 1*/ 232 消息的发送部分 消息的发送均采用中断方式实现。首先通过设置 CANPAGE寄存器来指定被发送的页数,将数据装载到 CANMSG 寄存器中,然后由 CANCDMOB 寄存器来控制发送动作,将消息发送出去,同时将触发

11、 CANSTMOB 中的 TXOK 中断。 下面以协议中的“联合制动单元状态查询命令”为例,给出了发送程序: void CAN_TX ( void ) CANPAGE = TX_PAGE ; /*指定此消息的 MOb 页(寄存器中的高 4 位)*/ CANMSG = 0x01 ; /*装载消息数据*/ CANMSG = 0x00 ; /*装载消息命令值*/ CANCDMOB = 0x52 ; /*发送状态,IDE 位为 1 表示扩展帧,数据长度代码为 2*/ void CAN_TX_INTER ( void ) /*发送中断子程序*/ If ( ( CANSTMOB /*清 TXOK 位*/

12、CANCDMOB = 0x12; /*停止发送*/ 233 消息的接收部分 消息的接收同样采用中断方式实现。先设置 CANPAGE 寄存器来指定接收的页数,随后由 CANCDMOB 寄存器来控制接收动作,当有消息到达时,将触发 CANSTMOB 中的 RXOK 中断,消息中的数据将被装载到CANMSG 寄存器中。 下面以协议中的“接收联合制动单元状态信息”为例,给出了接收程序: void CAN_RX ( void ) CANPAGE = RX_PAGE ; /*指定此消息的 MOb 页(寄存器中的高 4 位)*/ CANCDMOB = 0x97 ; /*接收状态,IDE 位为 1 表示扩展帧

13、,数据长度代码为 7*/ void CAN_RX_INTER ( void ) /*接收中断子程序*/ If ( ( CANSTMOB /*清 RXOK*/ For ( i = 0 ; i 7 ; i )MObData RX_PAGE i = CANMSG ; /*装载数据*/ 4 结束语 与目前同类型的单片机相比较,AT90CAN128 在数据采集、PWM(快速 PWM 模式)等设计中都有其明显的优势,特别是内置了 CAN 控制器,这让它在现代自控领域的发展前景十分乐观。通过实践证明,该车载 CAN 总线系统运行良好,完全可以达到预期的功能。 本文作者创新点:本文由于采用了 AT90CAN128 单片机,使得该 CAN 总线系统的设计方法与传统的 CAN 总线网络设计思路有所不同,内置 CAN 控制器可大大降低设备成本、简化硬件结构、通信效率加强、提高了安全性以及可靠性。软件设计上可通过对 MOb 的配置,实现消息队列的设定,这种方法更加的灵活、易懂。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号