郑晋平
(太原理工大学信息工程学院,山西太原 030024)
数据采集技术是信息科学的一个重要分支。随着计算机科学技术的飞速发展和普及,数据采集技术己经渗透到雷达、通信、水声、遥感、地质勘探、振动工程、语音处理、智能仪器、工业自动控制以及生物医学工程等众多领域。数据采集装置是在工业控制系统中应用最广泛的一种设备,可实现对生产现场的各种参数进行采集、监视和记录。
数据采集装置[1]的发展方向为:实时性好、适用性广和可靠性高。因此采用嵌入式技术,开发一种基于嵌入式实时操作系统和ARM处理器的高精度、强实时性和广适用性的新型数据采集装置非常必要。
顺应市场需求设计的数据采集装置设计,采用了基于ARM7处理器为内核的飞利浦公司32位单片机LPC2144,其数据处理能力和丰富的片内资源满足了数据采集装置的功能和性能需要。同时可以使系统小型化,便于提高性能以及与各种外设连接扩展,降低了成本。μC/OS-Ⅱ作为一个源代码公开的操作系统,在具体应用中稳定可靠。ARM7+μC/OS-Ⅱ开发设计,利用嵌入式实时操作系统的可裁剪性、可移植性和多任务等特点[2-3],不仅使其采集性能大幅度提高,而且使抗干扰能力和实时性显著增强。可以在各种工业场合中广泛应用,达到了设计的初衷。
设计在研究嵌入式实时操作系统、ARM处理器和数据采集技术基本原理的基础上,完成基于ARM处理器和嵌入式实时操作系统的数据采集装置的设计。装置具有USB接口、RS485接口,可以满足远程和近程数据采集的需要,同时还可以与各种传感器配合可实现对温度、压力、流量、液位等常用数据的采集。
数据采集装置功能模块框图如图1所示。
图1 功能模块框图
2.1.1 微处理器的选型
作为数据采集系统的核心部件,微处理器的选择对整个系统功能的优化起着至关重要的作用。当今市场上流行的微处理器众多,在不同的应用领域,它们都发挥着各自的优势。一般的选型原则是[6]:满足应用要求,简单易用,价格便宜,设计周期短。
LPC2144单片机是飞利浦公司生产的以ARM处理器为内核的微处理器,其处理速度快、应用广泛、价格低廉、并且ARM处理器的功耗是同档次其他嵌入式处理器中较低的。低成本、微电流供电的ARM处理器使电路设计更加便捷、可靠、节能。
2.1.2 嵌入式实时操作系统的选型
嵌入式实时操作系统种类很多,大体可以分为商用型和免费型。商用型实时操作系统功能稳定、可靠,有完善的技术支持,但往往价格昂贵;免费型实时操作系统在价格方面具有优势,常用的主要有Linux和μC/OS-Ⅱ两种。
Linux可以移植到多个不同结构的CPU和硬件平台,具有很好的稳定性及升级能力,而且开发容易,对商用嵌入式操作系统带来了很大的冲击。
μC/OS-Ⅱ仅是一个实时内核,它不像其他实时操作系统那样提供给用户的一些API函数接口,很多工作需要自己去完成。把μC/OS-Ⅱ移植到目标硬件平台上只是系统设计工作的开始,还需要针对实际的应用需求对μC/OS-Ⅱ进行功能扩展,包括底层的硬件驱动、文件系统、用户图像接口(GUI)等,从而建立一个实用的 RTOS[4]。
综合考虑嵌入式操作系统的硬件支持;可移植性;开发工具的支持程度;能否满足应用需求;中文内核支持;标准兼容性;技术支持等等,决定选用嵌入式实时操作系统μC/OS-Ⅱ。
数据采集装置的硬件部分以飞利浦公司LPC2144为核心,其数据处理能力和丰富的片内资源满足了数据采集装置的功能和性能需要。配以模拟量采集电路、开关量采集电路、USB接口电路、RS485接口电路、液晶显示电路、键盘电路等组成[5-7]。
LPC2144管脚配置图如图2所示。
图2 LPC2144管脚配置图
2.2.1 数据采集单元设计
数据采集电路部分选用不同的传感器和信号调理电路,可实现对多种电量与非电量的采集与处理,运行稳定可靠,采样精度高,能满足系统的设计要求。
作为通用数据采集装置输入信号范围是很大的,而LPC2144单片机内嵌ADC转换器的供电电压是+3 V,ADC电路的被测信号输入端的输入电压必须小于电源电压,否则测量值将不准确。必须将输入的被测信号的电压范围调理到ADC转换的测量范围内,才能得到正确的ADC转换值。
工作原理:调理电路根据各种传感器输出电压或电流的不同,由DIP开关控制MSP430输出端的继电器,通过不同开关的闭合来改变放大电路的放大倍数,同时MSP430芯片还控制一个DAC来为不同的放大电路提供不同的偏置电压,从而实现量程的转换。最终将0~3 V范围的电压信号输入ADC中。
2.2.2 USB接口电路
USB(Universal Serial Bus)即通用串行总线。一个USB系统通常包括三个部分:USB互连、USB设备和USB主机。USB特有的优点:即插即用、低功耗、完整的总线拓扑结构、硬件结构标准化等。
图3 USB接口电路图
LPC2144单片机内部有集成的USB控制器,完全兼容USB 2.0全速规范;支持32个物理(16个逻辑)端点;支持控制、批量、中断和同步端点;运行时可通过软件来选择端点最大包长度(取决于USB最大规格);RAM大小取决于使用的端点和最大包的长度;支持SoftConnectTM特性和GoodLink-TM LED指示器;支持总线供电功能,具有较低的挂起电流。可工作于设备方式。
2.2.3 RS-485接口电路
RS-485接口的优点在于它使用一对双绞线就能实现单片机与上位机的通讯。具有高噪声抑制、宽共模范围、长传输距离、冲突保护以及价格低廉等优点,这些优点使其在工业控制、工业设备中得到了广泛的应用。
图4 RS-485接口电路
由于大多数PC机只具有RS-232串行通信口,而不具备RS-485接口,因此,为了实现RS-485接口串行通信,必须在PC机侧配置RS-232/RS-485接口转换电路,具体通过设计一块RS-232/RS-485转接板来实现。
软件设计上,采用基于μC/OS-Ⅱ多任务编程思想。
μC/OS-Ⅱ是由 Jean J.Labrosse[8-9]编写的、很流行的一种免费公开源代码的实时操作系统。μC/OS-Ⅱ不仅具有结构小巧、可固化、可裁剪、多任务和可剥夺型的实时内核等特点,而且其实时性、稳定性、可靠性也得到了广泛的认可。
μC/OS-Ⅱ使用前,必须先移植到微处理器上。LPC2144具有强大的处理能力,RISC结构,128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率下运行,同时具有丰富的片内外设,如硬件乘法器、ADC、定时器、PWM通道、高速GPIO线、看门狗等。内部还具有16 kB的RAM和128 kB的FLASH。足以满足移植所需要的条件。
FLASH中的程序执行前,需要对系统硬件和软件运行环境进行初始化。这些工作是用汇编语言和C语言编写的启动(Bootloader0)代码完成的。
在启动代码的编写中,将启动代码划分为5个文件:Startup.s、IRQ.s、stack.s、heap.s 和 target.c。Startup.s 包含向量表和系统初始化代码。IRQ.s包含中断服务程序与C程序的接口代码。stack.s和heap.s保存C语言使用的堆和栈的开始位置。target.c包含目标板特殊的代码,包括异常处理程序和目标板初始化程序。
MOV R0,LR;因芯片模式切换,故将程序返回地址保存至R0,同时在初始化堆栈完成后使用R0返回。
其余的步骤都在TargetResetInit函数中加以实现。
在μC/OS-Ⅱ一类的微内核操作系统中,设备驱动一般都是由应用程序在内核外部实现的。不过由于不分系统空间和用户空间,这些设备驱动程序仍在系统中执行。从实现方式上看,设备驱动程序的实现可以分为两种:一种是轮询(Polling)方式,另一种是中断方式。
设计采用中断式设备驱动的实现方式。
数据采集装置的低成本、低功耗、实时性设计是数据采集领域的一个主要研究方向。
数据采集装置充分利用了LPC2144丰富的片上资源,大大简化了硬件电路的设计;采用RS-485接口和USB接口通信技术,既可以实现系统的远程数据采集,又可以与PC机相连实现实验室数据采集;同时该装置是基于实时嵌入式操作系统的,在实时性方面具有很大的优越性。
通过实验验证了其设计的合理性和可行性。该数据采集装置具有低成本、低功耗、微型化、精度高、运行稳定、实时性好、抗干扰能力强、性价比高等特点,可以采集多种传感器输出的标准信号。但在系统功能的扩展和通信方面还有待于进一步改进与提高。
[1]马明建.数据采集与处理技术[M].西安:西安交通大学出版社,1997.
[2]周立功.ARM微控制器基础与实践[M].北京:北京航空航天大学出版社,2003.
[3]王田苗.嵌入式系统设计与实例开发—基于ARM微处理器与μC/OS-Ⅱ实时操作系统[M].北京:清华大学出版社,2003.
[4]何小庆.嵌入式实时操作系统的现状和未来[OL].www.yesky.com.
[5]沈兰荪.高速数据采集系统的原理与应用[M].北京:人民邮电出版社,1995.
[6]孙传友,孙晓斌.测控电路及装置[M].北京:北京航空航天大学出版社,2002.
[7]夏路易,石宗义.电路原理图与电路板设计教程[M].北京:北京希望电子出版社,2002.
[8]Jean J.Labrosse.嵌入式实时操作系统 μC/OS-Ⅱ[M].邵贝贝,译.北京:北京航空航天大学出版社,2003.
[9]Jean J.Lahrosse.Micro μC/OS-Ⅱ,The Real-Time Kernel(Second Edition)[M].USA:CMP Books,2002.