新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于P89C668单片机的CAN总线接口设计

基于P89C668单片机的CAN总线接口设计

作者:时间:2012-03-14来源:网络收藏

(Controller Area Network),又称控制器局域网,属于现场的范畴,是一种有效支持分布式控制或实时控制的串行通信网络.与其它几种现场相比, 总线是最容易实现、价格也最为低廉.由于其性能好,可靠性高、灵活,现已广泛应用于工业现场控制、智能大厦、小区防范、交通工具、医疗仪器、环境监控等众多领域.

本文引用地址:http://www.eepw.com.cn/article/171887.htm

总线规范已被国际标准化组织(ISO)定为国际标准,CAN协议也是建立在国际标准化组织的开放系统互连参考模型(OSI)基础上的.CAN总线主要工作在数据链路层和物理层,用户可在其基础上开发适合系统实际需要的应用层通信协议,由于CAN总线的可靠性高,使应用层通信协议得以大大简化.目前市场上有多种不同型号的CAN控制器,它们实现CAN协议部分电路的结构和功能大多相同,只是与部分的结构和方式有一些差异.

为了提高硬件电路的效率,简化电路上的复杂性,保证电路的电气兼容性,本文采用PHILIPS公司生产的和CAN控制器SJA1000了CAN节点电路,并介绍了相关的软件设计.

1 CAN总线节点硬件电路设计

CAN节点接口硬件电路原理如图1所示.采用PHILIPS公司生产的、CAN控制器SJA1000和CAN总线收发器PCA82C250设计接口电路来实现CAN总线通信.

26.jpg
图1 CAN总线接点接口硬件电路原理

单片机内带64kB Flash存储器,该存储器既可并行编程,在系统编程ISP中也可串行编程,在实际的成型产品中可通过ISP升级用户程序. 在Boot ROM程序中,可通过一个默认的串行下载器(UART)对Flash存储器作ISP编程,而在Flash代码区中并不需要调用下载器的代码,用户程序可通过调用在Boot ROM中的标准子程序对Flash存储器擦除和再编程(即IAP).

P89C688在6个时钟周期内执行一条指令,一个OTP位让用户可选择传统的12个时钟周期.P89C688用先进CMOS工艺制造,是80C51单片机家族的衍生品,其指令集和80C51相同.该单片机有四个8位I/O口,三个16位定时器/事件计数器,多中断源,四个优先级,可嵌套中断结构,一个增强型UART和片内振荡器以及时序电路.P89C668新增特性使其成为一个功能强大的单片机,可为某些应用提供PWM、高速的I/O和加/减计数.

SJA1000 是PHILIPS 公司生产的独立CAN 通信控制器,它既支持CAN2.0A,又支持CAN2.0B,与PCA82C200 CAN 控制器兼容(BasicCAN),并可替代PCA82C200;增加了一种新的工作模式PeliCAN,使其支持具有很多新特性的CAN2.0B 协议;集成了CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理;具有多主结构、总线访问优先权、硬件滤波等特点.

PC82C250为CAN总线收发器,是CAN 控制器和物理总线的接口,提供对总线的驱动发送能力、对CAN控制器的差动发送能力和对CAN控制器的差动接收能力.它具有很强的抗瞬间干扰和保护总线的能力,以及三种不同的工作方式即高速、斜率控制和待机,如表1所示.总线上的某一个节点掉电不会影响总线,在40米内应用的速度可达1M baud,最多可挂110个节点.

从图1 可看出,该硬件电路主要由单片机P89C668、CAN 独立控制器SJA1000 和CAN 收发器PCA82C250 组成.

27.jpg


上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭