1 硬件设计
系统整体框图系统实质上是一个集散控制系统,更准确地说是一个远程数据采集系统,系统概念设计图如图1 所示,系统整体框架图如图2 所示。
1.1 系统模块设计
1.1.1 信号获取模块
系统采集大坝坝内各个方位的形变,这种形变反映出各个方位的压力值。选用NZS - 25 系列差阻式应变计,它是一种大量程大应变计,适用于大坝及其他混凝土建筑物内部、钢结构等的应变量测量。它与一般压力传感器的结构不同,是通过测量比值而得到压力值,其基本结构如图3 所示。
图3 中, R1 、R2为敏感电阻,其基准电阻值为40 Ω ,在其没有受压时,2 个电阻的阻值都不会发生变化,但是当受到外界作用的压力时, R1的电阻值会随着受到压力的不同而发生变化阻值保持不变,这样R1和R2上的压降不同,通过2 次测量分别得到R1 、R2上的压降, 再通过程序计算出它们的比值,就可以反映压力的变化。
1.1.2 信号放大模块
系统采用的压力传感器输出的电压信号为mV 级,电压信号过小,不能直接进行A/ D 转换,因此要对其进行放大,以达到转换器的要求。选用专用仪表放大器AD620 芯片。此芯片内部采用差动输入,共模抑制比高,差模输入阻抗大,增益高,精度也非常好,且外部接口简单。AD620 放大器向A/ D 转换器提供的模拟输入电压为- 2~2 V ,满足A/ D 转换器的要求。
1.1.3 A/ D 转换模块
转换模块选用ICL7135 芯片,其典型配置如图4 所示。
ICL7135的时钟由下位单片机的ALE 端提供,因为下位机在P0、P2 口没有扩展外围程序存储器和数据存储器,因此端提供的时钟频率为系统时钟频率的1/ 12 ;此外,由于前级放大部分采用AD620 ,它是双电源供电,所以ICL7135 也是双电源供电,且他们的电源要求相同。ICL7135 和下位单片机的连接采用串行连接,如图5 所示。
1.1.4 电源模块
由于系统下位机位于大坝现场,电源无法从现场取得,必须由上位机提供,因此电源解决方案如图6 所示。
在主节点部分,通过总电源处理模块,将交流220 V 转换为直流12 V ,上位机的电源由自身的5 V 稳压模块提供,通过总电源线将12 V 直流输送到下位机,下位机及其外围器件所需的电源都由下位机的电源模块提供,个别器件所需的特殊电压,由专用模块获得。
1.1.5 通信模块
总线采用双绞线差分传输方式,可连接成半双工和全双工方式,最远传输距离为112 km. 系统数据通信采用半双工通信方式,即整个网络中任一时刻只能由一个节点成为主节点,处于发送状态,并向总线发送数据,其他的节点都必须处于接收状态,如果2 个或2 个以上节点同时向总线发送数据,将导致所有发送方发送数据失败,因此通信网一般采取主从式即主节点控制整个网络的通信时序,使总线上的各节点分时使用总线,解决总线数据传输的冲突。
总线驱动芯片选用RS - 485 接口芯片SN75LBC184 ,它采用单一电源,电压为3~515 V 时都能正常工作。与普通的芯片相比,它不但能抗雷电的冲击,而且能承受高达的静电放电冲击,片内集成4 个瞬时过压保护管,可承受高达的瞬态脉冲电压,因此它能显着提高防止雷电损坏器件的可靠性。对一些环境比较恶劣的现场,可直接与传输线相接,而不需要任何外加保护元件。该芯片还有一个独特的设计,当输入端开路时,其输出为高电平,这样可保证接收器输入端电缆有开路故障时,不影响系统的正常工作。另外它的输入阻抗为RS - 485 标准输入阻抗的2 倍( ≥24 kΩ) ,故可以在总线上连接64 个收发器。芯片内部设计了限斜率驱动,使输出信号边沿不会过陡,使传输线上不会产生过多的高频分量,从而有效扼制电磁干扰。总线驱动芯片和单片机的连接采用间接连接,如图7 所示。
图7 总线驱动芯片和单片机间的间接连接图
1.1.6 数据存储模块
该模块用来存储下位机传过来的压力数据。系统对数据存储器的基本要求是存储容量要大,掉电数据不容易丢失,能保存较长时间,易于扩展容量。基于以上要求,选用了遵循总线串行扩展技术的24C256。单片机和24C256 之间的数据交换完全遵照IIC 总线的规定,即单片机作为主机,24C256 作为从机,所有操作都是由SDA 和SCL 2 个脚位的状态(共有4 个状态:开始、停止、数据和应答) 来确定。24C256 和单片机的连接图如图8 所示。
图8 24C256 和单片机连接图
1.1.7 时钟模块
采用实时时钟芯片DS12C887 为系统产生时间基准,它和单片机的连接如图9 所示。可当作单片机的外部RAM处理,通过P0 口对DS12C887 进行操作,通过其中断引脚IRQ向单片机发出中断,使单片机读出时间。
图9 DS12C887 和单片机连接图
2 软件设计
系统软件框图如图10 所示。一级目录分为上位机程序、通信程序和下位机程序;二级目录分为数据采集程序模块、模拟多路开关控制程序模块、数据处理程序模块、下位机通信程序模块、上位机通信程序模块、显示程序模块、存储程序模块、时钟程序模块以及键盘控制模块。每个二级程序模块又由更小的函数组成,这样的设计方法容易修改和测试。
3 结语#p#分页标题#e#
软件程序设计按照自顶向下的原则,按功能模块化划分采用C 语言编程实现各模块功能,以子程序的形式进行封装对外部提供规定的接口,再按照系统流程要求进行模块组合最后实现整个系统。
转载请注明出处。