用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

CAN控制器SJA1000及其应用

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 23:52:03
5.2 电路原理图

节点1与节点2的原理图如图4所示。AT89C51通过MAX232与PC机串行通信。设置SJA1000工作于Intel模式,由PC机发送的数据写入SJA1000并通过CAN收发器发送。接收数据是通过中断进行的,CAN BUS的数据经CAN接口芯片82C250接收并写入SJA1000的RXFIFO,然后通过中断提请CPU读取。读取的数据由RS232口上传送给PC机。

在本系统中其它节点不与PC机通信,此时AT89C51除与SJA1000相接的口线外还剩余口线,可以做其它用途。如用于数据的采集,则与A/D转换芯片相接即可;如与控制相关,则与控制口相接即可,这样一来可以灵活地构成各种系统。

5.3 软件设计

该系统的软件设计分为两方面:(1)PC机软件设计,可以用VC++、VB,也可以使用工控软件完成。如只用于监视系统,设计的重点在于PC机与节点之间的通信。(2)节点上CPU的软件设计。不论是节点1、2或是其它底层节点,都要用到CAN通信,因此都要设置CAN控制器。其初始化的流程图如图5所示。

图4 节点1和节点2的电路原理图

    具体的例程如下:

MOV DPTR,#CR ;控制寄存器CR的地址送DPTR

MOV A,#01H

MOVX @DPTR,A ;进入复位模式

MOV DPTR,#CDR

MOV A,#00H

MOVX @DPTR,A ;选择BASIC CAN模式、时钟不输出

MOV A,#NODECODE

MOVX @DPTR,A ;节点号NODECODE写入ACR

MOVX DPTR,#AMRjavascript:window.open(this.src);" style="cursor:pointer;"/>

MOV A,#00H

MOV @DPTR,A ;AMR置为0,当且仅当RXID0=ACR时接收数据。

MOV DPTR,#BTR0 ;设定总线时序寄存器BTR0,系统采用12MHz晶振

MOV A,#85H ;分频后总线时钟频率为2MHz

MOVX @DPTR,A ;同步跳转宽度为3tscl

MOV DPTR,#BTR1 ;设定总线时序寄存器BTR1

MOV A,#0B4H ;位同步时间为1个tscl,采样开始位置TSEG1=5tscl

MOVX @DPTR,A ;TSEG2=4tscl,每一位时间10tscl(200kHz),每位采样3次

MOV DPTR,#OCR ;设置输出控制寄存器

MOV A,#1AH ;数据从TX0按正常输出模式同极性输出

MOV @DPTR,A ;TX1不用

MOV DPTR,#CR ;初始化完成,使控制器退出复位模式,进入工作模式工作。

MOV A,#06H

MOV @DPTR,A

该初始化程序使SJA1000工作在BASIC CAN模式下,CAN总线位速率为200kHz。根据总线传输的距离不同速度可以调整。为提高其抗干扰性能,还可以在SJA1000与CAN总线收发器之间加光隔。各节点CPU的其它软件设计应视节点的功能而定,不再多述。

该系统用于城市区域交通中心信息采集及处理,已取得很好效果。由于传输距离较远,设定速率为10kHz,但可靠性较强,系统成本低廉。

CAN总线以其优良的性能使其应用方兴未艾,以SJA1000为控制器构成各种CAN总线系统方便、简单、成本低廉,这也是开发与应用其它CAN总线产品的基础。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:5,531.25000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号