0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于单片机实现总线控制智能数据采集模块的软硬件设计

电子设计 来源:网络整理 作者:佚名 2019-10-31 07:51 次阅读

引言

基于集中管理、分散控制的分散控制系统(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光耦进行电平转换和信号隔离。

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现场总线控制系统。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620854
  • 转换器
    +关注

    关注

    27

    文章

    8207

    浏览量

    141838
  • 总线
    +关注

    关注

    10

    文章

    2706

    浏览量

    87218
收藏 人收藏

    评论

    相关推荐

    STM32单片机到底是如何实现软硬件结合?

    本文分析 STM32 单片机到底是如何实现软硬件结合的,接着分析单片机程序如何编译、运行。
    发表于 05-16 09:54 802次阅读
    STM32<b class='flag-5'>单片机</b>到底是如何<b class='flag-5'>实现</b><b class='flag-5'>软硬件</b>结合?

    单片机软硬件联合仿真解决方案

    总线周期与硬件的交互作用。本文以一个Mini Web卡的开发介绍一种软硬件联合仿真系统。该方案的核心是采用一个51单片机仿真引擎GoldBull ISS51(以下简称ISS51),I
    发表于 07-17 08:56

    请问各位大虾用单片机实现基于PCI总线数据采集卡可行么?

    现在要设计一个伺服电机数据采集卡,请问用单片机控制,pci总线和上位传输,可以实现么,能否给
    发表于 04-19 15:06

    AVR单片机软硬件设计教程入门篇

    AVR单片机软硬件设计教程入门篇单片机就是一台微型电脑。麻雀虽小,五脏俱全,单片机将微型电脑的所有基本部分都集成在一片硅片上。构成单片机的基
    发表于 12-09 15:22

    承接单片机软硬件开发

    领先单片机工作室在广州,专业承接控制类,消费类电子产品软硬件开发业务,包括51,PIC,AVR,三星,EMC等8位单片机,MSP430等16位单片机
    发表于 04-04 14:16

    承接单片机软硬件开发

    承接单片机软硬件方案,主营无线产品开发(GPRS,315-433M,2.4G发射接收,WIFI,ZIGBEE,蓝牙),台灯和吸顶灯灯控,工控,汽车电子,智能家居。可提供硬件设计和软件开
    发表于 09-10 11:55

    基于PIC单片机USB接口的数据采集系统设计

    数据通信模式和软硬件支持。它应能在数据采集数据处理两部分之间实现目前最好的连接和沟通。因为USB作为一种外部
    发表于 08-23 11:30

    基于PIC单片机USB接口的数据采集系统设计

    A/D转换器采集数据,暂存于数据缓冲区,再根据主机命令发给主机。这部分功能由一个单片机及接口来实现是最优方式。   数据通信部分应包含:简单
    发表于 07-02 05:07

    单片机按键软硬件设计技巧有哪些

    单片机按键软硬件设计技巧!
    发表于 04-22 14:37

    【高手问答】从事单片机软硬件开发15年的工程师们,与您探讨单片机软硬件设计

    `编者导读:本期我们邀请了单片机/MCU 版主@张飞电子学院蔡琰 @张飞电子学院张角 @张飞电子学院黄忠,来解答大家在单片机/MCU设计上遇到的问题。高手简介:黄忠:张飞实战电子FOC和硬件课程讲师
    发表于 03-02 16:58

    基于stm32单片机实现一个数据采集系统

    基于stm32单片机实现一个数据采集系统,基于STM32单片机采集数据并上云一、实验目的及要求二、实验
    发表于 08-10 07:50

    为什么软件能控制硬件单片机到底是如何软硬件结合的

    我们通过IO和串口的软件开发,已经体验了嵌入式软件开发。不知道大家有没有疑惑,为什么软件能控制硬件?反正当年我学习51的时候,有这个疑惑。今天我们就暂停软件开发,分析单片机到底是如何软硬件
    发表于 02-14 06:22

    基于Modbus 协议的智能数据采集显示模块

    实现实时数据的远程采集与显示,设计了基于Modbus 协议和RS-485 总线为基础的智能数据采集模块
    发表于 06-10 13:58 34次下载

    基于MC35的无线数据采集系统

    本文介绍了一种由单片机控制器,依托GSM 网络的MC35 模块,单总线的无线温度数据采集系统。详细论述了其
    发表于 08-11 09:29 47次下载

    单片机测控系统的软硬件平台技术

    本文探讨了一种用于工业测控系统的单片机软硬件综合设计方法——软硬件平台技术,重点阐述了其基本原理、设计思想、实现方法,并给出了一个单片机测控
    发表于 08-13 09:38 12次下载