ImageVerifierCode 换一换
格式:DOC , 页数:3 ,大小:35.50KB ,
资源ID:3545973      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3545973.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的某车型CAN总线系统设计.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

基于单片机的某车型CAN总线系统设计.doc

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 微处理器,它采用了先进的指令集以及单周期指令执行时间,其数据吞吐率高达 1 MIPS

3、/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 帧 缓冲或自动响应配置;时间标识。CAN

4、 控制器的结构如图 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 字节,分别为正常制动回路油位报警和紧急制动回路油位的报警)、联合制动单元制动返回消息(2 字节,分别为

8、收到的前驱或后驱制动命令的命令数据和命令值)等。 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中断使能*/ CANIE

9、1 = 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 ; CANIDT3

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

11、TMOB 中的 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 位*/ CANC

12、DMOB = 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 的配置,实现消息队列的设定,这种方法更加的灵活、易懂。

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。