RSS

CAN总线控制器的初始化程序

来源:网络 作者:匿名 时间:2007-01-06 Tag: 点击:

摘  要:介绍了CAN总线控制器SJA1000芯片,并给出用C51语言编写SJA1000总线控制器的初始化程序,方便使用者学习和掌握。

关键词:SJA1000;CAN总线;C51;寄存器

 

0  引  言

随着自动化底层设备通信的需要,使现场总线技术得到了迅速的发展,各厂家都纷纷推出自己的总线控制器。SJA1000 就是Philips公司推出的一种高性能的CAN总线控制器,它得到了广泛的应用,但是有关SJA1000初始化的文章比较少见,介绍的程序也不完全,这给使用者增加了难度。为了方便使用者掌握和使用CAN总线,本文作者成功地运用C51语言初始化SJA1000为核心的CAN总线控制器,缩短了程序开发周期,提高了工作效率。

 

1  SJA1000的新功能与内部结构

1.1  SJA1000的主要新功能

SJA1000是Philips公司早期CAN总线控制器PCA82C200的替代品,功能更强大,与PCA82C200相比,具有许多优点,详见文献[4].

1.2  SJA1000的内部寄存器

SJA1000的寄存器和管脚配置允许它使用于各种各样的集成的或分立的CAN 收发器,这使不同微控制器之间的接口能够被灵活运用。若要正确、灵活的运用SJA1000,就必须了解内部寄存器的地址、功能和作用。SJA1000内部寄存器的结构如表1所示(具体每一位的作用,请参阅文献[2]).

1.3  SJA1000与89C52的连线原理

为了连接到主控制器,SJA1000提供一个复用的地址/数据总线和附加的读/写控制信号,见图1.SJA1000能被看作外围存储器并为主控制器映射I/O设备。为了保证系统的同步,本电路使用了一个24 MHz的晶振作为SJA1000的振荡器,用它的7号引脚(CLKOUT)作为89C52的时钟脉冲。本文中SJA1000的片选由微控制器的P2.7口控制,其内部寄存器的地址由P0口和P2口共同来决定,P0口为低8位,P2口为高8位。

图1  原理接线图

 

 

 

2  程  序

C语言是一种常用的计算机程序设计语言,它既有高级语言的各种特征,又能直接操作系统硬件,而且可以进行结构化程序设计,用C语言编写的程序很容易移植。近年来出现的各种专为微型计算机设计的C语言编译器,如美国Franklin软件公司推出的Franklin C51,德国Keil公司推出Keil C软件,都是高性能的C编译器,它编译的目标代码简洁且运行速度高。后者是现在比较流行的软件,它深受单片机开发人员的喜爱。下面就以Keil C51为平台,系统的介绍如何用C51语言对SJA1000 CAN总线控制器进行初始化。

从图1可以看到,主控制器89C52的P0.0-P0.7直接与SJA1000的AD0-AD7相连,主控制器既要传送地址,又要传送数据,就必须对P0口进行分时控制,而SJA1000的AD0-AD7正好提供一个复用的地址/数据总线和附加的读/写控制信号。

SJA1000由主控制器的程序进行功能配置和激活,因此SJA1000能满足不同属性的CAN总线系统的要求。主控制器89C52和SJA1000之间的数据交换经过一系列的寄存器控制段和一个RAM 信息缓冲器完成,对于主控制器来说,构成发送和接收

  SJA1000初始化流程图

缓冲器的寄存器和一部份RAM的地址窗口,就象是外围的寄存器。

SJA1000初始化的流程图如图2所示。

为了让工程技术人员更加深入的学习和使用CAN总线,这里完整的给出了SJA1000的初始化程序。

程序如下:

#define CRXBYTE[0x8000]                 // 控制寄存器地址

#define CMRXBYTE[0x8001]                // 命令寄存器地址

#define SRXBYTE[0x8002]                 // 状态寄存器地址

#define IRXBYTE[0x8003]                 // 中断寄存器地址

#define ACRXBYTE[0x8004]                // 验收码寄存器地址

#define AMRXBYTE[0x8005]                // 验收屏蔽寄存器地址

#define BTR0XBYTE[0x8006]               // 总线定时寄存器0地址

#define BTR1XBYTE[0x8007]               // 总线定时寄存器1地址
1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
合作站点