基于单片机AT89C52的CAN总线分布式测控系统的研制

发布者:SerendipityGlow最新更新时间:2012-09-08 来源: autooo关键字:AT89C52  CAN总线  测控系统 手机看文章 扫描二维码
随时随地手机看文章

本文介绍了一种基于单片机AT89C52的CAN总线分布式测控系统,主要阐述了系统的总体设计方案,以及控制模块和采集模块的软硬件设计,重点是系统中以单片机为核心的带有CAN总线接口的设计,解决现场各传感器得到的测量信号利用单片机进行存储和处理,然后通过与CAN控制器的通讯将信息发送到CAN总线上。

1 CAN总线网络的技术特点[1][2]  

用通讯数据块编码,可实现多主工作方式,数据收发方式灵活,可实现点对点、一点对多点及全局广播等多种传输方式;可将DCS结构中主机的常规测试与控制功能分散到各个智能节点,节点控制器把采集到的数据通过CAN适配器发送到总线,或者向总线申请数据,主机便从原来繁重的底层设备监控任务中解放出来,进行更高层次的控制和管理功能,比如故障诊断、优化协调等;

采用非破坏性基于优先权的总线仲裁技术,具有暂时错误和永久性故障节点的判别及故障节点的自动脱离功能,使系统其它节点的通信不受影响;同时,CAN具有出错帧自动重发功能,可靠性高;   

信号传输用短帧结构(8字节),实时性好;
  
不关闭总线即可任意挂接或拆除节点,增强了系统的灵活性和可扩展性;  

采用统一的标准和规范,使各设备之间具有较好的互操作性和互换性,系统的通用性好;   

通讯介质可采用双绞线,无特殊要求;现场布线和安装简单,易于维护,经济性好。

总之,CAN总线具有实时性强、可靠性高、结构简单、互操作性好、价格低廉等优点,克服了传统的工业总线的缺陷,是构建分布式测控系统的一种有效的解决方案。

2系统总体硬件设计方案 

首先,定义各节点的功能,确定各节点检测或控制量的数目、类型、信号特征。这是进行微机测控系统网络化的第一步。原则是尽量避免重复测试。智能节点模块绝大部分是输入输出模块,调节回路可以跨模块构成回路。但考虑到调节回路的安全性,为了保证在上位机或整个通信线路出现重大故障时回路调节不受到影响,设计了隔离型、自整定PID、隔离型温度调节器等带有调节功能的模块。它们的输入输出通道都在同一模块中,其底层软件的功能很强,所有的输入处理、输出增量的计算(多种调节算法可通过组态选择,包括串级调节)、输出,包括自整定模块的过程参数的自动识别都在本模块实现,保证了调节回路的安全性、可靠性。

其次,选择各节点控制器和相应的CAN适配元件。由于各测控节点功能相对单一,数据量少,因此对CPU的要求大大降低,采用8051系列单片机即可满足要求。CAN 总线适配器件主要有:控制器接口、总线收发器和I/O器件。采用Philips公司生产的82C200CAN控制器和与其配套的82C250CAN收发器。82C200具有完成高性能通信协议所要求的全部必要特性。具有简单总线连接的82C200可完成物理层和数据链路层的所有功能。

最后,按照CAN总线物理层协议选择总线介质,设计布线方案,连接成CAN总线分布式测控网络。如图1所示。

58.jpg

3系统的硬件组成[3][4][5]

(1)CAN总线接口模块

① 微处理器

目前广泛流行的CAN总线器件有两大类:一类是独立的CAN控制器,如82C200,SJA1000及Intel 82526/82527等;另一类是带有芯片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。根据当前市场、开发工具和课题的实际需要,系统的智能节点均选用ATMEL 8位单片机AT89C52为微处理器。

② CAN控制器

CAN控制器选用SJA1000作为控制器。SJA1000是高集成度CAN控制器。具有多主结构、总线访问优先权、成组与广播报文功能及硬件滤波功能。输入时钟频率为16MHh时钟,输出可编程控制。由以下几部分构成:接口管理逻辑、发送缓存器、接收缓存器、位流处理器、位定时逻辑、收发逻辑、错误管理逻辑、控制器接口逻辑等。

SJA1000有很多新功能 :标准结构和扩展结构报文的接受和发送;64字节的接收FIFO;标准和扩展帧格式都具有单/双接收滤波器;可进行读/写访问的错误计数器;可编织的错误报警限制:最近一次的错误代码寄存器;每一个CAN总线错误都可以产生错误中断;具有丢失仲裁定位功能的丢失仲裁中断;单发方式(当发主错误或丢失仲裁时不重发);只听方式(监听CAN总线,无应答,无错误标志);支持热插拔(无干扰软件驱动位速率监测)。因此,系统的智能节点均选用SJA1000作为CAN控制器。

③ CAN总线收发器

CAN总线收发器选用PCA82C250作为总线收发器。 PCA82C250是CAN 协议控制器和物理总线之间的接口。82C250 可以为总线提供不同的发送性能,为CAN 控制器提供不同的接收性能。而且它与“ISO 11898”标准完全兼容。PCA82C250的目的是为了增大通信距离,提高系统的瞬间抗干扰能力,保护总线,降低射频干扰(RFI)实现热防护等。为了进一步提高抗干扰措施,在两个CAN器件之间使用了由高速隔离器件6N137构成的隔离电路。 CAN器件与微处理器的硬件连接如图2所示。

59.jpg

硬件电路的设计并不太困难,但有几点应引起注意:

总线两端两个120Ω的电阻,对于匹配总线阻扰,起着相当重要的作用。忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。 (2005-11-28 15:07:00 阅读数:21 ) [page]

82C50第8脚与地之间的电阻Rs称为斜率电阻,它的取值决定了系统处于高速工作方式还是斜率控制方式。把该引脚直接与地相连,系统将处于高速工作方式,在这种方式下,为避免射频干扰,建议使用屏蔽电缆作总线;而在波特率较低、总线较短时,一般采用斜率控制方式,上升及下降的斜率取决于民的阻值,实验数据表明15~200kΩ为Rs较理想的取值范围,在该方式下,可以使用平行线或双绞线作总线。

SJA1000的TX1脚悬空,RX1引脚的电位必须维持在约0.5Vcc上,否则,将不能形成CAN协议所要求的电平逻辑。如果系统传输距离近,环境干扰小,可以不用电流隔离,这样可直接把82C250的VREF端(约为0.5 Vcc)与RX1脚相连,从而简化了电路。

在系统中,SJA1000的片选信号一般由地址总线经译码获得,并由此决定出CAN控制器各寄存器的地址。实际应用中,采用单片机AT89C52的P2.7为片选信号。所以,SJA1000的地址为:7F00~7F32H。

当上电复位时,AT89C52的上电复位,需要从低到高的电平变化来激活,而SJA1000的17脚RST被激活,需要出现一个由高电平到低电平的跳变,因此,这必须加一个反相器。

(2)数据采集模块

数据采集模块用来将各类传感器的数据传送到CAN总线上。整个电路包括:看门狗X5045,单片机89C52,锁存器74LS373,A/D转换器ADC0809以及CAN控制器SJA1000和收发器82C250。电路板如图3。

60.jpg

数据采集模块的工作原理:各类传感器采集到数据后将0—5V的模拟量传送到ADC0809,0809将转换成的数字量传给89C52,最后单片机将采集到的数据送到SJA1000通过CAN总线收发器82C250传上总线,完成数据采集工作。

(3)控制模块

是一个带有CAN通信功能的隔离型控制器。该模块有一个数据输入点,可以是命令或其他信号,有一个模拟量输出,供输出执行机构是连续变化的控制系统使用,例如控制步进电机;还有一路是数字量输出,供执行机构是两位式的控制系统使用,例如开关设备。这个控制器可以单独作为一个调节器使用,因为在该模块上提供了完整的显示窗口和操作按钮,可以设定温度设定值、PID调节参数等运行过程中可以显示被控对象的PV值和SV值。该模块可以根据设定的控制点及升、降的时间实现自动调节。带有CAN通信口,可以与微机实现通信,也就是说控制模块可以接入CAN 网络系统。通过上位机实现对多个节点上的控制模块设定各控制点的上下限控制点、PID值、实现时间等控制参数,并实时记录各控制器的测量值,描绘出变化曲线,供实验人员对实验结果进行分析。如图4所示。

61.jpg

4系统软件设计

(1)CAN 总线通讯模块

CAN总线测控系统的通信软件分为3部分:CAN初始化、数据发送和数据接收。

① CAN初始化

其主要是设置CAN的通信参数。需要初始化的寄存器有:模式寄存器(Peli CAN模式)、时分寄存器、接收代码寄存器、屏蔽寄存器、总线定时寄存器、输出控制寄存器等。需要注意的是,这些寄存器仅能在复位期间可写访向,因此,在对这些寄存器初始化前,必须确保系统进入了复位状态,并且系统中各CAN控制器的总线定时寄存器的初始化字必须相同。

② 数据发送

现场的各传感器把环境多参数的检测信号(数字量、模拟量、开关量)进行转换处理后,发向CAN控制器的发送缓冲区,然后启动CAN控制器的发送命令,此时CAN控制器将自动向总线发送数据,不再需传感器的微控制器进行干预。若系统中有多个传感CAN控制器同时向总线发送数据,则CAN控制器通过信息帧中的标识符来进行仲裁,标识符数值最小的CAN控制器具有对总线的优先使用权。

③ 数据接收

整个温室微机测控系统中的CAN控制器检测到总线上有数据时会自动接收总线上的数据,存入其接收缓冲区,并向89C52微控制器发送接收中断,启动中断接收服务程序,89C52通过执行中断接收服务程序,从CAN控制器的接收缓冲区读取数据,并对其进行进一步处理工作。

(2)监控模块

集成了所有的数据采集、参数设定、数据统计分析等功能。同时,为了实现操作人员对生产过程的人工干预,如修改给定值、控制参数和报警限等,添加了参数的修改功能;为了建立人机信息联系,并且能将各节点传输来的数据以图形、图表或其它动态方式显示出来,本系统可以使用任何具有DDE(Dynamic Data Exchange)接口的MMI(Man-Machine interface)软件;为了更好的管理各种数据,采取了组态控制方式,能够接收来自MMI软件以及用户软件的DDE连接请求,并将该请求传递给通信驱动部分,由通信驱动转换为通信信号通过传输媒体传递给智能模块的固化软件。并将模块的应答作为DDE操作的结果返回给MMI软件及用户软件。

5 结论

将先进的现场总线技术(CAN BUS)应用于智能测控系统,大大提高了系统的可靠性;自主开发了符合国际标准的基于单片机的智能节点,不仅大量节约了资金,而且可以购置通用的同类设备,可节约大量的研发费用;基于工控机的上位机提供了良好的人机界面,使操作更加方便,直观。

参考文献:
[1] 林强,阳宪惠等.现场总线及其网络集成.测控技术,1999,18(5):24-26

[2] 顾洪军等.工业企业网与现场总线技术及应用.北京:人民邮电出版社,2002.4.265-416
[3]肖海荣,周风余.基于SJA1000的CAN总线系统智能节点设计[J].计算机自动测量与控制,2001,9(2)
[4]邬宽明.CAN总线原理和应用系统设计[M].北京航空航天大学出版社
[5]独立CAN器件SJA1000的应用[J].南京工程学院学报,2002年3月

关键字:AT89C52  CAN总线  测控系统 引用地址:基于单片机AT89C52的CAN总线分布式测控系统的研制

上一篇:基于AT89C2051单片机的厨房定时器的制作
下一篇:各种花样的流水灯c51程序

推荐阅读最新更新时间:2024-03-16 13:07

采用ARM+Linux架构的基于CAN总线和MiniGUI的虚拟仪表设计
当今发达国家普遍使用全数字式汽车仪表,且绝大部分是步进电动机式汽车仪表,并准备向更高方向发展。由于受到成本的限制,目前国内显示汽车仪表只能选用字段显示方式的显示屏,无法选用显示分辨率更高的点阵式显示屏,因此其视觉效果和显示精度还不能令人满意。ECU性能不断提高,抗强电磁干扰、工作温度范围和对工作电源稳定性要求等方面得到较大的改善,同时价格大幅度降低,因而目前有条件在汽车仪表上使用ECU控制的全数字仪表,国内汽车仪表界一致看好全数字式汽车仪表 。随着现代电子技术的发展,要求汽车仪表与汽车上其他装置交换数据,即要求接入到汽车的计算机系统总线上,因此本文设计了一个基于嵌入式系统、CAN总线技术和TFT LCD液晶显示技术的全数字式汽车
[单片机]
采用ARM+Linux架构的基于<font color='red'>CAN总线</font>和MiniGUI的虚拟仪表设计
用无扼流圈收发器简化CAN总线实现方式
由于汽车内电子元器件的密度在逐年增加,我们需要确保车内网络在电磁兼容性(EMC) 方面保持高性能。这样的话,当不同子系统被集成在一个较大解决方案中,并且在常见(嘈杂)环境中运行时,这些子系统能够正常运转。虽然有很多不同的车内网络互连标准,并且汽车原始设备制造商 (OEM) 对于EMC也有多种不同的要求,这篇文章主要讨论一个已经被证明具有特别挑战性的话题:一个控制器局域网 (CAN) 总线的射频 (RF) 放射。 CAN使用均衡的差分信令来发送波特率,高达1Mbps(或者更高,前提是使用 灵活数据速率 变量)的二进制数据。理想情况下,差分信令的使用避免了所有外部噪声耦合。由于每一半差分对(被称为CANH和CANL)在变化时是对称的
[汽车电子]
用无扼流圈收发器简化<font color='red'>CAN总线</font>实现方式
一种电动汽车监控平台的设计与开发
1 前言    电动汽车 中的电控单元多、内部空间小、环境干扰大,对控制系统、通信系统提出了更高的要求。CAN 以其良好的运行特性,极高的可靠性和独特的设计,特别适合电动汽车各电子控制单元之间的通信。为了更好地在实验室进行研究,建立了一个功能比较完善的试验测试平台,能够对 CAN 总线 系统及其网络协议进行研究。首先,基于 DSP 的开发设计了电机控制器节点的通信程序。其次,深入了解CAN 总线在电动汽车中的应用需求,设计了CAN总线的应用层协议。最后,为检验设计协议的可行性,利用VB6.0 开发了电动汽车的监控系统,并为监控数据建立了数据库,方便管理数据。 2 电机控制器节点的设计   针对电动汽车电机控制器的特点,选用T
[汽车电子]
一种电动汽车监控平台的设计与开发
STM32之CAN总线原理
简介: CAN是Controller Area Network 的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。由德国电气商博世公司在1986年率先提出。此后,CAN通过ISO11898及ISO11519进行了标准化。现在在欧洲已是汽车网络的标准协议。 CAN协议经过ISO标准化后有两个标准:ISO11898标准和ISO11519-2标准。其中ISO11898是针对通信速率为125Kbps~1Mbps的高速通信标准,而ISO11519-2是针对通信速率为125Kbps以下的低速通信标准。 CAN具有很高的可靠性,广泛应用于:汽车电子、工业自动化、船舶、医疗设备、工业设备等方面。 特点: 多主控制。总线空闲
[单片机]
STM32之<font color='red'>CAN总线</font>原理
51单片机(AT89C52)定时器
#include #define uchar unsigned char #define uint unsigned int uchar i,temp; void init() { TMOD=0x01; TH0=(65536-46080)/256; TL0=(65536-46080)%256; ET0=1; EA=1; TR0=1; } void main() { i=0; temp=0x01; init(); while(1); } void timer0() interrupt 1 { TH0=(65536-46080)/256; TL0=(65536-46080)%256;
[单片机]
51单片机(<font color='red'>AT89C52</font>)定时器
基于LabVIEW的数控机床网络测控系统——总体设计 (一)
  2 数控机床网络测控系统的总体设计   2.1 数控机床网络测控系统的设计思路和目标   随着测控网络与信息网络的融合,一方面,人们希望更广泛的使用Internet,试图接入更多的设备,以便在扩充其应用模式的同时享受其带来的更多便利;另一方面,工业化程度的加剧也给测控网络系统的发展提出了新的问题:如何方便地组建一个高效率的、智能化的、能够和其他高层网络互联的测控网络系统。以便于统一集中监控和提高管理决策水平。为了达到这些目的,需要测控网络和信息网络在一定程度上能够共享资源,并且以有效的方式交换信息。所以,从测控网络和信息网络各自的发展来看,它们均已表现出走向对方并相互融合的进步趋势。为了实现这种融合,十分必要研究如何保证它
[测试测量]
基于LabVIEW的数控机床网络<font color='red'>测控系统</font>——总体设计 (一)
基于MSP430单片机的CAN总线接口转换卡设计
1 引言 控制器局域网(Controller Area Network,简称CAN)是德国奔驰公司20世纪80年代为解决汽车众多控制设备与仪器仪表之间的数据交换开发的一种串行通信协议。它作为现场总线的一种广泛应用于各种工业现场,根据不同的需要或以主从方式、或以多主方式工作。CAN总线使用的通信介质为双绞线或其他电缆,传输速率可达lMb/s。 CAN总线与其他通信网的不同之处有二:一是报文传送中不包含目标地址,它是以全网广播为基础,各接收站根据报文中反映数据性质的标识符过滤报文,该收的收下,不该收的弃而不用。其好处是可在线上网下网、即插即用和多站接收;二是特别强化了对数据安全性的关注,满足控制系统及其他较高数据要求的系统需求。
[单片机]
基于B/S模式的数控机床网络测控系统软件设计
  下位测控机的数据采集、显示及存储回放软件设计   下位机测控服务器系统软件包括接口仪器驱动软件和应用软件两部分。其中,接口仪器驱动程序是完成对某一特定仪器的控制与通信的软件程序集合,是连接上层易用软件和底层软件的纽带和桥梁。每个仪器模块都有自己的软件驱动程序,仪器厂商将其以源码的形式提供给用户,用户在应用程序中调用仪器驱动程序。应用程序包含两方面的程序:实现虚拟面板功能的前面板软件程序和定义测试功能的流程图软件程序。它主要功能是给用户提供操作仪器、显示数据的人机接口;实现数据的采集、分析处理、显示、存储等;并将需要在客户端显示的数据发送到Web服务器,同时从Web服务器接收来自远程客户端的控制命令。   1.1.1数控机床
[测试测量]
基于B/S模式的数控机床网络<font color='red'>测控系统</font>软件设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

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