CAN控制器SJA1000及其应用
有通用性的工业测控系统,系统的结构图如图3所示。

CAN总线是一种多主总线,理论上任何一个节点都可以作为主节点。在本系统中设置与上位PC机相连的节点1和节点2为上位节点,其它节点为底层节点。在任务比较简单的系统中,也可以只设置一台上位PC机,PC机通过串口与节点上的CPU通信,CPU再与CAN控制器SJA1000通信,实现信息在CAN BUS上的发送与接收。节点1与节点2的结构相同,而底层节点根据应用的不同具有不同的功能。但它们都具有与CAN BUS通信的能力,上传数据和接收数据。
5.2 电路原理图
节点1与节点2的原理图如图4所示。AT89C51通过MAX232与PC机串行通信。设置SJA1000工作于Intel模式,由PC机发送的数据写入AT89C51,再通过P0口及控制信号将数据写入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所示。

具体的例程如下:
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 #AMR
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 邬宽明.CAN总线原理和应用系统设计. 北京:北京航空航天大学,2001.3
2 DATA SHEET SJA1000 CAN Stand-alone controller.PHILIPS Semiconductors 公司,2000.4
3 王东威,顾宏,洪义平.基于CAN总线的安全巡检系统的信息采集及处理.电子产品世界, 2002(4)
- 数字信号处理(DSP)应用系统中的低功耗设计(05-02)
- SHARC引领第四代通用DSP高端应用潮流(09-27)
- 在应用可编程测控网络设计(03-15)
- 基于dsPIC33F系列单片机的应用程序升级方法(04-03)
- 采用混合时钟模式提高Linux时钟精度的方法(05-10)
- MSP430低功耗原理及其在海温测量中的应用(06-06)
