基于ARM的数据采集系统的设计--优秀毕设申请材料

更新时间:2023-03-09 02:42:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于ARM的数据采集系统的设计

班级:通信071 姓名: 指导教师:

摘 要

随着嵌入式技术的迅速发展,嵌入式终端在家居和工业等领域发挥着越来越重要的作用。本设计提出了一种以嵌入式为基础的温度采集系统的设计方案,使得基于嵌入式系统做温度采集终端有较好的人机交互界面和系统高稳定性等特点。

本文介绍了整个硬件开发环境,bootloader的启动流程,Linux系统的架构,Linux内核的架构和根文件系统等相关知识。同时,本设计在软件方面主要编写了DS18B20的底层驱动程序,进行了Linux内核的配置编译,设计了QT顶层应用程序;在硬件方面主要设计了DS18B20的硬件电路,搭建了嵌入式交叉开发环境。通过综合调试最终实现了基于ARM9的嵌入式温度采集系统的设计。

嵌入式数据采集系统具备了发展潜力大,功耗低,稳定性高,可视化界面好,便于携带和功能可扩展的特性。

关键词:嵌入式系统;Linux内核;温度采集

Abstract

With the rapid development of embedded technology, the embedded terminal is playing an increasingly important role in the home and industry. The paper proposes a temperature collection system which is based on embedded system, and using the embedded terminal to do data collection will have characteristics of better man-machine interface and high stability.

This article describes the environment of hardware development, the boot process of bootloader, the architecture of Linux system, Linux kernel-related architecture, root file system architecture and other related knowledge. At the same time, this design mainly completed the programming of DS18B20's bottom-level driver, the configuration and compilation of the Linux kernel and the design of QT top-level application program in software. In the respect of hardware, the work includes of designing of the DS18B20's circuit and building the cross-tool development environment. Through synthesized debugging this project the design of the temperature collection system finally is realized, which is based on ARM9 embedded system.

The data collection terminal based on embedded system has the high potential for development, low power consumption, high stability, good visual interface, easy to carry and functions which can be expanded, and so on.

Key Words: Embedded System; Linux Kernel; Temperature Collection System

一、选题背景和意义

目前我国温室大棚技术已经在全国范围内被广泛应用,这一技术的诞生解决了北方人冬天没蔬菜的难题。温室大棚技术其关键技术在于对温室的温度进行严格控制,只有严格的温度控制才能保证棚内植物正常生长,而如何实现对温度的实时控制,显而易见温度采集作为大棚温控是一个不可忽略的环节,然而传统的温度采集系统一般稳定性不高,而且没有一个良好的人机交互界面,但是如果使用PC机作为温度采集系统就会大大提高生产成本,而且安装放置也很不方便。基于这一背景,本设计旨在通过设计一个基于ARM的嵌入式温度采集系统在成本高和稳定性差之间寻求一个平衡点。

基于ARM的嵌入式系统有诸多优点是传统电子系统无法比拟的,利用嵌入式开发技术本设计可以设计出具有良好的人机交互界面的实时系统,同时嵌入式系统最大的优点就是软硬件可裁剪,依据自己系统的需要可以进行灵活的软硬件设计开发,而且基于ARM的嵌入式系统开发成本低,而且系统稳定性高,功耗低,体积小,并且能够应用于多种应用场合[1]。这些优点就大大扩大了基于ARM的嵌入式系统的应用范围。

通过设计嵌入式温度采集一方面可以解决一些实际问题,但更为重要的是通过本设计是对自己大学四年学习的一个检验,由于大学期间没有学习有关嵌入式的相关知识,通过自学嵌入式开发的相关知识,让自己对嵌入式有一个深入的理解,为以后的学习工作奠定基础。

二、mini2440开发板的介绍 1.处理器S3C2440

Mini2440采用了S3C2440作为处理器[2]。S3C2440采用了ARM920T的内核,0.13μm的CMOS标准宏单元和存储器单元。其功耗低,体积小且静态设计特别适合于对成本和敏感性有特殊要求的实际应用。其总线采用了新的总线架构AMBA (Advanced Micro Controller Bus Architecture)。S3C2440其特点是CPU是一个16/32位ARM920T的RISC处理器,ARM920T具备MMU,AMBA,BUS以及Harvard高速缓冲体系结构。这一结构具有独立的16KB指令Cache和16KB数据Cache每个都是由具有8字长的行组成。通过一套完整的通用系统外设,S3C2440无需配置额外的组也同时减少整体系统成本。S3C2440集成了大量的片上功能,所以以S3C2440为核心处理器的mini2440开发板有丰富的接口资源可供开发者编程使用。

2.交叉开发环境

嵌入式系统的开发一般采用“宿主机-目标机”交叉开发方式[3]。首先,利用宿主上丰富的资源以及良好的开发环境来进行开发和仿真目标机上的软件,再通过H-JTAG口,UTAR口或者是以太网接口将生成的代码下载到目标机上进行运行。

本设计宿主机主要是使用装有RedHat5企业版Linux操作系统的PC机,而目标机就是mini2440开发板。组成架构如图2.1所示。

宿主机PC机串口、以太网接口、USB接口目标机Mini2440开发板

图2.1 嵌入式开发交叉环境构架

三、系统组成及DS18B20的驱动设计 1.系统硬件框图

本设计硬件系统方面比较简单,系统部分组成:一是系统控制部分,二是温度采集部分。 其中系统控制部分又包括以下几个部分:处理器、复位模块、显示模块、外部接口模块等四大部分组成。而温度采集本分主要由DS18B20电路组成。具体组成如图3.1所示。

显示模块其他接口CPU及存储器I/O接口测温模块复位模块 图3.1 测温系统硬件框图

2.DS18B20驱动设计

硬件驱动大体可以分为以下几类:网络接口驱动,字符设备驱动,块设备驱动[5]。字符设备是指按字节来访问的设备,字符驱动就负责驱动字符设备,这样的驱动通常实现read、write、open、和close的调用[4]。

Linux用户一般是通过操作设备文件来访问和操作各种设备的,所以用户想要使用DS18B20进行温度采集时,只需要对设备文件ds18b20进行打开、控制、读、写、关闭等一系列操作就可以控制DS18B20进行温度采集。

在字符设备中存在一种特殊的字符设备---混杂设备,这类设备的主设备号都是10,次设备号通过函数调用可已进行动态分配。本设计DS18B20的驱动就被划归为字符设备中的混杂设备。在驱动文件中只需要对DS18B20的时需进行读、写、复位时序描写。

四、bootloader相关知识 1.Bootloader背景知识

简单地说,bootloader就是在操作系统内核运行之前运行的一段小程序。通过这段小程序,本设计可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的运行环境。在嵌入式系统中,通常并没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由bootloader来完成。比如在一个基于ARM9的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的bootloader程序。

bootloaderLinux kernelRoot file system 图4.1 嵌入式系统软件层次结构

2.单片机主控模块

对于开发板mini2440有多种bootloader,例如 u-boot,supervivi,v-boot等等。他们之间的区别就是不同的bootloader可以引导不同内核。像supervivi能启动zImage,u-boot能启动uImage,而zImage和uImage的不同之处就在于在编译时生成内核的文件头不同。本设计采用的是supervivi作为bootloader来引导Linux内核。

Supervivi和许多bootloader一样它的启动也包括两个部分:stage1和stage2。Stage1主要实现的是硬件的初始化同时为stage2准备内存空间,并将stage2复制到内存中并设置堆栈,然后跳转到stage2。.

五、Linux内核 1.Linux内核简介

Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、虚拟文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。具体如图5.1所示:

系统调用接口(System Call Interface)进程管理Process Management内存管理Memory Management结构Arch虚拟文件系统Vritual File System网络协议栈Network Stack设备驱动Device Drivers 图5.1 Linux内核架构

2.配置编译生成zImage[5]

使用已经移植好的Linux-2.6.29内核进行zImage的生成,在此过程中通过内核编译的方式把DS18B20的驱动加载到内核当中,而不是使用内核模块的方式加载驱动程序,然后通过内核配置,编译最后生成zImage。添加DS18B20驱动界面如下图:

图5.2 添加设备DS18B20

六、QT测温应用程序 1.QT应用程序流程图

根据毕设要求,要设计一个直观的温度采集界面,能够实时显示为温度值,所以QT界面上能够同时显示时间和温度,使得操作者能够清楚地看到温度值和当前时间。应用程序具体流程如图6.1所示:

开始图形界面属性初始化1秒定时器开始定时判断能否打开设备DS18B20YY写入命令读取温度获取当前系统时间显示温度显示时间NN1秒定时是否结束结束

图6.1 应用程序流程图

2.QT应程序的设计

QT应用程序主要是通过QT designer进行设计的,根据毕设要求,要设计一个直观的温度采集界面,能够实时显示为温度值,所以QT界面上能够同时显示时间和温度,使得操作者能够清楚地看到温度值和当前时间。具体界面如下图:

[6]

图6.2 利用QT designer设计界面

通过在x86平台下通过配置编译最后看到在x86平台下QT应用程序的界面:

图6.3 x86平台下QT程序的运行结果

七、root_qtopia件系统和综合调试

虽然root_qtopia这个文件系统的GUI是基于Qtopia的,但其初始化启动过程却是由大部分由busybox完成,Qtopia(qpe)只是在启动的最后阶段被开启[7]。

在进行了上面步骤的前提下本设计得到了zImage 和root_qtopia.img文件,基于此基本上完成了设计然后进行综合调试[8],具体步骤如下:

(1) 安装bootloader:连接好超级终端并作如下设置、dnw、电源线,并把开关拨向Nor

Flash一端。在超级终端可以看到如下界面:

图7.1 串口超级终端设置

图7.2 用H-JTAG和H-JFlasher烧写vivi

图7.3 supervivi启动界面

(2) 分别通过选择“x”、“v”、“k”、“y”分别把supervivi下载到Nand Flash中然后把开

关拨向Nand Flash一侧,给开发上电,进入dev目录查看设备中是否有DS18B20。

图7.4 查看DS18B20设备是否存在

(3) 综合调试结果:

图7.5 综合调试结果图

参 考 文 献

[1] 孙戈,卢建军,高理.基于S3C2440的嵌入式Linux开发实例.西安:西安电子科技大学出版社,2010.

[2] 三星公司. S3C2440 User's Manual. http://www.arm9home.net/read.php?tid-8079.html. [3] 田泽.ARM9嵌入式开发试验与实践-基础实验篇.北京:北京航空航天出版社,2006. [4] 孙天泽. 嵌入式Linux开发技术.北京:北京航空航天大学出版社,2011. [5] 韦东山.嵌入式Linux应用开发完全手册.北京:人民邮电出版社,2005.

[6] 奇趣公司.QT white paper.http://wenku.http://www.wodefanwen.com//view/18c8390203d8ce2f00662344.html. [7] 百度文库.root_qtopia文件系统启动流程

http://wenku.http://www.wodefanwen.com//view/251bdb27a5e9856a56126021.html.

[8] 友善之臂.mini2440开发板用户手册. http://www.arm9home.net/read.php?tid-5682.html

本文来源:https://www.bwwdw.com/article/ormg.html

Top