基于嵌入式Linux的远程数据采集系统

发布者:mb5362443最新更新时间:2012-12-04 来源: 维库开发网关键字:Linux  远程数据采集系统  S3C2410X 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  数据的采集和传输是工业和军事领域的一项关键技术。传统数据采集系统采用以单片机 为核心的设计模式,系统的精确度和运算能力有限,人机交互界面不够直观友好、信息量小, 并且数据传输距离、数据存储容量和实时分析能力都有限。本文设计的嵌入式数据采集系统 采用嵌入式实时操作系统,具有采集速度快,可扩展功能强,并且能通过网络通信进行远程 监控等优点,具有广阔的应用前景。

  2 硬件设计

  2.1 硬件描述

  系统的基本结构如图 1 所示。该系统由核心处理器模块、数据采集模块、键盘输入模 块、显示模块和外部通信模块等组成。


  核心处理器模块由微处理器 S3C2410、NAND Flash 和 SDRAM 共同构建。S3C2410 是 三星公司的一款基于ARM920T 内核的16/32 位RISC 嵌入式微处理器,主要面向手持设 备以及高性价比,低功耗的应用,运行的频率可以达到203MHz。64M 字节 NAND Flash 采用的是K9F1208,可以兼容16M,32M 或128M 字节。64M 字节的SDRAM 由两片 K4S561632 组成,工作在32 位模式下,可以满足嵌入式系统运行的要求。

  2.2 数据采集模块设计

  S3C2410 内核中集成了8 路10 位的模数转换器,但考虑到10 位的精度偏低,所以数据 采集模块使用了一个8 路16 位模数转换芯片ADS8344。该芯片是8 路16 位的带异步串行 口的模数转换器,在5V 的工作电压和IOOK 的工作频率的条件下转换器的功耗是10mW, 参考电压的范围是从500mV 到工作电压VCC,提供的输入电压的范围是从0V 到参考电压。

  ADS8344 和S3C2410 连接,虽然S3C2410X 具有117 个通用的IO 接口,但绝大部分的 IO 线都有第二功能,所以在选择S3C2410 和ADS8344 连接的时候,本文用通用IO 口的第 二功能来表述连线。ADS8344 与S3C2410 的连线情况如图2 所示。[page]


  在 ADS8344 与S3C2410 的连接图中,S3C2410 的连接端都是通用的IO 信号。S3C2410 的IICSCL 接ADS8344 的片选信号,低电平有效。S3C2410 的nCD_SD 信号接ADS8344 的 数据输入信号Din,当片选信号是低电平时,数据将在DCLK 的上升沿被锁存。S3C2410 的 WP_SD 信号接ADS8344 的串行数据输出信号Dout,当片选信号是低电平时,数据将在 DCLK 的上升沿被锁存。S3C2410 的SDDATA3 信号接ADS8344 的忙信号BUSY。S3C2410 的IICSDA 信号接ADS8344 的DCLK 信号,最大的转换频率可达100K[2]。

  2.3 网络接口设计

  系统采用 Cirrus 公司的CS8900 网络接口芯片。CS8900 以太网接口芯片的内部集成 RAM、10BASE-T 收发滤波器,它提供8 位和16 位两种接口,我们选用16 位模式,网卡芯 片复位默认工作方式为I/O 连接,寄存器的默认基址是300H[1]。因为CS8900 占用了S3C2410 的片选线nGCS3,则CS8900 寄存器的基址空间为0X6000000+300H。CS8900 与S3C2410 的 连接如图3 所示。


  3 软件设计

  3.1 系统软件平台配置

  3.1.1 嵌入式Linux 的移植

  首先在一台 PC 机上安装Linux 系统,从网络上下载交叉编译需要的软件包:linux-2.6.16 内核、gcc-3.4.4 编译器、glibc-2.3.3 编译器、binutils-2.16 工具包和gdb-* 调试器。然后一 步步建立交叉编译环境,根据具体目标平台对与体系结构相关的源码进行必要的修改,对内 核裁减、编译,生成一个内核映象文件。最后将内核及根文件系统烧写到目标平台。

  3.1.2 网络设备驱动程序

  CS8900 驱动程序是本系统的重要组成部分。所有的Linux 网络驱动程序都遵循通用的 接口,对每个网络接口都用一个device 数据结构表示,网络设备使用网络接口管理表 dev_base,它是一个device 结构的指针。Linux 网络各层之间的数据传输都通过sk_buff(套 接字缓冲区)完成的,每个sk_buff 包括一些控制方法和一块缓冲区,这个区域存放网络传 输的数据包[3]。内核的驱动程序接口包括:打开函数、关闭函数、探测函数、发送函数、接 收函数、中断处理函数和其它函数;参考CS8900 技术文档,通过编写这样一系列函数来实 现具体的功能。

  3.1.3 Qt/Embedded 开发

  Qt/Embedded 是一个为嵌入式设备上的图形用户接口和应用开发而订做的C++工具开 发包。Qt 的C++类库封装了适应不同操作系统的访问细节,它通常可以运行在多种不同的 处理器上部署的嵌入式Linux 操作系统上。除了类库以外,Qt/Embedded 还包括几个提高开 发速度的工具,使用标准的Qt API,可以熟练的在Windows 和Unix 编程环境里开发应用程 序。下载tmake1.11、Qt/Embedded2.3.7 和Qt2.3.2 for X11 这样几个安装包,根据开发者具体 的开发环境,在Linux 系统的PC 机上建立起Qt/Embedded 开发环境,通过qmake 和Qt designer 这两个工具可以快速的开发出简洁精美的界面。[page]

  3.2 应用软件的开发

  在 Qt/Embedded 开发环境下,用C++语言编写应用程序,主要实现数据采集分析存档 和远程通讯。本系统通过以太网实现主机和客户机的连接,考虑到嵌入式系统有限的软硬件 资源,网络通讯协议不能直接使用现有的TCP/IP 协议族,其过于庞大复杂,我们只需要使 用其中的一部分协议,并对其进行简化。

  嵌入式 Linux 中的网络层次分为用户进程、套接字、网络协议和网络设备4 个层次[4]。 其中BSD 套接字由处理BSD socket 的通用套接字管理软件来处理,并由INET socket 层来 支持,这一层为基于IP 的协议TCP 和UDP 提供端到端传输管理。UDP 是一个无连接协议 而TCP 是个可靠的端对端协议,IP 层包含了实现Internet 协议的代码,这些代码为要传输 的数据加上IP 头,并把传入的IP 包送给TCP 或UDP。在IP 层以下,是支持所有网络应用 的设备层,如PPP、以太网等,建立一个有相应的以太网设备驱动在内的内核后,就可以看 到/dev/eth0。ARP 协议位于IP 层与支持ARP 的底层协议之间,它负责把IP 地址解释成底 层网络设备可以辨认的地址。

  系统加电后就开始运行,系统初始化完成后,就开始接收传感器发送的信号,转换成相 应数据并保存;socket 接口实现通信是基于客户机/服务器模式下进行的,根据客户机的要 求,执行指定的操作或将采集来的数据发送给客户机,实现了远程实时监控,具体流程如图 4 所示。


  4 结论

  本文作者创新点是构建的数据采集系统具有较强的远程数据处理能力和实时性,所使用 的嵌入式Linux 操作系统可支持TCP/IP, PPP 等网络协议,增强了系统的远程分析和监控能 力。以后还需对本系统的嵌入式TCP/IP 协议栈进行改进,并用对多路传感器信号的采集和 处理来验证系统的稳定性和传输采集数据的性能。

参考文献:

[1]. S3C2410X datasheet http://www.dzsc.com/datasheet/S3C2410X_589566.html.
[2]. ARM920T  datasheet http://www.dzsc.com/datasheet/ARM920T+_139814.html.
[3]. RISC  datasheet http://www.dzsc.com/datasheet/RISC+_1189725.html.
[4]. ADS8344 datasheet http://www.dzsc.com/datasheet/ADS8344_1095417.html.
[5]. PC  datasheet http://www.dzsc.com/datasheet/PC+_2043275.html.
[6]. device  datasheet http://www.dzsc.com/datasheet/device+_1397784.html.

关键字:Linux  远程数据采集系统  S3C2410X 引用地址:基于嵌入式Linux的远程数据采集系统

上一篇:仿真软件ProteuS在ARM系统设计中的应用
下一篇:基于嵌入式的无线智能家居控制装置

推荐阅读最新更新时间:2024-03-16 13:14

基于嵌入式Linux的自助点菜终端设计
引言 随着人民生活水平的提高和生活方式的转变,餐饮业的市场急剧扩大,利润飞速增长,被称为中国的黄金产业。而电子点菜系统的应用,提高了餐馆档次和营业效率、优化了业务流程,为餐饮行业带来崭新的管理理念与服务手段。目前较为流行的点菜终端主要分为2种模式。第一种采用单片机和无线模块实现,该模式成本低,但是功能和界面较为简单,通信距离也较短,使用者一般是服务员;另外一种采用商业PDA和无线网卡实现,功能强大,界面华丽,操作方面,但成本较高,不利于大范围推广与应用。此外,友好的自助点菜终端要给客户提供诸如每道菜肴的名称、插图、介绍和价格等各种相关信息,这些信息需要随着菜单的变化实时更新。由于嵌入式系统的存储空间有限,大量的图片等信息存储和实
[单片机]
基于嵌入式<font color='red'>Linux</font>的自助点菜终端设计
基于Linux和EMBEST S3C4510B开发板实现扩展板硬件电路设计
USB设备已经进入我们工作、生活的方方面面,它给我们带来了许多便利。因此,带有USB功能已经成为现在许多系统的一个基本要求。三星公司针对ARM7开发的S3C4510B是目前业界使用非常频繁的一款芯片。它的强大功能使其成为基于诸多传统的51等系列单片机开发思想的终结者。通过对它移植uClinux操作系统,犹如为虎添翼。稳定的Linux系统和强大的S3C4510B硬件紧密结合,形成了一个强大的开发平台,带来了崭新的开发理念。本文采用的是深圳英蓓特公司开发的EMBEST S3C4510B开发板,介绍在这样一个强大的平台上扩展基于CYPRESS公司开发的SL811HS(HOST)的USB-HOST;展示基于这个平台的区别于传统系统开发的崭
[单片机]
基于<font color='red'>Linux</font>和EMBEST S3C4510B开发板实现扩展板硬件电路设计
浅谈分析Arm linux 内核移植及系统初始化的过程四
7、浅谈分析Arm linux 内核移植及系统初始化的过程 咨询QQ:313807838 MACHINE_START(SMDK2410, SMDK2410 ) /* @TODO: request a new identifier and switch * to SMDK2410 */ /* Maintainer: Jonas Dietsche */ .phys_io = S3C2410_PA_UART, .io_pg_offst = (((u32)S3C24XX_VA_UART) 18) & 0xfffc, .boot_params = S3C2410_SDRAM_PA + 0x100, .map_io = smdk241
[单片机]
linux内核中的GPIO系统之(2):pin control subsystem
一、前言 在linux2.6内核上工作的嵌入式软件工程师在pin control上都会遇到这样的状况: (1)启动一个新的项目后,需要根据硬件平台的设定进行pin control相关的编码。例如:在bootloader中建立一个大的table,描述各个引脚的配置和缺省状态。此外,由于SOC的引脚是可以复用的,因此在各个具体的driver中,也可能会对引脚进行的配置。这些工作都是比较繁琐的工作,需要极大的耐心和细致度。 (2)发现某个driver不能正常工作,辛辛苦苦debug后发现仅仅是因为其他的driver在初始化的过程中修改了引脚的配置,导致自己的driver无法正常工作 (3)即便是主CPU是一样的项目,但是由于外设的不同,
[单片机]
<font color='red'>linux</font>内核中的GPIO系统之(2):pin control subsystem
基于TQ2440和Linux的触摸屏的驱动研究
嵌入式技术在工业和日常生活中变得越来越普及,触摸屏作为交互终端已经逐渐取代键盘成为嵌入式系统的输入设备。使用TQ2440开发板,通过对嵌入式Linux内核中触摸屏驱动的研究,编写和移植了触摸屏的驱动程序,校准之后触摸屏可以正常使用。 随着信息查询技术的发展,触摸屏因具有坚固耐用、反应速度快、节省空间、易于交流等优点,而得到了广泛应用 。触摸屏作为一种新兴的电脑输入设备,是目前最简单、方便的一种人机交互设备。 1 硬件简介 1.1 TQ2440开发板简介 天嵌公司生产的TQ2440开发板,微处理器采用Samsung S3C2440AL,板载64 MB SDRAM、256 MB Nand Flash、2 MB Nor Flas
[单片机]
基于TQ2440和<font color='red'>Linux</font>的触摸屏的驱动研究
电源管理的Linux技术实施应用在便携式动态设备
任何拥有笔记本电脑的人都会察觉,当依靠电池供电时,其便携设备的行为与使用交流主 电源 供电时不同——显示屏变暗、处理器的时钟变慢、系统只要有可能就会转入待机或睡眠状态。PDA用户也发现,在停止使用一段时间后显示屏将变暗,设备甚至进入睡眠状态。蜂窝电话用户也已经注意到,背景光和按键照明在完成拨号之后会熄灭。事实上,这些可见行为的背后是软硬件技术和节电机制在发挥作用。 全速运行、待机和睡眠等宏观行为利用CPU的固有能力通过降低工作电压或时钟频率来节省功耗。除了全面地改变系统状态外,大多数设备用户察觉不到的是,实际的电源管理也能够逐渐地改变系统状态,这种情况在一秒之内可以发生数百次。 任何动态 电源 管理策略的基础都是调整便携式设备中一
[电源管理]
电源管理的<font color='red'>Linux</font>技术实施应用在便携式动态设备
基于ARM的嵌入式操作系统该如何设计
嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。 Linux做嵌入式的优势,首先,Linux是开放源代码;其次,Linux的内核小、效率高,可以定制,其系统内核最小只有约134KB;第三,Linux是免费的OS,Linux还有着嵌入式操作系统所需要的很多特色,突出的就是Linux适应于多种CPU和多种硬件平台而且性能稳定,裁剪性很好,开发和使用都很容易。同时,Linux内核的结构在网络方面是非常完整的,Linux对网络中最常用的TCP/IP协议有最完备的支持。提供了包括十兆、百兆、千兆的以太网络,以及无线网络,Token Ring(令牌环网)、光纤甚至卫星的支持。
[单片机]
基于ARM的嵌入式操作系统该如何设计
基于Linux和s3C2440的GPC控制器设计
近年来,基于Internet的网络化控制系统已成为国内外测控领域研究的热点,在石油勘探开发、钢铁化工等领域有着广阔的应用前景。而控制器的设计和研发是整个网络控制系统的关键和核心。在一些地域高度分散以及环境恶劣的控制现场,使用嵌入式系统作为控制器节点,可更有利于多点分布式综合布控及并行处理,实现更好的测控效果。然而由于网络传输本身的特点,网络时延会不可避免地影响网络控制系统的控制性能和稳定性,因此本文提出基于S3C2440A及嵌入式Linux的GPC(Generalized PredictiveControl)控制器的设计方案,具有一定的通用性。 1 控制器硬件平台设计 控制器节点是嵌入式网络化测控系统的中心。在测控系统中
[工业控制]
基于<font color='red'>Linux</font>和s3C2440的GPC控制器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved