电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 接口/总线/驱动 > 详细信息
接口/总线/驱动:基于ADμC812的CAN总线智能节点的设计
来源:   时间: 2008-2-1 2:48:38    

  摘要:介绍了一种用单片机ADμC812、CAN总线控制器SJA1000和CAN总线驱动器POA82C250组成的CAN总线智能节点的设计方案,给出了该节点的硬件结构和软件设计方法,同时介绍了CAN总线的主要特点。
   
  关键词:CAN总线;ADμC812;数据采集卡
   
1引言
   
  CAN(ControllerAreaNetwork)总线协议最初是以研发和生产汽车电子产品著称的德国BOSCH公司开发的,它是一种支持分布式实时控制系统的串行通信局域网。目前,CAN总线以其高性能、高可靠性、实时性等优点,而被广泛应用于控制系统中的检测和执行机构之间的数据通信中。CAN总线具有以下一些技术特性:
   
  ●多主方式工作,采用非破坏性的基于优先权的总线仲裁技术;
   
  ●借助接收滤波可实现多地址的帧传送;
   
  ●数据采用短帧结构,抗干扰性强,数据帧的信息CRC校验及其它错误检测措施完善;
   
  ●发送期间丢失仲裁或由于出错而遭破获的帧可以自动重发;
   
  ●严重错误时可自动关闭总线功能,以使总线其它操作不受影响。
   
  CAN总线符合ISO11898标准,最大传输速率为1MB/s时传输距离最大为40m;传输速率为5kB/s时的最大传输距离为10km。CAN总线的传输介质可为双绞线、同轴电缆等。由于CAN总线是一种很有发展前景的现场总线,因此得到了国际上很多大公司的支持,加之基于CAN总线的硬件接口简单,编程方便,系统容易集成。因此它特别适用于系统分布比较分散、实时性要求高、现场环境干扰大的场合。
   
2系统结构
   
  由于CAN总线采用多主方式工作,所以它具有与DCS控制系统不一样的拓扑结构。其控制系统的构成由计算机和智能节点组成,是其系统结构。该系统最大的特点就是所有的节点(包括上位PC机)都能以平等的地位挂接在总线上。一个CAN总线节点通常至少包括三个部分,即负责节点任务控制的单片机、CAN总线控制器以及CAN总线收发器。本文给出的就是一个可完成数据采集功能的CAN节点的设计方法。
   
3CAN节点的硬件设计
   
  本CAN节点的电路原理简图。该电路的三个核心器件是单片机ADμC8121、独立的CAN总线控制器SJA1000和CAN总线驱动器PCA82C250。其中SJA10002和PCA82C250两者的组合应用已经在很多CAN总线节点的设计中用到,而本设计的特点就在于,它是根据要完成数据采集功能这一具体要求来选用微控制器ADμC812。图中的串行接口芯片MAX232作为ADμC812与PC机的串口连接,它的使用是由该单片机的调试特点决定的。
    ADμC812是高度集成、高精度12位数据采集系统,该产品在其内核中集成了带有片内可重编程非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU和多通道(8个输入通道)12位ADC。
   
  由于ADμC812只需要通过其串口模块和计算机的串口进行连接,而不需要额外的仿真器,因而可利用ADI公司的QUICKSTART软件来实现程序的在线下载、在线调试和在线仿真,从而极大地提高了工作效率。这也是本设计使用MAX232的原因。
    该系统在工作时,首先将从前面传感器送来的工业标准信号(4~20mA或1~5V)通过调理电路变为0~2.5V的模拟电压信号输入至ADμC812的P0.0~P0.7(AD0~AD7)引脚(根据实际情况确定所需AD端口的数量),然后通过程序控制,再将A/D转换所得的数字信息通过SJA1000和PCA82C250送到CAN总线上的相关节点。
   
  SJA1000作为微控制器的片外扩展芯片,其片选引脚CS应接在微控制器的P2.0上,以用于决定CAN控制器各寄存器的地址。SJA1000通过CAN总线驱动器PCA82C250连接在物理总线上。PCA82C250器件可提供对总线的差动发送能力和对CAN控制器的差动接受能力,它同时完全和“ISO11898”标准兼容。为进一步提高系统的抗干扰能力,一般在CAN总线控制器SJA1000和CAN总线驱动器PCA82C250之间加接6N137光电隔离芯片,只不过在没有表示出来。由于通信信号传输到导线的端点时会发生反射,而且反射信号会干扰正常信号的传输,因此,总线两端应接有终端电阻R1、R2,以消除反射信号,其阻值应当与传输电缆的特性阻抗大致相当。
   
4CAN节点的软件设计
   
  本节点的软件编程主要包括A/D转换(ADC)、CAN控制器的初始化、CAN总线数据的发送和接收等几个部分。主程序的流程图。
   
  下面分别对这几个主要部分的程序设计做一介绍。
   
4.1A/D转换部分
   
  笔者在本设计中采用的是单步A/D转换模式,并将A/D转换结果存入指定的数据存储区。具体步骤如下:
   
  (1)通过设置ADC控制寄存器(ADCCON1和ADCCON2)的值来确定A/D转换的工作状态和采样通道号;
   
  (2)使能ADC中断,置位SCONV位以启动单步A/D转换;
   
  (3)等待响应ADC中断,并进入中断服务程序;
   
  (4)把采样所得的数据从ADCDATAL和ADC-DATAH两个特殊寄存器中取出,并存入预设的片内数据存储器中,然后退出中断服务程序;
   
  (5)判断所

  需通道是否采样完毕,如果未完成,则设置采样通道号并返回步骤(2),若完成则退出A/D转换子程序。
   
  通过该程序可随时根据实际需要更改采样通道数,并将采样结果直接存入指定数据存储区,以为今后向CAN总线发送所得数据提供便利。
   
4.2SJA1000的初始化
   
  CAN的通信协议主要是由CAN控制器完成的,因此,要想实现CAN节点的数据传送,对CAN控制器的初始化是十分关键的。这个步骤直接决定着该CAN网络系统各节点所共同遵守的协议。对SJA1000进行初始化实际上就是通过单片机向其片内的各个寄存器写入控制字的过程,其寄存器包括以下几个:

  REGCONTROL—内部控制寄存器地址;
  REGCOMMAND—内部命令寄存器地址;
  REGSTATUS—内部状态寄存器地址;
  REGINTERRUPT—内部中断寄存器地址;
  REGACR—内部验收代码寄存器地址;
  REGAMR—内部验收屏蔽寄存器地址;
  REGBTR0—总线定时寄存器0;
  REGBTR1—总线定时寄存器1;
  REGOCR—输出控制寄存器。
   
  其中:BTR0、BTR1寄存器的内容可用于决定系统通信的波特率和CAN协议物理层中的同步跳转宽度,因此,对于一个系统中的所有节点,这两个寄存器的内容必须相同(包括上位机),否则将无法进行通信;OCR寄存器的内容用于决定CAN控制器的输出方式;而写入ACR、AMR寄存器的内容则要根据实际的网络系统和报文标志符来决定。本设计中,笔者采用的是BasicCAN模式。
   
  完成初始化后,CAN控制器就能正常运行了,但是要实现具体的数据收发任务,还必须编制特定的收、发程序。
   
4.3CAN总线数据的发送和接收
   
  (1)发送部分的程序设计
   
  用CAN总线发送数据的流程图如图4所示。实际上,在程序运行过程中,常常会在发送某一帧数据时发现上一帧的数据还没有完全发送完毕(可以通过查询状态寄存器REGSTATUS的第4位BITTCS的显、隐状态可了解上次数据的发送情况)。因此,笔者采用的处理方法是:通过指令启动本次发送之后,就不停地查询状态寄存器,以判断本次发送是否完成,直到确定完成为止。这样可以为下次发送提供便利,同时也有利于程序的顺利执行,从而避免出现错误。
   
  (2)接收部分的程序设计
   
  是该系统接收部分的软件流程图。
   
  实际上,在对响应速度要求不太高的场合,以查询方式来设计接收子程序是最简单、最可靠的方式。如果总线上有数据发往本节点,则通过查询状态寄存器的第1位BIT_RBS的位状态,便可得知接收缓冲区(RXFIFO)中的可用信息,然后通过软件将RXFIFO中的数据逐个“移入”到指定的片内存储空间即可。对于这样一个主要以数据采集功能为主的CAN节点,这些数据多半是由CAN网络中的“控制中心”发来的控制信号,设计时把它们留给ADμC812进一步处理就可以了。
   
  还应注意的是:在接收查询过程中,要“观察”是否有总线关闭、总线出错、接收缓冲器超载等状态,如果有的话,必须要进行相应的“错误”处理,否则也不能正常进行数据接收,还有一个问题是关于远程帧的处理。限于篇幅,本文不作介绍。
   
5结束语
   
  实践证明:本文所介绍的CAN总线智能节点能够很好地实现对工业标准模拟输出信号的采集以及与CAN总线上其它节点的通信。由于该节点是基于单片机ADμC812开发的,因此它的体积小巧且扩展灵活。笔者相信,基于该单片机的各种总线节点一定会得到广泛的应用。

相关信息
发表评论
打印本页 关闭本页
基于SHARC DSP与SJA1000的CAN总线接口设计
  引言   当前,有一些微处理器将CAN控制器嵌入到系统之中,但是仍有大量人们比较熟悉的微处理器并不带有CAN控制器。采用微处理器和CAN控制器组合的设计成为必要,而且,CAN控制器具有完成CAN总线通信协议所要求的全部必要功能,因此,CAN控制器与其它微处理器的接口设计成为设计CAN总线系统的首要工作。本文重点介绍以SHARC DSP为核心的、基于SJA1000的CAN总线接口设计。   SJA1000...
>>详细内容
ADμC812应用中的若干问题
    摘要 ADμC812作为新一代微控制器,具有强大的功能,比以往的单片机有着更广阔的应用前景。在实际应用中发现,芯片本身尚存在一些应注意的问题及使用时的特殊要求。本文对这些问题进行总结,以供读者参考。   关键词 在线调试 数据转换 SPI 引言   ADμC812是高度集成的高精度12位数据采集系统,其功能方框图如图1所示。从图中可知,该芯片内不仅集成了可重新编程非易失性闪...
>>详细内容
ADuC812在三相电能测量系统中的应用
  ADuC812是美国Analog Devices公司投入市场的第一种微转换器产品,他集成了一个完全可编程的、自校准、高精度的模拟数据采集系统。他小得可以放置在一个传感器、转发器或电缆连接器之内。他的成本极低,因此可以取代建立在单片机基础上的高成本、大体积的产品。由于其高精度和高速度,他适用于智能传感、瞬时获取、数据采集和各种通信系统。此外,与分立式的AD转换和微控制器相比,他的效...
>>详细内容
新型微控制器AduC812的P1口的应用
  摘 要: AduC812是一种新型的高度集成的12位数据采集系统,它在单个芯片内包含了高性能的自校准多通道ADC、两个12位的DAC以及可编程的8位MCU(与8051兼容)。与MCS51系列单片机相似,它有P0~P3四个端口,其中P1口可实现多种功能,例如多通道的ADC、通用输入端口和用于特殊功能的输入控制等。介绍了AduC812的P1口的结构原理和应用。关键词: 端口 A/D转换 定时器 SPI串口 1 Ad...
>>详细内容
SJA1000控制器在多电机综合保护器中的应用
  1 引言 在矿井下生产作业时,良好通风是保证安全生产的关键。常用的通风设备一局部通风机用于调节井下通风状况,调控瓦斯浓度。风机中的电机和其他电机一样,在运行过程中因为负载、电网及电机本身等因素常出现过载、缺相、短路等故障,影响其正常运行,从而影响矿井的正常通风。为了适应矿井生产需求,综合多方面因素及项目要求,研制一台多电机综合保护器,采用AT89C52单片机对煤矿井...
>>详细内容
ADμC812单片机在灌装控制器中的应用
  ADμC812单片机在灌装控制器中的应用 方向前,贺焕林 ( 中原工学院 电气工程系,郑州 450007) 摘要:介绍了灌装控制器的基本原理、方法及ADμC812 单片机的特点。详细论述了基于ADμC812 单片机的灌装控制...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com