引言
随着经济和社会的发展,我国的工业水平和信息技术水平也得到了飞速发展。其中工业中最为常见的零部件组装和装备压装监测设备也得到了不断的改进。压装的过程其实就是按规定的技术要求将零部件进行组培和连接,使之成为半成品或者成品的工艺过程。如图1所示,就是将两个零部件进行过盈无键组装配合,使之牢固结合在一起。工业中很多机械设备都是通过这种压装方式组合到一起的,包括火车轮对、轴承、汽车发动机、变速器、底盘等关键部件。压装的质量决定了以后产品的使用质量和人民的生命财产都息息相关。我们知道压装质量的评判标准,主要是根据压装过程中压力和位移的变化曲线来确定的。而压力位移曲线的获取这就需要由良好的运行稳定的数据采集系统来提供。基于此,本文提出一种基于UCOS-II的数据采集系统,在保证实时准确的数据的基础上,使整个压装监测设备能准确地实时监测压装曲线,自动判断压装结果,并将结果进行存储和统计。
1 、压装监测设备系统总述
如图2所示,该压装监测系统主要由两部分组成,第一部分是由主控芯片S3C2440构成核心控制和数据处理单元;它实现压力位移的数据曲线图绘制、数据的分析处理、数据的存储以及人机交互相关功能的实现。第二部分是由C8051f060作为控制单元的数据采集系统,主要的任务是数据实时采集、数据发送、指令的接收以及PLC控制。系统的大概工作流程如下:首先通过人机交互S3C2440发送指令给C8051f060,C8051f060处理指令之后通过PROFIBUS总线实现对PLC的开始或停止等相关操作,当接收到开始指令时,C8051f060会同时采集压装过程的位移和压力数据,并将这些数据实时发送给S3C2440,最后S3C2440会对这些数据进行曲线图绘制、结果判定等操作。
2 、压装数据采集系统
本文的重点是对压装设备的采集系统进行论述。根据上面的系统总述,我们知道该数据采集系统必须达到以下方面的要求。第一,ADC的选择,ADC必须是精度足够高,由于同时采集压力和位移数据,并且采集的数据量很大,所以必须选择多通道的高速高精度AD转换器。第二,数据传输能力,由于设备压装一次所需要的时间很短,为了保证采集之后的数据能迅速并实时地在ARM上绘制并判断,所以数据传输必须采用高速的传输协议。第三,I/O口的数量,由于该数据采集系统除了采集数据之外,它还得实现对PLC的控制,所以在除去其它包括存储芯片I/O,采集I/O,数据传输I/O等I/O口之外,必须还得留有多余的I/O口对PLC进去控制,所以I/O口数量要求比较多。
2.1 数据采集系统硬件设计
鉴于以上要求,我们选取C8051f060作为该数据采集系统的控制芯片。C8051f060是完全集成的混合信号片上系统型MCU,里面具有两个16位精度1Msps最高转换速度的AD转换器,转换数据直接存储到RAM中,不需额外软件开销,可同时使用的硬件SMBus,高速SPI及两个UART串行端口,具有 59 个数字 I/O 引脚。其中串口和SPI口都可直接和ARM连接无需其它驱动电路。传感器方面,该系统采用压力传感器C9B,位移传感器PY1,然后对其产生的电压信号进行滤波放大送到单片机的AD采集端。
2.2 数据采集系统软件设计
由于该数据采集系统是以8为单片机为控制控制芯片,它得同时处理数据采集转换、SPI数据传输、串口接收、PLC控制等多个任务。而且对于压装系统来说,由于机器压装一次速度很快,并且所采集的数据量也很大,所采集及传输必须具有很高的实时性。如果用传统的单片机编写程序模式,它的程序规模会很大,系统调试复杂,特别在这种需要运行多个并行任务的情况,就显得有些力不从心,更主要的是系统的稳定性和实时性很难得到保障。
所以本数据采集系统采用能实现多任务同时运行的UCOS-II实时操作系统。UCOS-II是有Micrium公司提供的一款可移植、可裁剪的小型多任务实时操作系统,它具有执行效率高、占用空间小、实时性优良和扩展性良好的特点。虽然体积小但它包含了任务调度、任务管理、时间管理、内存管理和任务间的通信和同步等功能。UCOS-II中最大可支持64个任务,分别对应优先级为0—63,高优先级任务可以抢占低优先级CPU资源。多任务操作系统是把CPU的执行分为多个很多个时间块,任务A执行完后它会把CPU的使用权交给任务B,而且高优先级的任务每执行会主动放弃一段CPU的使用时间,把使用权交给其它的任务,这样多个任务依次轮转运行,由于时间块很短,这些任务就好像是在同步并行运行了。
本数据采集系统如图3所示将其功能模块划分为四个任务:数据采集任务、数据发送任务、PLC通信任务、串口读写任务。
(1)数据采集任务:数据采集任务就是每次压装开始时,通过C8051f060单片机片内的AD转换器进行双通道的数据采集,采集的速度为5kHz。并同时将采集到的数据通过DMA方式保存到片外RAM中去。压装停止时,停止采集。
(2)数据发送任务:数据发送任务是将放在片外RAM中所采集的压力和位移数据,通过SPI协议传输给ARM处理器,ARM再对这些数据进行曲线图绘制和压装结果的判断等操作。在片外RAM没有采集数据时,该任务会处于休眠等待状态。
(3)PLC通信任务:该系统通过在C8051f060上设置了14个I/O口与PLC通信,7个输入和7个输出。该任务是一方面监测ARM传送过来的指令,然后对7个输出口进行操作,另一方面不断监测7个输入I/O口,观察PLC有没有发送指令给ARM。
(4)串口读写任务:串口读写任务简单来讲就是接收并读取来自ARM经过RS232发送过来的指令,然后发送PLC给ARM的一些信号。
其中最关键的核心任务是数据发送和数据采集这两个任务。因为只有等运行采集任务,在片外RAM中保存了数据之后,数据发送任务才能发送。所以在任务的调度上为了协调好两者的关系,于是在这两个任务之中加入了一个任务之间通信的信号量。开始时信号量为0表示RAM中没有采集的数据,即数据发送任务不能进行,当RAM中保存了一个数据之后,信号量置1,数据发送任务就可以运行了,当数据发送速度大于数据的采集速度时,即RAM中的数据为零时,这时候信号量又置0,使得数据发送任务等待数据采集任务。所以加入信号量之后就能保证任务之间能正常有秩序的运行。
3 、总结
UCOS-II是一款实用性很强的小型嵌入式实时操作系统,随着整个嵌入式行业的发展,它的应用也越来越广泛,优越性也愈加明显。在此压装监测设备上,笔者把它移植到了功能强大的C8051f060单片机上,通过多任务并行执行调度方式,实现了压装监测设备的一个核心单元,即实时数据采集系统。UCOS-II与C8051f060的结合,使得该数据采集系统能实时准确地采集到压力和位移数据,并快速的发送给上层处理单元,使得整个压装监测设备能正常稳定地运行,并取得预期效果。