嵌入式数据采集系统

2024-08-22

嵌入式数据采集系统(共12篇)

嵌入式数据采集系统 篇1

计算技术的快速发展, 对工业的数据采集和控制系统也起到了重要的推动作用, 高速的数据采集系统为在线实时监测和设备的故障诊断起到了重要的技术支持。嵌入式系统具有可靠性高、体积小、易扩展、功能强、开发周期短等特点, 满足了恶劣环境的需要。近年来, 嵌入式的采集系统朝着多通道、高精度、模块化和高速高效的处理方向发展。本文对高速的数据采集系统进行研究, 采用ARM8019A作为处理的芯片, 设计系统的软件和硬件平台, 采集板的A/D转换电路, 并给予LINUX的编程环境进行设备的管理和程序的设计, 实现高速数据采集的目的。

1 嵌入式采集系统的概念

1.1 嵌入式系统的概念

嵌入式系统实际上是嵌入式计算机系统的简称, 嵌入到宿主设备中的微处理机系统。典型的嵌入式的处理机有微处理器、DSP、ARM等。嵌入式系统一般有嵌入式的处理器、外围设备和嵌入式的操作系统及软件组成, 根据任务的需要选用合适的处理器, 通过不同的外设实现嵌入式系统强大的功能, 嵌入式的软件设计根据不同的需要具有特定的专业领域, 需要根据任务的要求合理的选用和设计。

1.2 数据采集系统的概念

数据采集系统是进行实时监测和故障诊断的重要技术支持, 数据采集系统主要研究的是数据的采集、存储、处理和控制的内容。数据采集是基于传感器信号采集、微型计算机技术的一门综合的技术, 通过在工业现场信号源中采集相关的信号, 经过A/D转换、滤波和放大使之成为计算机能够接受的数字信号, 经过计算机处理和分析后形成控制信号, 完成工业的控制任务。数据采集系统正在朝着多通道、高精度、高速度的方向发展, 为实现准确复杂的工业控制提供了重要的技术支持。

2 高速嵌入式采集系统的总体设计

2.1 高速采集的系统设计方案

本文选用的是双通道的数据采集, 并且能够完成数据的存储和转发。数据采集系统的技术指标为每通道40MS/s同步采样, 2通道模拟信号输入, A/D转换的精度为12位;实施增益可控;支持实时触发、预触发、中间触发和后触等多种触发方式, 采集卡的型号为PCH8504。

主控器选用的是ARM8019A系列微处理器, ARM系列不同的产品具有专用的指令集, 能够满足不同要求的工业控制。ARM8019A的主频为512MHz, ARM微处理器已经延伸到了工业控制、无线通讯和网络等各个领域, 并且具有高性能、低功耗的特点, 是嵌入式系统常用的处理器。

嵌入式的操作系统选用的是LINUX, 专用的嵌入式LINUX系统在具有优良的特性:支持的硬件设备广泛, LINUX被成功移植到了数十种硬件平台上;源码开放, 具有丰富的软件资源;内核稳定高效, 具备完善的网路通讯功能。

2.2 数据采集系统的关键功能模块

电源模块, 电源模块为整个数据采集装置的不同模块提供电源, 保证供电稳定是系统工作的基本保证;A/D转换, A/D转换模块能够实现模拟信号到数据信号的转变, 并且每一路能够实现可变增益的放大, 从而实现对不同模拟信号的采集;通讯模块, 通讯采用了RS-485作为与PC通信的媒介;FPGA模块, 该模块能够提供数据采集的时钟控制, 并且为每路采集的数据进行缓冲;SD卡模块, 实现采集数据的存储功能。

3 高速嵌入式数据采集系统的硬件设计

3.1 系统的模拟部分电路设计

A/D选型对于采集系统具有重要的影响, 需要根据前端的信号频率的要求执行合理的转化电路。A/D采样速率为每通道40MS/s, 精度为12位, 每个通道的采样数据相互独立位于RAM的响应段中, 同步采样在采样的时序上是独立的, 每个通道的数据之间没有相位差。

3.2 系统的数字部分电路设计

系统的数字电路设计的任务是完成A/D采集的控制、放大增益的译码控制和采集数据的读取、存贮, 主要应用的控制器是ARM, 控制的对象为FPGA和网络控制器。A/D的工作脉冲周期由采样频率决定, 控制时钟在FPGA内产生, A/D触发图见图2。

4 数据采集系统软件程序模块设计

4.1 linux驱动程序

Linux系统的设备可以分三种类型:字节设备, 字节设备的读写单位是字节, 进行顺序读写, 操作简单;块设备的操作单位是块 (单位是512字节的倍数) , 块设备可以对任何块进行随机读写, 块设备和字节设备的区别在于内核和驱动程序接口不同;网络设备, 网络设备可以实现主机的数据交换, 通过网络子系统的驱动实现数据的发送和接收。

驱动程序的主要功能是对设备进行初始化, 启动或者是终止设备的运行, 将设备中的数据传动到内存, 再从内存传送到设备, 监测设备的状态等。驱动程序主要由初始化函数、驱动接口函数、中断函数和设备的专有部分组成。

4.2 系统主模块的驱动程序设计

采集系统的前端信号通过A/D采集, 传入到FPGA内部的FIFO, 首先需要初始化设备, 初始化的函数为int_initfifo_init (void) , 从而完成设备的初始化, 相对应的注销函数为void_exitfifo_cleanup (void) , 释放系统的内存需要使用内核级函数kmalloc/kfree () 来实现, 中断程序的信号可以选用FPGA的FIFO半满信号, 将数据传动至缓冲区。

4.3 数据的采集、存储程序设计

数据的采集功能是读取两路的FIFO中的A/D转换数据, 将读取的数据存储在数据缓冲区内, 等待数据的读取和发送程序。数据采集和读取的程序框图为图3。数据的存储是读取数据缓冲区内没有内存贮到SD卡中的数据, 同时进行相应的标记, 表示数据已经被写入到了数据文件中, 数据存储的程序框图见图4。两路的FIFO被映射到外部寄存器空间的两个端口, 当中断程序工作时, 依次对着两个端口进行读取, 每次读取的一定的字节数。

5 结论

本文对高速嵌入式系统进行了初步的探讨, 探究了系统的系统设计方案、硬件选型、软件和程序的设计, 讨论了LINUX环境下的驱动程序的组成和主要功能, 介绍了高速嵌入式系统的部分模拟电路和数字电路, 同时介绍了主模块的程序设计方案和数据的采集、存储和读取的程序框图, 为高速嵌入式系统的设计提供了一定的理论指导。

参考文献

[1]薛国将.基于ARM的数据采集系统的研究与开发[D].武汉:中国地质大学, 2007.

[2]王卫国.嵌入式Linux在高速数据采集系统中的应用研究[D].西安:西北工业大学, 2004.

[3]俞坤师.基于ARM架构的无线数据采集与处理终端的研究与开发[D].武汉:武汉理工大学, 2008.

嵌入式数据采集系统 篇2

摘要:介绍了一种以Samsung公司的ARM7TDMI CPU S3C4510B为核心、μCUnux 为操作系统的嵌入式系统应用于MPEC-2或MPEG-4等实时多媒体数据的网络传输所面临的问题,并提出了相应的解决方案。

关键词:嵌入式系统 μClinux 实时多媒体 接口扩展

嵌入式系统目前已广泛应用于信息家电、网络通信和工业控制等各个领域。典型的嵌入式系统主要由嵌入式硬件和软件构成,其中硬件部分的核心为嵌入式处理器。与通用处理器相比,其在功耗、体积、成本等方面都受到应用要求的制约。嵌入式系统的软件部分可以像计算机一样使用操作系统,目前已有许多成熟嵌入式操作系统,如VxWorks、pSOS、Nucleus、Windows CE 以及嵌入式Linux 等。当然,在一些简单应用中许多嵌入式系统的软件并没有使用操作系统,只有一些循环控制。这样,软件复杂度大大降低,从而减少存储器的容量要求,但是这样的软件在重复使用、网络支持等方面的能力相对较弱。

ARM系列内核是目前嵌入式处理器中广泛使用的内核。采用ARM内核的处理器具有体积小、功耗低、成本低和性能高的特点。在全球有众多生产ARM内核处理器的厂商。

Linux是一种很受欢迎的开放源码操作系统,原先被设计应用于桌面系统,后被广泛应用于服务器。由于其开放源码和内核可裁减等特性,Linux逐渐被修改用于嵌入式领域。目前已有多个嵌入式应用的`版本,μClinux 是其中的一个分支,最早被设计应用于微控制领域。其最大特征就是没有MMU(内存管理单元),很适合于许多低端的、没有MMU的嵌入式处理器。

本文设计了一种嵌入式系统用于多媒体实时数据的网络传输。ARM内核处理器与嵌入式 Linux 是目前嵌入式应用中的一种典型组合,选用了 Samsung 公司的16/32位ARM7TDMI 内核的网络处理器 S3C4510B 为嵌入式硬件核心,μClinux 为操作系统。该系统支持完整的TCP/IP协议以及许多其它的网络协议,同时它具有很低的成本。

1 嵌入式系统的构成

1.1 硬件系统

嵌入式硬件系统主要由 CPU、Flash ROM、SDRAM、以太网物理层、FIFO以及CPLD等芯片构成,如图1所示。

(1) CPU

本系统采用了 ARM7TDMI 内核的 RISC 处理器S3C4510B。该芯片具有如下一些主要特点:

8/16/32位的外部总线支持 ROM、RAM、Flash 存储器、DRAM 和外部I/O;

・8K 字节的 Cache;

嵌入式数据采集系统 篇3

关键词:SQLite;嵌入式;数据库

中图分类号:TP31文献标识码:A文章编号:1007-9599 (2011) 07-0000-01

SQlite Database Application in Embedded Systems under Linux

Li Wenhao

(Xiamen University,Xiamen361005,China)

Abstract:SQLite is a excellent open source embedded database used for free,small,fast,easy to use and has reliable performance.During the construction of the distribution system,we need to manage a lot of data.It's simple,convenient and flexible to access programming the SQLite database under Linux environment.As so,building a database using SQLite embedded database applications,is an economic and efficient solution.

Keywords:SQLite;Embedded;Database

SQLite是D.Richard Hipp于2000年采用C语言编写的一个轻量级、跨平台的关系型数据库,支持大部分SQL92标准,支持弱类型数据存储,开源免费。主要由3个子系统、8个独立的模块构成,其体系结构如下图所示:

其主要部件介绍如下:

1.接口:由两部分组成:核心API(core API)和扩展API(extension API),核心API的函数实现基本的数据库操作,扩展API通过创建自定义的SQL函数去扩展SQLite。

2.编译器:在编译器中,分词器和分析器对SQL语句进行语法检查,然后把它转化为语法树,再把语法树传给代码生成器(code generator)进行处理。而代码生成器根据它生成一种针对SQLite的汇编代码,最后由虚拟机执行。

3.虚拟机:架构中最核心的部分是虚拟机,用于解释执行字节代码。VDBE的字节代码主要集中在数据库操作,每一条指令都用来完成特定的数据库操作或者为这些操作栈空间的准备。

4.后端:后端由B-树,页缓存和操作系统接口构成。B-tree的主要功能就是索引,便于快速找到所需数据;pager的主要作用就是通过OS接口在B-tree和Disk之间传递页面。

本项目在Linux下SQLite的编程主要分为创建数据库文件、数据库连接两个方向:

一、创建数据库文件

下表是部分组成元素:

CREATE TABLE ftudata(

idINTEGER PRIMARY KEY, U1_abREAL, U1_bcREAL, U1_caREAL, I1_aREAL, I1_bREAL, I1_cREAL, P1_aREAL,--有功功率 P1_rREAL,--无功功率 P1_fREAL,--功率因数

switch_p1 INTEGER,--开关位置(0/1) switch_p2 INTEGER,--开关位置(0/1) sw_f_c1INTEGER,--开关的功能(0/1) sw_f_c2INTEGER,--开关的功能(0/1) communINTEGER,--通信(0/1) curr_pro INTEGER,--电流建断保护(0/1) no_vo_pro INTEGER,--失压保护动作(0/1) sw_num INTEGER,--开关的动作次数 sw_timeINTEGER,--开关的动作时间 err_num INTEGER,--事故次数 ImaxREAL,--最大故障电流 IavgREAL,--平均电流 IproREAL,--过流建断保护定值 UproREAL,--失压保护定值 back1INTEGER, );

库文件中主要设置了电流电压量、功率参数等,back1则作为预留空间,可以进行功能扩充之用。

二、数据库连接(以插入为例)

插入:

Int sqlite3_exec(sqlite3*db,/*An open database*/

const char*sql, /*SQL to be evaluated*/ int (*callback)(void*,int,char**,char**),

/*Callback function*/

void*, /*1st argument to callback*/

char **errmsg/* Error msg written here */

);

配电自动化是我国电力系统现代化建设的必然趋势,要实现配网的管理,数据的管理是其中的关键。在嵌入式系统下,SQLite数据库以其占用系统资源少、使用方便、性能可靠等特点广受欢迎。本文中对其进行了结构分析,并采用该数据库实现了电力系统中数据的管理。不足之处在于:SQLite通过OS的文件锁实现库级锁,粒度很大,对并发控制、数据加密支持的不是太好。以后将作进一步改进。

参考文献:

[1]杜国祥,石俊杰.SQLite嵌入式数据库的应用[J].数据库与信息管理,2010

[2]http://www.sqlite.org.SQLite官方网站

[3]http://www.cnblogs.com/hustcat.arrowcat's技术随笔之SQLite专题

一种嵌入式的蓝牙数据采集系统 篇4

蓝牙技术是近些年来发展迅速的短距离无线通信技术, 数据采集是以传感器技术、信号检测与处理、计算机科学与技术为基础而形成的一门综合应用技术。现代工业控制和数据采集系统已从传统电路、微机模式走进嵌入式的系统模式, 嵌入式系统在工业数据控制和采集传输系统中有着不可替代的作用。针对目前工业现场数据采集过程中, 繁杂的线缆给工作带来不便, 甚至是事故发生的隐患, 同时存在着线缆无法完成的任务。利用蓝牙技术和嵌入式数据采集技术研构建的无线数据采集模块, 可以减少系统间的电缆连接, 具有携带方便、可靠性高、易扩展、功能强、应用灵活等优点。

1 数据采集系统

1.1 数据采集模块方案

数据采集模块的总体方案是通过ARM微处理器上的蓝牙芯片发送采样频率、采样信息给数据采集模块, 数据采集模块接收指令信息, 采集数据并以无线方式传输给PC机, PC机接收数据后显示, 并进行各种处理。蓝牙无线数据采集模块是无线数据采集的重要组成部分, 该模块由数据采集单元、无线传输单元、终端接受单元、电源管理单元四大部分构成。数据采集模块由电池电源供电, 安装在现场, 可脱离系统按指令自动完成数据的采集。输入信号是传感器放大器送来的模拟信号, 此信号经信号调理电路后送入数据采集芯片TLC2543, 然后再传送到ARM微处理器LPC2142, 最后ARM处理器通过串口和蓝牙芯片Rok101008连接, 从而使数字数据通过蓝牙无线传输到PC处理器。

1.2 数据采集硬件设计与实现

数据采集硬件主要涉及到的就是ARM微处理 器和A/D转换器的接口以及蓝牙和ARM微处理器的接口, 其中主要元器件的选择有两个:一是嵌入式的处理器芯片, 另一个是无线传输模块。下面是数据采集模块的硬件原理框图。 (如图1)

LPC2142是基于一个支持实时仿真和嵌入式跟踪的32/16位ARM7TDMI-SCPU的微控制器, 并带有32kB和512kB嵌入式Flas h存储器。由于内置了宽范围的串行通信接口 (从USB2.0全速器件、多个UART、SPI、SSP到I2C总线) 和8KB-40kB的片内SRAM, 它们也适合通信网关、协议转换器、软m ode m、语音识别、低端成像, 为这些应用提供大规模的缓冲区和处理功能。多个32位定时器、1个或2个10位ADC、10位DAC、45个高速GPIO以及多达9个边沿或电平触发的外部中断管脚, 使它们特别适用于工业控制系统, 而本模块解决工业控制中一些相关数据采集及处理问题, 故选择该款芯片。

蓝牙是无线数据和语音传输的开放式标准。它将各种通信设备、计算机及其终端设备、各种数字系统, 采用无线方式连接起来。为了优化系统设计, 我们选用的蓝牙模块是Ericsson公司的ROK101008蓝牙模块。ROK101008模块是一种实现蓝牙功能的短距离通信模块。它包含三个主要的部分:基带控制器、Flash和射频部分, 工作在全球通用2.4GHz~2.480GHz的ISM频段的射频模块。系统可以提供无线标准UART接口, 支持多种波特率 (如9.6kbps、19.2 kbps、38.4 kbps、57.6kbps、115.2 1kbps、230.4 kbps、460.8 kbps) 。本系统经过测试发现, 当速率为57.6 kbps时, 蓝牙芯片能够正常工作。

蓝牙射频用来实现蓝牙设备之间的无线传输, 具体要完成频率的合成, 基带模块的数据信号到无线电信号的转换过滤, 并负责将无线电信号以一定的功率和跳频频率发送出去, 该模块同时支持数据和语音传输。ROK101008的设计符合蓝牙规范1.0B, 通信距离大约为10m左右, 支持UART、PCM和I2C三种接口形式, 工作电压Vcc的典型值为3.3V, 采用内部晶振和时钟, 外形尺寸为33×17×3m m。本系统中蓝牙模块接口电路如图2所示。

2 数据采集软件设计与实现

由于μC/OS-Ⅱ采用C语言和汇编语言, 其中绝大部分用C语言, 结构非常简洁, 同时μC/OS-Ⅱ是一个基于抢占式的实时多任务内核, 可固化、可剪裁、具有高稳定性和可靠性, 除此以外, μC/OS-Ⅱ的鲜明特点就是源码公开, 便于移植和维护, 其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。

μC/OS-Ⅱ具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点, 最小内核可编译至2KB。μC/OS-Ⅱ很适合小型控制系统, 非常适合嵌入式技术者使用, 故我们采用该系统。

蓝牙无线数据采集模块的软件主要包括两大部分:数据采集和蓝牙通信。模/数转换器TLC2453与ARM微处理器LPC2142接口子程序流程图, 该程序主要功能是ARM微处理器LPC2142控制数据采集器, 对模拟数据进行采集处理。

软件平台μC/OS-Ⅱ主要采用标准的ANSI C语言编写, 与蓝牙硬件有关部分使用汇编语言编写, 其中蓝牙通信流程有以下几个功能步骤:蓝牙模块自身初始化端口、初始化蓝牙硬件、HCI流量控制设置、查询、建立连接、进行ACL (Asynchronous Conne ctionLe s s) 数据传输和断开连接等。其软件流程图如图3所示。使用嵌入式操作系统时, 应用软件只与上层代码有关, 与处理器无关, 在移植时只需与硬件相关的底层函数进行修改。因此系统的可移植性和稳定性得到良好的保障。

3 小结

嵌入式系统的广泛应用前景和发展潜力使其成为21世纪的应用热点, 它的发展为传统的测量和控制系统注入了新的活力。

本系统通过对硬件和软件的应用调试, 成功的实现了蓝牙数据采集器的设计。该数据采集器能够精确可以实现8路不同模式 (连续模式、点检模式等) 数据采集并通过蓝牙把数据无线传送给上位机, 其采集速率最高可达150kHz, 数据传输速率最高可达460kbps。该系统与其它数据采集器最大的差别在于实现了A/D转换后数据的无线传输, 并且使数据采集器的电路结构更为简单、集成化、抗干扰更强, 且比传统的数据采集器移动性强, 具有较强的实用性, 能广泛应用在环境复杂的工业现场, 可以替代传统的有线电缆, 有着广泛地应用前景。

摘要:一种基于嵌入式的蓝牙数据采集系统, 将蓝牙无线通信技术和数据采集技术相结合, 针对工业现场数据采集过程中, 繁杂的线缆、事故隐患的发生, 存在着线缆无法完成任务的情况下, 构建了以ARM处理器LPC2142和蓝牙芯片Rok101008的无线数据采集系统。该系统与其它数据采集器最大的差别在于实现了A/D转换后数据的无线传输, 电路结构简单, 集成化、抗干扰, 移动性更强, 具有较强的实用性, 能广泛应用在环境复杂的工业现场。

关键词:嵌入式系统,蓝牙技术,数据采集

参考文献

[1]王田苗.《嵌入式系统设计与实例开发——基于ARM微处理器与μC/OS-II实时操作系统 (第二版) 》[M].北京:清华大学出版社.

[2]2006.10.Marc Borremans, Paul Goetschalckx.Low Power Blue-tooth Single-Chip Design[M].Springer Netherlands.2006.

[3]郑金斌, 张文元.基于蓝牙技术的无线信号检测系统的实现[J].现代电子技术.2006.6.

嵌入式数据采集系统 篇5

--嵌入式系统语音采集与播放程序设计

班级: 学号: 姓名:

指导老师:

课程设计时间:2011.6.29---2011.7.8

江苏大学

目录

第一章 引言.........................................................1 1.1 设计目的......................................................1 1.2 设计任务与要求................................................1 第二章 课程设计平台构建与流程.......................................2 2.1 嵌入式系统平台构建............................................2 2.2 课程设计流程..................................................3 2.3 课程设计硬件结构与工作原理...................................3 第三章 BOOTLOADER移植与下载.......................................11 3.1 VIVI源代码安装...............................................11 3.2 VIVI源代码分析与移植.........................................11 3.3 VIVI编译与下载...............................................12 第四章 LINUX内核移植与下载........................................14 4.1 LINUX内核源代码安装..........................................14 4.2 LINUX内核源代码分析与移植....................................14 4.3 LINUX内核编译与下载..........................................15 第五章 课程设计功能模块程序设计与交叉编译..........................24 5.1 课程设计模块功能.............................................24 5.2 功能模块驱动程序设计.........................................24 5.3 功能模块交叉编译.............................................28 第六章 根文件系统建立与文件系统下载................................29 6.1 根文件系统分析...............................................29 6.2 文件系统映像文件生成.........................................30 6.3 文件系统下载.................................................31 6.4 功能模块运行与调试...........................................32 第七章 课程设计总结与体会..........................................34 7.1 得出的结论...................................................34 7.2课程设计过程中遇到的问题及解决方法...........................34 7.3 心得体会.....................................................34 参考文献...........................................................36

第一章 引言

1.1 设计目的

分析Linux操作系统下音频设备驱动的结构,编写应用测试程序,实现UDA1341芯片的实时录音及放音功能,进一步熟悉vivi、Linux内核和根文件系统的编译和烧写至开发板的开发流程。

1.2 设计任务与要求

在Samsung公司S3C2410处理器的edukit-Ⅲ开发板上,在嵌入式linux操作系统环境下,根据语音芯片UDA1341的驱动程序和语音数据的特点编写语音采集与播放的应用测试程序,实现语音数据的采集和实时播放功能。1.要求本系统实时的采集与播放

2.通过麦克风录制一段语音信息,对其进行播放 第二章 课程设计平台构建与流程

2.1 嵌入式系统平台构建

2.1.1软件部分

1)Linux或Windows 98/2000/NT/XP 2)cygwin cygwin是一个在windows平台上运行的unix/Linux模拟环境,是cygnus solutions公司开发 3)Embest IDE 英蓓特提供的一个嵌入式开发的集成环境。4)windows中的超级终端

5)Embest online Flash Programmer for ARM 烧写相关文件到NorFlash中的工具。

6)建立linux的交叉编译环境,各项源代码的安装等 2.1.2硬件部分

1)EduKit-II实验平台 2)S3C2410核心子板 3)PC机 2.2 课程设计流程

图2.1 设计流程

2.3 课程设计硬件结构与工作原理

2.3.1硬件模块(1)

SCLLRCIIS控制器SDOSDIMCL 图2.2 典型的IIS总线上的设备

(2)IIS总线结构

IIS总线只处理声音数据,其他控制信号等则需单独提供。IIS总线使用3根串行总线,分别是:提供分时复用功能的SD线(Serial data,串行数据),WS线(Word select,字段选择(声道选择))和SCK线(Continuous Serial clock,连续的时钟信号)。

音频编解码4 ADDRTxFIFODATASFTRBRFCRxFIFOSDCNTLCHHCSCLKIPSR_APCLKIPSR_BSCLKGLRCKCDCLK

图2.3 IIS总线接口内部结构

S3C2410A IIS总线接口各模块的功能描述如下:

● BRFC 表示总线接口、寄存器区和状态机。总线接口逻辑和FIFO访问由状态机控制。

● IPSR 表示两个5位的前置分频器ISPR_A和ISPR_B,一个前置分频器作为IIS总线接口的主时钟发生器,另一个前置分频器作为外部音频编解码器CODEC的时钟发生器。

● TxFIFO和RxFIFO 表示两个64字节的FIFO。在发送数据时,数据写到TxFIFO,在接收数据时,数据从RxFIFO读取。

● SCLKG 表示主IISCLK发生器。在主设模式时,由主时钟产生串行位时钟。● CHNC 表示通道发生器和状态机。通道状态机用于产生和控制IISCLK和IISLRCK。

● SFTR 表示16位移位寄存器。在发送模式时,并行数据移入SFTR并转换成串行数据输出;在接收模式时,串行数据移入SFTR并转换成并行数据输出。具体的相关寄存器的位功能描述请参观相关资料。2.3.2 工作原理

常用的数字音频处理集成电路包括A/D、D/A、DSP、数字滤波器和数字音频I/O接口及设备(麦克风、话筒)等。麦克风输入的模拟音频信号经A/D转换、音频编码器实现模拟音频信号到数字音频信号转换,编码后的数字音频信号通过控制器送入DSP或微处理器相应的处理。音频输出时,数字音频信号(音频数据)经控制器给音频解码器,经D/A转换后由扬声器输出。

数字音频涉及概念很多,重要的是理解:采样和量化。采样就是每隔一定时间读一次声音信号的幅度,而量化则是将采样得到的声音信号幅度转换为数字值。从本质上讲,采样是时间上的数字化,而量化则是幅度上的数字化。

根据奈奎斯特(Nyquist)采样理论采样频率应高于输入信号的最高频率两倍。为了保证声音不失真,采样频率应该在40kHz左右。常用的音频采样频率有8kHz、11.025kHz、22.05kHz、16kHz、37.8kHz、44.1kHz、48kHz等,要达到DVD的音质需要采用更高的采样频率。

量化是对模拟音频信号的幅度数字化,量化位数决定模拟信号数字化以后的动态范围,常用的有8位、12位和16位。量化位越高,信号的动态范围越大,数字化后的音频信号就越接近原始信号,但所需要的存储空间也越大。

声道有单声道、双声道和多声道。双声道又称立体声,在硬件中有两条线路,音质和音色都优于单声道,但数字化后占据的存储空间的大小要比单声道多一倍。多声道能提供更好的听觉感受,不过占用的存储空间也更大。

数字音频数据有PCM、MP3、WMA、WAV、Ogg Vorbis、RA、AAC、ATRAC 3等多种不同的文件格式。

1)IIS总线

IIS总线(IIS,Inter-IC Sound Bus,数字音频集成电路通信总线)是Philip公司提出的音频总线协议,它是一种串行的数字音频总线协议,是音频数据编码或解码常用的串行音频数字接口。

(1)IIS总线的传输模式

数据的发送方和接收方需要采用相同的时钟信号来控制数据传输,数据传输方(主设)必须产生字段选择信号、时钟信号和需要传输的数据信号。在一个复杂的数字音频系统中,可能会有多个发送方和接收方,通常采用系统主控制模式,主控制模块控制数字音频数据在不同集成电路(设备)间的传输,数据发送方就需要在主控制模块的协调下发送数据。IIS总线的三种传输模式如图2、3、4所示,这些模式的配置一般需通过软件来实现。

clock SCKTRANSMITTERword select WSdata SDRECEIVERTRANSMITTER=MASTER

图2.4发送器为主设时的传输模式

clock SCKTRANSMITTERword select WSdata SDRECEIVERRECEIVER=MASTER

图2.5 接收器为主设时的传输模式

CONTROLLERclock SCKTRANSMITTERword select WSdata SDRECEIVERCONTROLLER=MASTER

图2.6 控制器为主设时的传输模式(2)IIS总线时序 1串行数据(SD)○串行数据的传输由时钟信号同步控制,且串行数据线每次传输1字节的数据。当音频数据被数字化成二进制流后,传输时先将数据分成字节(如8位、16位等),每个字节的数据传输从左边的二进制位MSB(Most Significant Bit)开始。当接收方和发送方的数据字段宽度不一样时,发送方不考虑接收方的数据字段宽度。如果发送方发送的数据字段宽度小于系统字段宽度,就在低位补0;如果发送方的数据字段宽度大于接收方的宽度,则超过LSB(Least Significant Bit)的部分被截断。

2字段选择(WS)○音频系统一般包含有左右两个声道,字段选择(WS)用来选择左声道或者右声道,WS=0表示选择左声道;WS=0表示选择左声道。如果不在外部加以控制,WS会在MSB传输前的一个时钟周期发生变化,使数据接收方和发送方保持同步。此外,WS能让接收设备存储前1字节,并且准备接收后1字节。

3时钟信号(SCK)○在IIS总线中,任何一个能够产生时钟信号的电路都可以称为主设备,从设备从外部时钟输入得到时钟信号。IIS的规范中制定了一系列关于时钟信号频率和延时的限制。

图2.7 IIS总线时序

(3)IIS总线接口的工作方式

IIS总线接口是用来连接外部的标准编解码器(CODEC)的接口。S3C2410A提供一个IIS总线接口,能用来连接一个外部8/16位立体声音频CODEC,支持IIS 总线数据格式和MSB-justified数据格式。该接口对FIFO的访问提供DMA传输模式,而不是采用中断模式。它可以同时发送数据和接收数据,也可以只发送或只接收数据。在只发送和只接收模式,S3C2410A的IIS总线接口有以下三种工作方式。

1正常传输方式 ○在正常传输方式,对于发送和接收FIFO,IIS控制寄存器有一个FIFO就绪标志位。当FIFO准备发送数据时,如果发送FIFO不空,则FIFO就绪标志位为“1”;如果发送FIFO为空,该标志为“0”。在接收数据时,当接收FIFO是不满时,FIFO就绪标志位为“1”,指示可以接收数据;若接收FIFO满,则该标志为“0”。通过FIFO就绪标志位,可以确定CPU读/写FIFO的时间。

2DMA传输方式 ○在DMA传输方式,利用DMA控制器来控制发送和接收FIFO的数据存取,由FIFO就绪标志来自动请求DMA的服务。

3发送和接收方式 ○在发送和接收方式,IIS总线接口可以同时发送和接收数据。(4)S3C2410A IIS总线接口的音频串行接口格式

S3C2410A的IIS总线接口支持IIS总线数据格式和MSB-justified数据格式。IIS总线格式 ○IIS总线有IISDI(串行数据输入)、IISDO(串行数据输出)、IISLRCK(左/右通道选择)和IISCLK(串行位时钟)4条线,产生IISLRCK和IISCLK信号的为主设备。串行数据以2的补码发送,首先发送是MSB位。首先发送MSB位可以使发送方和接收方具有不同的字长度,发送方不必知道接收方能处理的位数,同样接收方也不必知道发送方正发来多少位的数据。

当系统字长度大于发送器的字长度时,数据发送时,字被切断(最低数据位设置为0)发送。接收器接收数据时,如果接收到的数据字长比接收器的字长更长时,则多的数据位被忽略。另一方面,如果接收器收到的数据位数比它的字长短时,则缺少的位设置为0。因此,MSB有固定的位置,而LSB的位置与字长度 有关。在IISLRCK发生改变的一个时钟周期,发送器发送下一个字的MSB位。

发送器发送的串行数据可以在时钟信号的上升沿或下降沿同步。然而,串行数据必须在串行时钟信号的上升沿锁存到接收器,所以发送数据使用上升沿进行同步时会一些限制。

左右通道选择线指示当前正发送的通道。IISLRCK可以在串行时钟的上升沿或者下降沿改变,不需要同步。在从模式,这个信号在串行时钟的上升沿被锁存。IISLRCK在MSB位发送的前一个时钟周期内发生改变,这样可以使从发送器同步发送串行数据。另外,允许接收器存储前一个字,并清除输入以接收下一个字。

2MSB-justified数据格式 ○MSB-justified总线格式在体系结构上与IIS总线格式相同。与IIS总线格式唯一不同的是,只要IISLRCK有变化,MSB-justified格式要求发送器总是发送下一个字的最高位。

2)音频编解码芯片UDAl341TS UDA1431TS可把通过麦克风音频输入通道输入的立体声模拟信号转化为IIS格式的数字信号,传送给S3C2410的IIS控制器,然后CPU使用DMA控制器把得到的数字信号存放的一块内存空间上;同样DMA控制器也能把已存的数字信号通过IIS格式发送给UDAl341TS芯片,由该芯片转换成模拟信号,通过耳机音频输出通道输出。利用UDA1341TS内部的PGA(可编程增益放大器)、AGC(自动增益控制)功能对模拟信号进行处理。对于数字信号,UDA1341TS提供DSP(数字音频处理)功能。

S3C2410A的IIS接口线分别与UDA1431TS的BCK、WS、DATAI、SYSCLK相连。当UDA1431TS芯片工作在微控制器输入模式时,使用UDA1431TS的L3总线(L3DATA、L3MODE和L3CLOCK)。L3DATA、L3MODE和L3CLOCK分别表示与微处理器接口的数据线(L3DATA)、模式控制线(L3MODE)和时钟线(L3CLOCK)。微控制器通过对UDA1431TS中的数字音频处理参数进行配置。S3C2410A没有与L3总线配套的专用接口,可以利用通用I/O口进行控制。第三章 Bootloader移植与下载

3.1 Vivi源代码安装

进入cygwin,Vivi源代码的安装:

$> source /tmp/edukit-2410/set_env_linux.sh// Linux编译环境变量设置,第一次打开Cygwin必须设置。

$> cd $WORKDIR $> tar-xvjf /tmp/edukit-2410/source/vivi/vivi-20030929.tar.bz2 $> ls

„ vivi „ „为$WORKDIR目录下其他内容

正确解压后,可以看到多了一个vivi目录,即vivi源代码的安装目录,后面的vivi配置及编译都得进入vivi目录进行。再为EduKit2410实验系统打入vivi源代码的补丁文件:

$> cd vivi $> patch-p1

vivi的代码包括arch,init,lib,drivers和include等几个目录,共200多条文件。

Vivi主要包括下面几个目录:

arch:此目录包括了所有vivi支持的目标板的子目录,例如s3c2410目录。drivers:其中包括了引导内核需要的设备的驱动程序(MTD和串口)。MTD目录下分map、nand和nor三个目录。

init:这个目录只有main.c和version.c两个文件。和普通的C程序一样,vivi将从main函数开始执行。lib:一些平台公共的接口代码,比如time.c里的udelay()和mdelay()。include:头文件的公共目录,其中的s3c2410.h定义了这块处理器的一些寄存器。Platform/smdk2410.h定义了与开发板相关的资源配置参数,我们往往只需要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。

3.3 Vivi编译与下载

1)Vivi源代码的编译

然后执行以下命令进行编译:

$> source /tmp/edukit-2410/set_env_linux.sh Linux编译环境变量设置

$> cd $WORKDIR/vivi $> make clean

图3.1 vivi编译

$> make menuconfig输入配置smdk2410-amd:Nor Flash boot

smdk2410:Nand boot

图3.2 图形界面下配置内核文件

其中,运行make menuconfig后,选择Load an Alternate Configuration file,配置文件名称如下:

smdk2410:编译 vivi 在 Nand Flash(K9S5608)中运行; smdk2410-amd:编译 vivi 在 Nor Flash(AM29LV160DB)中运行。这两个配置文件在usrlocalsrcedukit-2410viviarchdef-configs中,须复制

到usrlocalsrcedukit-2410vivi中;或者可以在 menuconfig 中输入全部路径。配置好后,输入:$> make

图3.3 vivi映像文件生成

如果编过程中没有出现错误,则编译后的执行文件存放于 vivi 目录下。2)下载:

在下载模式下,vivi为用户提供一个命令行人机接口,通过人机接口可使用vivi提供的一些命令。如嵌入式系统没有键盘和显示,可以利用vivi中的串口,将其和宿主机连接起来,利用宿主机中的串口软件(如Windows中的超级终端或Linux中的minicom)来控制。第四章 Linux内核移植与下载

4.1 Linux内核源代码安装

linux源代码安装

运行cygwin,执行以下命令完成cygwin 环境下的Linux源代码的安装: $> source /tmp/edukit-2410/set_env_linux.sh Linux编译环境变量设置

$> cd $WORKDIR $> tar –xvjf /tmp/edukit-2410/linux-2.4.18-rmk7-pxa1-mz5-i2c.tar.bz2 $> ls „ kernel „ „为$WORKDIR 目录下其他内容

图4.1 linux内核安装

正确解压后,相比之前可以看到多了一个kernel目录,即kernel源代码的安装目录,后面的Linux配置及编译都得在kernel目录进行。

实验中提供的linux内核已经包含了Linux源代码的补丁文件、I2C和网络驱动模块

4.2 Linux内核源代码分析与移植

4.2.1 Linux源代码分析

Linux内核由5个主要的子系统组成。这5个子系统分别是进程调度(SCHED)、内存管理(MM)、虚拟文件系统(Virtual File System,VFS)、网络接口(NET)和进程间通信(IPC)。

进程调度控制着进程对CPU的访问。当需要选择下一个进程运行时,由调度 程序选择最值得运行的进程。可运行进程实际是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。

内存管理允许多个进程安全地共享主内存区域。Linux的内存管理支持虚拟内存,即在计算机中运行的程序,其代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只将当前使用的程序块保留在内存中,其余的程序块则保留在磁盘上。必要时,操作系统负责在磁盘和内存之间交换程序块。内存管理从逻辑上可以分为硬件无关的部分和硬件相关的部分。硬件无关的部分提供了进程的映射和虚拟内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。

虚拟文件系统隐藏了各种不同硬件的具体细节,为所有设备提供了统一的接口,虚拟文件系统还支持多达数十种不同的文件系统,这也是Linux较有特色的部分。虚拟文件系统可分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2、fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

网络接口提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序两部分。网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备进行通信,每一种可能的硬件设备都有相应的设备驱动程序

4.2.2 Linux内核及硬件模块驱动移植

内核和文件系统、图形用户系统(GUI窗口系统)可以分开,它们的开发、移植、下载甚至运行都是可以分开的。内核移植是一个比较复杂的任务,也是嵌入式系统开发中非常重要的一个过程。内核移植一般包括内核配置、内核编译和内核下载3大步骤。

4.3 Linux内核编译与下载

4.3.1 Linux内核源代码安装

运行cygwin,执行以下命令完成cygwin环境下的Linux内核源代码的安装: $> source /tmp/edukit-2410/set_env_linux.sh //Linux 编译环境变量设置 $> cd $WORKDIR $> tar –xvjf /tmp/edukit-2410/linux-2.4.18-rmk7-pxa1-mz5-i2c.tar.bz2 $> ls „ kernel „ //„为$WORKDIR 目录下其他内容

正确解压后,可以看到多了一个kernel目录,即kernel内核源代码的安装目录,后面的Linux内核配置及编译都得进入kernel目录进行。实验中提供的linux内核已经包含了Linux源代码的补丁文件、IIC和网络驱动模块。4.3.2 Linux内核的编译 $> cd kernel

图4.2 $> make mrproper 清除所有的旧的配置和旧的编译目标文件等 $> make xconfig 在图形界面下对内核进行配置(配置方法之一)执行make xconfig 后,弹出如图4.3的内核定制界面:

图4.3 内核定制界面

选择按钮”Load Configuration from File”,如图4.4输入smdk2410:

图4.4 内核配置文件

选择配置sound ,设置Sound support为y:

设置BT878 audio dma为y: 设置SMDK-2410 audio support为y:

设置OSS sound modules为y:

根据提示加载配置文件后,点击按钮”Store Configuration to File”,如图4.5输入audio1:

图4.5 存储配置文件

保存,Save and Exit。如图4.6

图4.6 $> make dep //搜索Linux编译输出与源代码之间的依赖关系并生成依赖文件。

图4.7

$> make clean //清除构造内核时生成的目标文件、模块文件和临时文件。$> make zImage //生成压缩的内核映像文件。

图4.8 编译通过后,在/usr/local/src/edukit-2410/kernel/arch/arm/boot/目录下生成内核的压缩映像文件为“zImage”,此文件是最后要烧写到开发板的内核映像文件。

4.3.1 Linux内核下载

内核下载:

1)启动超级终端(波特率为115200),连好串口线,在开机瞬间快速按空格键,进入vivi控制台命令行下;打开S3C2410&NandFlash_vivi.cfg,在Flash Programmer的Progarm页中选择:vivi.bon&load.bin文件进行烧写。如图4.9

图4.9 烧写界面

点击按钮Progarm开始烧写,直到烧写成功;连接串口到PC机COM1,运行成功;连接串口线到 PC 机 COM1,运行光盘中提供的 Windows 超级终端 Hyper Terminal.ht;开发板重新加电,程序运行后,在超级终端上可以看到串口输出类似以下信息:

图4.10 超级终端界面

看到以上信息后,表示正在等待用户从超级终端下载文件。这时,请点击超 级终端菜单“传送”选择 Xmodem 方式下载 vivi.nand 文件,点击 OK 后等待下载烧写结束即可。

图4.11 添加传送文件

图4.12 下载vivi nada 2)在vivi启动等待中,敲入空格键进入vivi界面环境,并输入以下命令: vivi> load flash kernel x <回车> 烧写更新内核约4分钟即可烧写完毕,如图4.13

图4.13 等待下载

3)立即选择要发送的文件,比如zImage文件,这里Linux环境下源代码arch/arm/boot目录下的zImage内核映像文件已转移到 windows某目录下。要选择合适的xmodem协议。以上操作完成 后,单击“发送,几分钟后即可发送完毕。

图4.14 发送zImage

图4.15 下载成功 第五章 课程设计功能模块程序设计与交叉编译

5.1 课程设计模块功能

5.1.1 三个模块:

I2S音频总线接口电路 ;音频编解码器芯片udal41; DMA控制器; 5.1.2工作过程:

麦克风输入的模拟音频信号在音频编解码器中经过A/D转换和编码将模拟信号转换成数字信号,将这些数字信号先传给I2S音频总线接口电路中的FIFO,再由DMA控制器送入DSP中做相应的处理,这是录音的过程;DMA控制器将DSP中存储的信号传送给I2S音频总线接口电路中的FIFO,再发送给音频编解码芯片进行D/A转换,通过耳机输出模拟信号。

5.2 功能模块驱动程序设计

5.2.1 关于驱动结构体

由于目前许多硬件厂商在出售各种产品时,一般都不带Linux下的设备驱动程序,而且编写驱动程序的工作量占整个系统工作量的很大的一部分,这使得Linux下设备驱动程序的开发变得越来越重要。

本课程设计不要求自己编写驱动程序,但要求分析UDAl341TS驱动程序,以便编写出语音采集与播放的应用测试程序,同时为以后编写驱动程序打好基础。嵌入式Linux系统下的IIS音频驱动程序是在/usr/local/src/edukit-2410/drivers/sound 中,3c2410-uda1341.c 文件即是。

关于结构体:

在音频驱动程序中有2个比较重要的结构体: typedef struct { int size;/* buffer size */ char *start;/* point to actual buffer */(内存虚拟地址起始地址)dma_addr_t dma_addr;/* physical buffer address */(内存物理地址起始地址)

struct semaphore sem;/* down before touching the buffer */ int master;/* owner for buffer allocation, contain size when true */(内存大小)

} audio_buf_t;typedef struct { audio_buf_t *buffers;/* pointer to audio buffer structures */ audio_buf_t *buf;/* current buffer used by read/write */ u_int buf_idx;/* index for the pointer above */ u_int fragsize;/* fragment i.e.buffer size */(音频缓冲区片大小)

u_int nbfrags;/* nbr of fragments */(音频缓冲区片数量)dmach_t dma_ch;/* DMA channel(channel2 for audio)*/ } audio_stream_t;audio_stream_t是一个管理多缓冲区的结构体,为音频流数据组成了一个环形缓冲区。audio_buf_t管理一段内存,audio_stream_t管理N个audio_buf_t。

音频驱动的两个file_operations结构定义如下: static struct file_operations smdk2410_audio_fops = { llseek: smdk2410_audio_llseek, write: smdk2410_audio_write, read: smdk2410_audio_read, poll: smdk2410_audio_poll, ioctl: smdk2410_audio_ioctl, open: smdk2410_audio_open, release: smdk2410_audio_release };static struct file_operations smdk2410_mixer_fops = { ioctl: smdk2410_mixer_ioctl, open: smdk2410_mixer_open, release: smdk2410_mixer_release };这里定义了两种类型设备的file_operations结构,前者是DSP设备,后者是混频器设备。Linux 内核内部通过file结构识别设备,通过file_operations数据结构体提供文件系统的入口点函数,也就是访问设备驱动程序里的函数。file_operations结构体原型是在 中定义的函数指针表。5.2.2关于函数:

read()、write()、open()和ioctl()是struct file_operations结构体中的接口函数。

1)read()函数:由已打开的文件读取数据,即播放。

(1)函数定义:ssize_t read(struct file *file, char *buffer, size_t count, loff_t * ppos);(2)函数说明:把参数file所指的文件传送count个字节到buffer指针所指的内存中;若参数count为0,则read()不会有作用并返回0;(3)返回值:返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件读写位置会随读取到的字节移动。如果正确会返回实际读到的字节数,最好能将返回值与参数count作比较,若返回的字节数比要求读取的字节数少,则有可能读到了文件尾、从管道(pipe)或终端机读取,或者是read()被信号中断了读取动作。当有错误发生时则返回-1,错误代码存入errno中,而文件读写位置则无法预期;2)write()函数:将数据写入已打开的文件内,即录音。

(1)函数定义:ssize_t write(struct file *file, const char *buffer, size_t count, loff_t * ppos);(2)函数说明:把参数buffer所指的内存写入count个字节到参数file所指的文件内。当然,文件读写位置也会随之移动;(3)返回值:若正确会返回实际写入的字节数;当有错误发生时则返回-1,错误代码存入errno中。

3)open()函数:打开音频设备。

(1)函数定义:int(*open)(struct inode *inode, struct file *file);(2)函数说明:参数inode为设备特殊文件的incode(索引结点)结构的指针,参数file是指向这一设备的文件结构的指针。open()的主要任务是确定硬件是否处在就绪状态,验证次设备号的合法性,控制使用设备的进程数;

(3)返回值:如果打开文件成功,open会返回一个文件描述符,以后对文件的所有操作就可以对这个文件描述符进行操作。比如程序中open()函数的返回值赋给了应用程序中的devfd,后面则可以对其进行操作;若打开失败返回负数。

4)ioctl()函数:用于设置编码比特、采样频率和选择声道。(1)函数定义:int ioctl(struct inode *inode, struct file *file,unsigned int cmd, unsigned long arg);(2)函数说明:设备驱动程序中对设备的I/O通道进行管理的特殊控制函数,可以通过它向设备传递控制信息或从设备取得状态信息,实现用户程序命令和驱动命令的相互联系;

(3)返回值:执行成功返回正数,失败返回-1。

5)s3c2410_uda1341_init()函数:动态加载驱动模块时的初始化函数。(1)函数定义:int __init s3c2410_uda1341_init(void);

(2)函数说明:该函数首先会初始化I/O和UDA1341 芯片,然后申请2个DMA 通道用于音频传输。将输出音频缓冲区的DMA通道设为通道2,输入音频缓冲区的DMA 通道设为通道1。最后调用register_sound_dsp()和register_sound_mixer()两个函数来分别注册驱动设备;

(3)返回值:初始化成功,返回0;DMA 通道初始化设置失败,返回负数。6)void __exit s3c2410_uda1341_exit()函数:动态卸载驱动模块时调用的函数。

(1)函数定义:void __exit s3c2410_uda1341_exit(void);

(2)函数说明:注销音频设备,分两次调用audio_clear_dma()函数来分 别释放已申请的音频输入和音频输出的DMA 通道;

(3)返回值:无。

5.3 功能模块交叉编译

用命令Makefile来编译:

图5.1 编译测试文件

将test文件拷贝到D:cygwinusrlocalsrcedukit-2410rootbin中 执行以下命令生成新的文件系统映象:

$>cd $WORKDIR/ $>$SOURCEDIR/mkcramfs root root.cramfs.new

图5.2 生成系统映像文件

生成文件系统映象文件root.cramfs.new。第六章 根文件系统建立与文件系统下载

6.1 根文件系统分析

6.1.1 cramfs 目录结构

一个完整的根文件系统通常包含以下几个目录: /bin 应用程序存放目录。

/sbin 系统管理员服务程序,其中最重要的就是供内核初始化之后执行的/sbin/init 进程。

/lib 存放程序运行所需要的动态库。/proc 系统状态文件目录。/dev 驱动程序存放目录。

/etc 系统配置文件及用户数据存放目录。

/mnt 用于设备安装的目录,通常包含etc 子目录和为块设备安装保留目录。/usr 用于存放用户程序和配置文件的目录,可以根据需要进行设置。一般情况下都要把已经规划好的目录结构转换成一个映象文件,即使用命令工具mkcramfs(cygwin下为mkcramfs.exe),把相应的cramfs 目录树压缩为单一的映象文件。其命令格式为:

mkcramfs [-h] [-e edition] [-i file] [-n name] dirname outfile 使用mkcramfs.exe 在cygwin 下编译生成文件系统映象文件root.cramfs,再固化到开发系统FLASH 上运行。6.1.2 构建cramfs 文件系统

按照本节实验原理中自行构建一个cramfs 文件系统。运行cygwin,执行以下命令解压安装:

$> source /tmp/edukit-2410/set_env_linux.sh //Linux 编译环境变量设置

$> cd $WORKDIR/

图6.1 构建文件系统

$> tar-xvjf /tmp/edukit-2410/root.cramfs.tar.bz2 $> ls „ root „ root 文件夹中就是我们想要的cramfs 文件系统

6.2 文件系统映像文件生成

6.2.1 编译一个应用测试程序test.c 按设计原理要求编写一个应用程序test.c,存放在/home/app/audio目录下,进入该目录后执行以下命令编译链接测试程序:

$> cd /home/app/audio $> make(也可以编写Makefile 来编译)

图6.2 编译test文件

6.2.2 拷贝测试程序到文件系统中,并编译生成文件系统映象

把刚才编译输出的test文件拷贝到文件系统所在的工作目录 root/usr/audio 目录下,执行以下命令生成新的文件系统映象:

$> cd $WORKDIR/ $> $SOURCEDIR/mkcramfs root root.cramfs.new

图6.3 生成映象

刚刚编译生成的文件系统映象root.cramfs.new 中已经包含测试程序。

6.3 文件系统下载

(1)首先SW104 设为短接(从Nand Flash 启动),确定已经成功烧写vivi 和linux kernel,加电运行可以看到vivi 启动信息,输入空格进入命令状态;

(2)双击运行Download.pjf 工程文件(将启动Embest IDE 环境),点击连接Remote connect,程序应该正在运行(此时命令按钮STOP 为红色);在超级终端输入help 看看有没有反应,如果没反应,点击IDE 按钮:Reset->Start(F5);再输入help 测试,直到有反应为止;

(3)如果超级终端可以输出一些信息,再点击IDE 中的Stop,配置Debug 的Download 地址为0x30000000,并点击IDE 菜单Project 选择Settings 项,在Download 页下拉Category 到Download 项,在Download File 选择root.cramfs.new 文件,路径为d:Cygwinusrlocalsrcedukit-2410点击确定后:

图6.4 选择加载的文件

首先点击IDE 菜单DEBUG 选择Download 下载文件系统映象 约1-2 分钟

图6.5 下载成功

其次下载完毕后,点击Start(F5)然后在超级终端里输入:load flash root j(烧写更新文件系统)

图6.6 烧写

注意:只能在“vivi的烧写”和linux内核操作完成后,才可以按以上方法正确烧写root映象到NandFlash。重起实验板,观测超级终端窗口提示信息,引导整个系统启动到linux行命令输入状态。在超级终端输入一些linux命令查看执行结果是否正确。

6.4 功能模块运行与调试

重新加电,在超级终端根据提示启动Linux,按提示输入cd bin、./test指令。

图6.7 输入指令

图6.8 在控制台下运行测试程序

程序执行完后。如图6.9。

图6.9 程序运行时超级终端的输出

第七章 课程设计总结与体会

7.1 得出的结论

通过按上述步骤执行相关应用程序,可以实现对语音的实时采集和播放。需改进的地方:通过录制一段语音信息,录制完成后再播放

7.2课程设计过程中遇到的问题及解决方法

1.在给vivi打补丁时,$> patch-p1

2.在图形界面下进行内核配置时按实验指导书配置导致少了sound这一步导致出错。

3.重新在图形界面下配置后,发现无法生成压缩映像文件。请教研究生后解决了。原来之前配置错误生成了boot文件夹,要把之前boot删掉后重新编译。4.在调试时输入cd bin,./test指令后超级终端无反应。查找后发现,原来在根文件系统编译时没把生成的test文件复制到文件系统所在的工作目录root/bin目录下。重新编译后把生成的test文件复制后在调试后可以进行录放测试。

7.3 心得体会

课程设计刚开始的时候,思绪全无,我真的感到 “书到用时方恨少”,所以又重新把书和实验指导看了几遍,对知识系统而全面进行了梳理,对许多不理解的地方通过上网搜索翻阅图书弄懂,终于熟练掌握了基本理论知识,而且领悟诸多平时学习没有注意到的细节步骤,学会了如何思考的思维方式,找到了设计的灵感。

虽然每天要顶着30多度的高温在宿舍跟实验室之间往返,流了不少汗水,感觉确实不舒服,可最后看到自己的成果后心里很充实很高兴。

在课程设计过程中遇到了这样那样的困难。有时候是电脑出问题了,有时候

是实验箱出毛病,有时候是自己在操作过程中操作错误无法继续,可在研究生学长和其他同学的帮忙下都一一解决。使我深深感觉到团队力量的强大。

最后再次感谢陈老师这学期兢兢业业地给我们传授知识,感谢三位研究生牺牲自己的时间在炎热的夏天帮助我们解决遇到的问题!

参考文献

[1]徐英慧,等.ARM9嵌入式系统设计——基于S3C2410与Linux[M].北京:北京航空航天大学出版社,2007.[2]于明,等.ARM9嵌入式系统设计与开发教程[M].北京:电子工业出版社,2006.[3]田泽.ARM9嵌入式开发实验与实践[M].北京:北京航空航天大学出版社,2006.[4]孙天泽,等.嵌入式设计及Linux驱动开发指南——基于ARM9处理器[M].2版.北京:电子工业出版社,2007.[5]周立功,等.ARM9&WinCE实验与实践——基于S3C2410[M].北京:北京航空航天大学出版社,2007.[6]Samsung Electronics.S3C2410A-200MHz

&

266MHz

32-Bit

嵌入式数据采集系统 篇6

关键词数据链;嵌入式;数据传输;压缩编码

中图分类号TP文献标识码A文章编号1673-9671-(2011)021-0107-01

“数据链”实际上就是链接数字化战场上的指挥中心、作战部队、武器平台的一种信息处理、交换和分发系统。数据链的主要作用是在恰当的时间、恰当的地点,为作战人员和武器平台提供适时所需的信息,进而形成体系对抗能力。

数据链具有以下两个基本特点。一是“无缝连接”。它从空域角度对数据链进行描述,强调数据链的触角伸向数字化战场各参战部队乃至数字化单兵和各种作战平台,使它们共享战场信息资源,为联合作战提供一条互连互通的纽带。二是“实时传输”。它是从时域角度对数据链的描述,强调数据链传递信息速度快、时效高。嵌入式技术的使用无疑成为其实时传输的技术基础。“传感器至射手”的攻击过程非常短促,目标的发现和攻击几乎同时完成,发现目标即意味着目标被毁。为了加快信息传递的速度,欲传递的数据集通常用特定的编码表示,在接收端自动还原为数据集,并能被执行者自主理解,无须人工解读。

嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪、适用于应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。

1数据链系统总体设计分析

系统的主体设计思想是将信息采集终端和嵌入式Web服务器整合在一起,数据信息采集终端(摄像头)通过USB 接口和嵌入式系统板的USB HOST相连,摄像头采集来的视频信号经过压缩后,通过内部总线传送到内置的Web服务器,指挥控制中心采用浏览器/服务器结构(即B/S结构),可以通过IE浏览器访问视频Web服务器,以便查看从战场实时传输的视频画面,而且,控制中心还可以控制平台对镜头的动作或对系统进行配置控制。嵌入式战场数据信息传输系统是由信息采集终端、网络信息传输和指挥控制中心组成,终端使用嵌入式系统加上USB 摄像头,在Vxworks操作系统上运行USB摄像头的驱动和相应的视频采集处理传输程序,得到实时音视频信息、画面等,并将信息通过网络传输至指挥控制中心,指挥中心运行监控软件端,通过Internet浏览器来浏览终端送来的实时战场画面,系统组成框图如图1所示。

图1嵌入式战场信息数据传输系统组成框图

从图中可以看出,指挥控制中心部分获得最终战场实时信息,可以直接采用IE 浏览器,不需要在PC 机上运行其他的软件,主要设计工作是嵌入式采集终端的设计以及战场信息的压缩编码部分。由于嵌入式系统具有软硬件可裁剪的特性,因此在嵌入式系统中硬件系统的确定,直接决定着软件的编写。

战场数据信息采集终端主要有两个部分组成,硬件部分包括摄像头和开发平台的选择;软件部分包括系统级软件(BootLoader,嵌入式操作系统,USB驱动程序)与用户级软件(应用程序)。

2网络传输压缩编码标准分析

战场信息的压缩编码部分,通过采用的新一代视频压缩编码算法对战场信息进行压缩传输。H.264/AVC 标准是ITU-T 的VCEG(视频编码专家组)和ISO/IEC 的MPEG(活动图像专家组)的联合视频组(JVT,JointVideoTeam)开发的标准,也称为MPEG-4Part10“ 高级视频编码”。它既保留了以往压缩技术的优点又增加了许多新特性:更低的码流和更高的图像质量,更强的容错能力,简洁的设计方式和更好的网络适应性。在相同的重建图像质量下和同等的画质下,H.264 比编码标准H.263平均节约64%的传输码流,比MPEG-4ASP 也要平均节约39%的传输码流。H.264 技术还具备容错能力强、网络适应性强等优势,可以更好的适应战场环境接入网带宽非常有限的状况。与以往标准相比,H.264 标准使运动图像压缩技术上升到了一个更高的阶段,在较低的带宽上可以提供高质量的图像传输。

H.264着重于解决压缩的高效率和传输的高可靠性,它极大地提高了战场信息传输的实时性,从而为指挥控制系统作出高效决策奠定了基础。

3嵌入式实时操作系统的选择

构建一个完整的嵌入式数据传输系统,仅有硬件是不够的,为使其具有任务管理、存储器管理、资源管理、时间管理、消息管理、队列管理和中断处理的能力,提供多任务处理,更好地分配系统资源的功能,很有必要针对特定的硬件平台和实际应用移植操作系统。

VxWorks具有可裁剪微内核结构;高效的任务管理;灵活的任务间通讯;微秒级的中断处理;支持多种物理介质及标准的、完整的TCP/IP网络协议等。然而其价格昂贵,一般不提供源代码,只提供二进制代码。

VxWorks具有良好的持续发展能力、高性能的内核以及友好的用户开发环境;具有良好的可靠性和卓越的实时性。

VxWorks广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等,在1997年4月登陆火星表面的火星探测器上也使用到了VxWorks。

鉴于Vxworks操作系统的的硬实时性和优先级资源多达256个,它成为应用于军事领域里嵌入式操作系统的很好选择,很多微处理器上就应用了Vxworks操作系统。因此,可以考虑将Vxworks操作系统移植到S3C2440上。此外该数据传输系统还应考虑到到下载信息文件的同时不影响音视频文件的播放,这就要用到多线程的技术。

4结语

嵌入式系统经过近几十年的发展,在军事领域的应用也变得越来越广泛。本文就基于嵌入式技术的数据链作战网络传输进行分析研究,并提出了相关的技术方案。信息技术的飞速发展和高技术战争的需求,极大地刺激了各国军方对开发战术数据链的积极性,投资力度不断加大,战术数据链开始向电子战、任务管理、武器协调、空中管制、导航定位和敌我识别等诸多领域扩展。完成从"平台中心战"向"网络中心战"的转变是未来军用数据链的发展趋势。作为体系作战条件下的数据链信息终端设备,嵌入式技术无疑成为其技术支撑。

参考文献

[1]周立功.ARM嵌入式系统基础教程.北京,北京航空航天大学出版社,2005,2.

[2]韦东山.嵌入式Linux应用开发完全手册.北京,人民邮电出版社,2008.

嵌入式数据采集系统 篇7

应急通信网络是应付紧急情况临时搭建的通信系统, 该网络是一个易受攻击的系统, 可能受到恶劣的外界环境、强干扰等多种因素的影响, 这些都使网络中的软硬件资源故障发生率居高不下。因此需要引入监控系统对其软硬件资源进行实时监控管理, 数据采集作为监控系统的基本功能, 采集的方式将直接影响到通信网络的整体性能。考虑应急通信网络具有小型化、节能、可移动性、简单易操作等特点, 数据采集系统应采用当前流行的嵌入式系统结构。嵌入式系统本身集成CPU、内存、FLASH、网口、串口、PCI接口等硬件资源, 数据的采集和处理工作主要通过嵌入式系统的资源完成, 从而减少了应急通信网络资源的消耗。

1 数据采集系统的硬件设计

系统的硬件结构框图如图1所示, 在硬件配置上以Intel公司的IXP425网络处理器为核心, 其内部的SDRAM控制器与四片HY57V561620CTP-H芯片相连, 构成128M动态存储空间;扩展总线上连接了两片JS28F128J3D75芯片组成32M的FLASH存储空间, 用来存放启动代码、操作系统、文件系统和数据采集程序;处理器的媒体独立接口与一片LXT972C芯片相连, 向外提供10/100M自适应网络接口。扩展板上包含RJ45以太网接口、PCI接口、调试串口、通讯串口等, 以太网接口与核心板LXT972C芯片相连, 负责主机数据和网络信息数据的传输;PCI接口与IXP425内部的PCI总线相连, 负责主机数据的传输和主机信息的采集;调试串口和通讯串口分别与IXP425内部的两个高速串行接口相连, 调试串口主要用于接收和发送调试信息, 通讯串口主要用来采集不支持PCI接口和网络通讯的设备信息。

2 数据采集系统的软件设计

本系统采用主动采集和被动采集相结合的采集方式, 主动采集主要应用简单网络管理协议 (SNMP) , 而被动采集主要采用网络探针和收集SNMP Trap报文的方法, 具体的数据采集结构如图2所示。

SNMP协议是应用层的通信协议, 主要采用Client/Server架构, SNMP协议定义了数据包的格式, 并且对外提供了用于控制管理信息库 (MIB) 对象的基本操作命令。基于SNMP协议的数据采集, 在实现上主要完成两部分的设计:管理者和管理代理。管理者运行在嵌入式板卡端, 负责构造SNMP请求报文, 与驻留在网络结点中的代理 (agent) 交换信息, 同时异步接收代理发送的Trap消息。而代理运行在被监控的网络结点中, 负责维护结点的状态信息, 接受管理者的查询, 而且当结点发生特定的事件的时候, 代理根据预先设定好的告警机制向管理者发送状态改变Trap消息, 目前网络主机和网络设备都提供了SNMP协议支持, 而且可以根据监控系统的需要对代理程序进行扩展。

网络探针是一种新兴的数据采集技术, 它是对计算机接入网络进行控制的一种程序。主机与板卡之间底层硬件通信结构如图3所示, 主机与板卡之间是利用PCI总线传输数据的, 两端的驱动程序采用网络驱动模型。发送数据流程为:主机应用程序调用板卡驱动程序将数据封装成数据链路层数据帧的格式, 之后调用PCI驱动程序将数据发送给板卡, 板卡驱动程序接收到数据包之后判断数据帧的目的地址, 如果是板卡与主机的内部通信地址, 则传送到板卡上层应用程序进行处理, 如果是外网地址, 则将数据帧的源地址改为板卡的有效地址将数据帧发送至外网。探针主要用来侦听传入的数据包, 在板卡接收数据包的同时将数据包暂时缓存在板卡内存中, 再按照网络协议的层次结构对数据包逐层进行分析, 获得当前网络运行的状态。

3 实际应用

针对应急通信网络复杂的应用环境, 实际应用中将板卡部署到应急通信网络的关键节点上, 由监控中心向板卡下达采集任务, 指定每个板卡需要监控的节点和具体的监控内容, 实际应用如图4所示。系统在设计时充分考虑到功能的扩展, 预留了多个扩展接口, 可以增加无线通信模块, 适应无线通信数据采集的需求, 对于不支持PCI接口和网络接口的设备可以通过串口进行数据采集。

结束语

本文根据应急通信网络实际应用环境的特点, 设计了基于嵌入式技术的数据采集系统。在硬件设计上, 以IXP425网络处理器为核心, 集成PCI接口、网络接口、串口等多种通信接口用于数据采集。在软件设计上, 采用SNMP协议和网络探针两种采集方式进行数据采集。系统开发完成后, 在实际应用环境中进行了实验, 数据采集效果良好, 达到了预期的应用需求。

摘要:针对应急通信网络的特点, 设计了以IXP425网络处理器为核心的数据采集卡, 该板卡集成PCI接口并具备网卡功能, 可以插入到主机中用于网络通信。系统采用SNMP协议和网络探针两种方式采集网络的状态信息, 在实际应用中系统性能稳定, 采集的数据可靠性较高。

关键词:嵌入式系统,数据采集,简单网络管理协议,网络探针

参考文献

[1]王田苗.嵌入式系统设计与实例开发[M].北京:北京航天航空大学出版社, 2003.

[2]黄小珊, 郝玉洁, 刘乃琦.IXP425的体系结构和并行处理技术研究[J].微计算机信息, 2008, 24 (17) .

[3]韩璐, 张洁, 包铁等.基于SNMP的信息采集系统[J].吉林大学学报 (理学版) , 2009, 47 (6) :1225-1229.

嵌入式数据采集系统 篇8

1 嵌入式系统技术

1.1 嵌入式系统定义

广义的说, 一个嵌入式系统就是一个具有特定功能和用途的计算机软硬件集合体。如果要给嵌入式系统一个定义, 就是以应用为中心、以计算机技术为基础, 软硬件可裁减, 适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。而从狭义上讲, 嵌入式系统则仅仅指装入另一个设备并且控制该设备的专用计算机系统。

嵌入式系统的最大特点是其目的性和专用性, 即每一套嵌入式系统的开发都有其特殊的应用场合与特定功能, 这也是嵌入式系统与通用计算机系统的最主要区别。另外, 嵌入式技术与实时性有着天然的联系。由于嵌入式系统是为特定目的而设计的, 且常常受时间、成本、存储、带宽等的限制, 因此它必须最大限度的在硬件和软件上“量身定做”以提高资源的利用率, 这样的结果也导致了实时性的增强。

1.2 嵌入式系统组成

嵌入式系统包含硬件和软件两部分硬件构架。硬件部分以嵌入式处理器为中心, 配置存储器、I/O设备、通信模块等必要的外部设备。软件部分以软件开发平台为核心, 向上提供应用编程接口 (API) , 向下屏蔽具体硬件特性的板级支持包 (BSP) 。嵌入式系统中, 软件和硬件紧密配合, 协调工作, 共同完成系统预定的功能。嵌入式系统的功能软件集成于硬件系统之中, 系统应用软件与硬件一体化。在嵌入式系统的硬件设备中, 嵌入式处理器是整个系统的核心部件, 其性能的好坏直接决定整个系统的运行效果。而RTOS (Real Time Operating System) , 是嵌入式系统的软件开发平台, R T O S的引入, 解决了嵌入式软件开发标准化的难题。

2 GPRS通信技术

GPRS (General Packet Radio Service) 是通用分组无线业务的简称, 是在现有的GSM系统上发展出来的一种新的分组数据承载业务。GPRS在现有的GSM网络基础上增加一些硬件设备和软件升级, 形成一个新的网络逻辑实体。它以分组交换技术为基础, 采用IP数据网络协议, 提高了现有的GSM网的数据业务传输速率, 最高可达1 7 0 kb p s。GPRS把分组交换技术引入现有GSM系统, 使得移动通信和数据网络合二为一, 具有“极速传送”、“永远在线”、“价格实惠”等特点。GPRS与现有的GSM系统最根本的区别是, GSM是一种电路交换系统, 而GPRS是一种分组交换系统。因此, GPRS特别适用于间断的、突发性的或频繁的、少量的数据传输, 也适用于偶尔的大数据量传输, 这一特点正适合环境监测领域频发、少量、实时性高的数据传输的应用。

3 嵌入式GPRS环境监测数据采集系统

嵌入式GPRS环境监测数据采集系统, 是以STM32处理器为核心, 通过AD驱动采集模块、通用串行口来采集现场监测仪器输出的数据 (包括模拟量和数字量) ;通过驱动GPRS通信模块, 经过GPRS无线网络连接到Internet网络实现无线上网, 与环保部门监控中心的上位机建立数据传输链路, 将采集到的数据实时上传到监控中心, 从而实现了各监测点无人职守的远程监控。该系统具有以下技术先进性:

3.1 采用STM32作为嵌入式环保数采仪的硬件核心

STM32具有性能强劲、功耗低、实时性能好、代码密度高等特点。它的高速度和内嵌的大容量存储器, 使得在进行正常的数据采集和无线数据传输之外, 还允许程序上运行更多的任务, 进行更复杂的算法运算。它的高度集成性和丰富的外部接口, 使得设计出来的数采仪在硬件上, 电路更加简洁、成本更低、功能更强大。STM32的CPU内核采用ARM的CORTEX-M3, 支持Thumb-2和Thumb指令, 代码密度更高, 编写的代码便于优化, 效率更高, 运行速度更快。

3.2 软件上支持分时复用的技术, 可以实现单个DTU向多个IP服务中心上传数据

一般的数采仪, 若要实现一机向多个IP服务中心上传数据的功能, 硬件上需要多个DTU支持, 一个DTU设定一个IP地址。本项目通过定时器分时复用的方法, 每隔30分钟切换一次DTU设定的IP地址, 将采集到的数据轮转着发送到各个IP, 以便用最小的硬件成本, 实现一机向多个IP发送的目的。

3.3 数采仪本身具有简单的数据分析和预测的功能

数采仪在记录数据的同时, 也通过回归分析的方法对记录的数据进行简单的数据分析, 比如作为衡量水质的重要指标COD (化学需氧量) , 它本身就是跟有机物的含量有着重要关系的, 如果一个污染企业, 排放的废水中主要含有苯甲酸、苯酚、氯苯等物质, 在测得的这些物质含量的同时, 就可以通过回归分析的方法, 得到各物质对COD的影响因子, 从而指导企业控制权重最大的排放量。此外, 还通过标准卡尔曼预测算法 (Kalmanprediction) , 能够根据当前和以往采集到的数据, 对下一个数据进行预测, 如果预测值超标, 则提前预警, 以便污染源企业能尽早采取应对措施。

该系统基于GSM/GPRS的嵌入式设计, 是一个专门用于环保数据采集、传输设备。可通过模拟信号接口、数字信号接口与流量计、COD、PH仪、氨氮、烟气测量仪等多种仪表连接, 使得对仪表监控和记录更加方便、快捷;同时它还具有数据传输的功能, 能够利用GPRS网络, 将采集到的数据实时的传送到数据监控中心。必要时, 还能利用标准规定的反控机制, 将污染过度的设备强制关停, 为环境监控提供了方便快捷的手段。

参考文献

[1]钱易, 唐孝炎.环境保护与可持续发展[M].北京:高教出版社, 2000.7.

[2]马文华.嵌入式系统设计与开发[M].北京:科学出版社, 2006.3.

嵌入式数据采集系统 篇9

传统的分布式数据采集系统的串口布线施工距离长, 传统的存储方案RAM的容量又有限。因此在嵌入式系统中实现USB主机功能, 以实现利用USB存储设备进行数据存储, 具有良好的实用价值和应用前景。在数据采集系统中, 开发出嵌入式USB主机控制U盘作为数据存储器, 实现了长时间、大容量数据采集, 方便了与PC等上位机的数据交换, 降低了数据采集的成本。

1 数据采集存储系统的硬件设计

中央控制芯片为STC89C516RD, USB主控芯片选用南京沁恒公司[1]的CH375S, 另外, 根据软件编程的需要外扩一片32K的RAM存储器。主机控制器硬件结构如图1所示。

1.1 CH375S模块

CH375S南京沁恒电子公司生产的一种USB总线[3]的通用接口芯片, 支持USB-Host主机方式和USB-DEVICE/SLAVE设备方式。在本地端, CH375S具有8位数据总线和读、写、片选控制线以及中断输出, 可以方便地挂接到单片机/DSP/MCU/MPU等控制器的系统总线上。在USB主机方式下, CH375S还提供了串行通信方式, 通过串行输入、串行输出和中断输出与单片机/DSP/MCU/MPU等相连接[4]。CH375S的USB主机方式支持常用的USB全速设备, 外部单片机可以通过CH375S按照相应的USB协议与USB设备通信。CH375S还内置了处理Mass-Storage海量存储设备的专用通信协议的固件, 外部单片机可以直接以扇区为基本单位读写常用的USB存储设备 (包括USB硬盘/USB闪存盘/U盘) 。在设计中, CH375S硬件连接如图2所示。

CH375S的片选地址范围8000~8FFF, 被选中时, 最低地址位 (即A0) 为0时为写命令状态;最低地址位 (即A0) 为1时为写数据状态 (程序中, 把8000设为CH375S的命令地址, 8001设为CH375S的数据地址) 。

1.2 中央处理模块

采用增强型8051内核的单片机STC89C516RD作为中央处理芯片, 晶振为11.0592MHz。

由于Flash的特性要求, 在对U盘进行读写操作时[5,6], 每完成一次数据传输后, 需要记下本次要写的开始扇区和总扇区数, 将本次要写的数据所涉及的扇区以外的数据从Flash中读出来, 存放在缓冲区中对应位置, 然后擦除一个Block, 再将缓冲区中内容一次全部重新写入Flash。在设计中, 单片机内部的数据存储器不够, 所以外部扩展扩了一个32K的数据存储器。STC89C516RD是整个USB主机的中央控制芯片, 主要负责与CH375S芯片的通信, 在设计中, CH375S可以看作STC89C516RD外扩的一个芯片, 采用存储器统一编址的方式, 其A15用于片选功能。STC89C516RD的外部中断引脚INT0与CH375S的中断引脚INTRQ相连, 负责响应CH375S的中断申请。

中央处理模块设计原理如图3所示, 74LS138的输出Y0 (地址范围8000~8FFF) 作为CH375S的片选端, 74LS138的输出Y2 (地址范围A000~AFFF) 作为液晶模块的片选端, 74LS138的输出Y4 (地址范围C000~CFFF) 作为键盘的片选端。

1.3 串口通信模块

设计串口通信模块, 是为了方便系统的调试工作, 利用与计算机串口通信来充当整个系统调试的窗口。串口通信模块硬件连接如图4所示。

在该模块中, 电平转换芯片采用MAX202, 该模块的串口通过3线电缆与计算机的9阵串口连接, 通信协议为RS-232。

2 数据采集存储系统的软件设计

读写U盘采用扇区读写模式 (减少Flash的擦除次数, 延长U盘寿命) , 为了便于验证编写的USB-Host软件的正确性, 外部RAM的文件缓冲区长度设为1024个字节, U盘的数据来源采用单片机的定时器T0的计数值。编程完成USB-Host功能的同时验证其正确性, USB-Host软件实现的整体流程如图5所示。

在图5中, 每步对USB-Host的操作都有操作正确与否的判断, 调试时比较方便。验证写进U盘、读出U盘的数据正确与否, 可以将读U盘中的数据通过串口发回, 在PC机上观察与所设定定时器的计数值是否相符, 或者直接在PC上读U盘中数据看是否与所设定定时器的计数值相符。

3 大容量数据采集的实现[7]

3.1 大容量数据采集系统的设计

在嵌入式USB-Host的基础上加上温度传感器DALLAS18B20、扩展键盘和液晶, 完成基于USB的大容量数据采集系统, 实现采集外部温度数据存储到U盘, 同时可以在液晶上实时显示温度信息。初始化USB-Host之前可以通过键盘输入采样的时间间隔、采样的时间长度和系统所能承受的高低温度容限, USB-Host的初始化完成后输入当前时间作为系统开始采集的时间, 通过定时器T0完成指定时间间隔的温度数据的采集和系统时间的计算。存储到U盘的数据是以FAT文件格式存储的, 数据在液晶上是按曲线方式显示的 (横轴时间t, 纵轴温度T, 每屏可显示240个时刻的温度值, 超过240个时间点的数据则换下一屏显示) 。

3.2 用文件系统管理采集到的数据

U盘使用Flash作为存储介质, Flash硬盘与普通的磁头、柱面式介质不一样。Flash的读写有其自身特点:必须以Page为单位进行读写;写之前必须先擦除原有内容;擦除操作必须对Block进行, 一次至少擦除一个Block的内容。

FAT分配空间时, 是按照簇来分配的, 但是其给出的地址却是LBA (Logical Block Address) , 即它只给出一个扇区号。针对这种情况, 将Flash[8]的一个Page定为1个扇区, 将其2个Block 64个扇区定为一个簇, 这样, 簇的容量刚好为512×64=32K, 满足FAT 16对一簇大小的要求。根据Logical Block Address转换为物理地址的公式, 再使用Flash的读写命令读取对应的Block和Page, 就可以对数据进行存取操作。

4 结语

根据数据采集系统中有大量数据需要存储又要方便与计算机交互这一实际需要, 提出在数据采集系统中嵌入USB-Host, 实现用U盘或移动硬盘作为数据存储介质的方案, 完成了基于USB的大容量数据采集系统的设计。设计实现的功能为:

(1) 嵌入式USB-Host的U盘文件系统支持常用的FAT12、FAT16和FAT32文件系统, 磁盘容量可达100GB以上, 支持多级子目录, 支持8.3格式的大写字母和中文文件名, 可以支持小写字母或者长文件名, 支持文件打开、关闭、新建、删除、读写[9,10]以及搜索等。

(2) 数据采集的U盘存储与液晶显示系统可以自己设定采集间隔, 采样的时间长度, 系统所允许的高、低温容限, 实时显示的同时也可以随时查看过去某个时刻的温度。系统启动之后需要用户进行什么操作都会在液晶上给出提示信息, 方便与用户交流。

摘要:根据数据采集系统中有大量数据需要存储又要方便与计算机交互这一实际需要, 提出在数据采集系统中嵌入USB-Host, 实现用U盘或移动硬盘作为数据存储介质的设计方案。

关键词:USB-Host,数据存储系统,CH375S,嵌入式技术,U盘

参考文献

[1]南京沁恒电子有限公司.USB总线接口芯片CH375中文手册[Z]

[2]马伟.计算机USB系统原理及其主/从设计[M].北京:北京航空航天大学出版社, 2004

[3]徐爱均, 彭秀华.Keil Cx51 V7.0单片机高级语言编程与μVision2应用实践[M].北京:电子工业出版社, 2004

[4]曹国飞, 李全利.嵌入式USB主机文件系统的构建[J].计算机应用, 2005, 24 (9) :27-28

[5]薛园园, 赵建领.USB应用开发实力详解[M].北京:人民邮电出版, 2009

[6]胡晓军, 张爱成.USB接口开发技术[M].西安:西安电子科技大学出版社, 2005

[7]Axelson J.USB mass storage[M].Madison:Lakeview ResearchLLC (Independent Publisher Group) , 2006

[8]CygnalIntegratedProducts.C8051F020/1/2/3—Mixed-signalISP FLASH MCU Family[EB/OL]. (2008-10-21) [2011-05-16].http://download.csdn.net/source/705680

[9]李国峰, 董海坤, 张勇, 等.基于ISP1362的U盘MP3播放器设计[J].电子设计应用, 2007, (2) :98-101

嵌入式数据采集系统 篇10

智慧消防的“智慧化”是以海量数据为基础支撑的多种数据分析、处理与决策的过程。因此,各类消防设施系统数据的采集与传输,多种消防设备设施系统协议数据的融合尤为重要。笔者介绍一种基于嵌入式Linux的消防设施系统数据采集与传输装置,实现不同消防设施系统协议数据的采集、转换和传输,解决各类火灾自动报警系统因各自通信协议不统一规范而带来的入网、联网障碍,为多系统融合应用、数据,传输通信提供一种经济可行的方案。

1 总体架构

消防物联网作为“智慧消防”系统平台的重要组成部分,是系统决策与分析重要的数据来源之一。消防物联网平台是伴随传感器技术、计算机、网络通信等技术而发展起来的综合性消防技术网络平台。它以传感器网络、计算机控制和多媒体、图像处理、网络通信、火灾探测报警等技术为依托,结合公网和专网完成对监控场所的各类火灾信息(包含各类报警信号、故障信号、图像信息等现场信号)的采集、处理和传输。火灾自动报警系统是火灾预警监测的前沿,是消防物联网的重要组成部分。各联网单位火灾自动报警系统联网接入消防物联网管理平台,不仅可以实现对各类消防系统设施的实时监控和集中管理,节省人力物力,还能实现对各类数据进行实时采集与存储,为智能决策分析提供数据支撑。

数据采集与传输装置是系统融合和处理各类火灾数据信息的关键设备。它不仅能接收不同火灾自动报警系统发送来的各类火警、设备运行等数据信息,同时还能对不同报警通信设备的协议数据进行解析和处理,为系统数据的融合、整理提供帮助。系统架构如图1所示。

2 装置功能分析

针对多报警平台联网接入、数据传输的需求,数据采集与传输装置应具有如下功能。

(1)多功能数据采集接口。大多数火灾自动报警系统数据采集接口都采用RS 232/RS 485接口,具有远距离传输、数据稳定的特点,但这是远远不够的。为了兼容更多的数据采集接口,本次接口设计不仅包含RS 232/RS 485接口,同时有CAN总线接口、USB接口、打印机接口等多种火警信息的输出接口。

(2)数据实时监控采集。火灾事故的多发性、不可预料性要求我们在监控火警信息的时候需要实时不间断地监控扫描,这样才能避免突发性险情被机器或人忽略,造成重大生命和财产损失。

(3)协议解析与转换。多种协议数据的解析转换与传输是搭建“智慧消防”平台重要环节。它不仅对于系统组网通信、系统融合有着巨大作用,同时也对日后数据的存储、分析、处理有着重要的意义。

(4)实时存储。各类数据信息实时采集、存储和备份对数据的完整性意义非凡,对于各类火灾事故的调查、分析也有着重要的现实意义。

(5)数据可靠稳定传输。数据的可靠稳定传输是数据采集非常重要的部分,数据的真实性、可用性对数据分析起到至关重要的作用。 采集数据要有 “量”更要有“质”,这就要求我们不仅在数据采集时做好工作,数据传输上更要保证万无一失。

3 装置硬件设计

数据采集与传输装置以消防信息系统传输通信的实际需求出发,分析和设计了设备的硬件构架。装置由主控模块、供电调试模块、显示模块、存储模块、输入模块、输出模块六部分组成。采用某公司S3C2440芯片作为主控模块的主控芯片,主要承载操作系统的运行和程序处理。输入模块是数据采集模块。目前,大多数火灾自动报警系统都采用RS 232或RS 485作为数据信号的输入接口,输入模块除了采用RS 232/RS 485等作为数据输入模块的采集接口外,同时还兼顾USB串口、CAN总线接口、打印机接口等接口来完成数据的采集工作。信息的输出通道采用公网输出或是消防专网输出,输出模块采用以dm9000A为主控芯片的以太网传输模块,实现数据的实时、可靠、广泛传输。显示模块用LCD显示屏,由S3C2440主控芯片来驱动。存储模块是由S3C2440主控的NandFlash和NorFlash组成。消防设施系统数据采集与传输装置能够对消防设施系统的各类数据进行监测、采集、传输,同时具备历史数据的存储与查询功能。装置的原理框图如图2所示。

4 软件设计

协议的解析与转换是软件设计的最关键部分。针对不同通信协议编写解析程序来处理与转换接收到的数据流是一种可行的方法。但从长远来看,此方法会造成大量重复开发,浪费人力物力。针对大多数火灾自动报警系统的通信协议都是基于数据帧格式的,笔者研究设计了一种基于数据帧格式的协议解析方法,其核心就是对数据帧进行形式化描述使之与协议解析程序相分离。

4.1 协议解析模型

协议的解析模型是基于确定有限自动机(DFA)的协议解析模型。通过对源协议进行形式化描述,使之能利用正规表达式构造一个确定有限自动机。通过DFA生成一个DFA驱动表。协议解析器结合DFA驱动表对输入字符串进行数据解析与转换。 协议解析时通过对DFA进行查表,查到一条完全匹配的信息就代表协议解析成功。其流程图如图3所示。

例如,某型火灾自动报警系统部分通信协议数据帧格式,如表1所示。用形式化的语言表述为〈command〉_〈parameter〉_〈parameter〉(参数与命令为16 进制)。进而,可以构造正规表达式集:

由上述正规表达集很容易得到一个确定有限自动机,如图4所示。其中,Σ={digit}为字母输入表,S={0,1,2,3,...,9}为DFA的状态集,S0={0}为初始状态集,Z={7,8,9}为终止状态集。

确定有限自动机将从初始0状态开始,逐一匹配输入字符集表里面的字符。当匹配到目标字符,则跳转到下一个状态,否则回到初始状态重新开始匹配操作。当状态跳转到终止状态集时表示字符串识别成功。如图4所示确定有限自动机,自动机从0状态开始接受字符,当接收到字符A时,状态0将跳转到状态1。然后,接受4个digit字符可达到可接受终止状态7,从而识别到火警相关信息。

DFA二维数组是实现协议解析的关键。协议在解析时,解析程序首先从配置文件读取DFA数组,根据DFA数组信息匹配从0 状态到终止状态所有可接受的字符串。识别到终止状态后,程序会查询DFA二维表配置文件以明确该状态所代表的信息,进而进行相应的处理与转换。DFA配置文件保存在装置的物理存储器中,由设备在硬件初始化后读取。运用此种方法进行协议解析很好地将数据帧格式与解析程序相分离,使得当协议变化时只需配置好协议对应的DFA配置表。

4.2 解析转换程序

程序在上电后首先对数据采集输入端进行初始化,从内存读取DFA数组表,设置数组长度,开辟数据缓冲区等;调用输入端硬件驱动,使输入端能接收协议队列数据并存入缓存;读取缓存数据并与DFA数据表进行比较匹配。若没有匹配到终状态则跳转继续执行匹配,直到到达终状态或是超出数组匹配范围(清空缓存,开始新的匹配);若匹配到终状态,则表示协议数据帧队列解析成功。然后,程序查找DFA配置信息明确数据意义,调用转换函数进行数据重新封装、校验、写入共享内存等操作,完成数据发送前准备工作。程序流程图如图5所示。

5 结束语

基于嵌入式Linux的消防系统数据采集与传输装置综合运用多种信息技术,实现了对于火警、消防设备设施状态等数据信息的采集、协议转换、传输。运用确定有限自动机建立了协议解析模型,成功将协议数据帧格式与解析程序相分离,实现了多协议转换的可配置。有效解决了协议解析程序多次重复开发的弊病,提高了程序开发和维护的效能,使协议的解析转换具有更好的普适性和灵活性。经测试,装置实现了与包括公安部沈阳消防研究所JB-TBK-SX3001型火灾自动报警系统在内的市面上十多种不同协议的火灾自动报警系统之间的协议转换与传输,消防系统数据采集与传输装置运行稳定,数据能够可靠传输,达到了预期设计目标。

参考文献

[1]徐斌.当前嵌入式LINUX分析与应用[J].电子制作,2015,(13):73.

[2]叶棽,谢捷如.基于SoC和嵌入式Linux的数据采集系统设计[J].计算机技术与发展,2015,(8):1-6.

[3]史小明.嵌入式系统关键技术分析与开发应用[J].电子技术与软件工程,2015,(11):224.

[4]蔡黎,代妮娜,邓明.自适应多汽车诊断协议的行车数据监测软件设计与实现[J].计算机应用与软件,2014,(12):25-28.

[5]林霞,蔡声镇,吴允平,等.基于特征关键字的多协议数据流转换方法[J].计算机工程,2011,(5):282-284.

[6]杨树峰,姜学赟,马青波,等.基于嵌入式技术的消防车信息采集与传输装置[J].消防科学与技术,2013,32(3):290-293.

[7]李志刚,齐宝金,张迪,等.消防远程监控通信协议测试系统的研究[J].消防科学与技术,2012,31(9):961-965.

[8]金珏.一种自适应GPS通信协议分析算法的设计与实现[J].计算机系统应用,2010,(2):130-134.

[9]王兆国,王辉,王坤.物联网在消防领域的应用前景分析[J].中国公共安全(学术版),2015,(2):35-38.

嵌入式数据采集系统 篇11

关键词: 温度传感器 嵌入式系统 测试系统

1.引言

温度传感器是一类被广泛应用且被最先开发的传感器。但大多数温度传感器没有对数字信号分析及处理,达到自动化控制的效果。因此,本设计基于这种情况,利用相关软硬件提高了温度传感器的实用价值。

2.总体设计

2.1系统功能模块设计

从需求分析可以看出,该系统的功能模块应包括以下几个部分:实时温度采集与更新模块、自定义温度警报模块、超温报警模块。DS18B20采用了单总线方式的传输协议,即只需要一根管脚就可以对输入输出进行控制。此种单总线传输协议在实际应用中有很大优势,使用此种协议的芯片不需要任何外围电路,对硬件设计时的复杂性大大简化了许多。

2.2系统软件设计方案

2.2.1嵌入式操作系统选择

在本设计当中,硬件平台完全支持Linux、开发便捷迅速、资料众多、内核小、效率高等优点决定了在本设计当中的稳定性等优点,均使得本设计采用了Linux作为开发的操作系统。

2.2.2应用层程序语言选择

应用程序使用C语言进行开发,使用Linux标准C语言接口,与驱动层进行交互。

3.硬件设计

3.1整体硬件电路设计

根据硬件设计方案,在开发中用到的硬件有Tiny6410开发板、DS18B20数字温度传感器、USB转串口数据线。

3.2硬件连接方式

将USB转串口线一端接在Tiny6410的串口1上,另一端连接PC机USB接口。两个DS18B20传感器的VCC与GND管脚并联起来,与Tiny6410开放的电源与地线接口相连,两个传感器的数据接口一起连接在S3C6410的GPIO的管脚上。

4.软件设计

4.1嵌入式系统架构

本系统在软件方面主要由Linux内核裁剪和移植、底层驱动程序开发、上层应用程序开发三部分组成。其中,Linux内核的运行需要有引导程序BootLoader、内核的配置裁剪与编译、根文件系统的编译三个部分支持。

4.2驱动程序设计

在本设计当中,对DS18B20数字温度传感器根据其数据手册上的传输协议及参数进行驱动编写,首先要明确其控制参数及流程。本系统中对传感器的操作流程如下:

DS18B20写操作:

(1)置数据线高电平;

(2)延时2微秒;

(3)置数据线低电平;

(4)延时15微秒;

(5)按从低位到高位的顺序发送字节(一次只发送一位);

(6)延时60微秒;

(7)数据线拉到高电平;

(8)循环上述步骤使9位传送完毕;

(9)数据线拉高电平。

DS18B20读操作:

(1)置数据线高电平;

(2)延时2微秒;

(3)数据线拉低电平;

(4)延时2微秒;

(5)数据线拉高电平;

(6)延时8微秒;

(7)读数据线状态进行数据处理;

(8)延时50微秒。

5.结语

本设计在温度的测量精度上较为准确,系统能快速反应并准确显示改变后的温度。在长时间运行下测量结果依然准确,在实际生产生活的温度测量工作中具有较大实用价值。同时系统中仍存在一些不足有待弥补。

参考文献:

[1]徐亦朱.DS18B20中文手册[M].安徽:安徽大学出版社,2013.

[2]沙占友.智能化集成温度传感器原理与应用[M].机械工业出版社,2002-7-1.

[3]罗苑棠.嵌入式Linux驱动程序和系统开发实例精讲[M].电子工业出版社,2009.

[4]Tiny6410刷机指南[M].广州友善之臂计算机科技有限公司,2013-05-14.

嵌入式数据采集系统 篇12

随着社会的发展, 生活水平的提高, 人们越来越重视环保、健康问题, 不仅关注室外空气质量, 也更加关心室内空气环境。室内空气环境主要包括温度、湿度、以及烟尘、煤气等有害物质含量。本项目拟基于ARM11嵌入式微处理器, 通过无线传输模块, 控制各种相关传感器采集室内空气环境数据, 各种数据实时无线传回微处理器, 在彩色液晶屏上显示。当有害物质 (气体) 超过预设的报警值时, 系统自动通过语音和液晶显示画面进行报警, 提醒人们注意室内空气质量。该系统不仅可用于家居环境, 还适用于医院、餐厅、商场等公共场所。此外还可应用于纺织、医药、轻工、粮食仓储以及酿酒等生产区域, 实现对环境数据的采集与报警。该系统有广泛的应用前景, 对改善人们的生活、促进安全生产具有重要意义。

一、绪论

为了在技术上实现室内空气环境监测的美好愿景, 中控端采用的S3C6410是一个16/32位RISC微处理器, 旨在提供一个具有成本效益、功耗低, 性能高的应用处理器解决方案, 包括了强大的二位图像硬件加速器, 内部集成了24位真彩色液晶显示控制器, 器采用64/32位内部总线架构, 具有强大的数据处理能力。中控端可以处理并显示采集终端的温湿度传感器、氧气含量传感器和烟尘含量传感器所采集的室内空气数据, 这些数据通过NRF905无线传输模块进行数据传输, 其中采集终端采用基于51内核的STC12C5A60S2单片机, 其所集成的8路高速10位A/D转换接口和SPI接口, 能够方便有效地将传感器的信号读取并处理后转发给NRF905无线传输模块, 从而实现整个空气质量监测系统的构造。

二、系统总体设计

2.1采集终端部分

2.1.1传感器

(1) 数字型温湿度传感器将温度量和湿度量转换成容易被测量处理的数字式电信号, 常见的湿度测量方法有:动态法 (双压法、双温法、分流法) , 静态法 (饱和盐法、硫酸法) , 露点法, 干湿球法和形形色色的电子式传感器法, 至少具有±5%RH的精度。

(2) 烟尘含量传感器将气体种类及其与浓度有关的信息转换成电信号, 根据这些电信号的强弱就可以获得与待测气体在环境中的存在情况有关的信息。

2.1.2微型控制器

STC12C5A60S2是单时钟/机器周期 (1T) 的单片机, 是高速/低功耗/超抗干扰的8051内核单片机, 具有8路高速10位A/D转换接口和SPI接口, 适用于对模拟型数据采集传感器的信号的处理。并将从各路传感器读取的信号经适当处理后通过SPI接口传递至无线模块并转发给中控端。

2.2无线数据传输模块

n RF905无线芯片主要工作于433MHz、868MHz和915MHz的ISM频段。芯片内置频率合成器、功率放大器、晶体振荡器和调制器等功能模块, 输出功率和通信频道可通过程序进行配置。非常适合于低功耗、低成本的系统设计。NRF905无线传输模块性能参数如下:

(1) 422.4~473.5MHz工作频段;

(2) 512个通讯频道, 满足多点通讯、分组、跳频等应用需求, 通道切换时间≤6us;

(3) 发射功率可设置为:10d Bm、6d Bm、-2d Bm和-10d Bm;

(4) 通过SPI接口与MCU连接;

(5) 支持50kbps传输速率;

(6) Shock Burst传输模式, 自动生成前导码和CRC校验码;

(7) 工作电压范围:1.9V~3.6V, 待机模式下电流仅为12.5μA。

2.3中控端部分

2.3.1 S3C6410中央控制单元

S3C6410是一个16/32位RISC微处理器, 旨在提供一个具有成本效益、功耗低, 性能高的应用处理器解决方案, 包括了强大的二位图像硬件加速器, 内部集成了24位真彩色液晶显示控制器, 器采用64/32位内部总线架构, 具有强大的数据处理能力。

其显示控制特性包括TFT LCD接口:

(1) 320×240, 640×480或其他显示分辨率高达1024×1024。最大2k×2k虚拟屏幕尺寸。

(2) 支持五个窗口层作为PIP或OSD。

(3) 可编程OSC窗口定位。

(4) 16级Alpha混合。

串行通信特性包括SPI接口:

(1) 2通道串行外设接口。

(2) 64字节缓冲器用来接收/传送。

(3) 基于DMA或基于中断操作。

(4) 50Mb/s的发送/接收 (全双工) 。

GPIO特性包括:

(1) 188个灵活配置的GPIO, 可任意配置为输入口或输出口。

2.3.2 TFT-LCD液晶显示

TFT (Thin Film Transistor) 即薄膜场效应晶体管。所谓薄膜晶体管, 是指液晶显示器上的每一液晶象素点都是由集成在其后的薄膜晶体管来驱动。从而可以做到高速度、高亮度、高对比度显示屏幕数据信息。

2.3.3串口通信

串行接口主要应用于远程通信和低速输出设备。由于串行数据通信传输线条数最少, 占用资源最省, 专用芯片便宜, 发送和接受器简单。因而采用RS-232标准串行口进行中控端与上位机端数据通信, 将中控端接收到的温、湿度数据、氧气含量数据等环境数据信息传输给上位机数据库保存, 分析。

串口TXD信号负载着从电脑或者设备到另一端的数据, 串口RXD信号负载着从上位机端上传到中控端的数据

串口通信一般设置如下: (一句话)

(1) 信速率为115200bps,

(2) 起始位为1,

(3) 数据位为8,

(4) 停止位为1,

(5) 无奇偶校验。

2.3.4按键电路 (键盘模块)

通过普通的复位按键的一端通过电阻接地, 另一端连接处理器IO口, 当按键按下时, 低电平信号以外部中断方式被处理器检测, 程序做出相应识别, 并完成相应的功能设置。

2.3.5语音提示/报警

基于SYN6288语音合成芯片的语音合成模块, 控制器根据当前接收到的环境数据的值的是否超过设定范围, 可通过UART通讯接口向SYN6288-A语音合成芯片发送相应控制命令和文本, SYN6288-A语音合成模块把接收到的文本合成为语音信号输出, 输出的信号经功率放大器进行放大后连接到喇叭进行播放, 从而发出对应的提示或报警声音。

(1) 工作原理示意图 (图1) :

(2) 模块示意图 (图2) 。

三、总结

总之, 本基于ARM11实现室内空气环境数据采集与无线传输系统, 能够实现室内空气环境多数据的采集, 包括温度、湿度以及烟尘、煤气等有害物质含量等, 采集的数据无线传输到中控端, 便于人们观察, 通过编程设置有害物质 (气体) 含量报警值, 当超过该值时, 系统自动报警, 报警时通过语音喇叭提示, 同时在液晶画面上显示提示信息, 提醒人们注意室内空气质量。本系统的一个中控端可控制几十个数据采集终端, 采集数据并无线传输至中控端, 中控端通过串口传输至上位机服务器端数据库保存, 处理, 具有良好的可扩展性。

摘要:系统基于以ARM11内核的S3C6410微处理器作为中控核心, 以7寸TFY-LCD液晶显示屏作为数据显示设备, 通过433MHZ无线RF905模块作为数据传输方式, 实时接收从采集终端传送过来的温度、湿度以及烟尘、煤气等有害物质含量等室内的空气环境数据信息, 当有害物质 (气体) 超过预设的报警值时, 系统自动通过语音和液晶显示画面进行报警。采集终端基于以51内核STC12C5A60S2单片机为核心, 以温湿度传感器、氧气含量传感器及烟尘含量传感器等传感器模块作为传感终端, 实时采集室内多种空气质量数据, 并串行发送给中控端。

关键词:嵌入式系统,S3C6410,ARM11,数据采集,室内空气监测,RF905,无线模块,SYN6288语音模块

参考文献

[1]周立功.ARM嵌入式系统基础教程[M], 北京航空航天大学出版社, 2005-01.

[2]三星电子公司.S3C6410用户手册[J], 2008-10.

[3]深圳海洋电子有限公司.SYN6288-A语音合成模块数据手册[J], 2009-06.

[4]张丽丽, 戴学丰.基于ARM处理器语音报警系统的设计与实现[J], 2006:218-219.

[5]吕俊芳.传感器接口与检测仪器电路[M].北京航空航天大学出版社, 1989.

[6]徐惠民.单片微型计算机原理、接口及应用[M].北京邮电大学出版社, 2000.

上一篇:高职网络系统下一篇:最优桥式设计理论研究