首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 电子技术 > 传感与控制
基于SJA1000的CAN总线控制系统的设计与实现
来源:本站整理  作者:佚名  2010-03-30 10:43:50





(4)设计时将SJA1000的CLOCKOUT的时钟信号接至AT89C51的时钟电路输入端,来作为AT89C51的外部时钟输入,从而解决了时钟同步问题:同时将SJA1000中断输出信号/INT接至AT89C51的/INT0端,通过中断方式与AT89C51进行通信。

3系统软件设计

系统上电后首先对82C250和SJA1000进行初始化。以确定工作主频、波特率、输出特性等,然后通过查询方式获取模数转换采样值,并把该值通过SJA1000传送到CAN总线上由上位PC机来进行显示控制。而对来自CAN总线上的信息则采用中断方式处理,系统每接收到一帧信息,便产生一次中断以触发微处理器进入中断模式,然后在中断服务程序中读取该帧信息并传送到现场。SJA1000的初始化程序如下:

    MOV DPTR,#CR:控制寄存器CR的地址送DPTR
    MOVA,#01H
    MOVX@DPTR,A:进入复位模式
    MOV DPTR,#CDR
    MOVA,#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,系统采用12 MHz晶振
    MOV A,#85H;分频后总线时钟频率为2MHz
    MOVX @DPTR,A;同步跳转宽度为3tscl
    MOV DPTR,#BTR1;设定总线时序寄存器BTR1
    MOV A,#OB4H:位同步时间为1个tsc1,采样开始位置TSEG1=5tsc1
    MOVX @DPTR,A;TSEG2=4tsc1,每一位时间10tsc1(200 kHz),每位采样3次
    MOV DPTR,#OCR;设置输出控制寄存器
    MOV A,#1AH:数据从TX0按正常输出模式同极性输出
    MOV @DPTR,A;TX1不用
    MOV DPTR,#CR;初始化完成,使控制器退出复位模式,进入工作模式工作。
    MOV A,#06H
    MOV @DPTR,A

SJA1000在经过初始化后便开始接收或发送数据,其程序流程分别如图2和图3所示。



4结束语

该接口电路在经DP-51H单片机通讯仿真实验仪的调试后,结果表明它能模拟实现通信功能,且其抗干扰性能优良,通信速率较高,电路也比较简单,是开发与应用其它CAN总线产品的基础。

上一页  [1] [2] 

关键词:

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

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:92,644.53000 毫秒