基于嵌入式Linux的远程数据采集系统
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 所示。
在 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 和
- REDIce-Linux--灵活的实时Linux内核(11-12)
- linux文件系统基础(02-09)
- Linux标准趋向统一(11-12)
- linux基础技术(02-09)
- LINUX的目录树(02-09)
- 在Windows下启动Linux(02-09)