摘要
嵌入式技术和人们的生活已经产生密切的关系,但传统的数据采集系统只有响应特定的信号,这是非常有限的。一个新思路的设计思想提出了结合ARM9处理器核心部件设计一种通用的数据采集系统。我们需要使用不同的数据采集板根据不同的信号,以使数据采集系统形成用户定义的方便,灵活,快捷。硬件结构是由Web服务器,ARM9系统板和多块STM8L数据采集板。采用Linux作为操作系统,ARM9的系统板,在基于Qt的平台上,开发的应用程序,并完成相应的测试。它主要包括:(1)根据实际应用需求,提出了系统应侧重于高精度的特点,以高速,低功耗,抗干扰性强的指标去设计,以及给出整体系统的设计和智能节点的结构设计。 (2)具体通用数据采集系统的硬件电路的设计已经完成,该主要包括设计STM8L数据采集板和ARM9系统板。 (3)具体通用数据采集系统的软件设计已经完成,该主要包括建筑的Linux操作系统,构建Qt开发环境,ADC,数字滤波,设计实时数据通信,实时图形显示应用等等。(4)由于STM8L数据采集板是电池供电的,系统需要工作在低功耗。根据STM8L数据采集板的能源消耗分析,该系统具有自适应睡眠机制来降低系统功耗,确保系统可以有序运行很长一段时间。
关键词:数据采集,ARM9,Qt,MODBUS,STM8L Ⅰ、引言 嵌入式计算机技术,作为一个计算机领域重要的组成部分,密切关系到人民的生命和已成为热门的研究和应用领域。数据采集,它是计算机的一个重要分支应用,是技术的综合应用,基于传感器,信号测量,数据处理和嵌入式系统。因为各种各样的被测物体的信号(例如,电参数电流,电压,功率,频率,模拟,断路器状态,数字信号的保护动作,量电脉冲度,非电气参数温度,压力和其它的热信号,水液位,流量等液压信号;脉搏,心电图,速度等信号),通常的做法是,根据不同的信号的数据采集系统做特殊设计,因此,也有一定的局限性。因此,我们建议建立一个通用数据由硬件和软件的采集系统平台,基于ARM9微处理器内核。我们只是需要选择不同的根据数据采集板以不同的测量信号,然后在用户定义的数据采集系统可方便,灵活地完成开发。 II、系统硬件结构 通用数据采集系统硬件的整体结构由因特网层,监控层和数据收集层构成,各部分组成为Web服务器,ARM9系统板和多块STM8L数据采集板,如示于图1。该系统采用分布式架构,并且硬件和软件为模块化的设计。 图1 通用数据采集系统架构A. ARM9系统主板结构 该主板是由ARM9的处理器模块(包括S3C2410,128MB SDRAM和128MB NAND FLASH等),液晶显示界面,触摸屏接口,USB接口,SD卡接口,100MHz的网络接口,GPRS接口和三UART接口。系统板的结构示于图2。
ARM9处理器模块,该系统的核心,基于在Linux操作系统的基础上,可实现系统I / O设备管理,文件管理,以及数据传输和处理。LCD和触摸屏幕主要用于人机交互,显示收集的数据和测绘数据采集曲线;USB接口和SD卡接口是用于数据采集文件存储;100MHz的网络接口和GPRS接口是用于与远程数据通信Web服务器,UART1,UART2和UART3 在STM8L数据采集板中用于与STM8L数据采集板或其他数据模块之间的数据通信(例如RFID模块,GPRS模块,GSM模块和心电图模块等)。
图2 ARM9主板结构。
B. STM8L数据采集板结构
STM8L数据采集板是由组成STM8L MCU,传感器接口,滤波放大器,UART,元件模块组成展示,如图3。 图3 STM8L数据采集板结构
传感器接口用于转化所述传感器信号(如电桥电路,I / V电路等);以过滤放大器,AD202隔离放大器被选择用于隔离和信号过滤器的放大,并它传送给ADC STM8L端; STM8L微控制器(ST公司的STM8L152C6)作为收购的核心板,用于获取和前端信号发送到ADC的; UART接口是用于之间进行通信数据采集板和ARM9系统板(使用MODBUS通讯协议)。 a、 STM8L152C6的特点 STM8L152C6核心部件是STM8,16MHz的频率,1.8V〜3.6V的电压(它仍然可以工作的时候电源降至1.65V);内存32K闪存,2K SRAM,EEPROM 1K;4超低功耗模式,内置RC振荡器; 25路,12位逐次逼近型ADC,包括公路快速通道切换时间是1秒,12位DAC转换时间1秒,超低功耗比较器。
STM8L152C6片上12位ADC 25能满足大多数的准确性的转换要求的需要和信道的数量,另外,在另一资源芯片也能满足数据采集的要求。
ADC可以在三种模式下工作,主要不同的转换输入通道的管理方式:单模式(一个转换,然后ADC停止);连续模式(ADC继续转换到下一通道);扫描模式(ADC将一组选择的通道到存储器)。
b、AD202的功能特点
AD202是双精度转换器,内有微型高精度隔离放大器,具有高功能高精度,低功耗,共模高性能,小尺寸和低价格。它使电隔离的输入和输出信号可以通过片上变压器耦合。片上直流电压转换电路可提供±7.5V/2mA隔离为输入级,外部传感器和信号电源处理电路,优化的外围设计电路以提高成本效益的芯片。AD202是广泛应用于多通道数据采集系统,电流短路测量,电机控制,信号加工并进行隔离,低漂移输入放大器和等等。
选择AD202的目的主要是考虑传感器信号放大的隔离,也可以是从后级电路中分离,以提供功率,从而减少干扰,保证ADC的转换精度。AD202功能框图示于图4。 图4 AD202功能框图 Ⅲ、系统软件的结构组成 对于通用数据采集系统的体系软件的结构,该软件分为网络层,监控层与数据采集层三层,一层上网Web服务器,ARM9系统板的监控层和数据收集多嵌段STM8L数据的层使用不同的软件平台采集板设计。A、软件功能的网际层 网络层(Web服务器)使用ASP.NET和SQL服务器软件开发平台,包括:采集数据的处理,数据库管理(历史数据库),异常处理,统计计算和报告,性能分析和操作引导等。B.监控层软件平台上构建和应用模块 监控层软件(ARM9系统板)与Linux操作系统,基于Qt开发和设计环境。主要应用模块:主MODBUS,参数设置(STM8L数据采集板的地址,采集周期,采集信道等),实时数据通信,实时图形显示,本地数据存储,数据检索,异常处理,历史数据通信(与Web服务器间)等。 a.Linux操作系统构建 当操作系统是建立在ARM9系统板,我们需要移植的系统引导程序,Linux内核和文件系统:Vivi 用作系统的引导程序;Linux 2.4.18用作系统内核;YAFFS使用作为文件系统,YAFFS是专为嵌入式使用NAND型闪速存储器,它是一个系统基于日志的文件系统。
b.Qt开发环境的构建
Qt是一个跨平台应用程序框架,应用程序和用户界面可以使用Qt开发。构建Qt是运行在ARM9的Qt应用程序系统板。它应该包括源代码包:e2fsprogs-libs-1.37.tar.gz,qt-embedded-2.3.10-free.tar.gz,topia-free-source-2.1.1.tar.gz,libjpeg-iwmmxt.tar.bz2,tslib.Tar.gz,qt-x11-2.3.2.tar.gz,qt-x11-free-3.3.4.tar.bz2,tmake-1.1.3.tar.gz。按照一定的顺序来编译这些源代码来生成所需的它被复制到指定目录文件ARM9系统板。修改脚本文件,添加QPE订单使ARM9系统板可以在开机的脚本中启动Qt应用程序。
c.MODBUS通讯协议
ARM9系统板的数据采集板STM8L采用MODBUS RTU协议的通信模式,ARM9系统板作为主要的设备,STM8L数据采集板作为一个从属装置。
从STM8L ARM9系统板想要得到的数据采集板的时候,ARM9系统板会发送一个含有设备地址,功能代码,在所需的数据和循环冗余校验码(CRC)信息。所有其他STM8L数据采集板可看到这条消息,但只有指定的地址是STM8L数据采集板将响应。
MODBUS协议被施加到一个控制器通信语言。通过Modbus协议中,控制器之间,控制器和其它通过网络设备可以进行通信。MODBUS是使用一个标准的RS-232C串行接口,控制器可以直接互联。使用主从控制器的通讯技术,其中只有主可以开始传输(查询)。从设备根据其他主设备数据提供给响应查询。 MODBUS ASCII和RTU通讯协议,可以使用两种通信模式。
设备地址是一个数字,从0到247,STM8L数据采集板的地址可预置。STM8L功能代码定义的数据采集板应该实施一个命令,例如读取数据,接收数据,状态报告等。从1到255的功能码数(MODBUS功能代码多达255个,通常是:01读线圈状态,02读输入状态,03读保持寄存器,04读取输入寄存器,05写单个线圈,06写单个寄存器,等等。)函数定义了数据读的地址,包括所收集的数据和值存储在存储器中,或根据其它功能码到的信息的要求必须是执行。CRC由ARM9系统板产生的,数据采集板由STM8L检查时,如果该CRC不匹配,它将请求重传信息。当STM8L数据采集板实现所要求的功能,它将返回一个消息到ARM9系统母板,返回消息包含STM8L数据采集的地址板,所需要的功能的代码,所需要的数据和一个CRC值。 d.Qt应用程序设计 对于Qt应用程序的设计,首先要设计的Qt应用编程接口(菜单和按钮,等),设计每个应用模块,并连接模块功能和插槽的信号。信号和槽是Qt的应用程序特定的通信机制且对用户动作(信号)的响应(插槽)。信号插槽连接语句格式:
Connect ( sender, SIGNAL ( signal ), receiver, SLOT ( slot ) );
例如, Connect ( RD, SIGNAL ( clicked ( ) ), this, SLOT ( rad ( ) ) ); // RD按钮被按下时, rad slot响应,rad()功能被执行 Connect ( timer0, SIGNAL ( timeout ( ) ), this, SLOT ( flushBuff ( ) ) ); //超时信号传输,flushBuff是响应,flushBuff()函数被执行) 实时数据测试程序接口通信和实时图形显示如图,在图5中。 图5 由正弦波信号采集C.数据采集层软件模块 数据收集层软件是基于软件环境IAR Embedded Workbench中,用C ++编译器和STM8L15x_StdPeriph_Driver编程。主要的软件模块包括:从计算机MODBUS,参数设置(收购板地址,采集周期,采集通道,等),数字滤波,实时数据存储器,ADC,实时数据通信等。 Ⅳ、实验数据的分析 通过使用共同的数据采集系统,该在一个特定的区域厚度臭氧已经被收集,存储,传输和显示。在表1中由通用数据采集系统获得的数据与Z 1200XP臭氧监测的数据进行比较。(臭氧单位:PPM) 表1 实验数据的比较CDAS:数据采集系统 从系统测试判断,该系统已经达到了了预期的目的和实验数据已经理想地得到,显示出共同的数据采集系统是可行的。 Ⅴ、结论 共同的数据采集系统,该系统是本文提出的已实现的功能监控层和数据采集层(完成建设ARM9系统板的硬件和软件环境;实施STM8L设计采集板;设计这样的应用模块,主持人MODBUS,Modbus从站,参数设置,实时数据通信,实时图形显示器,本地数据存储器,ADC,数字滤波等上)。从系统测试来看,它能够实现期望的效果,特别是,STM8L ADC数据采集板具有高精度和低功耗电源。因为它是由电池供电的STM8L数据采集板,系统需要具有低工作电源。由于STM8L数据采集板具有低功耗模式,该系统具有自适应睡眠机制来降低系统功耗消耗,保证了系统能够运行有序的很久。此外,ARM9系统主板多块STM8L数据采集板还可以构成系统依赖性,这使得系统构成共同的,灵活方便。 致谢 笔者要感谢IEEE提供了这个模板和先前提供的所有同行的技术支援。 参考[1] 刘孙X.QħX.Data采集系统基于ARM7 [C].单片机与嵌入式系统12月,2010.[2] 孙KY.孙X L.远程监控系统基于ARM9 [C]生物发酵过程.仪器技术与传感器,2010
年2月.[3] 俞ZL.张L.Modbus通信协议基础上FPGA [C].现代电子技术,十一月,2010. 作者简介 王施建农出生在南通,在1958.HeMS收到来自湖南大学,于1982年现在,他是一个教授常州工学院。他的研究兴趣包括嵌入式系统,数据处理等。下载本文