can总线智能传感器节点设计_第1页
can总线智能传感器节点设计_第2页
can总线智能传感器节点设计_第3页
can总线智能传感器节点设计_第4页
can总线智能传感器节点设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于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的寄存器地址为00FFH.下面根据需要对寄存器给予介绍。控制寄存器(00H):765432100CCE00EIESIEIEINITCCE改变配置允许位,高电平有效。该位有效时允许CPU对配置寄存器1FH、2FH、3FH、4FH、9FH、AFH写操作。EIE错误中断允许位,高电平有效。该位一般置1,当总线上产生异常数量的错误时中断CPU。SIE状态改变中断允许位,高电平有效。该位一般置0。IE中断允许位,高电平有效。INIT软件初始化允许位,高电平有效。该位有效时,CAN停止收发报文,TX0和TX1为隐性电平1。在硬件复位和总线关闭时该位被置位。CPU接口寄存器(02H):76543210RSTSTDSCDMCPWDSLEEPMUX0CENRSTST硬件复位状态位。该位由82527写入,为1时硬件复位激活,不允许对82527访问;为0时允许对82527访问。DSCSCLK分频位。该位为1,SCLK=XTAL/2;为0,SCLK=XTAL。DMCMCLK分频位。该位为1,MCLK=SCLK/2;为0,MCLK=SCLK。PWD掉电模式使能位,高电平有效。SLEEP睡眠模式使能位,高电平有效。MUX低速物理层复用标志位。该位为1,ISO低速物理层激活,PIN24=VCC/2,PIN11=INT#(表示取反);该位为0,PIN24=INT#,PIN11=P2.6。CEN时钟输出允许位,高电平有效。标准全局屏蔽寄存器(0607H)。该寄存器用于具有标准标识符的报文,或XTD置0的报文寄存器。该方式称为报文接收滤波。当某位为1时,报文标识符的相应位必须匹配;为0时,不必匹配。扩展全局屏蔽寄存器(080BH)。该寄存器用于扩展报文格式,或XTD置1的报文寄存器,其作用与相同。765432100COBYPOL0DCT10DCR1DCR0总线配置寄存器(2FH):COBY旁路输入比较器标志位,高电平有效。POL极性标志位。为1,如果旁路输入比较器,RX0的输入逻辑1为显性,逻辑0为隐性;为0,则反之。DCT1TX1输出切断控制位。为1,TX1输出不被驱动,该模式用于1根总线的情况,2根差分导线短路;为0,TX1输出被驱动。DCR1RX1输入切断控制位。为1,RX1与输入比较器的反相端断开,接至VCC/2;为0,RX1接至输入比较器反相端。DCR0RX0输入切断控制位。作用与DCR1相同,此时RX0接至比较器同相端。76543210SJWBRP位定时寄存器0(3FH);SJW同步跳转宽度位场,编程值13。BRP波特率分频位场,编程值063。76543210SPLTSEG2TSEG1位定时寄存器1(4FH):SPL采样模式标志位。1表示每位采样3次;0表示每位采样1次。TSEG1时间段1位场,编程值215。TSEG1时间段2位场,编程值17。波特率=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表示未覆盖。CPUUPDCPU更新标志位,只用于发送报文寄存器。10报文不被发送,01报文可发送。NEWDAT新数据标志位。10表示向寄存器写入了新数据,01表示无新数据写入。仲裁寄存器0,1,2,3(BASE+2-BASE+5)存储报文标识符。76543210DLCDIRXTD保留报文配置寄存器(BASE+6)DLC数据长度编码,编程值08。DIR方向标志位。1发送,0接收。XTD标准/扩展标识符标志位。1扩展标识符,0标准标识符。数据寄存器(BASE+7-BASE+14)82527存储报文时,8个数据字节均被写入,未用到的字节数据是随机的。2 硬件电路设计智能节点的电路如图1所示(图中6264略去)。在硬件设计中,由ADC0809完成对8路模拟置的转换,与8051的信息交换采用查询方式,地址BFF8BFFFH,其时钟可由ALE二分频获得;82527完成与CAN总线的信息交换。本设计中,旁路了输入比较器,与8051的信息交换采用中断方式,地址7F007FFFH,可以用82527的P1口和P2口对开关量采集或对继电器进行控制。82C250提供82527和物理总线间的接口,提高接收和发送能力。可根据需要扩展程序存储器。3 软件设计本设计软件采用MCS-51汇编语言编写,程序框图如图2所示。82527的初始化程序如下:INT:MOV DPTR,0FF02HMOV A,00HMOVX DPTR,A ;SCLK=XTAL;MCLK=SCLK,CLKOUT无效MOV DPTR,0FF00HMOV A,41HMOVX DPTR,A ;置位CCE,INITMOV DPTR,0FF2FHMOV A,48HMOVX DPTR,A ;旁路输入比较器设置1位隐性,0为显性,RX1无效MOV DPTR,0FF3FH;MOV A,43H;MOVX DPTR,A ;SJW=2,BRP=3MOV DPTR,0FF4FHMOV A,0EAHMOVX DPTR,A ;SPL=1,TSEG1=7,TSEG2=6此时波特率为100KbpsMOV DPTR,#0FF00H;MOV A,01HMOVX DPTR,A ;禁止对配置寄存器的访问MOV DPTR,0FF10H;MOV A,55H;MOVX DPTR,A;INC DPTR;MOVX DPTR,A;MOV DPTR,0FFF0H;MOV A,55H;MOVX DPTR,AINC DPTR;MOVX DPTR,A ;报文寄存器控制位初始化MOV R0,06H;MOV DPTR,0FF06H;MOV A,0FFH;L1:MOVX DPTR,A ;报文标识符需全部匹配INC DPTRDJNZ 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 Lonworks现场总线由美国Echelon公司于1993年推出,由于其开放的网络操作系统、标准的网络通信协议、丰富的介质接口模板、支持多种介质之间相互通信等特点,在工业控制领域得到了广泛响应。目前已有多种支持Lonworks技术的芯片,Echelon公司的神经元芯片NeuronC31是一种集3个8位CPU及网络通信协议(LonTalk协议)为一体的芯片。采用该芯片构成的智能节点在Lonworks现场总线控制网络中起着举足轻重的作用,它能使现场设备之间相互通信,快速地交换信息,以满足系统实时监控的要求。但由于3150神经元芯片只提供11个通用I/O口,不能满足采集量和控制量要求较多的现场设备的要求,因此研究和开发基于神经元芯片的多点I/O的智能节点,是一项有意义的工作。1 NeuronC3150神经元芯片的特点NeuronC芯片既是Lonworks技术的核心也是智能节点的核心,目前由Toshiba和Motorola两家公司生产,主要包括NeuronC3150和NeuronC3120两种系列。3150芯片中包括E2PROM和RAM存储器,同3120芯片区别在于它无内部ROM,但具有访问外部存储器的接口,寻址空间可达64Kbyte。从这一点来说,3150比3120在节点开发上具有更好的灵活性。3150芯片内部带有3个8位微处理器:一个用于链路层的控制,另一个用于网络层的控制,第三个用于执行用户的应用程序。该芯片还包含11个I/O口和完整的LonTalk通信协议,它同时具有通信和控制功能。2 基于神经元芯片智能节点的开发方法基于神经元芯片开发的智能节点具有结构简单、成本低等优势,其开发方法可分为两种:(1)基于控制模块的硬件设计方法。采用这一方法的优势是可缩短产品的开发周期,因为控制模块通常都集成了神经元芯片、Flash程序存储器、收发器以及RAM等,用户只需设计自己的应用电路即可完成节点开发。(2)基于收发器的硬件电路设计方法。采用这一方法可以降低节点成本,提高节点的市场竞争力,但是这一方法需要在考虑应用电路设计的同时考虑神经元芯片与Flash存储器及RAM的接口电路,这对于电路板的设计加工及生产工艺的要求都较高。3 智能节点的电路设计节点采用主、背板结构。主板上集成有控制电路、通信电路和其他附加电路,其结构图如图1。背板设计为两种多点I/O模块(包括多点数字I/O模块和多点模拟I/O模块)。主、背板之间采用统一标准的20针接口。采用主、背板结构设计法,使得此智能节点的应用领域更为广泛,适应性、通用性和功能都大大增强,对于节点应用程序的开发也更为灵活。3.1 主板电路设计3.1.1 控制电路控制电路主要由神经元芯片,主背板接口电路和片外存储器等组成。各元器件功能如下:(1)神经元芯片 采用Toshiba公司生产的3150芯片,它主要用于提供对节点的控制、实施与Lon网的通信、支持对现场信息的输入输出等应用服务。(2)片外存储器 采用Atmel公司生产的AT29C256(FLASH存储器)。AT29C256共有32K字节的地址空间,其中低16K字节空间用来存放神经元芯片的固件(包括LonTalk协议等)。高16字节空间作为节点应用程序的存储区。采用ISSI公司生产的IS61C256作为神经元芯片的外部RAM.。(3)主、背板接口电路 用于主板与多点I/O模块的电气连接。3.1.2 通信电路通信电路的核心收发器是智能节点与Lon网之间的接口。目前,Echelon公司和其他开发商均提供了用于多种通信介质的收发器模块。本智能节点采用Echelon公司生产的适用于双绞线传输介质的FTT-10A收发器模块。3.1.3 附加电路附加电路主要包括晶振电路、复位电路和Service电路等。晶振电路为3150神经元芯片提供工作时钟。复位电路用于在智能节点上电时产生复位操作。另外,节点还将一个低压中断设备与3150的Reset管脚相连,构成对神经元芯片的低压保护设计,提高节点的可靠性和稳定性。Service电路是专为下载应用程序的电路,Service指示灯对诊断神经元芯片固件状态有指示作用。3.2 I/O扩展电路设计3150神经元芯片包含11个通用口,用户可根据不同的需求进行灵活配置,以便于同外部设备进行接口。对于输入和输出(I/O)数量需求较大的外围设备,11个I/O口显然不能满足。虽然可以依靠增加节点数量来满足外围要求,但是这样做不仅成本价格高而且增加了安装的工作量,维护也不方便。因此,通过增加外围电路实现I/O扩展,成为多点I/O智能节点开发的重要部分。I/O扩展设计包括多点模拟模块设计和多点数字模块设计。 3.2.1 多点模块模块设计多点模拟模块主电路图如图2。TLC2543是支持SPI串行总线的11路模拟通道的12位逐次逼近型模/数转换器。CS(Pin 15)片选信号端接IO0;DATA INPUT(Pin 17)为串行数据输入,其中四位串行地址用来选择下一个被转换的模拟通道或测试电压寄存器;DATA OUTPUT(Pin 16)输出模/数转换的结果;CLK是维持模/数转换正常工作的时钟。值得注意的是,时钟信号频率较高,任何一点干扰都可能影响模块的正常工作。在CLK上串联或并联一支电阻可以起到明显的抗干扰效果,保证模/数模块的稳定。(本模块中,CLK接IO8,DATA INPUT接IO9,DATA OUTPUT接IO10)。TLC2543还有一个特点:IO9输入数据的同时,IO10输出的是上一次模/数转换的值,因此在编写NeuronC源程序时要注意模/数转换的时序。选通两支旁路电路:一支47F电解电容,对低频起滤波作用;另一支为0.1F,对高频起滤波作用。此模/数模块没有选用电压基准,故在模/数芯片的参考电压边上接了一支0.1F电容,用以去除高频干扰。3.2.2 多点数字模块设计多点数字模块主要包括:输入部分、输出部分、双向I/O三部分。通过扩展,模块具16路数字输入通道、15路数字输出通道和3路双向I/O通道。(1)输入部分 采用两片8选1数据选择器74LS151级联,并将NeuronC3150的IO0IO3定义为Nibble Output方式,即半字节输出方式;IO4定义为Bit Input方式,即位输入方式。IO0IO3作为16路输入通道的地址选通信号,与74LS151的地址输入端(E、A、B、C管脚)相连。IO4作为数字信号入口,与74LS151的输出端连接。(具体电路如图3)下面的NeuronC源程序可完成对16路数字通道的定时扫描,定时时间为1s:IO_0 output nibble io_mselect:/定义半字节输出IOIO_4 input bit io_tmp; /定义位输入IOStimer repeating t_circle=1 ;/定义并初始化定时器When (timer_expires(t_circle)int i ;bit I_num,temp15;/定义循环变量通道状态数组初始化通道号for(i=0;i16;i+)io_o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论