您的位置 首页 汽车

根据ADμC812的CAN总线智能节点的规划

摘要:介绍了一种用单片机ADmu;C812、CAN总线控制器SJA1000和CAN总线驱动器POA82C250组成的CAN总线智能节点的设计方案,给出了该节点的硬件结构和软件设计方法,同时介绍了CAN

摘要:介绍了一种用单片机ADμC812、CAN总线操控器SJA1000和CAN总线驱动器POA82C250组成的CAN总线智能节点的规划方案,给出了该节点的硬件结构和软件规划办法,一起介绍了CAN总线的首要特色。 要害词:CAN总线;ADμC812;数据收集卡 1 导言 CAN(Controller Area Network)总线协议开始是以研制和出产轿车电子产品著称的德国BOSCH公司开发的,它是一种支撑散布式实时操控体系的串行通讯局域网。现在,CAN总线以其高性能、高牢靠性、实时性等长处,而被广泛运用于操控体系中的检测和履行机构之间的数据通讯中。CAN总线具有以下一些技能特性: ●多主办法作业,选用非破坏性的依据优先权的总线裁定技能; ●凭借接纳滤波可完结多地址的帧传送; ●数据选用短帧结构,抗搅扰性强,数据帧的信息CRC校验及其它过错检测办法完善; ●发送期间丢掉裁定或因为犯错而遭破获的帧可以主动重发; ●严重过错时可主动封闭总线功用,以使总线其它操作不受影响。

1.jpg

CAN总线契合ISO11898规范,最大传输速率为1MB/s时传输间隔最大为40m;传输速率为5kB/s时的最大传输间隔为10km。CAN总线的传输介质可为双绞线、同轴电缆等。因为CAN总线是一种很有发展前景的现场总线,因而得到了国际上许多大公司的支撑,加之依据CAN总线的硬件接口简略,编程便当,体系简略集成。因而它特别适用于体系散布比较涣散、实时性要求高、现场环境搅扰大的场合。 2 体系结构 因为CAN总线选用多主办法作业,所以它具有与DCS操控体系不一样的拓扑结构。其操控体系的构成由计算机和智能节点组成,图1所示是其体系结构。该体系最大的特色便是一切的节点(包含上位PC机)都能以相等的位置挂接在总线上。一个CAN总线节点一般至少包含三个部分,即担任节点使命操控的单片机、CAN总线操控器以及CAN总线收发器。本文给出的便是一个可完结数据收集功用的CAN节点的规划办法。 3 CAN节点的硬件规划

2.jpg

本CAN节点的电路原理简图如图2所示。该电路的三个中心器材是单片机ADμC8121、独立的CAN总线操控器SJA1000和CAN总线驱动器PCA82C250。其间SJA10002和PCA82C250两者的组合运用已经在许多CAN总线节点的规划中用到,而本规划的特色就在于,它是依据要完结数据收集功用这一详细要求来选用微操控器ADμC812。图2中的串行接口芯片MAX232作为ADμC812与PC机的串口衔接,它的运用是由该单片机的调试特色决议的。 ADμC812是高度集成、高精度12位数据收集体系,该产品在其内核中集成了带有片内可重编程非易失性闪速/电擦除程序存储器的高性能8位(与8051兼容)MCU和多通道(8个输入通道)12位ADC。 因为ADμC812只需要经过其串口模块和计算机的串口进行衔接,而不需要额定的仿真器,因而可利用ADI公司的QU%&&&&&%KSTART软件来完结程序的在线下载、在线调试和在线仿真,然后极大地进步了作业效率。这也是本规划运用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,以消除反射信号,其阻值应当与传输电缆的特性阻抗大致适当。

3.jpg

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两个特别寄存器中取出,并存入预设的片内数据存储器中,然后退出中止服务程序;

4.jpg

(5)判别所需通道是否采样结束,假如未完结,则设置采样通道号并回来进程(2),若完结则退出A/D转化子程序。 经过该程序可随时依据实践需要更改采样通道数,并将采样成果直接存入指定数据存储区,认为今后向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所示。

5.jpg

实践上,在程序运转进程中,常常会在发送某一帧数据时发现上一帧的数据还没有彻底发送结束(可以经过查询状况寄存器REG STATUS的第4位BIT TCS的显、隐状况可了解前次数据的发送状况)。因而,笔者选用的处理办法是:经过指令发动本次发送之后,就不停地查询状况寄存器,以判别本次发送是否完结,直到确认完结停止。这样可以为下次发送供给便当,一起也有利于程序的顺畅履行,然后防止呈现过错。 (2)接纳部分的程序规划 图5所示是该体系接纳部分的软件流程图。 实践上,在对呼应速度要求不太高的场合,以查询办法来规划接纳子程序是最简略、最牢靠的办法。假如总线上有数据发往本节点,则经过查询状况寄存器的第1位BIT_RBS的位状况,便可得知接纳缓冲区(RXFIFO)中的可用信息,然后经过软件将RXFIFO中的数据逐一“移入”到指定的片内存储空间即可。关于这样一个首要以数据收集功用为主的CAN节点,这些数据多半是由CAN网络中的“操控中心”发来的操控信号,规划时把它们留给ADμC812进一步处理就可以了。 还应留意的是:在接纳查询进程中,要“调查”是否有总线封闭、总线犯错、接纳缓冲器超载等状况,假如有的话,有必要要进行相应的“过错”处理,不然也不能正常进行数据接纳,还有一个问题是关于长途帧的处理。限于篇幅,本文不作介绍。 5 结束语 实践证明:本文所介绍的CAN总线智能节点可以很好地完结对工业规范模仿输出信号的收集以及与CAN总线上其它节点的通讯。因为该节点是依据单片机ADμC812开发的,因而它的体积细巧且扩展灵敏。笔者信任,依据该单片机的各种总线节点一定会得到广泛的运用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/292007.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部