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

发布者:光速思考最新更新时间:2010-07-26 来源: 单片机及嵌入式系统应用关键字:CAN总线  单片机  数据采集  智能节点 手机看文章 扫描二维码
随时随地手机看文章

引言

    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):

7 6 5 4 3 2 1 0
0 CCE 0 0 EIE SIE IE INIT

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

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

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

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

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

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

7 6 5 4 3 2 1 0
RSTST DSC DMC PWD SLEEP MUX 0 CEN

    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的报文寄存器,其作用与③相同。

7 6 5 4 3 2 1 0
0 COBY POL 0 DCT1 0 DCR1 DCR0

    ⑤总线配置寄存器(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接至比较器同相端。

7 6 5 4 3 2 1 0
SJW BRP

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

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

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

7 6 5 4 3 2 1 0
SPL TSEG2 TSEG1

    ⑦位定时寄存器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)。

  7 6 5 4 3 2 1 0
BASE+0 MSGVAL TXIE RXIE INTPND
BASE+1 RMTPND TXRQST MSGLST/CPUUPD NEWDAT

◇控制寄存器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)

    存储报文标识符。

7 6 5 4 3 2 1 0
DLC DIR XTD 保留

◇报文配置寄存器(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

关键字:CAN总线  单片机  数据采集  智能节点 引用地址:基于82527的CAN总线智能传感器节点设计

上一篇:基于数据驱动的自动化测试的研究和实现
下一篇:基于DWR反向AJAX的Web监控系统

推荐阅读最新更新时间:2024-03-30 21:31

单片机课程设计一汇编语言实现四位数计算器
汇编语言(英語:assembly language):是任何一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。 在不同的设备中,汇编语言对应着不同的机器语言指令集。 一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同系统平台之间移植。 Keil: 是美国Keil软件公司出品的支持8051系列单片机架构的一款IDE(集成开发环境)。 AT89C51:是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。 普中开发版原理图: 题目:电子计算器 基
[单片机]
单片机的常见输入输出电路介绍(三)
2.4 光电耦合   光电耦合可以传输线性信号,也可以传输开关信号,在输出级应用时主要用来传递开关信号。如图9所示,单片机输出控制信号经缓冲器7407放大后送入光耦。 R2为光耦输出晶体管的负载电阻,它的选取应保证:在光耦导通时,其输出晶体管可靠饱和;而在光耦截止时,Tl可靠饱和。但由于光耦响应速度慢使开关延迟时间加长,限制了其使用频率。      结语   上述几种输入/输出电路通过广泛的应用表明.其对合理、可靠地实现单片机电气控制系统具有较高的工程实用价值。
[模拟电子]
<font color='red'>单片机</font>的常见输入输出电路介绍(三)
单片机C程序的优化
单片机C程序优化对程序进行优化,通常是指优化程序代码或程序执行速度。优化代码和优化速度实际上是一个予盾的统一,一般是优化了代码的尺寸,就会带来执行时间的增加,如果优化了程序的执行速度,通常会带来代码增加的副作用,很难鱼与熊掌兼得,只能在设计时掌握一个平衡点。 一、程序结构的优化 1、程序的书写结构 虽然书写格式并不会影响生成的代码质量,但是在实际编写程序时还是应该尊循一定的书写规则,一个书写清晰、明了的程序,有利于以后的维护。在书写程序时,特别是对于While、for、do while、if elst、switch case等语句或这些语句嵌套组合时,应采用 缩格 的书写形式, 2、标识符 程序中使用的用户标识符除要遵循标识符的命
[单片机]
单片机数码管的静态显示
在第三章我们学习了 74HC138,了解到 74HC138 在同一时刻只能让一个输出口为低电平,也就是说在一个时刻内,我们只能使能一个数码管,并根据我们给出的 P0 的值来改变这个数码管的显示字符,我们可以将此理解为数码管的静态显示。 数码管静态显示是对应动态显示而言的,静态显示对于一两个数码管还行,多个数码管,静态显示实现的意义就没有了。这节课我们先用一个数码管的静态显示来实现一个简单的秒表,为下节课的动态显示打下基础。 先来介绍一个 51 单片机的关键字 code。我们前边课程定义变量的时候,一般用到unsigned char 或者 unsigned int 这两个关键字,这样定义的变量都是放在我们的单片机的 RAM中
[单片机]
PSD813器件在单片机系统中的应用
随着单片机系统的广泛应用,其功能不断加强,集成度日益增高。但是,由于在传统的单片机系统设计中必须使用许多分立器件组成单片机的外围电路,诸如地址锁存器、PLD、RAM、EPROM等,因此使得整个系统变得十分复杂、可靠性降低、功耗费用增高。由于各个系统的要求不尽一致,这样在开发每一个单片机系统时都必须重复设计以上外围分立器件电路,延长了开发时间,工作效率随之大幅度下降,并且还浪费了大量的人力、物力。随着科学技术,尤其是大规模集成电路技术的飞速发展,单片机外围集成芯片也随之产生、发展。WSI公司的可编程单片机通用外围接口芯片(PSD)可将单片机所需的多个外围器件集成在一个芯片中,并能与单片机实现所谓无缝连接(no glue),大大简
[单片机]
PSD813器件在<font color='red'>单片机</font>系统中的应用
利用RS-232C实现PC机与单片机的通信
  我们知道EIA-RS-232C是用正负电压来表示逻辑状态,单片机串行口采用正逻辑TTL电平,这样单片机和PC机的COM1或者COM2就不能直接连接。为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS一232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MCl488、SN75150芯片可完成TTL电平到EIA电平的转换,MCl489、SN75154可实现EIA电平到TTL电平的转换。而MAX232芯片可完成TTL←→EIA双向电平转换,MAX232系列芯片集成度高,+5V电源(内置了电压倍增电路及负电源电路),只需外接5个容量为0
[单片机]
利用RS-232C实现PC机与<font color='red'>单片机</font>的通信
恩智浦推出跨界MCU i.MX RT1170系列,开启GHz微控制器时代
新闻亮点: ● i.MX RT1170 MCU系列采用先进的28nm FD-SOI技术,可满足更低的动态功耗和静态功耗要求。RT 1170集成了高达GHz 的 Arm Cortex-M7和高能效的Cortex-M4、先进的2D矢量图形加速器以及恩智浦署名的EdgeLock安全解决方案 ● i.MX RT1170提供6468 CoreMark评分和2974 DMIPS性能,基准评分达到同类竞争MCU的两倍 ● 扩展广受欢迎的i.MX RT系列,满足工业、物联网 (IoT)及汽车应用不断提升的边缘计算性能需求 恩智浦半导体(纳斯达克代码:NXPI)日前在2019年ARM科技大会上宣布推出跨界MCU i.MX RT1170系列,具
[单片机]
恩智浦推出跨界<font color='red'>MCU</font> i.MX RT1170系列,开启GHz<font color='red'>微控制器</font>时代
使用STM32单片机点亮LED
有一人,登场于金庸先生的《神雕侠侣》,以大理段氏“一阳指”自成一派,武学修为登峰造极,“天下五绝”之一,号称“南帝”,他就是“一灯大师”。如今,武林中逐渐被遗忘的“一灯大师”,却活跃在另一个行业——嵌入式开发中。 传说,每一个成功的MCU(俗称单片机)开发组中,都有一名“一灯大师”,他精通所有开发板的点灯方法,对于企业引入的新开发板,总是勤学苦练,从点灯开始,快速掌握新开发板的编程要点,带领团队走向胜利。 成为“一灯大师”,离不开持续的修行,离不开对一招一式的勤学苦练。本文将讲解如何通过编程来控制STM32点亮一个LED。 学习环境: 1.软件:Keil5 2.硬件:STM32开发板(笔者使用信盈达公司的M4开发板,芯片型
[单片机]
使用STM32<font color='red'>单片机</font>点亮LED
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved