C8051F040在基于CAN总线的分布式测控系统中的应用

发布者:BlissfulWhisper最新更新时间:2011-05-07 关键字:C8051F040  CAN总线  分布式测控 手机看文章 扫描二维码
随时随地手机看文章

1 概述

分布式在线测控系统是由多个面向设备的、以MCU为核心的智能处理单元和多个并行运行且具有不同监测和故障诊断功能的微机构成的。该系统采取“分治”的设计思想?它将数据采集以及部分数据处理任务交给设备层的智能处理单元去完成?而监测诊断层主要负鸺嗍雍凸收险锒稀7植际讲饪叵低成杓凭??悸歉鞲鼋诘阒?涞耐ㄐ盼侍猗熞蛭?ㄐ磐?绲难∪《韵低承阅苡泻艽笥跋臁?国内已开展了基于现场总线的在线测控系统的研究?并利用CAN总线实现设备层的检测处理、单元间的通信以及与上层监测主机的通信。CAN总线就是一种支持分布式实时控制系统的串行通信局域网络总线。它的主要特点如下:

●任一个节点均可在任一时刻主动向网络上的其它节点发送数据,而从不分主从,因此,通信比较灵活;

●节点可分为不同的优先级,可以满足不同的实时要求;

●采用非破坏性总线仲裁,当两节点同时向总线发送信息时,优先级低的节点主动停止数据发送?而优先级高的节点可不受影响地继续发送数据;

●通信距离最远可达10km,通信最高速率可达1Mbps?

●每帧数据的有效字节数为8,因此,可保证很短的传输时间,而且实时性强,受干扰的概率低;

    ●每帧数据都含有CRC(循环冗余)校验及其它校验措施,因而数据出错率很低;    图1中,CAN内核由CAN协议控制器和负责消息收发的串行/并行转换RX/TX移位寄存器组成。消息RAM用于存储消息目标和每个目标的仲裁掩码。这种CAN处理器有32个随意配置为发送和接受的消息目标?并且每一个消息目标都有它自己的识别掩码,所有的数据传输和接收滤波都是由CAN控制器完成的,而不是由CIP-51来完成。    MOV CAN0DATL,#04H ;写IF1仲裁寄存器2,发送对象的地址01因标准帧使用高11位,所以地址要左移2位指向控制寄存器

●CAN总线节点在严重错误的情况下,可自动切断与总线的联系,以使总线上的其它操作不受影响。

目前,CAN总线协议以其可靠性高、实时性好以及独特的设计已经成为总线通信网络的首选?国内目前使用较广的是PHILIPS 生产的SJA1000 、82C200等独立的CAN控制器,由于这种独立的控制器限制了测控节点的集成度,因此,很多微处理器生产厂家已经开始生产内部集成有CAN控制器的MCU。美国CYGNAL公司生产C8051F040就是内部集成有BOSCH CAN控制器的混合信号系统级芯片(SOC)。本文将分析C8051F040 的CAN总线结构、与CPU 的接口及初始化配置,同时将给出基于C8051F040的分布式测控节点的设计及系统的实现框架。

2 C8051F040及其内部BOTSH CAN

Cygnal公司的单片机C8051F040具有与8051指令集完全兼容的CIP-51内核。它的最高频率可达25MHz?内置64kB FLASH RAM和4kB的数据存储器。C8051F040在一个芯片内集成了构成单片机数据采集或控制系统所需要的几乎所有模拟和数字外设及其它功能部件,包括ADC、可编程增益放大器、DAC、电压比较器、温度传感器、SMBus/I2C、UART、SPI、定时器、内部振荡器、看门狗电路以及CAN 控制器等,这种高度集成为设计小体积、低功耗、高可靠和高性能的测控系统提供了方便,同时也使测控设备整体成本能够降低。

C8051F040内部集成有BOTSH CAN,它兼容CAN技术规范2.0A和2.0B,主要由CAN内核、消息RAM(独立于CIP-51的RAM)、消息处理单元和控制寄存器组成,图1所示是C8051F040内部的CAN总线结构图。

 

CAN内部寄存器中存储了所有CAN的控制和配置信息,其中包括控制寄存器、状态寄存器、设置波特率的位定时寄存器 、测试寄存器、错误计数器和消息接口寄存器。通常CAN内核不能直接访问消息RAM,而必须通过接口寄存器IF1或IF2来访问。另外,CIP-51的SFR并不能直接访问CAN内部寄存器的所有单元,其配置CAN、消息目标、读取CAN状态以及获取接收数据、传递发送数据都由SFR中的6个特殊寄存器来完成,其中CAN0CN、CAN0TST和CAN0STA 3个寄存器可直接获取或修改CAN 控制器中对应的寄存器,而CAN0DATH、CAN0DATL、CAN0ADR 3个寄存器主要用来访问修改其它不能直接访问的CAN 内部寄存器,其中CAN0ADR用来指出要访问寄存器的地址,CAN0DATH、CAN0DATL这时就相当于要访问的16位寄存器的高、低字节的映射寄存器,而对它们的读写则相当于对所指向寄存器的读写。图2给出了CIP-51如何访问CAN中控制寄存器和每个消息的路径图。

消息处理单元用于根据寄存器中的信息来控制CAN内核中移位寄存器和消息RAM 之间的数据传递,同时,它还可用来管理中断的产生。

3 基于C8051F040的智能系统设计

3.1 硬件设计

工业测控现场通常存在着大量的传感器、执行机构和电子控制单元,它们一般分布较广,而且对实时性要求也很高,图3是基于CAN总线的分布式测控系统框图。该系统采用现场总线式集散系统FDCS?Field Distributed Control System?结构,它由主控站(注:CAN总线各节点并不分主从 ?这里是针对特定的系统而言)、C8051F040为MCU的智能节点并配以CAN现场总线控制网络构成。主控站主要完成对各节点的在线监控以及对各节点返回信息的分析处理,并对节点发出控制命令以控制节点工作模式。智能节点则根据主控站命令来完成数据采集、运行显示以及对执行部件的控制,以及各节点与主站、节点与节点之间的实时数据交换和信息控制。

图4是一个以C8051F040为核心的智能节点设计原理图。

图中,C8051F040的6、7脚分别为CANRX和CANTX引脚,CAN的输出输入必须加总线收发器才能与CAN物理总线相连。本系统采用了TJA1050高速CAN收发器来替代传统的PCA82C250收发器,TJA1050芯片具有电磁辐射低、防短路、不上电时对总线无影响等特点,它的8脚S可以选择高速或静音两种模式,并可由C8051F040的P4.0控制。为了增加CAN 节点的抗干扰能力,将CAN引脚通过高速光耦6N137与总线收发器相连,可实现各节点之间的电气隔离。电源的隔离可以采用小功率电源隔离模块,也可以用带多个5V隔离输出的开关电源模块。这样能大大提高节点的稳定性和可靠性,但可能会增加节点的硬件复杂性。

3.2 节点软件设计

对于一个实际的测控系统,其节点软件是比较复杂的,但由于C8051F040具有与8051指令完全兼容的CIP-51内核,所以,对于有使用51系列单片机经验的人来说,这并没有太大的难度,下面主要介绍C8051F040内置CAN的软件设计。

如果需要某一节点将A/D采样值通过CAN总线送到主控站(地址01H),且配置系统时设定的工作频率为25MHz?CANTX引脚设为推挽方式,那么在初始化过程中,波特率应配置为160kbps,消息目标禁止不用,配置消息目标2为接收时的程序代码如下:

CAN_INIT:

MOV SFRPAGE,#01H

ORL CAN0CN,#41H ;设INIT位为1, CCE为1

; 配置波特率

MOV CAN0ADR,#03H

MOV CAN0DATH,#7FH

MOV CAN0DATL,#05H[page]

;禁止不用的消息目标(3-32)

MOV CAN0ADR, #0DH ; 指向IF1的仲裁控制寄存器2

MOV CAN0DATH,#00H ; MAGVAL=0;

MOV CAN0ADR,#09H ; 指向IF1的命令掩码寄存器

MOV CAN0DATL,#0A0H ?; 方向为写,改变仲裁位

MOV R1,#20H

MOV CAN0ADR, #08H ;指向IF1的命令寄存器

ENABLE_MESSAGE_OBJECTS:

MOV CAN0DATL,R1 ;写R1指向的消息目标

MOV CAN0ADR, #08H ;指向IF1的命令寄存器

WAIT_TRANSFER_OVER?

MOV A,CAN0DATH ?;读命令寄存器

JB ACC.7,WAIT_TRANSFER_OVER

DEC R1

CJNE R1,#02H,ENABLE_MESSAGE_BJECTS

;配置消息目标2为接收

MOV CAN0ADR,#21H

MOV CAN0DATL,#11111000B?; 写IF2命令掩码

MOV CAN0DATH,#00H

MOV CAN0DATL,#00H ?;写IF2掩码1

MOV CAN0DATH,#00H

MOV CAN0DATL,#00H ?; 写IF2掩码2

MOV CAN0DATL,#00H ?; 写IF2仲裁寄存器1

MOV CAN0DATH,#80H ?; 写IF2仲裁寄存器2高8位

消息目标有效,标准仲裁帧,方向为接收

MOV CAN0DATL,#00H ?; 写IF2仲裁寄存器2低8位

MOV CAN0DATH,#00010100B?; 写IF2控制寄存器高位

MOV CAN0DATL,#80H ?; 写IF2控制寄存器低位

MOV CAN0ADR, #20H

MOV CAN0DATL, #02H ?; 通过IF2写2号消息目标

WAIT_TRANSFER_OVER1;

MOV A,CAN0DATH ; 读命令寄存器

JB ACC.7,WAIT_TRANSFER_OVER1

; 等待写结束

;CAN进入操作模式

MOV CAN0CN,#00000010B ; CAN进入正常操作模式状态中断使能,

RET

发送过程是将存储在从BUF0起始地址中的2个字节的A/D采样数据,通过IF1传送到消息目标1的过程。其启动发送程序代码如下:

SEND_AD_DATA:

MOV SFRPAGE, #01H

MOV CAN0ADR, #09H

MOV CAN0DATL,#10110111B

; 写IF1命令掩码寄存器

MOV CAN0ADR, #0DH

MOV CAN0DATH,#10100000B ;使用11位标准仲帧

[page]

MOV CAN0DATH,#00001001B ; 写IF1控制寄存器高8位,传输中断使能,置传输请求位

MOV CAN0DATL,#0BH ?; 写IF1控制寄存器低8 位,EOB=1 DLC=0指向BUF0

MOV DPTR,BUF0

MOVX A,@DPTR

MOV CAN0DATL,A ?; 写IF1数据0

INC DPTR

MOVX A,@DPTR

MOV CAN0ADR,#0FH

MOV CAN0DATH,A ?; 写IF1数据1

MOV CAN0ADR, #08H

MOV CAN0DATL,#01H ?;传递到目标1及启动发送

RET

4 结束语

Cygnal公司的单片机C8051F040是一种完全集成的混合信号系统级芯片(SOC),它具有与8051指令集完全兼容的CIP-51内核?代表了8位单片机的发展方向。它不仅集成有构成监控系统常用的外设,而且集成了逐渐成为控制领域首选的高可靠性、高性能C8051F040 CAN总线;本文使用该芯片设计的测控系统智能节点具有集成度高、性能稳定等特点。由于C8051F040可达到25MHz工作频率,因而可提高系统实时性。此外,由于BOTSCH CAN内有32个自带掩码消息目标的特殊设计,因此,用其进行分布式在线测控系统节点之间的相互数据传递设计将更为简单。

关键字:C8051F040  CAN总线  分布式测控 引用地址:C8051F040在基于CAN总线的分布式测控系统中的应用

上一篇:MAX517与单片机的I2C总线数据通信
下一篇:SPI总线在51系列单片机系统中的实现

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

如何用Pico示波器进行CAN总线解码分析
Pico示波器具有串行解码的功能,能够对CAN、FlexRay、I²C、I²S、SPI、LIN或UART等串行总线进行解码。Pico示波器比较适合做串行解码,因为它们的深度存储器可以让软件采集较长时间、不间断的数据,尤其是6000系列能够在几秒内采集数千个数据帧存入到512M的样本存储器。下面将介绍如何用一个款Pico示波器进行CAN总线数据解码。 1关于CAN总线解码 1.1 什么是CAN总线? 数据通信时,物理线路上传输的信号是由一系列高低电平组成的,这些高低电平携带了我们所需要的信息,在数据接收端,我们需要将这些物理电平按照原始的编码规则进行解析,从而得到实际的物理信号。 CAN(控制器区域网络)总线是一种在汽车和工
[测试测量]
如何用Pico示波器进行<font color='red'>CAN总线</font>解码分析
庖丁解车:关于总线技术之应用与特点讲解(三)
这一期小编主要介绍什么是现场总线,以及现场总线的主要类型CAN总线和LIN总线。众所周知,现场总线应当是应用在生产最底层的一种总线型拓扑的网络。直白一点来讲,这种总线是作用于现场的控制系统、直接与所有控制(设备)节点串行相连接的通信网络。汽车电子控制的现场范围可以从车窗升降器驱动机构到仪表显示装置,也可以从汽车悬架系统到发动机电子点火系统,安全气囊系统。汽车上受控制设备以及网络所处的环境很特殊,对信号的干扰有很多方面,而不同的部分要求控制的实时性也是有所区别的。这就决定了汽车上的现场总线既有区别于一般网络的特点又有一般工业自动化控制现场总线的特点。 20世纪八十年代现场总线技术才开始形成和发展,这要与微型计算机,特别是嵌入式系
[汽车电子]
庖丁解车:关于总线技术之应用与特点讲解(三)
基于ARM9的1553B与CAN总线转换卡的设计与实现
  1 引 言   20世纪70年代诞生的1553B总线是一种主从式多冗余度总线对总线硬件有严格的规定,可靠性和实时性好,传输速率达到1 Mb/s,对于大多数的应用都能满足,通过几十年的发展,已经成为当今军用电子总线的首选。而由德国BOSCH公司开发的CAN总线,采用多主方式,最高速率为1 Mb/s,由于其在汽车电子系统中的卓越表现,现在受到了越来越多的用户的关注和认可。这两种总线都是传输速率高、可靠性高、实时性能好的总线,但是他们都存在一定的不足。1553B总线的任一次数据传输都是由主节点发出命令开始,从节点接到命令后解析并执行,同时把相应状态反馈给主节点,这使得网络上的数据传输率大大降低,并使主节点控制器非常繁忙,而且在下端出
[嵌入式]
基于CDMA和CAN总线的车辆远程故障诊断系统
  1 引言   在美国制造和销售的所有的小汽车和轻型卡车从1996年1月1号起都必须装备有车载自动诊断系统(OBD-II)。然而OBD-II主要用于排放系统的诊断,车辆的其他各个子系统能被OBD-II诊断的比较少。虽然这些诊断码对诊断部分故障是很有用的,但是这些信息还不足以有效的区分特定的故障部位。通过接入OBD-II接口的扫描工具能获得故障码,但是各个生产厂商提供的手持式扫描工具与OBD-II通信的标准并不统一,欧洲和大部分亚洲国家使用ISO9141标准与OBD-II通信,而通用汽车的小汽车和轻型卡车则使用sae j1850 vpwm标准,福特公司采用sae j1850pwm标准。   这样就导致传统的汽车故障诊断有如下缺
[单片机]
汽车CAN总线接口浪涌静电保护电路图
控制器局域网总线Controller Area Network,简称CAN总线,是一种用于实时应用的串行通讯协议总线,也是世界上应用最广泛的现场总线之一。CAN总线的应用范围广,在实际应用中,环境相当复杂,一些静电(ESD)、浪涌(Surge)等干扰很容易耦合到总线上,并直接作用于CAN总线接口。一般的CAN总线收发器芯片静电(ESD)、浪涌(Surge)防护等级比较低,裸机情况下,CAN接口静电(ESD)可达6kV,无法满足常见的浪涌测试要求。工业产品、汽车电子产品对通信接口的EMC等级要求更高,许多应用要求满足IEC 61000-4-2静电放电4级,IEC 61000-4-5 浪涌抗扰4级等要求。为了满足这些高等级EMC要求,
[嵌入式]
汽车<font color='red'>CAN总线</font>接口浪涌静电保护电路图
CAN总线丢帧案例诊断经验
一、现场通讯故障描述 用户现场为一煤安监控网络,节点包括一个主站设备、两个分站设备,主站设备对分站设备进行轮询式数据查询。故障出现时发现分站上传的数据出现缺失现象。致远电子工程师将专业工具——CANScope分析仪接入故障网络捕获数据,然后进行分析。现场情况如图1所示。 图1  现场测试图片 二、对故障通讯网络快速体检 监控系统上电工作后,记录一段时间数据,通过【报文帧统计功能】分析,此次测试样本为135个帧,成功报文119个,正确率为88.15%。错误帧类型主要包括CRC定界符错误、帧结束错误、应答定界符错误、数据场填充错误。使用CANScope分析仪轻松捕获到网络中的错误数据,如图2所示。 图
[嵌入式]
DSP与CAN总线的测速和远程传送一体化
速度测量是控制工程的基本问题之一。在许多情况下,测速信号需要远距离传送。实现这个问题的一个主要方法是使用SoC(片上系统)芯片。它所带的丰富外设改变了关于硬件和软件的观念。搭建硬件系统变为对硬件结构的理解掌握,软件的编程也从算法编制为主变为部件设置为主,具有简捷、完整的特点,体现了芯片的技术优势。SoC类的TMS320LF2407DSP芯片在测速和远程传送应用中的简捷一体化设计也体现了这一点。 1 相关系统结构 TMS320LF2407所带有的事件管理器和CAN控制器模块为测速和远程传送提供了便利。 TMS320LF2407有2个事件管理器EVA和EVB,各有3个捕获单元。对应6个捕获输入引脚CAPX(对EVA,X=1,2,
[应用]
Loto实践干货(3) 测量CAN总线通讯数据
最近在做运动控制卡的项目,调试样机的过程中,需要验证CAN总线通讯功能的正确性。以前只限于理论上认识CAN总线,使用的CANbus的通讯卡也是有上位机例程,基本上简单地配置上位机软件就可以正常工作了。这次调试需要深入测试CAN接口的通讯过程,正好把之前的对CAN的认识再复习深化一下。 之相对远的距离,在工业现场抗干扰能力也很强。下图是我按照CAN总线的要求做的一条双绞线,黄色和绿色分别是CAN_High线和CAN_Low线。要求绞距20mm,不绞合的距离不超过50mm。所以采用CAN总线,是因为它只需要两根双绞线就可以连接多个通讯节点,并且可以传输 规定的双绞线传输距离与CAN总线的传输速率的关系如下表。我们的传输距离很短
[测试测量]
Loto实践干货(3) 测量<font color='red'>CAN总线</font>通讯数据
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

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

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