最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基于ARM的便携式数据采集与处理系统设计

IT圈 admin 27浏览 0评论

2024年5月30日发(作者:海天成)

基于ARM的便携式数据采集与处理系统设计

陈建;种健;刘剑

【摘 要】For the application of embedded system in data acquisition and

processing,a new scheme is studied to perform the software and hardware

design,debugging and implementation. A portable data acquisition and

processing system integrating multichannel data acquisition and

processing,real⁃time display and USB communication was implemented.

For the hardware,5 analog input channels,lithium⁃ion battery charging

circuit,SDRAM,NAND Flash storage circuit,LCD interface circuit with SPI

communication,USB device interface and DBGU interface circuit were

designed based on the peripheral unit of microproces⁃sor,microcontroller

development board schematic diagram made by Atmel Company and

actual customer demand. For the soft⁃ware,the program modules of

multichannel analog input timing acquisition,LCD display,key

configuration,and driver of NAND FLASH read⁃write and USB mass storage

device were designed by means of IAR integrated development

environment, and then some simple data acquisition and processing,and

FFT spectral analysis function were realized. In order to analyze and

process the analog⁃to⁃digital conversion data in NAND FLASH,the data

processing programming based on Matlab and mixed programming based

Matlab and VC++ were performed respectively.%针对嵌入式系统在数据采集

与处理中的应用,研究了一种新的方案进行系统的软硬件设计、调试和实现,完成

了一个集多路数据采集与处理、实时显示和USB通信于一体的便携式数据采集系

统。在硬件方面,利用微处理器的外围设备,结合Atmel公司提供的微控制器开

发板原理图和客户实际需求,设计了5路模拟量输入通道,锂离子电池充电电路,

SDRAM,NAND FLASH存储器电路,SPI通信方式的LCD接口电路,USB设备

接口和DBGU接口电路。在软件方面,利用IAR集成开发环境设计了多路模拟量

输入定时采集,LCD显示,按键设置,NAND Flash读写和USB大容量存储设备

驱动等程序模块,并实现了一些简单的数据采集处理和FFT频谱分析功能。最后,

为分析、处理NAND FLASH中模/数转换的数据,分别进行了基于Matlab的数

据处理编程和Matlab与VC++的混合编程。

【期刊名称】《现代电子技术》

【年(卷),期】2016(039)013

【总页数】4页(P167-170)

【关键词】嵌入式系统;数据采集;USB大容量存储设备;ARM

【作 者】陈建;种健;刘剑

【作者单位】河北省高校工业数据通信与自动化仪表应用技术研发中心,河北 承

德 067000; 承德石油高等专科学校,河北 承德 067000;承德石油高等专科学校,

河北 承德 067000;承德石油高等专科学校,河北 承德 067000

【正文语种】中 文

【中图分类】TN431.2-34;TP274.2

当今,嵌入式系统的发展方兴未艾,软硬件技术日趋成熟,应用也越来越普遍。

ARM是业界领先的32位嵌入式微处理器,成本低、低功耗、可扩展性强、支持

实时多任务处理。在这一背景下,本文结合便携式数据采集与处理这一具体应用进

行嵌入式系统的开发,按照结构化、模块化的方式进行系统软硬件的设计、调试和

最终实现[1]。

本设计系统的核心是Atmel公司的ARM7微控制器AT91SAM7SE256,这是一

款基于ARM7TDMI内核的16/ 32位嵌入式RISC微控制器,在极限条件下

(1.65 V,85℃)主频能到达55 MHz。ARM7TDMI内核使用了取指、译码、执

行3级流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处

理和存储系统连续操作。

1.1 硬件电路设计

为了实现采用极化阻抗法进行石油管道的腐蚀分析过程中的数据采集与处理,硬件

电路上需要有5路采集频率为1 kHz的模拟量输入通道,能够实现大容量数据存

储功能,具有实时显示和USB通信功能[2]。

硬件电路功能框图如图1所示。

1.1.1 电源与复位电路

(1)数字电源设计。可充电锂离子电池输出4.2 V电压,经过多功能电池充电器

芯片LTC4080输出3.3 V供CPU、时钟芯片、NAND FLASH、SDRAM和

DBGU接口芯片等使用。LT4080是凌特公司推出的具有独立线性电池充电器和高

效率同步降压型转换器的多功能集成电路,该USB兼容的电池充电器能以高达

500 mA的电流为单节锂离子电池充电,而且没有使器件或周围组件过热的风险,

而高达300 mA的降压型稳压器具有可选工作模式和同步整流功能,以实现高达

96%的效率,该器件用来与高达5.5 V的电源一起工作,包括那些符合USB规格

的电源,特别适合应用于便携式设备中[3]。

(2)模拟电源设计。A/D电路的供电需要模拟电源,数字电源3.3 V通过100

μH电感作为电荷泵电压反相器芯片XC6351A120的输入,XC6351A是一系列电

荷泵电压反转器,内置4个开关MOSFET,外围只需要3个陶瓷电容就可组成一

个正电压输入,负电压输出的高效率、低功耗电压反转器电路,模拟电路电源与数

字电源需要电感隔开。

(3)复位电路设计。复位电路使用了AT91SAM7SE256的复位控制器,复位控

制器是基于上电复位单元的,能处理系统的所有复位而不需要任何外围器件并给出

最近发生的一次复位情况,复位控制器可以独立的或同时驱动外部复位和外设及处

理器复位,而掉电检测能阻止处理器进入不可预知的状态[4]。

1.1.2 时钟电路

时钟电路由两路时钟输入组成,分别为处理器工作时钟和芯片FM3116时钟。处

理器工作时钟为18.432 MHz的无源晶体,需要外部电容。AT91SAM7SE256的

两线接口(TWI)由一根时钟线及一根传输速度达到400 Kb/s的数据线组成,以

字节为单位进行传输。它适用于任何的Atmel两线总线串行E2PROM中,与

FM3116的二线制串行接口兼容,TWI可编程作为主机进行连续或单字节访问,

电源管理控制器向TWI接口提供主时钟(MCK),因此必须先配置电源管理控制

器使能TWI时钟,TWI接口有一条与高级中断控制器(AIC)连接的中断线,如

果TWI接口通信采用中断的方式,必须对高级中断控制器配置使能TWI接口的中

断。

1.1.3 LCD接口

这里采用的LCD型号是HGO12864A,这是一款由清达光电技术有限公司生产的

FSTN型串行外设(SPI)串口液晶,集成了背光电路和NT7532液晶控制器,从

而简化了外部电路设计和编程设计。

1.1.4 按键处理电路

利用并行输入/输出控制器(PIO),将I/O口配置为通用功能I/O线实现按键处

理电路。

1.1.5 A/D电路

(1)输入信号调理电路。由于各通道或各参数送入测量放大器的信号大小并不相

同,但都要放大至ADC输入要求的标准电压,因此各个通道要求测量放大器的增

益就每个通道的数据采集而言,可实现自动控制增益或量程自动切换,因此这里采

用了程控增益放大器LTC6915。

(2)模/数转换器(ADC)。这里用的是AT91SAM7SE256内置的ADC,是逐

次逼近型的10位模/数转换器,它还集成了一个8选1模拟多路复用器,可实现

8路模/数转换,转换电压范围为0 V~A/D基准电压,ADC支持8位或10位分

辨率模式,并且转换结果都送入一个所有通道可用的通用寄存器中,即通道专用寄

存器,可配置为软件触发、外部触发A/DTRG引脚上升沿或内部触发定时计数器

输出。

1.1.6 NAND FLASH接口

AT91SAM7SE256的外部总线接口(EBI)集成了NAND FLASH器件接口电路,

微控制器留给NAND FLASH的地址空间为:0x40000000~0x4FFFFFFF。这里

采用的是SAMSUNG公司的K9F1G08U0M,NAND FLASH用于大容量存储设

备保存采集的数据[5]。

1.1.7 SDRAM接口

这里使用SDRAMC芯片HY57V561620与微控制器的SDRAM控制相连[5],

数据宽度为16 b,容量为32 MB。

1.1.8 USB设备接口

PC机是通过USB接口与本采集系统进行通信的,此时,本采集系统是作为基于

USB接口的大容量存储设备出现在通信过程中;PC机在给锂离子电池充电时,也

是通过USB接口来实现的。

1.1.9 DBGU接口

AT91SAM7SE256内置的调试单元(Debug Unit)为处理器访问基于Atmel的

ARM内核系统的所有调试功能提供了一个单入口点,调试单元集成的2引脚通用

异步收发器(UART)可用于多种调试与追踪目的,它为调试监控通信提供了理想

媒介。调试单元通过MAX3232实现RS 232通信,收发器MAX3232配备专有

的低漏失电压发射器输出状态,通过双电荷泵,在3.0~5.5 V供电下,表现出真

正的RS 232协议器性能,这些器件只需4个0.1 μF的外部电容,用于电荷泵。

在保持RS 232协议输出电平的前提下,可确保120 KBPS的数据传输速率。

软件设计主要包括:LCD显示程序、按键设置程序、A/D数据采集程序、数据处

理及FFT程序和基于NAND FLASH的USB大容量存储设备驱动程序。软件的编

程均是基于Windows下的集成开发环境IAR,同时借助于J-Link仿真器实现程

序烧写和在线仿真,借助于DBGU调试接口与PC机实现RS 232调试通信,PC

机通过终端仿真程序SecureCRT实时显示调试信息。

2.1 程序模块设计与调试

2.1.1 LCD显示程序

LCD驱动芯片NT7532驱动128×64点阵的液晶,将64行从上至下分为0~7共

8页,每页由0~127共128个纵列构成,每列是8个点,与显存中的一个字节

对应,用户只需要向NT7532的显示RAM中传送数据,NT7532就会自动扫描

将显示RAM的数据自动在LCD液晶上显示出来,显示数据的内容和大小由字库

决定,微处理器AT91SAM7SE256是通过串行外设接口(SPI)与NT7532实现

通信、控制LCD显示的,图2为LCD显示程序层次框图。

2.1.2 按键设置程序

A/D转换数据文件存储时间及文件名的修改和NAND FLASH的格式化都是通过

按键设计程序处理的,按键电平的定时扫描是通过AT91SAM7SE256的周期间隔

定时器(PIT)中断方式ISR_Pi(t)实现的,在PIT中断处理程序中对与按键相关

的I/O端口电平进行扫描,获得电平状态的变化,根据电平变换实现相应功能,

图3为按键扫描流程图,按键处理程序如下:

void InitKey(); //配置按键I/O引脚,设定初始值

BOOL IsKeyChanged();//判断是否有状态发生改变的按键

INT8U GetKeyPressed(void); //获得按下键的索引

INT8U GetKeyRelease(void); //获得抬起键的索引

void TC_Key_Handle(rvoid); //定时扫描按键中断程序

void EnableKeyInterrup(t); //使能按键中断

static void ISR_Pi(tvoid); //周期间隔定时器中断处理程序

2.1.3 A/D数据采集程序

ADC对连续的模拟信号进行采样,得到离散化的数字信号,由微处理器读取该数

字信号并进行相应的处理。采样频率过高,采样点数过多,会占用大量的计算机内

存,降低数据处理速度;采样频率过低,又会使采样数据失真而无法恢复原始连续

信号。因此,必须根据信号的频率范围设置采样频率,同时又要满足采样定理的要

求。当采样频率一定时,增加采样点数可以提高频率分辨率,但数据存储空间和计

算量也相应增大。一般可根据实际需要进行采样点数的选取,通常设置为2的整

数次幂,以便于进行后续的FFT频谱分析。

首先,初始化微控制器的ADC,配置为软件触发,工作模式为正常模式的10 b模

/数转换器,然后使能本课题需要的5路模/数转换通道,设定程控增益预算放大器

LTC6915的放大倍数,设置微控制器的TC2定时时间(采样频率),启动TC2

使其工作在中断方式下,在TC2的中断处理程序中,启动A/D转换,读取A/D

转换结果,判断A/D转换数据Buffer是否已满,如果已满停止A/D转换并将

Buffer中的数据以FAT16文件系统管理的方式写入NAND FLASH中,继续A/D

转换,否则继续向Buffer写入A/D转换结果[6]。

2.1.4 数据处理及FFT程序

(1)时域参数检测

将微处理器AT91SAM7SE256的ADC分辨率设置为10 b,因此最大值为0x3FF,

将转换后的数据进行如下相应的处理:

for(id_channel=ADC_CHANNEL_0;

id_channel<ADC_CHANNEL_0+g_iAdChannelNum;id_channel++)

{data=(unsigned short)(ADC_GetConverted Data

(AT91C_BASE_ADC,id_channel)&0x3FF); //采取限幅处理

*(short*)(AD_BUFFER+(((id_channel<<1)+g_iAd-Buf_Write)

*ADBUFFER_LEN)+adc_vcont)=data|(g_i Magnification Times

[id_channel]<<12);}

为了消除干扰,对转换数据进行滑动平均滤波;再求最值和平均值,结合模拟输入

范围进行电压的标度变换,可以计算出输入信号的峰峰值和平均值。

对于周期性信号,通过计算相邻前向过零点之间的数据点数,根据采样频率得到模

拟输入的周期(频率)。此外,还可以通过相关函数计算信号周期的估算值。

(2)FFT程序及其优化

(3)基于NAND FLASH的USB存储设备驱动程序

在编写USB大容量存储设备的固件程序时,是借鉴Atmel公司提供的AT91 USB

大容量存储设备软件开发包,参照技术手册AT91 USB Framework和AT91 USB

Mass Storage Device Driver Implementation完成的。

在研究的采集系统中,以文件的形式存储、管理模/数转换结果,NAND FLASH

中存储的数据文件通过文件名确定文件属于哪路模拟量输入通道和处于该通道的第

几个采集文件。为了得到用来分析石油管道腐蚀情况的参数,需要对这些模/数转

换结果进行FFT处理获得想要的两大参数:直流分量和50 Hz分量的大小。

在数据编程处理过程中,分别实现了基于Matlab的数据处理编程及VC++与

Matlab的混合编程。由于Matlab集成的FFT算法和强大、易用的绘图处理功能

使得在Matlab环境下实现数据处理很方便快捷,但是Matlab是一种脚本语言,

需要依赖Matlab开发环境,这就大大制约了程序的可移植性和通用性;由于通过

VC++实现Matlab的强大绘图功能很复杂,因此通过VC++与Matlab混合编程

可以充分发挥出二者各自的优点,大大提高了开发效率。

为了测试采集系统ADC功能,基于Matlab的数据处理编程,基于VC++与

Matlab的混合数据处理编程的处理效果,现用信号发生器提供特定频率和特定幅

值的电压信号,每隔一段时间修改直流分量和交流分量的幅值,并对修改结果进行

记录,待采集系统进行一段时间的模/数转换后,通过USB接口将采集系统的

NAND FLASH中的数据读取到PC机上进行分析处理。图4为基于Matlab的编

程处理效果,图5为Matlab与VC++混合编程的处理效果。

从图4和图5可以看出,Matlab与VC++混合编程处理与基于Matlab的数据处

理编程达到了基本相同的效果,同调试信号发生器的记录结果进行对比,可以看出

采集系统与数据处理编程的整体效果是不错的,但两幅图中都有毛刺出现,这是因

为在出现毛刺的时刻没有改变信号发生器的输出信号,经过仔细分析初步将问题定

位于NAND FLASH的布线问题上,严格根据NAND FLASH的布线规范说明重新

做了块板子,毛刺出现的概率降低了,基本上满足了客户需求。

本文把嵌入式系统应用于便携式数据采集与处理中,按照新的方案进行了系统软硬

件的设计、调试并最终实现。在硬件方面,根据Atmel公司提供的微控制器开发

板和客户实际需求参与了硬件电路的设计,实现了5路模拟量输入通道,锂离子

电池充电电路,SDRAM,NAND FLASH存储器电路,USB设备接口和DBGU接

口电路。系统软件方面,在IAR集成开发环境下,借鉴Atmel公司提供的微控制

器软件开发包,参与设计了LCD显示程序,按键设置程序,A/D数据采集程序,

数据处理及FFT程序,NAND FLASH的FAT16管理程序和基于NAND FLASH

的USB大容量存储设备驱动程序。在对NAND FLASH中存储的数/模转换的数据

进行分析、处理的过程中,分别进行了基于Matlab的数据处理编程和Matlab与

VC++的混合编程。

种 健(1984—),男,山东烟台人,助教,研究生学历。主要从事电子技术方

面的研究。

刘 剑(1978—),男,山东青州人,讲师,研究生学历。研究方向为电子技术、

控制工程。

【相关文献】

[1]朱应飞,罗家融,李实,等.EAST嵌入式数据采集系统设计[J].原子能科学技术,2012,

46(7):893-896.

[2]陈曦,蔡姗姗,王清,等.基于ARM9的模块化数据采集系统的研究[J].仪表技术与传感器,

2013(12):24-26.

[3]付丽辉,尹文庆.基于嵌入式系统的洪泽湖水产养殖污染环境的远程数据采集与监测[J].安

徽农业科学,2012(13):7884-7886.

[4]李涛,陈征,吴立恒,等.一种新型分量式钻孔应变仪数据采集单元的设计及应用[J].震灾

防御技术,2014,9(1):142-148.

[5]高飞,叶文华.基于嵌入式系统的OPC数据采集技术的研究与实现[J].中国制造业信息化,

2012,41(5):34-39.

[6]张俊涛,刘红科.基于ARM的高速公路动态计重系统的设计[J].计算机测量与控制,2012,

20(1):219-221.

[7]刘会令.基于.NET的嵌入式系统OPC客户端开发[D].北京:北京化工大学,2013.

2024年5月30日发(作者:海天成)

基于ARM的便携式数据采集与处理系统设计

陈建;种健;刘剑

【摘 要】For the application of embedded system in data acquisition and

processing,a new scheme is studied to perform the software and hardware

design,debugging and implementation. A portable data acquisition and

processing system integrating multichannel data acquisition and

processing,real⁃time display and USB communication was implemented.

For the hardware,5 analog input channels,lithium⁃ion battery charging

circuit,SDRAM,NAND Flash storage circuit,LCD interface circuit with SPI

communication,USB device interface and DBGU interface circuit were

designed based on the peripheral unit of microproces⁃sor,microcontroller

development board schematic diagram made by Atmel Company and

actual customer demand. For the soft⁃ware,the program modules of

multichannel analog input timing acquisition,LCD display,key

configuration,and driver of NAND FLASH read⁃write and USB mass storage

device were designed by means of IAR integrated development

environment, and then some simple data acquisition and processing,and

FFT spectral analysis function were realized. In order to analyze and

process the analog⁃to⁃digital conversion data in NAND FLASH,the data

processing programming based on Matlab and mixed programming based

Matlab and VC++ were performed respectively.%针对嵌入式系统在数据采集

与处理中的应用,研究了一种新的方案进行系统的软硬件设计、调试和实现,完成

了一个集多路数据采集与处理、实时显示和USB通信于一体的便携式数据采集系

统。在硬件方面,利用微处理器的外围设备,结合Atmel公司提供的微控制器开

发板原理图和客户实际需求,设计了5路模拟量输入通道,锂离子电池充电电路,

SDRAM,NAND FLASH存储器电路,SPI通信方式的LCD接口电路,USB设备

接口和DBGU接口电路。在软件方面,利用IAR集成开发环境设计了多路模拟量

输入定时采集,LCD显示,按键设置,NAND Flash读写和USB大容量存储设备

驱动等程序模块,并实现了一些简单的数据采集处理和FFT频谱分析功能。最后,

为分析、处理NAND FLASH中模/数转换的数据,分别进行了基于Matlab的数

据处理编程和Matlab与VC++的混合编程。

【期刊名称】《现代电子技术》

【年(卷),期】2016(039)013

【总页数】4页(P167-170)

【关键词】嵌入式系统;数据采集;USB大容量存储设备;ARM

【作 者】陈建;种健;刘剑

【作者单位】河北省高校工业数据通信与自动化仪表应用技术研发中心,河北 承

德 067000; 承德石油高等专科学校,河北 承德 067000;承德石油高等专科学校,

河北 承德 067000;承德石油高等专科学校,河北 承德 067000

【正文语种】中 文

【中图分类】TN431.2-34;TP274.2

当今,嵌入式系统的发展方兴未艾,软硬件技术日趋成熟,应用也越来越普遍。

ARM是业界领先的32位嵌入式微处理器,成本低、低功耗、可扩展性强、支持

实时多任务处理。在这一背景下,本文结合便携式数据采集与处理这一具体应用进

行嵌入式系统的开发,按照结构化、模块化的方式进行系统软硬件的设计、调试和

最终实现[1]。

本设计系统的核心是Atmel公司的ARM7微控制器AT91SAM7SE256,这是一

款基于ARM7TDMI内核的16/ 32位嵌入式RISC微控制器,在极限条件下

(1.65 V,85℃)主频能到达55 MHz。ARM7TDMI内核使用了取指、译码、执

行3级流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处

理和存储系统连续操作。

1.1 硬件电路设计

为了实现采用极化阻抗法进行石油管道的腐蚀分析过程中的数据采集与处理,硬件

电路上需要有5路采集频率为1 kHz的模拟量输入通道,能够实现大容量数据存

储功能,具有实时显示和USB通信功能[2]。

硬件电路功能框图如图1所示。

1.1.1 电源与复位电路

(1)数字电源设计。可充电锂离子电池输出4.2 V电压,经过多功能电池充电器

芯片LTC4080输出3.3 V供CPU、时钟芯片、NAND FLASH、SDRAM和

DBGU接口芯片等使用。LT4080是凌特公司推出的具有独立线性电池充电器和高

效率同步降压型转换器的多功能集成电路,该USB兼容的电池充电器能以高达

500 mA的电流为单节锂离子电池充电,而且没有使器件或周围组件过热的风险,

而高达300 mA的降压型稳压器具有可选工作模式和同步整流功能,以实现高达

96%的效率,该器件用来与高达5.5 V的电源一起工作,包括那些符合USB规格

的电源,特别适合应用于便携式设备中[3]。

(2)模拟电源设计。A/D电路的供电需要模拟电源,数字电源3.3 V通过100

μH电感作为电荷泵电压反相器芯片XC6351A120的输入,XC6351A是一系列电

荷泵电压反转器,内置4个开关MOSFET,外围只需要3个陶瓷电容就可组成一

个正电压输入,负电压输出的高效率、低功耗电压反转器电路,模拟电路电源与数

字电源需要电感隔开。

(3)复位电路设计。复位电路使用了AT91SAM7SE256的复位控制器,复位控

制器是基于上电复位单元的,能处理系统的所有复位而不需要任何外围器件并给出

最近发生的一次复位情况,复位控制器可以独立的或同时驱动外部复位和外设及处

理器复位,而掉电检测能阻止处理器进入不可预知的状态[4]。

1.1.2 时钟电路

时钟电路由两路时钟输入组成,分别为处理器工作时钟和芯片FM3116时钟。处

理器工作时钟为18.432 MHz的无源晶体,需要外部电容。AT91SAM7SE256的

两线接口(TWI)由一根时钟线及一根传输速度达到400 Kb/s的数据线组成,以

字节为单位进行传输。它适用于任何的Atmel两线总线串行E2PROM中,与

FM3116的二线制串行接口兼容,TWI可编程作为主机进行连续或单字节访问,

电源管理控制器向TWI接口提供主时钟(MCK),因此必须先配置电源管理控制

器使能TWI时钟,TWI接口有一条与高级中断控制器(AIC)连接的中断线,如

果TWI接口通信采用中断的方式,必须对高级中断控制器配置使能TWI接口的中

断。

1.1.3 LCD接口

这里采用的LCD型号是HGO12864A,这是一款由清达光电技术有限公司生产的

FSTN型串行外设(SPI)串口液晶,集成了背光电路和NT7532液晶控制器,从

而简化了外部电路设计和编程设计。

1.1.4 按键处理电路

利用并行输入/输出控制器(PIO),将I/O口配置为通用功能I/O线实现按键处

理电路。

1.1.5 A/D电路

(1)输入信号调理电路。由于各通道或各参数送入测量放大器的信号大小并不相

同,但都要放大至ADC输入要求的标准电压,因此各个通道要求测量放大器的增

益就每个通道的数据采集而言,可实现自动控制增益或量程自动切换,因此这里采

用了程控增益放大器LTC6915。

(2)模/数转换器(ADC)。这里用的是AT91SAM7SE256内置的ADC,是逐

次逼近型的10位模/数转换器,它还集成了一个8选1模拟多路复用器,可实现

8路模/数转换,转换电压范围为0 V~A/D基准电压,ADC支持8位或10位分

辨率模式,并且转换结果都送入一个所有通道可用的通用寄存器中,即通道专用寄

存器,可配置为软件触发、外部触发A/DTRG引脚上升沿或内部触发定时计数器

输出。

1.1.6 NAND FLASH接口

AT91SAM7SE256的外部总线接口(EBI)集成了NAND FLASH器件接口电路,

微控制器留给NAND FLASH的地址空间为:0x40000000~0x4FFFFFFF。这里

采用的是SAMSUNG公司的K9F1G08U0M,NAND FLASH用于大容量存储设

备保存采集的数据[5]。

1.1.7 SDRAM接口

这里使用SDRAMC芯片HY57V561620与微控制器的SDRAM控制相连[5],

数据宽度为16 b,容量为32 MB。

1.1.8 USB设备接口

PC机是通过USB接口与本采集系统进行通信的,此时,本采集系统是作为基于

USB接口的大容量存储设备出现在通信过程中;PC机在给锂离子电池充电时,也

是通过USB接口来实现的。

1.1.9 DBGU接口

AT91SAM7SE256内置的调试单元(Debug Unit)为处理器访问基于Atmel的

ARM内核系统的所有调试功能提供了一个单入口点,调试单元集成的2引脚通用

异步收发器(UART)可用于多种调试与追踪目的,它为调试监控通信提供了理想

媒介。调试单元通过MAX3232实现RS 232通信,收发器MAX3232配备专有

的低漏失电压发射器输出状态,通过双电荷泵,在3.0~5.5 V供电下,表现出真

正的RS 232协议器性能,这些器件只需4个0.1 μF的外部电容,用于电荷泵。

在保持RS 232协议输出电平的前提下,可确保120 KBPS的数据传输速率。

软件设计主要包括:LCD显示程序、按键设置程序、A/D数据采集程序、数据处

理及FFT程序和基于NAND FLASH的USB大容量存储设备驱动程序。软件的编

程均是基于Windows下的集成开发环境IAR,同时借助于J-Link仿真器实现程

序烧写和在线仿真,借助于DBGU调试接口与PC机实现RS 232调试通信,PC

机通过终端仿真程序SecureCRT实时显示调试信息。

2.1 程序模块设计与调试

2.1.1 LCD显示程序

LCD驱动芯片NT7532驱动128×64点阵的液晶,将64行从上至下分为0~7共

8页,每页由0~127共128个纵列构成,每列是8个点,与显存中的一个字节

对应,用户只需要向NT7532的显示RAM中传送数据,NT7532就会自动扫描

将显示RAM的数据自动在LCD液晶上显示出来,显示数据的内容和大小由字库

决定,微处理器AT91SAM7SE256是通过串行外设接口(SPI)与NT7532实现

通信、控制LCD显示的,图2为LCD显示程序层次框图。

2.1.2 按键设置程序

A/D转换数据文件存储时间及文件名的修改和NAND FLASH的格式化都是通过

按键设计程序处理的,按键电平的定时扫描是通过AT91SAM7SE256的周期间隔

定时器(PIT)中断方式ISR_Pi(t)实现的,在PIT中断处理程序中对与按键相关

的I/O端口电平进行扫描,获得电平状态的变化,根据电平变换实现相应功能,

图3为按键扫描流程图,按键处理程序如下:

void InitKey(); //配置按键I/O引脚,设定初始值

BOOL IsKeyChanged();//判断是否有状态发生改变的按键

INT8U GetKeyPressed(void); //获得按下键的索引

INT8U GetKeyRelease(void); //获得抬起键的索引

void TC_Key_Handle(rvoid); //定时扫描按键中断程序

void EnableKeyInterrup(t); //使能按键中断

static void ISR_Pi(tvoid); //周期间隔定时器中断处理程序

2.1.3 A/D数据采集程序

ADC对连续的模拟信号进行采样,得到离散化的数字信号,由微处理器读取该数

字信号并进行相应的处理。采样频率过高,采样点数过多,会占用大量的计算机内

存,降低数据处理速度;采样频率过低,又会使采样数据失真而无法恢复原始连续

信号。因此,必须根据信号的频率范围设置采样频率,同时又要满足采样定理的要

求。当采样频率一定时,增加采样点数可以提高频率分辨率,但数据存储空间和计

算量也相应增大。一般可根据实际需要进行采样点数的选取,通常设置为2的整

数次幂,以便于进行后续的FFT频谱分析。

首先,初始化微控制器的ADC,配置为软件触发,工作模式为正常模式的10 b模

/数转换器,然后使能本课题需要的5路模/数转换通道,设定程控增益预算放大器

LTC6915的放大倍数,设置微控制器的TC2定时时间(采样频率),启动TC2

使其工作在中断方式下,在TC2的中断处理程序中,启动A/D转换,读取A/D

转换结果,判断A/D转换数据Buffer是否已满,如果已满停止A/D转换并将

Buffer中的数据以FAT16文件系统管理的方式写入NAND FLASH中,继续A/D

转换,否则继续向Buffer写入A/D转换结果[6]。

2.1.4 数据处理及FFT程序

(1)时域参数检测

将微处理器AT91SAM7SE256的ADC分辨率设置为10 b,因此最大值为0x3FF,

将转换后的数据进行如下相应的处理:

for(id_channel=ADC_CHANNEL_0;

id_channel<ADC_CHANNEL_0+g_iAdChannelNum;id_channel++)

{data=(unsigned short)(ADC_GetConverted Data

(AT91C_BASE_ADC,id_channel)&0x3FF); //采取限幅处理

*(short*)(AD_BUFFER+(((id_channel<<1)+g_iAd-Buf_Write)

*ADBUFFER_LEN)+adc_vcont)=data|(g_i Magnification Times

[id_channel]<<12);}

为了消除干扰,对转换数据进行滑动平均滤波;再求最值和平均值,结合模拟输入

范围进行电压的标度变换,可以计算出输入信号的峰峰值和平均值。

对于周期性信号,通过计算相邻前向过零点之间的数据点数,根据采样频率得到模

拟输入的周期(频率)。此外,还可以通过相关函数计算信号周期的估算值。

(2)FFT程序及其优化

(3)基于NAND FLASH的USB存储设备驱动程序

在编写USB大容量存储设备的固件程序时,是借鉴Atmel公司提供的AT91 USB

大容量存储设备软件开发包,参照技术手册AT91 USB Framework和AT91 USB

Mass Storage Device Driver Implementation完成的。

在研究的采集系统中,以文件的形式存储、管理模/数转换结果,NAND FLASH

中存储的数据文件通过文件名确定文件属于哪路模拟量输入通道和处于该通道的第

几个采集文件。为了得到用来分析石油管道腐蚀情况的参数,需要对这些模/数转

换结果进行FFT处理获得想要的两大参数:直流分量和50 Hz分量的大小。

在数据编程处理过程中,分别实现了基于Matlab的数据处理编程及VC++与

Matlab的混合编程。由于Matlab集成的FFT算法和强大、易用的绘图处理功能

使得在Matlab环境下实现数据处理很方便快捷,但是Matlab是一种脚本语言,

需要依赖Matlab开发环境,这就大大制约了程序的可移植性和通用性;由于通过

VC++实现Matlab的强大绘图功能很复杂,因此通过VC++与Matlab混合编程

可以充分发挥出二者各自的优点,大大提高了开发效率。

为了测试采集系统ADC功能,基于Matlab的数据处理编程,基于VC++与

Matlab的混合数据处理编程的处理效果,现用信号发生器提供特定频率和特定幅

值的电压信号,每隔一段时间修改直流分量和交流分量的幅值,并对修改结果进行

记录,待采集系统进行一段时间的模/数转换后,通过USB接口将采集系统的

NAND FLASH中的数据读取到PC机上进行分析处理。图4为基于Matlab的编

程处理效果,图5为Matlab与VC++混合编程的处理效果。

从图4和图5可以看出,Matlab与VC++混合编程处理与基于Matlab的数据处

理编程达到了基本相同的效果,同调试信号发生器的记录结果进行对比,可以看出

采集系统与数据处理编程的整体效果是不错的,但两幅图中都有毛刺出现,这是因

为在出现毛刺的时刻没有改变信号发生器的输出信号,经过仔细分析初步将问题定

位于NAND FLASH的布线问题上,严格根据NAND FLASH的布线规范说明重新

做了块板子,毛刺出现的概率降低了,基本上满足了客户需求。

本文把嵌入式系统应用于便携式数据采集与处理中,按照新的方案进行了系统软硬

件的设计、调试并最终实现。在硬件方面,根据Atmel公司提供的微控制器开发

板和客户实际需求参与了硬件电路的设计,实现了5路模拟量输入通道,锂离子

电池充电电路,SDRAM,NAND FLASH存储器电路,USB设备接口和DBGU接

口电路。系统软件方面,在IAR集成开发环境下,借鉴Atmel公司提供的微控制

器软件开发包,参与设计了LCD显示程序,按键设置程序,A/D数据采集程序,

数据处理及FFT程序,NAND FLASH的FAT16管理程序和基于NAND FLASH

的USB大容量存储设备驱动程序。在对NAND FLASH中存储的数/模转换的数据

进行分析、处理的过程中,分别进行了基于Matlab的数据处理编程和Matlab与

VC++的混合编程。

种 健(1984—),男,山东烟台人,助教,研究生学历。主要从事电子技术方

面的研究。

刘 剑(1978—),男,山东青州人,讲师,研究生学历。研究方向为电子技术、

控制工程。

【相关文献】

[1]朱应飞,罗家融,李实,等.EAST嵌入式数据采集系统设计[J].原子能科学技术,2012,

46(7):893-896.

[2]陈曦,蔡姗姗,王清,等.基于ARM9的模块化数据采集系统的研究[J].仪表技术与传感器,

2013(12):24-26.

[3]付丽辉,尹文庆.基于嵌入式系统的洪泽湖水产养殖污染环境的远程数据采集与监测[J].安

徽农业科学,2012(13):7884-7886.

[4]李涛,陈征,吴立恒,等.一种新型分量式钻孔应变仪数据采集单元的设计及应用[J].震灾

防御技术,2014,9(1):142-148.

[5]高飞,叶文华.基于嵌入式系统的OPC数据采集技术的研究与实现[J].中国制造业信息化,

2012,41(5):34-39.

[6]张俊涛,刘红科.基于ARM的高速公路动态计重系统的设计[J].计算机测量与控制,2012,

20(1):219-221.

[7]刘会令.基于.NET的嵌入式系统OPC客户端开发[D].北京:北京化工大学,2013.

发布评论

评论列表 (0)

  1. 暂无评论