logo资料库

基于SJA1000的CAN总线接口电路的设计.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
第 5卷第 2期 2005年 6月 南 京 工 业 职 业 技 术 学 院 学 报 Journal of Nanjing Institute of Industry Technology Vol. 5, No. 2 Jun. , 2005   文章编号 : 1671 4644 (2005) 02 0054 03 基于 SJA1000的 CAN总线接口电路的设计 杨红科 1 ,雷立英 2 (1. 南京工业职业技术学院  机械系 ,江苏  南京  210016; 2. 娄底职业技术学院  机电系 ,湖南  娄底  417000) 摘  要 :给出了一种基于 MCS—51和 SJA1000的 CAN总线节点设计方法 ,并对软硬件进行了相应的说明 。 关键词 : CAN总线 ; SJA1000;节点 中图分类号 : TP336  文献标识码 : A 引言 CAN (Controller A rea Network)即控制器局域网 络 。由于其高性能 、高可靠性 、及独特的设计 , CAN 已经被广泛应用于汽车 、机器人 、数控机床 、自动化 仪表等领域 。在 CAN总线的节点设计中 ,绝大部分 是通过单片机来实现的 。有的单片机 ,已经嵌入了 CAN控制器的功能 , 比如 Philip s的 P8XC592, Mo torola 的 68HC05X4 等 。但 对 于 应 用 最 为 普 及 的 MCS—51系列单片机 ,本身并不嵌有 CAN 控制器的 功能 。针对这种情况 ,笔者设计了一种基于 MCS— 51单片机和 SJA1000的 CAN总线节点电路 ,并编写 了相应的初始化程序 ,给出的软硬件均已通过调试 。 1 CAN总线 CAN最早是由德国 Bosch公司推出 ,用于汽车 内部测量与执行部件之间的数据通信 。由于 CAN 总线具有很强的纠错能力 ,支持差分收发 ,因而适合 高噪声环境 ,而且传输距离比较远 。另外 ,象 Phil ip s,Motorola, Intel等半导体制造商相继开发出了支 持 CAN协议的集成芯片 ,更是推动了 CAN 的应用 。 现在 , CAN的应用范围已经不再局限于最初的汽车 行业 ,在机器人 、智能楼宇 、医疗器械 、工业控制等领 域也取得了广泛的应用 。1993年 ,国际标准化组织 正式颁布了 CAN 国际标准 ISO11898。CAN 属于总 线式串行通讯网络 ,与一般的通讯总线相比 , CAN 总线的数据通讯具有突出的可靠性 、实时性和灵活 性 ,其具体特性如下 : (1) CAN为多主方式工作 ,网络上任一节点均 可在任意时刻主动地向网络上的其他节点发送信 息 ,而不分主从 ,而且在通讯中没有节点地址信息 。 (2) CAN网络上的节点信息可以分成不同的优 先级 ,用来满足不同的实时要求 。 (3) CAN采用非破坏性总线仲裁技术 ,当多个 节点同时向总线发送信息时 ,低优先级的节点会依 此退出发送 ,而最高优先级的节点正常发送 ,不会受 到任何影响 ,极大地节省了总线冲突仲裁时间 。 (4) 发送期间若丢失仲裁或由于出错而遭破坏 的帧可自动重发送 。 (5) CAN的直接通讯距离最远可达到 10km (速 率 5kbp s以下 ) ,通讯速率最高可以达到 1Mbp s (此 时通讯距离最长为 40m ) 。 (6) CAN的每帧信息都有 CRC校验及其它检 错措施 ,保证了出错率很低 。 (7) CAN节点在错误严重的情况下具有自动关 闭 ,退出总线的功能 ,从而使总线上的其它接点不受 影响 。 2 SJA1000介绍 SJA1000是 Philip s生产的独立 CAN 总线控制 器 , 它 是 早 期 的 PCA82C200 的 替 代 产 品 。它 与 PCA82C200在管脚 、电气特性上完全兼容 ,不仅有 12 收稿日期 : 2004 25 作者简介 :杨红科 (1971 研究与开发。 ) ,男 ,陕西凤翔人 ,南京工业职业技术学院讲师 ,南京航空航天大学 2002级硕士研究生 ,主要从事单片机应用系统的 © 1994-2006 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
第 5卷第 2期   杨红科 ,雷立英 :基于 SJA1000的 CAN总线接口电路的设计 55 和 PCA82C200一样的基本 CAN (BasicCAN )工作模 式 ,而且新增加了增强 CAN ( PeliCAN )工作模式 ,这 种模式支持具有很多新特性的 CAN2. 0B 协议 。经 过简单 连 接 和 正 确 设 置 的 SJA1000, 能 自 动 完 成 CAN总线物理层和数据链路层的所有功能 ,对于单 片机来说 ,只要把它看成一个基本的 I/O 设备即可 , 使用非常简单 、方便 。 SJA1000的主要特性如下 : (1) 扩展的接 受缓 冲器 ( 64 字节 , 先进 先出 F IFO ) 。 (2) 和 CAN2. 0B协议兼容 。 (3) 同时支持 11位和 29位识别码 。 (4) 位速率最高可达 1Mbits/ s。 (5) 支持多种微处理器接口 。 (6) 可编程的 CAN输出驱动器配置 。 3 硬件电路设计说明 运用 80C51 和 SJA1000 设计的 CAN 总线节点 电路如图 1 所示 。其中 , TLP113 和 PCA82C250 是 用来进行隔离和增加驱动能力 ,提高系统的可靠性 。 整个硬件电路并不复杂 ,但结合本文作者设计 、现场 调试的体会 ,给出下面几点说明 。 图 1  CAN总线节点原理图    (1) 80C51 和 SJA1000 最好都有各自独立的晶 振电路 。在有的资料中指出 ,可以用 SJA1000 的时 钟输出信号 CLKOUT来驱动单片机 。但这样做并不 可靠 ,有时 SJA1000有 CLKOUT信号输出 ,但并不能 驱动单片机工作 ,对于初步涉足 CAN 总线的人 ,更 应注意这一点 。 (2) SJA1000的复位信号并不是单纯地经单片 机的复位电路加一反相器获得 ,而是通过单片机的 一 I/O口来控制 ,这样 , SJA1000的复位就可以方便 地由单片机通过软件来控制 。 (3) SJA1000的地址 /数据端和单片机的 P0 口 相连时 ,不需要再加锁存器 ,因为它内部已经有地址 锁存功能 。 (4) CAN 总线上的匹配电阻 R8、R9 一定不能 省略 ,如果去掉它们 ,系统的抗干扰能力就会大大降 低 ,甚至不能正常工作 。 4 软件部分 软件部分相对于硬件电路来说 ,要稍难一些 。 下面给出用 MCS—51 汇编语言编制的对 SJA1000 的初始化程序 ,假设 SJA1000的首地址为 8000H,其 中设置波特率的有关数据是针对晶振为 12M ,波特 率为 500Kbits/ s计算出来的 。有一点需要注意 ,在 整个 CAN总线系统中 ,所有节点设置的波特率必须 一致 ,否则 ,系统就不能正常工作 。 CAN _MODE EQU 8000H CAN _BTR0 EQU CAN _MODE + 6 CAN _BTR1 EQU CAN _MODE + 7 © 1994-2006 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
  65 状态 清零 南 京 工 业 职 业 技 术 学 院 学 报 第 5卷第 2期 CAN _ACR0 EQU CAN _MODE + 16 CAN _AMR0 EQU CAN _MODE + 20 CAN _OCR EQU CAN _MODE + 8 CAN _RBSA EQU CAN _MODE + 30 CAN _CDR EQU CAN _MODE + 31 MOV A , #01H MOV DPTR, #CAN _MODE ;通过软件设置复位 MOVX @DPTR , A MOV A , #0C0H MOV DPTR, # CAN _CDR MOVX @DPTR , A ;设置为增加 CAN模式 MOV A , #1AH MOV DPTR, # CAN _OCR ;输出方式配置 MOVX @DPTR , A MOV A , #85H MOV DPTR, # CAN _BTR0 MOVX @DPTR , A ;波特率为 500Kbits/ s MOV A , #0B4H MOV DPTR, # CAN _BTR1 MOVX @DPTR , A MOV A , #00H MOV DPTR, # CAN _RBSA ; 接受缓冲器首址 MOVX @DPTR , A MOV A , #0FFH MOV DPTR , # CAN _AMR0 MOV R0, #04H START10: MOVX @DPTR , A ;全部接受收到的 INC DPTR DJNZ R0, START10 MOV A , #00H MOV DPTR , #CAN _MODE ;初始化结束 ,进入 信息 正常工作状态 MOVX @DPTR , A 5 结束语 该设计可以作为 CAN总线节点的一个模块 ,能 够和仪器仪表等设备相结合 ,使其具有网络通讯的 能力 ,大大提高其性价比 。 参考文献 : [ 1 ] Philip s Sem iconductors. SJA1000 Stand_alone CAN control ler [ S]. 2000. [ 2 ]阳宪惠. 现场总线技术及其应用 [M ]. 北京 :清华大学出 版社 , 1999. [ 3 ]岑雪松. SJA1000在 CAN总线系统节点的应用 [ J ]. 单片 机与嵌入式系统应用 , 2002, (3) : 50 54. D esign of CAN Bus In terface C ircu it Ba sed on SJA1000 YANG Hong ke, LE IL i ying (1. N an jing Institu te of Industry Technology , N an jing 210016, Ch ina; 2. L oud i V oca tiona l Techn ica l Institu te, L oud i 417000, Ch ina) Abstract: This paper p resents a kind of design of CAN Bus node based on MCS—51 and SJA1000, and its hand ware and sofeware is expounded. Key words: CAN Bus; SJA1000; Node (责任编辑  周  源 ) © 1994-2006 China Academic Journal Electronic Publishing House. All rights reserved. http://www.cnki.net
分享到:
收藏