基于ADμC812的CAN总线智能节点的设计

发布者:zuiquan最新更新时间:2012-05-09 来源: dzsc关键字:CAN总线  ADμC812  数据采集卡 手机看文章 扫描二维码
随时随地手机看文章

1 引言

CAN(Controller Area Network)总线协议最初是以研发和生产汽车电子产品著称的德国BOSCH公司开发的,它是一种支持分布式实时控制系统的串行通信局域网。目前,CAN总线以其高性能、高可靠性、实时性等优点,而被广泛应用于控制系统中的检测和执行机构之间的数据通信中。CAN总线具有以下一些技术特性:

●多主方式工作,采用非破坏性的基于优先权的总线仲裁技术;

●借助接收滤波可实现多地址的帧传送;

●数据采用短帧结构,抗干扰性强,数据帧的信息CRC校验及其它错误检测措施完善;

●发送期间丢失仲裁或由于出错而遭破获的帧可以自动重发;

●严重错误时可自动关闭总线功能,以使总线其它操作不受影响。

    CAN总线符合ISO11898标准,最大传输速率为1MB/s时传输距离最大为40m;传输速率为5kB/s时的最大传输距离为10km。CAN总线的传输介质可为双绞线、同轴电缆等。由于CAN总线是一种很有发展前景的现场总线,因此得到了国际上很多大公司的支持,加之基于CAN总线的硬件接口简单,编程方便,系统容易集成。因此它特别适用于系统分布比较分散、实时性要求高、现场环境干扰大的场合。

2 系统结构

由于CAN总线采用多主方式工作,所以它具有与DCS控制系统不一样的拓扑结构。其控制系统的构成由计算机和智能节点组成,图1所示是其系统结构。该系统最大的特点就是所有的节点(包括上位PC机)都能以平等的地位挂接在总线上。一个CAN总线节点通常至少包括三个部分,即负责节点任务控制的单片机、CAN总线控制器以及CAN总线收发器。本文给出的就是一个可完成数据采集功能的CAN节点的设计方法。

3 CAN节点的硬件设计

本CAN节点的电路原理简图如图2所示。该电路的三个核心器件是单片机ADμC8121、独立的CAN总线控制器SJA1000和CAN总线驱动器PCA82C250。其中SJA10002和PCA82C250两者的组合应用已经在很多CAN总线节点的设计中用到,而本设计的特点就在于,它是根据要完成数据采集功能这一具体要求来选用微控制器ADμC812。图2中的串行接口芯片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光电隔离芯片,只不过在图2中没有表示出来。由于通信信号传输到导线的端点时会发生反射,而且反射信号会干扰正常信号的传输,因此,总线两端应接有终端电阻R1、R2,以消除反射信号,其阻值应当与传输电缆的特性阻抗大致相当。

4 CAN节点的软件设计

本节点的软件编程主要包括A/D转换(ADC)、CAN控制器的初始化、CAN总线数据的发送和接收等几个部分。主程序的流程图如图3所示。

下面分别对这几个主要部分的程序设计做一介绍。

4.1 A/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转换子程序。[page]

通过该程序可随时根据实际需要更改采样通道数,并将采样结果直接存入指定数据存储区,以为今后向CAN总线发送所得数据提供便利。

4.2 SJA1000的初始化

CAN的通信协议主要是由CAN控制器完成的,因此,要想实现CAN节点的数据传送,对CAN控制器的初始化是十分关键的。这个步骤直接决定着该CAN网络系统各节点所共同遵守的协议。对SJA1000进行初始化实际上就是通过单片机向其片内的各个寄存器写入控制字的过程,其寄存器包括以下几个:

REG CONTROL—内部控制寄存器地址;

REG COMMAND—内部命令寄存器地址;

REG STATUS —内部状态寄存器地址;

REG INTERRUPT—内部中断寄存器地址;

REG ACR—内部验收代码寄存器地址;

REG AMR—内部验收屏蔽寄存器地址;

REG BTR0—总线定时寄存器0;

REG BTR1—总线定时寄存器1;

REG OCR—输出控制寄存器。

其中:BTR0、BTR1寄存器的内容可用于决定系统通信的波特率和CAN协议物理层中的同步跳转宽度,因此,对于一个系统中的所有节点,这两个寄存器的内容必须相同(包括上位机),否则将无法进行通信;OCR寄存器的内容用于决定CAN控制器的输出方式;而写入ACR、AMR寄存器的内容则要根据实际的网络系统和报文标志符来决定。本设计中,笔者采用的是BasicCAN模式。

完成初始化后,CAN控制器就能正常运行了,但是要实现具体的数据收发任务,还必须编制特定的收、发程序。

4.3 CAN总线数据的发送和接收

(1)发送部分的程序设计

用CAN总线发送数据的流程图如图4所示。实际上,在程序运行过程中,常常会在发送某一帧数据时发现上一帧的数据还没有完全发送完毕(可以通过查询状态寄存器REG STATUS的第4位BIT TCS的显、隐状态可了解上次数据的发送情况)。因此,笔者采用的处理方法是:通过指令启动本次发送之后,就不停地查询状态寄存器,以判断本次发送是否完成,直到确定完成为止。这样可以为下次发送提供便利,同时也有利于程序的顺利执行,从而避免出现错误。

(2)接收部分的程序设计

图5所示是该系统接收部分的软件流程图。

实际上,在对响应速度要求不太高的场合,以查询方式来设计接收子程序是最简单、最可靠的方式。如果总线上有数据发往本节点,则通过查询状态寄存器的第1位BIT_RBS的位状态,便可得知接收缓冲区(RXFIFO)中的可用信息,然后通过软件将RXFIFO中的数据逐个“移入”到指定的片内存储空间即可。对于这样一个主要以数据采集功能为主的CAN节点,这些数据多半是由CAN网络中的“控制中心”发来的控制信号,设计时把它们留给ADμC812进一步处理就可以了。

还应注意的是:在接收查询过程中,要“观察”是否有总线关闭、总线出错、接收缓冲器超载等状态,如果有的话,必须要进行相应的“错误”处理,否则也不能正常进行数据接收,还有一个问题是关于远程帧的处理。限于篇幅,本文不作介绍。

5 结束语

实践证明:本文所介绍的CAN总线智能节点能够很好地实现对工业标准模拟输出信号的采集以及与CAN总线上其它节点的通信。由于该节点是基于单片机ADμC812开发的,因此它的体积小巧且扩展灵活。笔者相信,基于该单片机的各种总线节点一定会得到广泛的应用。

关键字:CAN总线  ADμC812  数据采集卡 引用地址:基于ADμC812的CAN总线智能节点的设计

上一篇:基于ASIC FPGA的IPv6路由器PoS接口设计
下一篇:液晶显示控制器SED1330与DSP的接口应用

推荐阅读最新更新时间:2024-05-02 22:03

基于CAN总线分布式安全检测系统设计
1、引 言 随着自动控制技术、现场总线技术的不断深化发展,网络化、集成化已成为现代控制系统的重要发展方向。CAN总线(Controller Area Network)是德国Bosch公司从80年代初为解决现代汽车中众多的控制于测试仪器之间的数据交换而开发的一种串行数据通信协议。本文介绍利用红外传感器无接触检测,结合单片机技术、CAN总线技术,将现场存在的传感器、电子控制单元、执行机构连接起来组成分布式控制网络,实现了分布式安全保护检测控制。有效地保证了工作人员人身安全和生产的正常进行。该系统可用于危险场所、区域安全防护,机械加工、纺织、食品加工等安全保护以及家庭等防盗报警,有较广泛的应用前景。 2、系统组成及原理 由
[单片机]
基于<font color='red'>CAN总线</font>分布式安全检测系统设计
基于单片机和CAN总线的车灯控制系统设计
1 、引言 CAN(Controller Area Network)是德国 Bosch 公司最先提出的,是目前汽车 控制器 局域网中最流行、最常用的总线。它的主要特点是:CAN 总线为多主站总线,各节点均可在任意时刻主动向网络上的其他节点发送信息,不分主从,通信灵活;CAN 总线采用独特的非破坏性总线仲裁技术,优先级高的节点先传送数据,能满足实时性要求;CAN 总线具有点对点、一点对多点及全局广播传送数据的功能;CAN 总线上每帧有效字节数最多为 8 个,并有 CRC 及其他校验措施,数据出错率极低,某个节点出现严重错误,可自动脱离总线,总线上的其他操作不受影响;CAN 总线只有 2 条导线,系统扩充时可直接将新节点挂在总线上
[汽车电子]
基于单片机和<font color='red'>CAN总线</font>的车灯控制系统设计
基于AT90CAN128的CAN总线设计
1 前 言 现场总线是当前工业总线领域中最活跃的一个领域, CAN 总线是工业数据总线领域重要的现场总线之一。CAN 是Contro ller Area N etw ork的缩写, 是国际标准化的串行通信协议。在当今的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同, 由多条总线构成的情况很多,线束的数量也随之增加。为减少线束的数量、通过多个LAN进行大量数据的高速通信, 1986年德国电气商博世公司开发出面向汽车的CAN 通信协议。而今CAN 在欧洲已是汽车网络的标准协议。CAN 的初衷是为了解决汽车里多种复杂数据的通信
[单片机]
基于AT90CAN128的<font color='red'>CAN总线</font>设计
技术文章—新能源汽车CAN总线如何进行错误处理?
摘要:本文介绍CAN总线关闭对新能源汽车的功能和安全性能产生的影响,并对此提出一些合理的建议。 2019年10月26日第三届中国(佛山)氢能源大会中展示了氢燃料电池城市客车,与目前的纯电动汽车和传统汽车相比,作为一种新的驱动形式出现。但是,新能源汽车整车网络的实现依旧离不开CAN总线通讯。 工程师们通过CAN总线读取车上的车速、转速等信号可以控制整车上众多的ECU单元。但是,你知道CAN总线关闭会对新能源汽车的功能带来哪些影响吗?本文来做详细分析。 一、为何CAN总线依旧能在新能源汽车中扮演重要角色? 从事汽车相关行业的小伙伴们,都知道CAN总线,它是当今汽车各电控单元之间通信的总线标准,现在几乎所有的汽车厂家都选
[汽车电子]
技术文章—新能源汽车<font color='red'>CAN总线</font>如何进行错误处理?
基于CAN总线的胎压监测系统在重型车辆上的应用研究
  胎压对于道路安全、乘坐舒适度、轮胎寿命以及车辆油耗来说是一个非常重要的因素。胎压监测系统(TPMS)使用由电池供电的车轮电子设备,在短时间内可测量轮胎内部的气压和温度。通过无线电,将这些数值连同车轮电子设备的各个识别码以及电池寿命信息一起以数据电文的形式传输到安装在轮罩拱中的射频天线上。然后从那里将数据电文通过电缆转发到电子控制单元。该控制单元对数据电文进行评估,并识别它们的发送点,然后确定是否应将其告知驾驶员。对每个轮胎进行单独监测。借助于温度特性,将其胎压转换成标准压力。无论是驾驶员还是汽车制造商都可以输入额定胎压值,以作为汽车的理想胎压值。如果由驾驶员进行输入,系统将检查该输入值的合理性以避免导致错误。检查该值后,便将其用
[嵌入式]
基于CAN总线的测试设备成关注焦点
  国际众多厂商越来越看好中国汽车及汽车电子市场的巨大发展空间,纷纷采取跟随原国际知名汽车厂或与中国企业合资的方式进入中国,以期在将来的汽车电子市场占有一席之地。其品牌的知名度、雄厚的资金和技术实力、丰富的管理经验和市场运作能力等都给中国原有的起步晚、技术差的生产厂家带来了新挑战。而在汽车测试领域,众多厂商更是开始了你追我赶的角逐。   在汽车测试领域,中国测试和测量工程师主要关心如下方面的问题:一是组装工艺质量测试问题。汽车电子的使用环境为-40℃~+250℃,同时可能经受几个g的冲击力,这要求其机械设计比其他设备如家庭计 算机更为牢固。   二是设计和生产线测试复杂性问题。随着生产系统越来越复杂,工程师们面临的挑战在于如何保证
[测试测量]
采用PC/104总线和CAN总线实现对力信息实时采集和传送的系统设计
随着信息检测技术和控制技术的发展,仿人机器人运动控制已经从传统的离线规划方法研究转向基于环境信息的实时控制研究,仿人机器人的实时姿态调整与实时步态生成方法也成为运动控制的研究重点。对于步行机器人而言,其脚掌所受到的地面反力信息是最重要的外部环境信息之一,它尤其能够反映仿人机器人的姿态信息,在仿人机器人的实时姿态调整中具有重要作用。早在1989年,日本早稻田大学就在他们研制的两足步行机器人WL-12RⅢ中应用了六维力/力矩,该传感器安装在机器人的小腿上,机器人可根据反馈力信息在不平整地面上进行稳定行走;日本HONDA公司的仿人机器人P2,P3以及ASIMO均安装了集成六维力/力矩传感器,利用传感器信息检测地面反力信息。 在国家
[机器人]
CAN-bus通信步入手机APP时代!
自1990年奔驰公司发布了第一辆使用CAN-bus通信的轿车之后,CAN-bus便成为了通讯界里一颗闪亮的星星,在车载设备的通讯中更是一枝独秀。但面对目前这快速发展的新世界,传统应用方案下的线缆组网,PC机监控已无法满足我们新时代的需求,限制了CAN-bus通信的应用场合。 如果说手机的使用拉近了人与人之间的距离,那么智能手机的出现,各种APP应用程序的深入用户群体,则是完全改变了新时代人类的生活方式。物联网、智能工厂、智慧城市、智能家居无不瞄准了人人必备的手机平台,这是一个时代的主题,作为通讯界中具有贵族血统的,引领潮流的CAN-bus通信,怎可在这一波兴涛大浪中停滞不前。 曾经,我们在为随时移动的设备而无计可施。
[嵌入式]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved