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

发布者:诗意世界最新更新时间:2012-02-20 来源: dzsc关键字:AT89C52  CAN总线  分布式测控系统 手机看文章 扫描二维码
随时随地手机看文章

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

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

信号传输用短帧结构(8字节),实时性好;  

不关闭总线即可任意挂接或拆除节点,增强了系统的灵活性和可扩展性;    

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

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

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

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

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

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

3系统的硬件组成 

(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控制器。   [page]

③ CAN总线收发器 

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

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

总线两端两个120Ω的电阻,对于匹配总线阻扰,起着相当重要的作用。忽略掉它们,会使数据通信的抗干扰性及可靠性大大降低,甚至无法通信。  

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。  

[page]

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

(3)控制模块 

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

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)应用于智能测控系统,大大提高了系统的可靠性;自主开发了符合国际标准的基于单片机的智能节点,不仅大量节约了资金,而且可以购置通用的同类设备,可节约大量的研发费用;基于工控机的上位机提供了良好的人机界面,使操作更加方便,直观。

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

上一篇:用AT89C2051实现电话远程控制家用电器
下一篇:DS89C430的超声导波激励信号源的设计

推荐阅读最新更新时间:2024-03-16 12:53

SJA1000 CAN总线程序
//-----------------------函数声明,变量定义-------------------------------------------------------- #include reg52.h sbit int0 = P3^2; //-----------------------定义寻址的基址-------------------------------------------------------- #define base_Adr 0x00 //-----------------------定义总线定时寄存器的值------------------------------------------
[单片机]
基于CAN总线与以太网的嵌入式网关设计
  本文为一种工业现场总线与以太网互联方法,介绍以太网与CAN现场总线之间协议转换网关的设计与实现,采用AT89C55作为主处理器,通过两个接口芯片实现CAN总线与以太网的互连,分别给出其硬件结构和软件设计思想。为企业信息网络与控制网络集成提供一种可行的方法。   1 硬件结构   目前,对于CAN和以太网相连的嵌入式网关设计主要有两种方法:一种是低档MCU加接口芯片的设计方法,另一种是高档MCU加EOS(实时多任务操作系统)再加接口芯片的设计方法。因CAN只采用了ISO/OSI参考模型的一、二层,协议相对简单,比较适合用于低成本、速率要求不高的离散控制系统。从合理的成本和有效利用处理能力这两方面考虑,该设计采用低档MCU
[嵌入式]
STM32的can总线实验心得
(一) 工业现场总线 CAN 的基本介绍以及 STM32 的 CAN 模块简介 首先通读手册中关于CAN的文档,必须精读。 STM32F10xxx 参考手册Rev7V3.pdf http://www.mystm32.com/bbs/redirect.php?tid=255&goto=lastpost#lastpost 需要精读的部分为 RCC 和 CAN 两个章节。 为什么需要精读 RCC 呢?因为我们将学习 CAN 的波特率的设置,将要使用到 RCC 部分的设置,因此推荐大家先复习下这部分中的几个时钟。 关于 STM32 的 can 总线简单介绍 bxCAN 是基本扩展 CAN (Basic Extended CAN) 的缩写
[单片机]
STM32的<font color='red'>can总线</font>实验心得
基于DSPIC30F3013的CAN总线数据采集系统方案
  引言   在工业控制中,为了保证系统的可靠运行,需要检测周围的环境变量(如温度、气压、湿度等)。通常的做法是将分布在各处的传感器采集到的信号通过各自的线路连接到监控中心,这种方式在有效地完成检测任务的同时也造成了线路资源的极大浪费。因此,提出了简化线路布局的要求。CAN(控制器局域网)是串行通信协议,能有效支持高安全等级的分布实时控制,同时在理论上,CAN总线网络内的节点近乎没有限制。基于此,本设计将一种基于数字信号控制器的CAN总线数据采集系统作为一个CAN节点,每一个需要监控的区域放置一个CAN节点,各个节点通过CAN总线与监控中心实施通信。系统总体框图如图1所示。      1 硬件构成   该数据采集系统由两部分构成
[嵌入式]
基于DSPIC30F3013的<font color='red'>CAN总线</font>数据采集系统方案
基于CAN总线结合射频和USB实现车载故障诊断仪的设计方案
设计一款基于2.4G 射频 的车载 CAN 总线故障诊断仪,详细介绍其工作原理及系统硬件 电路 ,最后分别阐述接收端、发射端和PC端的软件模块。 该方案采用自动跳频的2.4G空中协议,经 测试 统计误码率保持在有效范围之内,在14m内仍能正常工作。采用 USB 作为接收端和PC 接口 ,保证了系统的即插即用及数据的高速传输。 控制器局域网络CAN(Controller Area Network)为汽车内部各种复杂的电子设备、控制器、 测量 仪器等提供了统一数据交换渠道,已得到广泛的应用。目前,太多数汽车部件都提供了CAN总线通信接口。 在当今的中高档汽车中,都采用了CAN总线技术。针对车载CAN总线会出现的故障.结合射
[汽车电子]
基于<font color='red'>CAN总线</font>结合射频和USB实现车载故障诊断仪的设计方案
CAN总线混合动力骄车电控系统的设计与实现
混合动力汽车是一种由内燃机和电动机混合驱动的汽车,其主要特点是节能、环保。这种汽车在起步时用电动机驱动,消除了内燃机起步时由于燃烧不充分而排黑烟的现象。在汽车减速或刹车时,利用发电机把动能转化成电能,贮存到蓄电池中,实现能量回收达到节能的目的。由于这种汽车是内燃机和电动机两种动力并存,仅用传统的针对内燃机的电控系统无法实现两种动力的最佳配合,因此开发混合动力车的全新电控系统是十分必要的.本文以一种电机并联式混合动力汽车成功实现为背景,从系统角度介绍了混合动力汽车电控系统结构、功能及效果。 并联式混合动力驱动结构简介 并联式混合动力汽车的驱动系统结构见图1。发动机通过机械传动装置与驱动桥连接,电动机通过动力复合装置也与驱
[工业控制]
<font color='red'>CAN总线</font>混合动力骄车电控系统的设计与实现
基于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总线故障分几种?如何检测
由于CAN网络采用多种协议,每个控制模块的端口在正常的情况下都有标准电压,因此电压测量法可用于判断线路是否有对地或电源短路、相线间短路等问题。 为了确定CAN H 或CAN L 导线是否损坏或信号是否正常,可以测量其对地电压(平均电压)。测量点通常在OBD诊断接口处,如下图所示。 诊断接口的6号针脚连接CAN H 导线,14号针脚连接CAN L 导线。如果诊断接口上连接有两组CAN总线,那么动力CAN总线使用6号和14号针脚,舒适总线使用3号和11号针脚。诊断接口的针脚含义如下图所示。 正常情况下,当CAN总线唤醒后,CAN H 对地电压约为2.656V,CAN L 对地电压约为2.319V,而且两者相加为4.975V
[汽车电子]
<font color='red'>CAN总线</font>故障分几种?如何检测
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

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