浅谈嵌入式在地铁杂散电流监测装置的设计

随着网络和多媒体技术的发展,嵌入式系统的应用有着更广阔的空间。本文浅谈嵌入式在地铁杂散电流监测装置的设计。

1 地铁杂散电流产生原理

地铁牵引供电一般为直流供电,而当直流大电流沿地面敷设的轨道流动时,直流电流除了在轨道中流动外,还会从轨道泄漏到大地,在大地中的各种金属物体上流动,然后再回到电源系统。这部分泄漏出来的电流称为杂散电流,在地铁工程中又称为迷流,如图0所示。由于杂散电流对埋入地下金属产生腐蚀作用,就可能使得某些地方的地下金属在自然腐蚀的同时又受到严重的杂散电流电腐蚀作用,导致地铁电化腐蚀速度加快。

2 实验室模拟装置的设计

由于地下铁道的特殊环境,理论上和实际中都难以在现场进行实验,因此这类课题的研究和实验,多数情况下往往要在实验室里进行,图1是自行设计的一个实验室模拟地下铁道杂散电流的产生和对地下金属腐蚀作用的实验装置。

3 数据采集系统的设计

3.1 系统概述

本系统由硬件和软件两部分组成。硬件以SST89C51 和8位ADC 芯片AD0809 为核心,具有键盘控制和液晶显示功能,该系统还具有实时时间显示和看门狗功能,可以通过RS232接口与外部(微机) 通信。系统的软件以实时嵌入式操作系统ucos2 为基础,采用多任务机制,通过任务调度和任务监视,系统具有较好的实时性和安全性。ucosII 是源码公开的实时嵌入式操作系统,采用优先级调度算法完成任务间的调度,并支持抢占式调度。ucosII具有可裁减的体系结构,μC/OS-II是一种可移植的,可植入ROM的,可裁剪的,抢占式的,实时多任务操作系统内核。它被广泛应用于微处理器、微控制器和数字信号处理器。严格地说uC/OS-II只是一个实时操作系统内核,它仅仅包含了任务调度,任务管理,时间管理,内存管理和任务间的通信和同步等基本功能。没有提供输入输出管理,文件系统,网络等额外的服务。但由于uC/OS-II良好的可扩展性和源码开放,这些非必须的功能完全可以由用户自己根据需要分别实现μC/OS-II 的前身是μC/OS,并把μC/OS 的源码发布在该杂志的 BS上。并具有内存管理、中断管理和任务控制块(TCB) 扩展的功能。ucosII还提供很多系统服务,例如邮箱、消息队列、信号量等等。还具有可移植性好,结构简单等优点。

3.2 系统的硬件设计

系统的硬件组成框图如图2 所示。各电阻电压信号经过隔离放大,然后通过线性光耦的隔离后,别传送到多路采集A/D转换芯片0809的输入端进行数据采集。经A/D转换后的数字量被单片机读入,经处理后可,在液晶上显示出具体数据。同时也可以由通信接口读入微机进行进一步的处理和分析。液晶有系统提示和实时时间显示控制工程网版权所有,可以通过键盘进行选择和控制。

A/D转换可采用价格低廉又通用的8位逐次逼近式ADC ADC,即移动ADC,是ApplicatiON data center的缩写,其实是ASP模式与IDC业务的结合的演变,是由中国移动推出的一项移动信息化产品业务,主要针对中小企业,属于移动信息化的行业应用,业务主要包括有移动OA、手机邮箱、无线网站以及移动进销存等四款行业应用托管解决方案。AD转换就是模数转换,顾名思义,就是把模拟信号转换成数字信号。,适合数据采集,转换时间可达100 us .系统外部扩展32 kROM 和RAM ,供缓存数据和存贮程序。液晶采用日立公司系列产品中的D44780 ,可以显示16字×2行的字符模组。时间芯片采用的是M48T86 ,具有实时时间和日历显示功能。整个系统采用全地址译码法,外部设备和存储器统一编址。

3.3 系统的软件设计

3.3.1 传统的程序流程

一个典型的单片机数据采集系统的程序通常包括输入/ 输出控制、数据处理和显示、键盘管理等模块。程序采用循环方式,流程如图3所示。

可以看到,传统的程序是基于单任务机制的,各个模块构成一个整体,作为一个任务运行。在实际应用中,这种程序的安全性差,只要一个系统的设计模块出了错误,整个系统工作就会被打乱,只有利用看门狗进行复位。这对于比较复杂的系统,在实际运行中看门狗就会频繁地发生复位操作。而且由于数据采集和键盘程序的执行频率可能相差很多,这样对系统的定时要求就会很高,传统的程序流程对实时性就难以很好地满足。

3.3.2 基于ucosII 的系统程序流程

基于ucosII 的程序流程如图4所示。程序中,每个模块对应一个任务,彼此之间是并行的,但每个模块都对应着一个不同的优先级,由操作系统进行调度运行。系统可以通过监控模块对其他模块的工作进行监控,从而减少看门狗的复位次数。而且通过ucosII 内核的任务调度,系统的实时性会提高很多。

3. 4 任务的划分和构成

系统中并行存在的几个任务按优先级从高到低依次是:显示任务、键盘管理任务、输出任务、各路数据数据采集任务和数据处理任务。系统采用静态优先级,这样系统的控制会相对比较简单。

系统中的每个任务包括应用程序、任务堆栈以及任务控制块( TCB) 三部分。任务控制块是一个数据结构,当任务的CPU 使用权被剥夺时,ucosII 用它来保存该任务的状态。当任务重新获得CPU 的使用权时,任务控制块能确保任务从被中断的那一点执行下去。操作系统可以通过查询任务控制块的内容从而对任务进行管理。系统中任务的状态有5 种:休眠态、就绪态、运行态、中断服务和等待态。状态之间的转换如图5所示。

休眠态时任务驻留在程序空间中,还没有交给uc/ os2II 管理。当任务一旦建立,就进入就绪态。就绪态中优先级最高的任务转为运行态。如果系统的运行导致就绪态中的一个任务优先级高于运行态的任务优先级,则系统通过调度使运行态任务丧失对CPU 的控制权转为等待态或者就绪态,转而运行就绪态中的那个任务。这样就实现了任务的切换。

每个处于等待态的任务都对应一个等待时间,时间管理函数可将等待时间已过的等待态的任务转为就绪态,这实际上也就是时钟中断的中断服务程序。

3.5 任务的通信和调度

本系统中任务间的通信采用消息队列来完成的。消息队列是uc/ os2II 中的一种通信机制,可以使一个任务或者中断服务子程序向另一任务发送以指针方式定义的变量。为方便易用,采用消息队列CONTROL ENGINEERING China版权所有,用于数据采集任务、数据处理任务、键盘管理任务、输出任务、显示任务之间的通信。系统通过队列控制块来管理消息队列,每个消息队列对应一个队列控制块。消息的存取基于优先级原则,队列控制块中等待任务列表内优先级任务最高的任务先从消息队列中取消息,系统采用抢占式内核,调度函数总是保证优先级最高的就绪态任务转为运行态。当就绪态的任务抢占CPU 时,系统执行一次中断服务程序。当任务中的消息发送完成以及中断返回时,系统调用调度函数,将任务从等待态转为就绪态,这样就绪态中任务的最高优先级就会发生变化,进而影响到运行态和就绪态间的任务切换。

4 系统的工作过程

本系统采用两种方式显示采集电流的大小,循环显示和指定显示,在正常工作情况下,采用循环显示方式显示8路采集电流大小,每采集完一路电压,就向数据处理任务发送一条消息,而数据处理任务每处理完一路就向显示任务发送一条消息,由于键盘扫描任务优先级比数据采集任务最高,每当用户键盘选择时,就抢断当前采集任务,而去处理用户需要选择的那路电压,并相应显示。当采集电流超过一定标准时,系统会报警,以告之监测人员,另外本系统还留有串行232接口,用于和微机通信,以储存杂散电流的历史情况。

5 结束语

本系统经调试,软硬件工作均正常。实验证明,本系统较传统的数据采集系统在安全性和实时性方面都有了很大的提高,数据采集系统包括了:可视化的报表定义、审核关系的定义、报表的审批和发布、数据填报、数据预处理、数据评审、综合查询统计等功能模块。通过信息采集网络化和数字化,扩大数据采集的覆盖范围,提高审核工作的全面性、及时性和准确性;最终实现相关业务工作管理现代化、程序规范化、决策科学化控制工程网版权所有,服务网络化。完全能够适应复杂系统的需要。随着网络和多媒体技术的发展,嵌入式系统的应用有着更广阔的空间。

来源:www.cechina.cn

评价!您认为该篇文章:

非常好          一般           没有价值

无需注册,直接提交,定期抽奖,祝您好运!

  • 转发至:
  • 收藏到QQ书签

相关报导