首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于CAN总线在车载系统中的应用
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于CAN总线在车载系统中的应用
发短消息
加为好友
yuchengze
当前离线
UID
1062083
帖子
5837
精华
0
积分
2921
阅读权限
70
在线时间
222 小时
注册时间
2016-6-30
最后登录
2018-9-9
金牌会员
UID
1062083
性别
男
1
#
打印
字体大小:
t
T
yuchengze
发表于 2016-9-11 13:24
|
只看该作者
基于CAN总线在车载系统中的应用
Network
,
现代汽车
,
控制器
,
安全性
,
德国
1 引言
CAN(Controller Area Network)即控制器局域网络,它是德国波许(Bosch)一公司从20世纪80年代初开始,为解决当代
汽车
中日益增多的控制与测试仪器之间的数据交换而开发的一种能有效支持分布式控制或实时控制的串行
通信网络
。现代汽车安全性、舒适性及环保要求的不断提高,因此,本课题着眼于其发展的现状,通过CAN
总线
和外设
传感器
的应用,保证了
车载系统
和外围
电路
更好的通信,最大程度的保证了车辆的安全。
2 总体结构
本课题旨在通过对
CAN总线
的研究,保证车身与外围扩展电路正常的通信。经过分析比较,确定实行方案,并加以验证。
整个系统是将温度、加速度,还有TTS、
GPS
的数据经过AT90CAN128进行处理,通过转发器,一并发到
CAN总线
上,然后,接收端(CAN转串口232)将接到的数据通过串口发到车载平台上,对数据进行处理。同理,车载平台发送的命令也会经过CAN
总线
传回控制器,对
外围设备
进行控制(数据的逆向传输)。
系统原理如图1所示:
图1系统原理
2.1
硬件设计
1) AT90CAN128做主控制器,它是ATMEL公司生产带有一个CAN的控制器,CAN控制器集成了CAN协议的物理层和数据链路层的功能,可完成对数据的成帧处理,包括位填充、数据块编码、循环冗余校验和优先级判别等功能。符合CAN2.OA和CAN2.OB协议规范,支持标准帧和扩展帧的接收和发送。
2) ATA6660也是ATMEL公司的新型高速度的CAN总线
收发器
。这种新产品采用了ATMEL公司的0.8微米BCDMOS处理技术,可满足45伏特
电压
甚至更为苛刻环境中的应用。ATA6660是为不同工作模式下高速差动数据传输(如工业和汽车制造上的应用)而专门设计的。针对高速数据传输的需求,波特率可以调整到1 Mbaud。与国际高速CAN数据通讯标准ISO11898完全兼容。
2.1.1 CAN控制器的数据接收
首先,选定CAN控制器的MOB0模式,设定自动增量,初值为0。再使CANSTMOB的RXOK置1,从而使CAN控制器处于接收数据状态,接收一个数据后,清接收中断标志。
2.1.2 CAN控制器的数据发送
需要先关中断的标志,其次装载消息数据,并把CAN控制器设置为发送状态,待数据发送完后。再把全局中断寄存器CANGIE设置为接收使能。
CAN总线收发器的原理图为图2:
图2 CAN总线收发器的原理图
2.1.3 RS232-CAN总线转换器
带有RS
232接口
的数据操作站可以通过RS232接口接入,实现与CAN智能模块的信息通讯,完成操作命令的下发及智能模块实时数据、运行状态的采集。
RS232-CAN总线转换器原理图为图3:
图3 RS232-CAN总线转换器原理图
2.2软件设计
2.2.1 AT90CAN128的初始化
AT90CAN128的初始化是在复位模式下进行,初始化主要包括工作方式的设置、接收滤波方式的设置,接收屏蔽寄存器
ARM
和接收代码寄存器ACR的设置.波特率参数的设置和中断允许寄存器IER的设置等,在完成AT90CAN128的初始化设置以后,AT90CAN128回到工作状态进行正常的通讯任务。
CAN总线初始化的流程图为图4:
图4 CAN总线初始化的流程图
下面给出了CAN初始化程序。
CANGCON=0x01 //CAN硬件reset
CANGIE=0xB0; //允许除定时器溢出外的所有中断(如接收、发送中断)
///////////////////////////////
CANEN2=0x03;
CANEN1=Ox00; //Mob0、Mob1选通,Mob2-14禁止
//////////////////////////////
CANIE2=0x03;
CANIEl=Ox00; //Mob0、Mob1允许中断,Mob2-14禁止中断
CANHPMOB=0x10 //Mob()具有最高优先级
/////////////////////////////
CANBT1=0x7E;
CANBT2=Ox6E;
CANBT3=Ox7F;
CANTCON=OxFF: .//波特率设置为10.000kHz
/////////////////////////////
CANPAGE=0xOO://选通Mob0
CANSTMOB=0: //状态寄存器清零
CANCDMOB=Ox01;//DLC选择lbyte
CANCDMOB I=0x80;//允许接收
CANGCON I=0x02;//选择使能模式
2.2.2 CAN总线收发器设计
此系统选用了ATMEL公司的AT90CAN128芯片作为CAN总线控制器,通过对其相应寄存器的配置,并与ATA6660CAN总线收发器配合,便可实现对CAN总线的操纵。
AT90CAN128兼容CAN2.0A和CAN2.OB规范,提供了从MOBO到MOBl4共15组MOB,每个MOB都有独立的ID和ID接收过滤码,可看作CAN总线上的独立器件进行控制。
2.2.3中断处理
在CAN收发数据中,最霞要的就是中断处理过程。
为了保证总线转换过程中不产生丢包现象,在此设计中。CAN与RS232的接收均采用中断形式,并设计了两个软件F1-FO分别做为CAN和RS232的缓冲,在中断处理中将数据压入FIFO,减少了中断服务程序所占用的时间。使系统中断后能迅速恢复并准备接收下一数据。当总线空闲时,转换器再将FIFO中的数据以硬件中断形式依次发出。由于CAN总线数据采用的是短帧结构,不会长时问占用总线,所以这样做不会对总线的实时性产生很大影响。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议