基于自动位速率检测的CAN协议网关.pdf
《基于自动位速率检测的CAN协议网关.pdf》由会员分享,可在线阅读,更多相关《基于自动位速率检测的CAN协议网关.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 27 卷第 1 期武 汉 理工 大学学 报 信息与 管理 工程 版Vol.27No.12005 年 2 月JOURNAL OF WUT(INFORMATION&MANAGEMENT ENGINEERING)Feb.2005文章编号:1007-144X(2005)01-0088-04基于自动位速率检测的 CAN 协议网关张成才,曾春年(武汉理工大学 自动化学院,湖北 武汉430070)摘要:针对使用不同协议的 CAN 网络,采用功能强大的 8 位微控制器 P87C591 设计出一种具有 2 个独立CAN 控制器的网关,从而实现了CAN1.2 与CAN2.0 网络的互连。给出了该网关在软硬件上
2、的实现方法,并阐述了如何实现网关的自动位速率检测功能。关键词:自动位速率检测;CAN;网关;P87C591中图法分类号:U 469.72文献标识码:A1引言CAN(Controller Area Network)总线是现今流行的一种较为先进的、性能出色的现场总线技术。1991 年9 月 CAN 协议技术规范由标准的1.2版本修订为新的 2.0 版本。在技术规范 2.0B 中给出了标准的和扩展的2 种帧格式,其间区别在于标识符场的长度具有 11 位标识符的帧称之为标准帧;相应地,包括 29 位标识符的帧称之为扩展帧 1。但现存的 CAN1.2 版本只支持标准帧格式,不能识别扩展帧格式,所以在实施
3、过程中会响应错误信息。为了保证采用不同版本的技术规范的CAN 网络能够正常通信,必须采用 CAN 协议网关使网络互连。CAN 协议网关实质上就是一个连接异型网络的接口装置,它综合了桥接器和路由器的功能,能在 OSI 参考模型的物理层、数据链路层和应用层上对双方不同的协议进行翻译和解释。笔者在参与研制的混合动力电动汽车光纤CAN 网中,美国 Solectria 公司的电机控制器DMOC445 和 DC-DC 变换模块 DC345 均使用标准帧的标识符,而整车控制系统的 ECU 采用了扩展帧的标识符。为了确保DMOC445和 DC345同各个 ECU 能正常进行 CAN 通信,笔者设计出了具有 2
4、 个独立 CAN 控制器的网关,从而达到了 2 个不同版本的 CAN 协议网络通过该网关进行互连的目的。2网关的硬件实现2.1硬件结构框图网关的硬件结构框图如图 1 所示。该网关的核心是 2 个独立的 CAN 控制器。其中一个为Philips 公司的单片 8 位微控制器P87C591 片内的图 1网关的硬件结构框图收稿日期:2004-09-01.作者简介:张成才(1979-),男,河南南阳人,武汉理工大学自动化学院硕士研究生.基金项目:湖北省重大科技攻关项目(2003AA103B).CAN 控制器,另一个为外扩的独立 CAN 控制器SJA1000。网关上CAN 控制器和物理总线之间的接口有 2
5、 种,即采用双绞线作为传输介质的 CAN总线接口和采用塑料光纤作为传输介质的光纤CAN 总线接口。为了调试方便,微控制器还外扩了程序存储器。2.2P87C591 及 2 个 CAN 控制器P87C591 是 Philips 公司的一款内部具有CAN 控制器的 8 位微控制器,该芯片以先进的CMOS 工艺制造,设计用于汽车和通用工业应用。P87C591 采用强大的 80C51 指令集,并采用了改进的 1:1 内部时钟预分频器,在 12 MHz 外部时钟速率时实现 500 ns 指令周期,在 8 MHz时钟可实现 1 Mb/s CAN 总线速率。P87C591 片内的 CAN 控制器具有取自于SJ
6、A1000 的增强型 PeliCAN 内核,所以它包含了SJA1000 所具有的相同功能,这一定程度上降低了软件设计的复杂性。片内 CAN 控制器不需附加任何外围电路,P87C59仅通过 5个特殊功能寄存器 CANADR、CANDAT、CANMOD、CANS-T A 和 CANCON 就可完成对它的所有访问。因此对片内CAN 控制器的操作非常简单。另一个 CAN 控制器 SJA1000 和 P87C591 的接口电路如图 2 所示,CPU 通过中断方式完成对SJA1000 的访问。SJA1000 的片选信号通过 P2 口的 P2.7 进行控制,这样 CPU 对 SJA1000 的访问相当于访问
7、片外数据存贮器,即P2.7 为 0 的CPU片外存贮器地址就可选中 SJA1000。CPU 再通过这些地址对 SJA1000 执行相应的读写操作。图 2P87C591 与SJA1000 的接口电路原理图图 3传输介质为双绞线的接口电路原理图2.3网关的通信接口2.3.1传输介质为双绞线的接口电路如图 3 所示,82C250 是 CAN 控制器和物理总线间的接口,该器件可以提供对总线的差动发送能力和对 CAN 控制器的差动接收能力 1。82C250 和CAN 控制器之间采用高速光隔6N137以提高系统的抗干扰能力,同时实现了总线上各CAN 节点间的电气隔离。2.3.2传输介质为光纤的接口电路该接
8、口电路中光电模块用于实现光纤 CAN总线中光电信号之间的转换,为了实现这种转换,必须设计合适的模块驱动电路。如图4 所示,笔者选用 Agilent 公司的光发送器 HFBR-1528 以及光接收器 HFBR-2528。接收器配以适当的外围阻容元件便可实现光到电的转换,发送器则还要相图 4传输介质为光纤的接口电路原理图89第 27卷第 1期张成才等:基于自动位速率检测的CAN协议网关应的驱动芯片 SN75451 以及阻容元件才可实现电到光的转换和传送。需要说明的是,如果该网关采用光纤作为传输介质进行通信还需要加光纤CAN 耦合器。3网关的软件设计在软件的设计中,CAN 协议的网关主要处理下面 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 自动 速率 检测 CAN 协议 网关
限制150内