基于80C196KC的CAN总线智能数据采集模块设计

发布者:心灵之窗最新更新时间:2014-10-10 来源: eefocus关键字:80C196KC  CAN总线  数据采集模块 手机看文章 扫描二维码
随时随地手机看文章
引言

基于集中管理、分散控制的分散控制系统(distributed control system)解决了集中式直接数字控制系统对控制器处理能力和可靠性要求过高的缺陷,但由于其具有一定的封闭性、各分散控制系统之间的不兼容性,集散控制系统难以实现网络互连和信息共享。

现场总线的出现使得全数字化,全开放式,具有可互操作性,彻底分散的现场总线控制系统(fieldbus control system)得以实现,现场总线控制系统已成为自动化领域中的一个热点,也将成为工业过程控制的一个重要发展方向。

控制器局域网CAN(controller areanet work)是德国Bosch公司在现代汽车电子技术领域中推出的一种多主控制器局域网络技术,能有效支持分布式和实时控制,最早主要应用于汽车内部电子监测和控制器件数据通信。由于其高可靠性及高实时性而广泛应用于工业现场控制等领域。其突出的特点是采用最长8个数据字节的短帧结构,传输时间短,实时性高;另外CAN协议取消了传统的地址编码概念,取而代之的是基于数据块标识符的无损优先级仲裁,给分布式控制系统实现模块间的信息共享带来了极大的方便。

基于CAN总线的主要特点及发展趋势,我校电液实验室开放式电液伺服控制系统的改造中采用CAN总线作为现场总线标准,构建了一套基于CAN总线智能节点的现场总线控制系统。文中将详细介绍智能数据采集模块的软硬件设计,该模块可以实现控制现场的数字、模拟信号采集,现场数据预处理,数据传送以及与监控计算机通讯等功能。

液压伺服系统简介

开放式电液伺服控制系统包括数台电液伺服位置控制实验台、电液比例转速控制实验台、电液比例力控制实验台。各实验台配置1套基于CAN总线的智能数据采集模块和内置控制算法的智能控制模块,通过CAN总线将各分散的采集模块和控制模块组成一个控制网络,1台PC机通过内置的CAN适配卡接入局部网络,模拟工业现场的过程控制,PC机作为担任过程控制监控任务的控制站,可以实时显示各实验台工作状况及向各实验台发送启停命令,同时还可以通过高速以太网将现场数据远程传输至工程师站等管理级计算机,实现如图1所示的分层现场总线控制系统。

                                     图1 开放式电液伺服控制系统总体结构

系统硬件设计

数据采集模块作为一种智能化现场仪表,主要包括硬件系统和控制软件2大部分。模块硬件部分以80C196KC单片机作为采集模块的核心,外围电路主要包括CAN总线接口,程序存储器,电源监控及复位电路,GAL译码电路,DI、A/D转换电路及模块参数设置电路等。模块结构如图2所示。

                                                         图2 数据采集模块结构

80C196KC单片机简介

80C196KC是Intel公司推出的高性能16位单片机。和MCS51系列单片机相比,MCS196系列单片机具有更快的运算速度和更丰富的片上外围设备,提高了控制系统的实时性,主要体现在以下几个方面:

a.可采用8/16位动态总线配置方式,增强系统的灵活性。

b.CPU中的算术逻辑单元不采用常规的累加器结构,改用寄存器-寄存器结构。CPU的操作直接面向256字节的寄存器,消除了51单片机中存在的累加器的瓶颈问题,提高了操作速度和数据吞吐能力。

c.有一套效率更高、执行速度更快的指令系统。可以对带符号数和不带符号数进行操作,16×16位只需1.4μs(20MHz),32÷16位只需2.4μs(20MHz),此外还有3操作数指令,大大提高指令效率。

选择80C196KC单片机作为数据采集模块的核心器件,可以满足应用系统的要求,保证系统的可靠性和实时性。

CAN总线接口电路

CAN总线接口由PHILIPS公司的独立总线控制器SJA1000和接口芯片82C250组成。SJA1000在软件上和引脚上都是与它的前款PCA82C200独立控制器兼容的,并增加了许多新功能:标准帧数据结构和扩展帧数据结构,并且这2种帧格式都具有单/双接收过滤器;64字节的接收FIFO;可读错误计数器和可编程的出错警告界限以及仅听模式和自测试模式等。硬件连接上比较简单:SJA1000的数据地址总线是分时复用的,可以直接与80C196KC的P3口连接,对应控制线相连即可。需注意的是,80C196KC是Intel公司的处理器,因此SJA1000工作在Intel方式,mode引脚应接电源正端,另外单片机的外部中断只有正跳变有效,而SJA1000的中断信号是低电平有效,因此需反相后才能连接单片机中断引脚。

82C250器件提供对总线的差动发送能力和对CAN控制器的差动接收能力,其RS引脚允许选择3种不同的工作方式:高速、斜率控制和待机。在低速和总线长度较短时,一般采用斜率控制方式,限制上升和下降斜率,降低射频干扰,斜率可通过由RS引脚至地连接的电阻进行控制。通信信号传输到导线的端点时会发生反射,反射信号会干扰正常信号的传输,因而总线两端通常应接有终端电阻,以消除反射信号,其阻值约等于传输电缆的特性阻抗,一般取120Ω。

 


数字信号采集电路

电液伺服实验台需要采集的物理量之一是液压缸的位移,实验室现有装备的位移传感器有2种:感应同步器和旋转光电编码器。二者都配有带BCD码输出的数显测量仪表,直接采集数显表的数字量可以保证采集模块具有仪表的高精度,避免因采集传感器前端脉冲而带来的误差,同时也使电路更加简洁。

数字显示仪表的有效BCD码位数为5位(个、十、百位及2位小数位),另带一位符号位,共有21位二进制位。80C196KC片内不带程序存储器,因而用P3和P4口作为地址数据总线,单片机剩余有效IO口资源较少,因此必须扩展并口。并口扩展可以采用专用扩展芯片或通用74系列的逻辑芯片,为了简化电路和编程,采用常见的可扩展24路IO口的82C55A并口扩展芯片。现场的数字显示仪表的输出是非标准的TTL电平,为了实现模块与前端仪表兼容和隔离,对输入的数字信号采用了TLP521光耦进行电平转换和信号隔离。 [page]

A/D转换电路电路

本模块中A/D转换器选用AD1674,它与AD574兼容,12位分辨率,输入电压范围0~±10V或0~±5V单双极性可选,转换时间为10μs,单通道最大采集速率50KHz,片内带基准电压、三态缓冲器,且具有采样保持电路,完全满足设计的需要。

模拟电压信号来自BLR1型拉压式称重传感器,传感器压力测量量程为0~5000kg,输出电压信号0~16mV。为适应AD1674输入电压范围,需对传感器的微弱电压信号放大,但同时并存许多噪声源:传感器内阻、电缆电阻、放大器电路以及电路周围的电磁干扰源。因此,电压信号前端采用低通滤波器和差分放大器AD620等来抑制差模噪声和共模噪声,如图3所示。

                                                              图3 电压信号前端电路

设Vs为传感器的信号电压,Vn1、Vn2为外部噪声源在电缆线上的感应噪声信号,Vns为电路噪声。因此,差分放大器输出电压Vo为:

Vo=A(V1-V2)=A(Vs+Vns+(Vn1+Vn2));如果噪声源与信号源频谱不重叠,则经低通滤波电路后:Vf≈AVs。

GAL译码电路

本模块电路中,单片机扩展外围器件较多,有程序存储器AT28C256、CAN控制器SJA1000、并口扩展82C55A和A/D转换AD1674。196单片机在模块中主要工作于8位总线宽度下,由于AD1674采用了12位并行输出模式,因此还需动态改变总线宽度。为了简化电路,以及适应196单片机较高总线速度的要求,译码电路放弃了传统的门电路组合的方法,采用了可多次编程的通用阵列逻辑器件(generic array logic)GAL16V8。这样可以减少元器件数量、降低线路复杂程度,同时降低故障机率及提高硬件设计的灵活性。

GAL16V8引脚分配及逻辑表达式如下:

由上述逻辑表达式可以看出,外围器件地址基地址由最高4位地址A12~A15决定,AT28C256、SJA1000、82C55A及AD1674对应基地址分别为:2000H,A000H,B000H,C000H。当选通AD1674时,单片机总线宽度控制引脚BUSWIDTH将置为高,动态调整到16位总线宽度,其余时刻,BUSWIDTH为低,单片机保持8位总线宽度。INTCAN和INTADC分别是对SJA1000和AD1674中断请求信号取反。GAL表达式文件用ABEL软件编译形成JED文件,使用通用编程器烧入芯片,且可反复多次烧写,方便调试。

软件编程

控制软件的合理设计是模块实时、有效地完成数据采集及通信任务的关键,主要包括系统初始化、CAN信息处理、数据采集及处理等功能模块。系统开放一个定时中断,定时时间对应上位机发送来的采样周期。CAN报文的接收主要有2种方式:中断和查询方式。为提高系统的实时性,同时也保证接收缓冲器不出现数据溢出现象,模块中采用中断接收方式。CAN报文发送采用查询方式,即当需要发送数据时,将预先组织好的数据帧按字节写入SJA1000的发送缓冲寄存器中。

SJA1000的初始化主要是在SJA1000的复位模式下设置相应寄存器。在初始化CAN内部寄存器时应注意同一网络中各模块的通信速率的设置应一致。下面给出SJA1000工作在BasicCAN模式下的简单的初始化源程序:

以上程序段可以正确初始化SJA1000,为了提高程序可靠性和容错性,实际应用中应该读出SJA1000寄存器内容并加以比较,从而判断是否正确写入。

结束语

基于以上所述的软、硬件设计实现了CAN协议所包括数据链路层和物理层,由于CAN总线协议没有定义应用层,因此在实际的应用中有必要定义高层通信协议,即相应的命令、参数和数据的格式。国际上比较流行的基于CAN底层协议的高层协议有DeviceNet和CANopen,我们在简单应用中,采用了自定义的简单通信协议,在此不作叙述。设计的智能数据采集模块应用于电液伺服控制系统以来,运行情况良好,由于CAN总线的应用,大大提高了分布式数据采集和控制系统的灵活性、可靠性和实时性,建立了一个有效的现场总线控制系统的实验教学平台。同时该数据采集模块也可以方便地移植到工业上的其它控制系统中,与其它基于CAN总线的智能控制模块组成CAN现场总线控制系统。
关键字:80C196KC  CAN总线  数据采集模块 引用地址:基于80C196KC的CAN总线智能数据采集模块设计

上一篇:利用PCM实现智能设备的数据采集
下一篇:基于汇聚式处理器BF50x轻松实现电机控制

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

CAN总线/RS232接口的设计
   1 引言   CAN,全称为“Controller Area Network”,即控制器局域网,是一种国际标准的,高性价的现场总线,在自动控制领域具有重要作用。CAN是一种多主方式的串行通讯总线,具有较高的实时性能,因此,广泛应用于汽车工业、航空工业、工业控制、安全防护等领域。   由于PC机无CAN接口,因此,PC机与智能节点构成CAN总线系统可采用RS232/CAN、并口/CAN、USB/CAN、ISA卡/CAN以及PCI卡/CAN方式接入。而采用RS232/CAN接入时,需采用CAN/RS232接口标准转换。针对这一问题,提出了CAN/RS232智能电平转换器设计方案,以SJAl000作为独立CAN控制器,完成CA
[电源管理]
<font color='red'>CAN总线</font>/RS232接口的设计
CAN总线活动讲座一:写在CAN总线开发板助学之前
大家好:      很感谢cepark以及wangjin给我们这个舞台来共同学习CAN总线。如今的电子技术日新月异,技术种类和方案层出不穷,需要电子工程师掌握的东西越来越多,你是否有点迷惑呢?在我们的“演出”正式开始之前,我想带大家简要回顾或是总结一下现在的这个领域。      电子这个领域其实很广阔,涉及的东西很多,而且我自己的能力也有限,不可能一言盖尽,所以就凭自己的粗浅认识来谈一谈,欢迎大家讨论。仅从应用角度讲,电子偏工程,所以诸如电子系、自动控制、测控、导航、机械等与电子密切相关的专业最后都被授予工学学位,与理学学位不一样。这就表示着这一大类学生的培养目标是直接面对社会工程应用领域,所以学习的课程很多也都是重工程,比如数电,
[嵌入式]
CAN总线名词术语解释
1、驱动线束: CAN驱动数据总线的另一种叫法。 2、CAN舒适数据总线: VW将CAN舒适数据总线称为“低速数据总线”。现在使用的CAN舒适数据总线的传输速率为100kBit/s,其显著特点是:在一条CAN-导线短路或断路时仍可工作(单线模式)以及可以进入节电的“休眠模式”。CAN舒适数据总线用于控制中央门锁、玻璃升降器等。 3、CAN Infotainment数据总线: 在电气方面与CAN舒适数据总线是相同的,但它用于控制收音机、电话、导航系统等。 4、CAN-High: CAN信号导线,其电压在显性状态时较高。例如对于CAN驱动数据总线来说:隐性状态电压为2.5V,显性状态电压为3.5V. 5、CAN-Low: CAN信号导线
[嵌入式]
基于C8051F040的CAN总线中继器设计与实现
   0 引言   20世纪80年代初,德国BOSCH公司提出了控制器局域网(Controller Area Network,CAN)来解决汽车内部的信号传输问题。由于CAN总线优良的稳定性和实时性能、成熟的仲裁和同步技术,加上开放式总线结构、短报文高速通讯、远程通讯能力、硬件CRC超强的纠错和扩展功能,以及控制简单、应用成本低等优点,已经被越来越多地应用到分布式远程自动控制、安全监控及电力系统等网络控制系统领域,并被公认为最有前途的现场总线技术之一。   中继器是网络物理层的一种介质连接设备,可以将同一层的两段网络进行互连,也可以实现上下层不同总线的互连,起到网桥和网关的作用。在大中型远程的CAN总线系统中经常会使用到中继器
[单片机]
汽车CAN总线数据无线收发汽车电子控制实验教学系统
  汽车CAN总线和无线数据收发的一些具体案例,本文介绍了一套基于GPRS、CAN和GPS技术的车载汽车测试设备,系统的抗干扰能力强,测量精度高,而且由于采用GPRS传输数据,测试的实时性和灵活性都非常强大,整套系统是基于车载试验的和道路试验的特殊要求设计出来的,能够非常好的使用在汽车的车载试验上。   整套系统的基本流程是利用GPS和数据采集卡对汽车的参数进行测试,包括汽车的具体位置和行走过程中的各种参数,测试完后系统通过CAN总线自动的将数据存储到控制器件M-LOG上面去,当测试结束汽车停止行走的时候,M-LOG自动触发将数据上传到指定的FTP上面,如果出现意外情况,比如说服务器连接失败而不能够上传数据的时候,试验人员可以
[嵌入式]
基于CAN总线的电气火灾预警系统设计与实现
0 引言     如何有效地预防火灾事故一直是全社会关注的问题。近年来,全国居民用电设备逐年增加,由此引发的火灾事故有不断上长的趋势。据公安部调查统计,2009-01-09,全国共发生火灾106 191起(不含森林、草原、军队、矿井地下部分火灾),死亡831人,受伤509人,直接财产损失10.6亿元。其中,电气引发火灾31731起,造成死亡265人,受伤114人,损失41514.6万元,分别占总数的29.9%,31.9%,22.4%和39.1%;居各类火灾事故之首。这类火灾事故不仅仅造成人员伤亡和经济财产损失,还有可能引发火灾发生地及附近区域电力系统的大面积瘫痪,给社会生产和人们的生活带来极大的不便。     火灾预警系统在早期预测
[嵌入式]
STM32-(37):CAN总线(协议帧)
CAN协议帧的概念 帧 帧用途 数据帧 用于发送单元向接收单元传送数据的帧。 遥控帧 用于接收单元向具有相同ID的发送单元请求数据的帧。 错误帧 用于检测出错误时向其它单元通知错误的帧。 过载帧 用于接收单元通知其尚未做好接收准备的帧。 帧间隔 用于将数据帧及遥控帧与前面的帧分离开来的帧。 另外,数据帧和遥控帧有标准格式和扩展格式两种格式。标准格式有11个位的标识符(Identifier:以下称ID),扩展格式有29个位的ID。 数据帧的组成 SOF(start of frame):帧的起始位 数据帧详解: (1)帧起始(标准、扩展格式相同) 表示帧开始的段。1个位的显性位。
[单片机]
STM32-(37):<font color='red'>CAN总线</font>(协议帧)
基于CAN总线交通信号灯动态调整系统的设计
  国内红绿灯交通控制系统中红绿灯切换时间广泛采用固定或者分时段变化的时间间隔,或者由交通指挥中心根据交通状况调整时间间隔,不能够根据实际的交通状况进行动态切换,也不能够根据道路状况预先干预,防止交通恶化。在极端情况下,可能会出现有车的方向红灯禁行,没车的方向绿灯通行的现象。这种方式低效、严重依赖于交管部门的工作效率,且一般只能在交通恶化后才可能介入,不能提前预防。为此本文提出了一种基于CAN总线的红绿灯动态调整系统,它能够根据实际交通状况实时调整红绿灯时间,可以降低道路拥堵几率,保障交通畅通。 1 总体设计方案    总体设计方案如图1所示。图1(a)为每个路口的红绿灯控制器,其中环形线圈和红绿灯之间的虚线表示两者之问的联
[安防电子]
基于<font color='red'>CAN总线</font>交通信号灯动态调整系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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