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

时间:2023-11-10 08:03:52 其他范文 收藏本文 下载本文

基于ADμC812的CAN总线智能节点的设计(共4篇)由网友“hotkeywords”投稿提供,以下是小编为大家整理后的基于ADμC812的CAN总线智能节点的设计,希望对您有所帮助。

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

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

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

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

关键词: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转换子程序。

通过该程序可随时根据实际需要更改采样通道数,并将采样结果直接存入指定数据存储区,以为今后向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开发的,因此它的体积小巧且扩展灵活。笔者相信,基于该单片机的各种总线节点一定会得到广泛的应用。

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

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

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

关键词: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总线节点的设计中用到,而本设计的特点就在于,它是根据要完成数据

[1] [2] [3] [4]

篇3:基于82527的CAN总线智能传感器节点设计

基于82527的CAN总线智能传感器节点设计

摘要:介绍一种以8051微控制器和82527独立CAN总线控制器为核心组成的CAN总线智能传感器节点的设计方法,并给出其硬件原理图和初始化程序。

关键词:CAN总线 82527 单片机 数据采集 智能节点

引言

CAN(Controller Area Network,控制局域网)属于工业现场总线,是德国Bosch公司20世纪80年代初作为解决现代汽车中众多的控制与测试仪器间的数据交换而开发的一种通信协议。1993年11月,ISO正式颁布了高速通信控制局域网(CAN)的国际标准(ISO11898)。CAN总线系统中现场数据的采集由传感器完成,目前,带有CAN总线接口的传感器种类还不多,价格也较贵。本文给出一种由8051单片机和82527独立CAN总线控制器为核心构成的智能节点电路,在普通传感器基础上形成可接收8路模拟量输入和智能传感器节点。

(本网网收集整理)

1 独立CAN总线控制器82527介绍

82527是Intel公司生产的独立CAN总线控制器,可通过并行总线与Intel和Motrorola的控制器接口;支持CAN规程2.0B标准,具有接收和发送功能并可完成报文滤波。82527采用CHMOS 5V工艺制造,44脚PLCC封装,使用温度为-44~+125℃,其引脚的排列和定义参见参考文献[1]。

(1)82527的时钟信号

82527的运行由2种时钟控制:系统时钟SCLK和寄存器时钟MCLK。SCLK由外部晶振获得,MCLK对SCLK分频获得。CAN总线的位定时依据SCLK的频率,而MCLK为寄存器操作提供时钟。SCLK频率可以等于外部晶振XTAL,也可以是其频率的1/2;MCLK的频率可以等于SCLK或是其频率的1/2。系统复位后的默认设置是SCLK=XTAL/2,MCLK=SCLK/2。

(2)82527的工作模式

82527有5种工作模式:Intel方式8位分时复用模式;Intel方式16位分时复用模式;串行接口模式;非Intel方式8位分时复用模式;8位非分时复用模式。本文应用Intel方式8位分时复用模式,此时82527的30和44脚接地。

(3)82527的寄存器结构[2]

82527的寄存器地址为00~FFH.下面根据需要对寄存器给予介绍。

①控制寄存器(00H):

765432100CCE00EIESIEIEINIT

CCE――改变配置允许位,高电平有效。该位有效时允许CPU对配置寄存器1FH、2FH、3FH、4FH、9FH、AFH写操作。

EIE――错误中断允许位,高电平有效。该位一般置1,当总线上产生异常数量的错误时中断CPU。

SIE――状态改变中断允许位,高电平有效。该位一般置0。

IE――中断允许位,高电平有效。

INIT――软件初始化允许位,高电平有效。该位有效时,CAN停止收发报文,TX0和TX1为隐性电平1。在硬件复位和总线关闭时该位被置位。

②CPU接口寄存器(02H):

76543210RSTSTDSCDMCPWDSLEEPMUX0CEN

RSTST――硬件复位状态位。该位由82527写入,为1时硬件复位激活,不允许对82527访问;为0时允许对82527访问。

DSC――SCLK分频位。该位为1,SCLK=XTAL/2;为0,SCLK=XTAL。

DMC――MCLK分频位。该位为1,MCLK=SCLK/2;为0,MCLK=SCLK。

PWD――掉电模式使能位,高电平有效。

SLEEP――睡眠模式使能位,高电平有效。

MUX――低速物理层复用标志位。该位为1,ISO低速物理层激活,PIN24=VCC/2,PIN11=INT#(#表示取反);该位为0,PIN24=INT#,PIN11=P2.6。

CEN――时钟输出允许位,高电平有效。

③标准全局屏蔽寄存器(06~07H)。该寄存器用于具有标准标识符的报文,或XTD置0的报文寄存器。该方式称为报文接收滤波。当某位为1时,报文标识符的相应位必须匹配;为0时,不必匹配。

④扩展全局屏蔽寄存器(08~0BH)。该寄存器用于扩展报文格式,或XTD置1的报文寄存器,其作用与③相同。

765432100COBYPOL0DCT10DCR1DCR0

⑤总线配置寄存器(2FH):

COBY――旁路输入比较器标志位,高电平有效。

POL――极性标志位。为1,如果旁路输入比较器,RX0的输入逻辑1为显性,逻辑0为隐性;为0,则反之。

DCT1――TX1输出切断控制位。为1,TX1输出不被驱动,该模式用于1根总线的情况,2根差分导线短路;为0,TX1输出被驱动。

DCR1――RX1输入切断控制位。为1,RX1与输入比较器的反相端断开,接至VCC/2;为0,RX1接至输入比较器反相端。

DCR0――RX0输入切断控制位。作用与DCR1相同,此时RX0接至比较器同相端。

76543210SJWBRP

⑥位定时寄存器0(3FH);

SJW――同步跳转宽度位场,编程值1~3。

BRP――波特率分频位场,编程值0~63。

76543210SPLTSEG2TSEG1

⑦位定时寄存器1(4FH):

SPL――采样模式标志位。1表示每位采样3次;0表示每位采样1次。

TSEG1――时间段1位场,编程值2~15。

TSEG1――时间段2位场,编程值1~7。

波特率=XTAL/[(DSC+1)*(BRP+1)*(3+TSEG1+TSEG2)]

⑧报文寄存器(把每个寄存器的`第1字节地址作为基址BASE)。

76543210BASE+0MSGVALTXIERXIEINTPNDBASE+1RMTPNDTXRQSTMSGLST/CPUUPDNEWDAT

◇控制寄存器0,1(BASE+0,BASET+1)

MSGVAL――报文寄存器有效标志位,高电平有效。10置位,01复位。

TXIE――发送中断允许标志位,高电平有效。10置位,01复位。

RXIE――接收中断允许标志位,高电平有效,10置位,01复位。

INTPND――中断申请标志位,高电平有效。10置位,01复位。

RMTPND――远程帧申请标志位,高电平有效。10置位,01复位。

TXRQST――请求发送标志位,高电平有效。10置位,01复位。

MSGLST――报文丢失标志位,只用于接收报文寄存器。10表示未读报文被新报文覆盖,01表示未覆盖。

CPUUPD――CPU更新标志位,只用于发送报文寄存器。10报文不被发送,01报文可发送。

NEWDAT――新数据标志位。10表示向寄存器写入了新数据,01表示无新数据写入。

◇仲裁寄存器0,1,2,3(BASE+2-BASE+5)

存储报文标识符。

76543210DLCDIRXTD保留

◇报文配置寄存器(BASE+6)

DLC――数据长度编码,编程值0~8。

DIR――方向标志位。1发送,0接收。

XTD――标准/扩展标识符标志位。1扩展标识符,0标准标识符。

◇数据寄存器(BASE+7-BASE+14)

82527存储报文时,8个数据字节均被写入,未用到的字节数据是随机的。

2 硬件电路设计

智能节点的电路如图1所示(图中6264略去)。

在硬件设计中,由ADC0809完成对8路模拟置的转换,与8051的信息交换采用查询方式,地址BFF8~BFFFH,其时钟可由ALE二分频获得;82527完成与CAN总线的信息交换。本设计中,旁路了输入比较器,与8051的信息交换采用中断方式,地址7F00~7FFFH,可以用82527的P1口和P2口对开关量采集或对继电器进行控制。82C250提供82527和物理总线间的接口,提高接收和发送能力。可根据需要扩展程序存储器。

3 软件设计

本设计软件采用MCS-51汇编语言编写,程序框图如图2所示。

82527的初始化程序如下:

INT:MOV DPTR,#0FF02H

MOV A,#00H

MOVX @DPTR,A ;SCLK=XTAL

;MCLK=SCLK,CLKOUT无效

MOV DPTR,#0FF00H

MOV A,#41H

MOVX @DPTR,A ;置位CCE,INIT

MOV DPTR,#0FF2FH

MOV A,#48H

MOVX @DPTR,A ;旁路输入比较器设置1位隐性,0为显性,RX1无效

MOV DPTR,#0FF3FH;

MOV A,#43H;

MOVX @DPTR,A ;SJW=2,BRP=3

MOV DPTR,#0FF4FH

MOV A,#0EAH

MOVX @DPTR,A ;SPL=1,TSEG1=7,TSEG2=6此时波特率为100Kbps

MOV DPTR,#0FF00H;

MOV A,#01H

MOVX @DPTR,A ;禁止对配置寄存器的访问

MOV DPTR,#0FF10H;

MOV A,#55H;

MOVX @DPTR,A;

INC DPTR;

MOVX @DPTR,A;

MOV DPTR,#0FFF0H;

MOV A,#55H;

MOVX @DPTR,A

INC DPTR;

MOVX @DPTR,A ;报文寄存器控制位初始化

MOV R0,#06H;

MOV DPTR,#0FF06H;

MOV A,#0FFH;

L1:MOVX @DPTR,A ;报文标识符需全部匹配

INC DPTR

DJNZ R0,L1;

MOV DPTR,#0FF16H;

MOV A,#8CH ;报文寄存器1可发送8个字节扩展报文

MOVX @DPTR,A;

MOV DPTR,#0FF26H;

MOV A,#84H;

MOVX @DPTR,A ;报文寄存器2可接收8个字节扩展报文

MOV DPTR,#0FF00H;

MOV A,#00H;

MOVX @DPTR,A ;初始化结束

RET

篇4:基于82527的CAN总线智能传感器节点设计

基于82527的CAN总线智能传感器节点设计

摘要:介绍一种以8051微控制器和82527独立CAN总线控制器为核心组成的CAN总线智能传感器节点的设计方法,并给出其硬件原理图和初始化程序。

关键词:CAN总线 82527 单片机 数据采集 智能节点

引言

CAN(Controller Area Network,控制局域网)属于工业现场总线,是德国Bosch公司20世纪80年代初作为解决现代汽车中众多的控制与测试仪器间的数据交换而开发的一种通信协议。1993年11月,ISO正式颁布了高速通信控制局域网(CAN)的国际标准(ISO11898)。CAN总线系统中现场数据的采集由传感器完成,目前,带有CAN总线接口的传感器种类还不多,价格也较贵。本文给出一种由8051单片机和82527独立CAN总线控制器为核心构成的智能节点电路,在普通传感器基础上形成可接收8路模拟量输入和智能传感器节点。

1 独立CAN总线控制器82527介绍

82527是Intel公司生产的独立CAN总线控制器,可通过并行总线与Intel和Motrorola的控制器接口;支持CAN规程2.0B标准,具有接收和发送功能并可完成报文滤波。82527采用CHMOS 5V工艺制造,44脚PLCC封装,使用温度为-44~+125℃,其引脚的排列和定义参见参考文献[1]。

(1)82527的时钟信号

82527的运行由2种时钟控制:系统时钟SCLK和寄存器时钟MCLK。SCLK由外部晶振获得,MCLK对SCLK分频获得。CAN总线的位定时依据SCLK的频率,而MCLK为寄存器操作提供时钟。SCLK频率可以等于外部晶振XTAL,也可以是其频率的`1/2;MCLK的频率可以等于SCLK或是其频率的1/2。系统复位后的默认设置是SCLK=XTAL/2,MCLK=SCLK/2。

(2)82527的工作模式

82527有5种工作模式:Intel方式8位分时复用模式;Intel方式16位分时复用模式;串行接口模式;非Intel方式8位分时复用模式;8位非分时复用模式。本文应用Intel方式8位分时复用模式,此时82527的30和44脚接地。

(3)82527的寄存器结构[2]

82527的寄存器地址为00~FFH.下面根据需要对寄存器给予介绍。

①控制寄存器(00H):

765432100CCE00EIESIEIEINIT

CCE――改变配置允许位,高电平有效。该位有效时允许CPU对配置寄存器1FH

[1] [2] [3] [4] [5] [6]

单总线协议转换器在分布式测控系统中的应用

无线传感器网络中的关键技术

串行通信控制器85C30及其应用

数据采集系统设计研究论文

双处理器在变电站监控中的应用研究论文

高性能软开关功率因数校正电路的设计

基于FPGA 的VME自定义总线接口设计论文

CAN总线在发动机测试系统中的应用

基于组态软件的电动汽车CAN总线网络设计

计算机与网络用语中英翻译

基于ADμC812的CAN总线智能节点的设计
《基于ADμC812的CAN总线智能节点的设计.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【基于ADμC812的CAN总线智能节点的设计(共4篇)】相关文章:

基于16位单片机的语音电子门锁系统2023-03-16

DSP与单片机的一种高速通信实现方案2022-05-04

计算机三级网络技术近年笔试试题及答案2023-02-05

dcs培训总结范文2022-04-30

文献测控技术与仪器专业介绍及其发展方向2022-12-31

AT89C控制LMX2332的频率合成器2022-05-08

电路原理答案2023-09-02

计算机与网络英语词汇(A2)2022-06-12

测量物体的温度幼儿科学教案2023-04-26

富士产品在矫平控制系统中的应用论文2022-06-04