1、 大 连 民 族 学 院 本 科 毕 业 设 计 (论 文 ) 基于 ARM 的数据采集系统的设计 学 院 (系 ): 信息与通信工程学院 专 业: 通信工程 学 生 姓 名: 学 号: 2007024116 指 导 教 师: 评 阅 教 师: 完 成 日 期: 2011.6.10 大连民族学院 基于 ARM 的数据采集系统的设计 - I - 摘 要 随着 嵌入式技术的迅速发展 ,嵌入式终端在家居和工业等领域发挥着越来越重要的作用。 本设计提出了一种以嵌入式为基础的温度采集系统的设计方案, 使得 基于 嵌入式系统 做 温度 采集终端有较好的人机交互界面 和系统高稳定性 。 本文介绍了 整个 硬
2、件开发环境, bootloader 的启动流程, Linux 系统 的 架构 , Linux内核的 架构和 根 文件系统 等 相关知识。 同时, 本 设计在软件方面主要编写了 DS18B20的 底层 驱动程序 , 进行了 Linux 内核的配置编译 , 设计 了 QT顶层应用程序 ;在硬件方面 主要设计了 DS18B20 的硬件电路,搭建了嵌入式交叉开发环境。通过综合调试最终实现了基于 ARM9 的嵌入式温度采集系统的设计。 基于 嵌入式 系统的数据采集 终端 一般都有较好的人 机 交互界面和 软硬件可裁剪的特性,同时,使用 mini2440 开发板做嵌入式开发平台具有成本低,功耗低,体积小,
3、稳定性高 ,发展潜力大的特性。嵌入式系统良好的特性 使得整个 嵌入式 温度采集 系统也具备了 发展潜力大, 功耗 低 ,稳定性高, 可视化界面好, 便于携带和功能可扩展的特性。 关键词: 嵌入式系统 ; Linux 内核;温度 采集 基于 ARM 的数据采集系统的设计 - II - Abstract With the rapid development of embedded technology, embedded terminal is playing an increasingly important role in the home and industry. This paper p
4、resents a temperature collection system which is based on embedded system, using the embedded terminal to do data collection will have a better man-machine interface and high stability. This article describes the environment of hardware development, bootloader boot process, Linux system architecture
5、 ,Linux kernel-related architecture, root file system architecture and other related knowledge. At the same time, this design mainly completed the programming of DS18B20s bottom-level driver , the configuration and compilation of the Linux kernel and the design of QT top-level application program in
6、 software; in hardware mainly implemented design of the DS18B20s circuit and build the cross-tool development environment. Through synthesized debugging this project finally realized the design of the temperature collection system which was based on ARM9 embedded system. The data collection terminal
7、 based on embedded system generally has the features of better human-machine interface and hardware and software can be cut, while using the mini2440 development board to do a embedded development platform will have the properties of low cost, low power consumption, small size, high development pote
8、ntial. Good performance of the embedded systems makes the whole temperature collection system also has the high potential for development, low power consumption, high stability, good visual interface, easy to carry and function can be expanded features. Key Words: Embedded system; Linux kernel; Temp
9、erature collection system 基于 ARM 的数据采集系统的设计 - III - 目 录 摘 要 . I Abstract . II 1 绪 论 . 1 1.1 选题背景和意义 . 1 1.2 本文主要研究内容 . 1 1.3 本章小结 . 2 2 mini2440 开发板的介绍 . 3 2.1 S3C2440 处理器 . 3 2.2 mini2440 开发板的接口资源 . 3 2.2.1 硬件资源特性 . 3 2.2.2 接口资源及时钟特点 . 4 2.3 基于 mini2440 的开发环境的搭建 . 4 2.3.1 搭建嵌入式 交叉开发环境 . 4 2.3.2 嵌入式
10、开发的软件环境 . 5 3 DS18B20 驱动 . 7 3.1 系统硬件整体设计 . 7 3.2 DS18B20 驱动的编写 . 7 3.3 数据采集电路 . 9 3.3.1 DS18B20 简介 . 9 3.3.2 DS18B20 性能指标 . 10 3.3.3 测温接口电路及工作时序 . 10 3.4 DS18B20 驱动编写 . 11 3.4.1 读 DS18B20 . 11 3.4.2 写 DS18B20 . 12 3.4.3 DS18B20 的控制 . 13 3.4.4 打开释放 . 14 3.4.5 DS18B20 的操作函数 . 14 3.4.6 DS18B20 设备的注册和注
11、销 . 15 3.5 DS18B20 驱动程序的测试 . 15 4 bootloader 相关知识 . 17 4.1 bootloader 背景知识 . 17 基于 ARM 的数据采集系统的设计 - IV - 4.2 supervivi . 17 4.3 本章小结 . 19 5 Linux 内核 . 20 5.1 Linux 系统简介 . 20 5.2 Linux-2.6.29 内核移植到 mini2440. 22 5.3 配置编译生成 zImage . 22 5.4 本章小结 . 24 6 QT 应用程序的开发及调试 . 25 6.1 QT 的简介 10 . 25 6.2 QT 测温应用程
12、序 . 27 6.2.1 需求分析 . 27 6.2.2 程序设计 . 28 6.3 本章小结 . 31 7 根文件文系统的介绍 . 33 7.1 文件系统相关知识 . 33 7.2 root_qtopia 文件系统介绍 . 34 8 综合调试 . 40 结 论 . 44 参 考 文 献 . 45 附录 A 程序清单 . 46 附录 B 电路原理图 . 58 附录 C 实物图 . 59 致 谢 . 60 基于 ARM 的数据采集系统的设计 1 1 绪 论 1.1 选题背景和意义 目前我国温室大棚技术已经在全国范围内被广泛应用,这 一 技术的诞生解决了北方人冬天没蔬菜的难题。温室大棚技术其关键技
13、术在于对 温室的 温度 进行 严格控制,只有严格的温度控制才能保证棚内植物正常生长,而如何实现对温度的实时控制, 显而易见温 度采集作为大棚温控是一个不可忽略的环节,然而传统的温度采集系统一般稳定性不高,而且没有一个良好的人机交互界面,但是如果使用 PC 机作为温度采集系统就会大大提高生产成本,而且安装放置也很不方便。基于这一背景,本设计旨在 通过设计一个基于 ARM 的嵌入式温度采集系统在成本高和稳定性差之间寻求一个平衡点。 随着电子技术的不断发展,基于 ARM 的嵌入式系统已经在消费,工业控制,医疗卫生甚至是军事军工等领域得到了广泛的应用,并且将会在更广泛的领域中占有更多的市场份额。嵌入式
14、系统是 以应用为中心、以计算机技术为基础、软硬件可裁剪、适应 于系统对功 能、可靠性、成本、体积、功耗严格要求的专用计算机系统 1。现在的嵌入式系统有很多种类 ,但最为成熟的是以 ARM 为基础的嵌入系统。 基于 ARM 的嵌入式系统有诸多优点是传统电子系统无法比拟的 ,利用嵌入式 开发本设计 可以开发出具有良好的人机交互界面的实时系统, 同时嵌入式系统最大的优点就是软硬件可裁剪,依据自己系统的需要可以进行灵活的 软硬件设计开发, 而且基于 ARM的嵌入式系统开发成本低,而且系统稳定性高,功耗低,体积小,并且能够应用于多种应用场合。这些优点就大大扩大了基于 ARM 的嵌入式系统的应用范围。 由
15、于 mini2440 是 一款 接口丰富,价格低廉,系统稳定性高, 功耗小,性价比极高的 ARM9 系列开发板 。 所以本设计采用 mini2440 为硬件开发平台 。 通过设计 嵌入式 温度采集一方面可以解决一些实际问题,但更为重要的是 通过 本设计是对自己大学四年学习的一个检验,由于大学期间没有学习有关嵌入式的相关知识,通过自学嵌入式开发的相关知识,让自己对嵌入式有一个深入的理解,为以后的学习工作 奠定基础。 1.2 本文主要研究内容 本设计主要研究的内容是利用 mini2440 开发板通过 DS18B20 实现温度的实时采集并最终通过 QT 界面显示 温度值,通过获取内核时间显示实现实时
16、温度显示 。具体设计内容如下: 基于 ARM 的数据采集系统的设计 2 首先 , 本设计详细介绍了 mini2440 开发板的硬件环境和丰富的接口资源 , 论证以mini2440 开发 平台 做嵌入式温度采集系统 的 可行性和系统 优点, 以及对 mini2440 开发板的 交叉 开发环境的搭建 也 进行了详细的介绍 。 其次,本文将对 Linux内核的 架构 和相关操作做一个简单的介绍, 以及 针对 mini2440开发板 如何 进行 Linux 内核的移植,裁剪,配置和编译 等关键环节做了详细的说明 。 第三,通过分析设计要求,结合 mini2440 的硬件结构编写 DS18B20 的驱动
17、程序,同时通过编写 驱动 测试程序,上机调试验证驱动的正确性。 第四,介绍根文件系统的相关知识,了解 根 文件系统整体结构。 最后,在验证硬件驱动的正确性的基础上实现人机交互界面的应用 QT 程序的开发,然后编 译生成内核,制作根文件系统镜像,最后实现系统的整体综合调试。 在硬件方面 , 主要 实现了 DS18B20 的硬件电路的设计,可行性的论证以及交叉开发环境的搭建; 在软件方面 , 主要是实现 了 D218B20 的底层驱动的编写和顶层应用程序的编写,以及 Linux 内核的移植,配置,编译和 zImage 的生成,同时还 有 根文件系统镜像制作等相关内容。 1.3 本章小结 本章对基于
18、 ARM9 做温度采集 系统 的意义做了总体概括,并对 嵌入式开发 的 应用情况做了简单的介绍。另外, 本文 还 详细 介绍了 本 设计的主要内容及 整个设计 的 开发流程 。 基于 ARM 的数据采集系统的设计 3 2 mini2440 开发板的介绍 2.1 S3C2440 处理器 Mini2440采用了 S3C2440作为处理器 2。 S3C2440采用了 ARM920T的内核, 0.13 m的 CMOS标准宏单元和存储器单元。其功耗低,体积小且静态设计特别适合于对成本和敏感 性有特殊要求 的 实际 应用。 其总线 采用了新的总线架构 AMBA (Advanced Micro Contro
19、ller Bus Architecture)。 S3C2440其特点 是 CPU是一个 16/32位 ARM920T的 RISC处理器, ARM920T具备 MMU, AMBA, BUS以及 Harvard高速 缓冲体系结构。这 一 结构具有独立的 16KB指令 Cache和 16KB数据 Cache每个都是由具有 8字长的行组成。 通过一套完整的通用系统外设, S3C2440无需配置额外的组 也同时 减少整体系统成本 。 S3C2440集成以下片上功能 (列出部分 ): 内核采用 1.2V供电,存储器采用 3.3V独立供电,外部 IO口采用 3.3V独立供电; 内置外部存储器控制器 (SDR
20、AM控制和芯片选择逻辑 ); 3个通用异步串行端口; LCD控制器; SD卡接口; 主从 USB接口; AC97解码器接口; 130个通用 I/口和 24通道外部中断源; 具有普通,慢速,空闲和掉电模式; PLL片上时钟发生器; S3C2440支持从 Nand Flash启动, Nand Flash具有容量大,比 NOR Flash价格等特点。用户可以选择将引导代码和操作系统镜像存放在外部的 Nand Flash中,并从 Nand Flash启动,当处理器在这种模式下开电复位时,内置的 Nand Flash将访问接口控制器并引导代码自动加载到内部 SRAM并且运行。之后 SRAM中的引导程序将
21、操作系统镜像加载到SDRAM中运行。启动后释放 4KB的 SRAM,以便用于其他用途 。 2.2 mini2440 开发板的接口资源 2.2.1 硬件资源特性 3 CPU处理器: 三星 S3C2440A,主频 400MHz,最高 可达 533Mhz; SDRAM内存:在板 64M SDRAM, 32bit数据总线 , SDRAM时钟频率高达 100MHz; 基于 ARM 的数据采集系统的设计 4 Flash存储 ; 在板 256M/1GB Nand Flash,掉电非易失 (用户可定制 )64M/128M/256M/512M/1G在板 2M Nor Flash,掉电非易失,已经安装 BIOS;
22、 LCD显示板上集成 4线电阻式触摸屏接口,可以直接连接四线电阻触摸屏 , 标准配置为统宝 3.5寸 真彩 LCD,分别率 240x320,带触摸屏; 2.2.2 接口资源及时钟特点 1个 100M以太网 RJ-45接口 (采用 DM9000网络芯片 ); 3个串行口 ; 1 个 主 USB接口 ; 1 个 从 USB B型接口 ; 1 个 SD卡存储接口 ; 1个 立体声音频输出接口,一路 语音输入 接口; 1个 2.0mm间距 10针 JTAG接口 ; 4个 User Led; 6组 USER buttons; 1个 PWM控制蜂鸣器 ; 1个 可变 电阻 器 ,用于 对 AD模数转换 进
23、行 测试 ; 1个 I2C总线 AT24C08芯片,用于 对 I2C总线 进行 测试 ; 1个 2.0mm间距 20引脚 摄像头接口 ; 电源接口 (5V),带电源开关和指示灯 ; 1个 34引脚 2.0mmGPIO接口 ; 1个 40引脚 2.0mm系统总线接口 ; 12M无源晶振 ; 内部实时时钟(带后备锂电池 ); 2.3 基于 mini2440 的开发环境的搭建 2.3.1 搭建嵌入式交叉开发环境 嵌入式系统的开发一般采用“宿主机 -目标机”交叉开发方式 4。首先,利用宿主上丰富的资源以及良好的开发环境来进行开发和仿真目标机上的软件, 再 通过 H-JTAG口,UTAR 口或者是以太网
24、接口将生成的代码下载到目标 机上 进行运行 。 本设计宿主机主要是使用装有 RedHat5 企业版 Linux 操作系统的 PC 机,而目标机就是 mini2440 开发板。组成架构如图 2.1 所示。 基于 ARM 的数据采集系统的设计 5 宿 主 机P C 机目 标 机M i n i 2 4 4 0 开 发 板串 口 、 以 太 网 接 口 、 U S B 接 口图 2.1 嵌入式开发交叉环境构架 在调试阶段会用到 NFS(虚拟文件系统) 方式挂载根文件系统,所以要设置好 NFS服务器,具体设置如下: (1) 设置共享目录: 运行命令 #vi /etc/exports 编辑 NFS 服务的
25、配置文件 (注意: 第一次 用 vi打开时该文件 是没有内容的 ),添加 如下 内容: /opt/FriendlyARM/mini2440/root_qtopia *(rw,sync,no_root_squash) 其中: /opt/FriendlyARM/mini2440/root_qtopia 表示 NFS 共享目录 , 它可以 表示 同开发宿主机共享目录 root_qtopia 作为开发板的根文件系统通过 NFS 挂 载 ; *表示所有的客户 端 都可以挂 载 此目录; rw 表示挂接此目录的客户 端 对该目录有读写的权力; no_root_squash 表示允许挂接此目录的客户 端 享有 和主机 root 一样的权力 ; 通过命令启动和 停止 NFS 服务 : (2) 运行命令: #/etc/init.d/nfs start # mount -t nfs localhost: /opt/FriendlyARM/mini2440/rootfs_qtopia /mnt/ /opt/FriendlyARM/mini2440/rootfs_qtopia。 使用这个命令可以停止 nfs 服务: #/etc/init.d/nfs restart 2.3.2 嵌入式开发的软件环境 本小节将解压安装开发学习过程所用到的全部源代码以及其他一些小工具,这包括: Linux内核源代码;