佳工机电网 - 助您打通产业链!-
金属加工 | 刀量工具 | 模具制造 | 塑料机械 | 通用机械 | 工程机械 | 交通设备 | 农业机械 | 食品机械
自动化 | 激光 | 电子 | 仪器仪表 | 电力设备 | 工业炉窑 | 行业设备 | 纺织机械 | 印刷机械 | 包装机械
  通用基础件 | 标准件 | 电子元器件 | 工业材料 | 包装   CAD | ERP | 管理/认证 | 服务/培训 | 商标/专利
  免费注册 登录 收藏 
搜索  
发动机 | 泵/油路 | 汽车电子 | 变速器/变速箱 | 转向系统/传动系统 | 离合器/制动系统 | 悬架/减震系统 | 汽车与公路设备 | 摩托车 | 自行车 | 铁路与轨道交通 | 船舶与港口设备 | 航空与航天设备
 首页 > 交通运输设备 > 汽车电子 > 技术论文 产品库 会展 人才 帮助 | 注册 登录  
汽车电子
 按行业筛选
 按产品筛选
查看本类全部文章
全部汽车电子及相关产品

整机产品
车灯
遥控发射器
汽车音像产品
TPMS
汽车防盗器
GPS卫星导航器
汽车电器
启动机
车载发射器
零部件
生产/检测设备
其它相关产品


.刊登广告.



新产品 最新动态 技术文章 企业目录 资料下载 视频/样本 反馈/论坛
  技术应用 | 基础知识 | 外刊文摘 | 业内专家 | 文章点评 投稿 发表科技文章 

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

作者:江杰 范宇
摘要:简要介绍了AT90CAN 28的功能特点,讲述了AT90CAN128中CAN控制器的原理及使用方法,针对所设计车型CAN总线控制系统的构成特点,制定了通信协议,并以联合制动单元为具体实例,对其设计过程进行了详细的描述,使读者能更加深刻地体会到这款单片机的特别之处。
关键词:AT90CAN128;单片机;CAN总线;联合制动;通讯协议

引言

现场总线技术[1]是目前自动化控制领域发展比较迅速的一门技术,其中CAN(Controller Area Network)总线[2]是在国际上应用最广泛的现场总线之一。近几年随着汽车电子行业的发展,现代汽车中CAN总线已经成为必须采用的装置之一。本文以ATMEL公司新近生产的一款内置CAN控制器的单片机——AT90CAN128为基础,设计了一款车载CAN总线系统,通过CAN智能测控仪表对车中部分单元参数量进行实时监控,使各单元之间协调运转。另外,传输线束大大简化,可靠性得到了极大的提高,有效节约了线束安装空间和系统成本。

1AT90CAN128特性概述

1.1 基本特性

AT90CAN128[3]是基于AVR RISC结构的8位低功耗CMOS微处理器,它采用了先进的指令集以及单周期指令执行时间,其数据吞吐率高达1 MIPS/MHz,其内核具有丰富的指令集和32个通用工作寄存器。所有寄存器都直接与ALU相连接。通过将8位RISC CPU与系统内可编程的Flash集成在一个芯片内,为许多嵌入式控制应用提供了灵活而低成本的方案。

1.2内置CAN控制器概述

AT90CAN128内置有完全符合CAN2.0A和2.0B标准协议的CAN控制器。采用MOb(消息对象)方式进行数据的发送和接收,共有15个MOb,它们具有相同的属性:有11位标识符(2.0A协议),也可扩展至29位(2.0B议);8位数据缓冲(静态分配);Tx,Rx帧

缓冲或自动响应配置;时间标识。CAN控制器的结构如图1所示。

佳工机电网
图1、CAN控制器结构

MOb是一个CAN消息帧的描述符。它包括处理一个CAN消息帧的所有信息。这意味着一个MOb可以看成一个对象,来描述一条CAN消息。MOb的数目是从0到14。它们相互独立,但在多重比较的时候,低位的MOb会获得优先权。每个MOb都被安置在一个页中来保存。页的序号就是MOb的序号。

2 车载CAN总线控制系统[4]的设计

由于对实时性要求比较高,所以采用高速CAN总线,信息传输速度为500kbps,连接的主要对象有:驾驶员计算机、发动机、自动变速器、安全气囊、仪表信号采集系统、联合制动系统等。由于各个节点作用不同,所以在硬件搭建和软件设计以及通信协议的制定上都采用了相应的方案。下面以联合制动单元为例,做具体分析。

联合制动单元接收由驾驶员计算机终端发送的CAN总线消息命令,根据对液力制动扭矩、机械制动扭矩、合成扭矩等参数进行检测的状态,经过电液控制算法计算,实现前驱、后驱制动控制。对正常制动回路油位、紧急制动回路油位的报警等信息,通过CAN总线反馈给驾驶员计算机终端。

2.1联合制动单元硬件电路组成

以AT90CAN128单片机作为控制系统核心,外围设有8路光隔模拟量输入、4路模拟量输出、多路光隔开关量输入、输出、LED报警及CAN总线收发器,总线的接口芯片选用的是Philips公司的PCA82C250。具体结构见图2。

佳工机电网
图2、制动单元硬件框图

2.2 通信协议制定

2.2.1 各终端消息标识符的定义

表1定义了驾驶员计算机终端及联合制动单元之间相互通讯的消息标识符。

表1、各终端的消息标识符
佳工机电网

采用CAN扩展帧的29位标识符进行定义,其中P为3位优先级;R为保留扩展位;8位的BW为报文类型代码;8位的BD为目标地址或报文类型扩展码;8位的BY为发送报文源地址。部分设备节点名称和分配地址如下:主驾驶员终端地址10、副驾驶员终端地址20、联合制动单元地址30。

2.2.2 各消息类型和命令值内容的定义

驾驶员计算机终端对联合制动单元的控制消息内容为2个字节——命令类型和命令值。命令类型包括:状态查询命令(数据0x1,命令值0x0)、前/后驱制动命令(数据0x2/0x3,命令值0x0)、联合制动单元前/后驱制动信息确认(数据0x4/0x5,命令值0x0)等。

联合制动单元提供给驾驶员计算机终端的消息内容包括:联合制动单元状态信息(7字节,分别为液力制动扭矩、机械制动扭矩、合成扭矩、速度以及紧急回路和正常油压的数值,以及正常制动回路油位和紧急制动回路油位的报警状态)、联合制动单元报警信息(2字节,分别为正常制动回路油位报警和紧急制动回路油位的报警)、联合制动单元制动返回消息(2字节,分别为收到的前驱或后驱制动命令的命令数据和命令值)等。

2.3 软件设计(CAN总线通讯部分)

2.3.1 初始化部分

初始化前将CAN通用控制寄存器的最高位置1(复位模式)。完成后,回到操作模式。

下面给出了CAN控制器的初始化程序:

void CAN_INIT ( void )
{
CANGCON = 0x80 ; /*进入复位模式并且复位MOb*/
while ( ENFG == 1 ) ; /*测试CANGSTA中的ENFG位是否为0*/
CANGIE = 0xB0 ; /*使能所有中断及接收、发送中断*/
CANIE2 = 0xFF ; /*MOb 0~7中断使能*/
CANIE1 = 0x00 ; /*MOb 8~14中断禁止*/
CANBT1 = 0x02 ; /*设置波特率为500kbps*/
CANBT2 = 0x20 ;
CANBT3 = 0x01 ;
CANTCON = 0x8F ; /*设置定时器预定标*/

/*以“联合制动单元状态查询消息”为例*/
CANPAGE = TX_PAGE ; /*指定此消息的MOb页(寄存器中的高4位)*/
CANCDMOB = 0x17 ; /*禁止状态,IDE位为1表示扩展帧,数据长度代码为7*/
CANIDT1 = 0x84 ; /*标识符设置*/
CANIDT2 = 0xB1 ;
CANIDT3 = 0x18 ;
CANIDT4 = 0xF2 ;
CANIDM1 = 0xFF ; /*标识符屏蔽设置*/
CANIDM2 = 0xFF ;
CANIDM3 = 0xFF ;
CANIDM4 = 0xFF ;
CANGCON = 0x02 ; /*进入操作模式*/
While ( ENFG == 0 ) ; /*测试CANGSTA中的ENFG位是否为1*/
}

2.3.2消息的发送部分

消息的发送均采用中断方式实现。首先通过设置CANPAGE寄存器来指定被发送的页数,将数据装载到CANMSG寄存器中,然后由CANCDMOB寄存器来控制发送动作,将消息发送出去,同时将触发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 & 0x40 ) == 0x40 ) /*发送中断*/
{
CANSTMOB & = 0xBF ; /*清TXOK位*/
CANCDMOB = 0x12; /*停止发送*/
}
}

2.3.3消息的接收部分

消息的接收同样采用中断方式实现。先设置CANPAGE寄存器来指定接收的页数,随后由CANCDMOB寄存器来控制接收动作,当有消息到达时,将触发CANSTMOB中的RXOK中断,消息中的数据将被装载到CANMSG寄存器中。

下面以协议中的“接收联合制动单元状态信息”为例,给出了接收程序:

void CAN_RX ( void )
{
CANPAGE = RX_PAGE ; /*指定此消息的MOb页(寄存器中的高4位)*/
CANCDMOB = 0x97 ; /*接收状态,IDE位为1表示扩展帧,数据长度代码为7*/
}
void CAN_RX_INTER ( void ) /*接收中断子程序*/
{
If ( ( CANSTMOB & 0x20 ) == 0x20 ) /*接收中断*/
{
CANSTMOB & = 0xDF ; /*清RXOK*/
For ( i = 0 ; i < 7 ; i++ )
{
MObData [ RX_PAGE ] [ i ] = CANMSG ; /*装载数据*/
}
}
}

4结束语

与目前同类型的单片机相比较,AT90CAN128在数据采集、PWM(快速PWM模式)等设计中都有其明显的优势,特别是内置了CAN控制器,这让它在现代自控领域的发展前景十分乐观。通过实践证明,该车载CAN总线系统运行良好,完全可以达到预期的功能。

本文作者创新点:本文由于采用了AT90CAN128单片机,使得该CAN总线系统的设计方法与传统的CAN总线网络设计思路有所不同,内置CAN控制器可大大降低设备成本、简化硬件结构、通信效率加强、提高了安全性以及可靠性。软件设计上可通过对MOb的配置,实现消息队列的设定,这种方法更加的灵活、易懂。

参考文献:
[1] 史久根,张培仁,陈真勇. CAN现场总线系统设计技术. 国防工业出版社,2004.第1版
[2] 饶运涛,邹继军,郑勇芸. 现场总线CAN原理与应用技术[M].北京航空航天大学出版社,2003.第1版
[3] AT90CAN128.pdf. www.atmel.com/literature
[4] 王轶,张凡. CAN总线技术在智能汽车系统中的应用. 《微计算机信息》2005年第七期47页(end)
(投稿) (如果您是本文作者,请点击此处) (2007-6-3,阅读1139次)
查看更多相关文章:
·基于BF533的智能车载终端 华中科技大学 电信系 萧奋洛 王贤辉 张小田 (2007-6-3)
·基于ARM7网络型汽车防盗系统的研制 崔更申 黄廷辉 (2007-6-3)
·基于DSP的车载GPS/DR组合导航系统硬件设计 杜萌 付梦印 王美玲 (2007-6-2)
·汽车交流发电机纹波电流及其抑制 陈天殷 (2007-5-31)
·基于DSP的电子节气门PID控制 苏海峰 冯国胜 (2007-5-31)
·清洗和固化:点火线圈真空灌封“收官” newmaker (2007-5-30)
·嵌入式闪存使“智能”汽车接口应用得以实现 newmaker (2007-5-20)
·汽车工程技术中的一门新兴技术--汽车电力电子技术 华晨金杯汽车 傅世枢 (2007-5-13)
·技术标准是汽车电子发展核心 中科院计算所技术发展部项目主管 张平 (2007-5-13)
·电控发动机换档异常熄火的原因分析 陈强 (2007-5-13)
查看相关文章目录:
·交通运输设备 > 汽车电子 > 汽车电子文章
文章点评 查看全部点评 投稿 进入贴吧

对 汽车电子 有何见解?请到 汽车电子论坛 畅所欲言吧!


网站简介 | 会员服务 | 广告服务 | 机电人才 | 机电展会 | 服务条款 | 国际站点 | 会员登录  
Copyright © 1999-2009 newmaker.com. All Rights Reserved
© 佳工机电网·嘉工科技 Email: 发送邮件