1、内蒙古科技大学毕业设计说明书(毕业论文)毕业设计说明书基于ARM的嵌入式温度监测系统摘 要随着科技的发展,嵌入式系统的发展也异常迅速,同时,嵌入式系统已经应用于各个方面,给人们的生产和生活带来了极大的便利。目前嵌入式系统的应用已经发展到了嵌入式处理器与操作系统相结合的阶段,本设计就是将ARM处理器与Linux操作系统相结合实现的。嵌入式温度监测系统由温度监测硬件系统和温度监测软件两部分组成。其中硬件系统包括SBC2410开发套件,温度检测电路、信号放大电路及信号显示终端,论文中按模块对各部分硬件的设计进行了详细的介绍。温度监测软件系统的设计过程如下,本设计首先为温度监测系统构建Linux环境,
2、其次在Linux下编写并加载系统驱动程序,然后编写应用程序,编译并下载到ARM开发板中。经过反复调试,实现了温度监测的功能。关键词: ARM;linux;内核;驱动;温度监测 内蒙古科技大学毕业设计说明书(毕业论文)Embedded System of Temperature Testing Based on ARMAbstractWith the development of science, embedded system develops at a fast speed. Embedded system has been applied to all aspects, which has
3、 brought great convenience to peoples production and daily life. At present, the application of embedded system have been developed to the stage of combining embedded processor with operating system, and the design comes true based on combining the ARM processor with linux operating system. Embedded
4、 temperature measurement system includes temperature monitoring hardware and software systems. Hardware system includes SBC2410 system development kit, temperature detection circuit, signal amplifier circuit and signal display terminal. This paper, in detail, introduces the hardware design according
5、 to modules. The process of the design of temperature measurement software system is as follows: First,the design construct Linux environment for temperature measurement the system .Secondly, the design compiles and loads driver program in Linux; At last, the design writes, compiles and downloads th
6、e application program to ARM development board. After repeated debugging, the design achieves the purpose of the temperature measurement.Key words: Linux ; ARM ; Kernel ; Drivert ; Emperature measurement内蒙古科技大学毕业设计说明书(毕业论文)目 录摘 要IAbstractII第一章 嵌入式系统简介11.1 嵌入式系统的概念11.2 嵌入式系统的结构11.3 嵌入式系统与普通单片机开发的不同之处
7、21.3.1 交叉编译21.3.2 交叉调试3第二章 设计用嵌入式模块52.1 ARM处理器52.2 Flash模块52.3 SDRAM模块62.4 JTAG调试器8第三章 温度监测电路设计103.1 AD590的室温补偿电路103.1.1 性能103.1.2 误差校正103.1.3 AD590的补偿电路设计113.2 热电偶的测温电路123.2.1 热电偶的测温原理123.2.2 热电偶的测温电路设计14第四章 温度监测系统的Linux构建174.1 构建交叉编译器174.1.1 交叉编译器174.1.2 设置共享文件夹,并解压linux开发包174.1.3 安装交叉编译器184.2 Lin
8、ux操作系统194.2.1 引导加载程序204.2.2 内核214.2.3 文件系统234.3 烧写244.3.1 Windows下烧写vivi244.3.2 分区格式化Flash及重新下载vivi254.3.3 烧写linux内核274.3.4 下载文件系统27第五章 温度监测系统的软件编程285.1 编写Linux下的ADC驱动程序285.1.1 Linux设备295.1.2 驱动程序的编写说明325.1.3 驱动程序编写的具体内容345.1.4 ADC驱动程序具体函数的分析365.1.5 ADC驱动程序的加载和删除395.2 编写应用程序415.2.1 线性化部分415.2.2 A/D转
9、换速率的计算445.2.3 主程序的编写45第六章 温度监测的调试476.1 编译ad驱动程序476.2 运行应用程序486.2.1 为ARM开发板更新内核和文件系统486.2.2 编译main.c应用程序486.2.3 运行main 主程序49总结51参考文献52附录54附录A:程序源代码54附录B:测温原理图68附录C:ARM板电路图69致谢70内蒙古科技大学毕业设计说明书(毕业论文)第一章 嵌入式系统简介1.1 嵌入式系统的概念嵌入式系统是不同于常见计算机系统的一种计算机系统,它不以独立设备的物理形态出现,即它没有一个统一的外观,它的部件根据主体设备以及应用需要嵌入在设备的内部,发挥着运
10、算、存储、以及控制的作用。从体系结构上看,嵌入式系统主要由嵌入式处理器、支撑硬件和嵌入式软件组成。其中嵌入式处理器常是单片机或微控制器;支撑硬件主要包括存储介质、通信部件和显示部件;嵌入式软件则包括支撑硬件的驱动程序、操作系统、支撑软件以及应用中间件等。1.2 嵌入式系统的结构嵌入式系统一般由3个部分组成,如图1.1所示:嵌入式系统硬件平台、嵌入式操作系统及嵌入式系统应用。其中,嵌入式系统硬件平台指各种嵌入式器件、设备,嵌入式操作系统是指在嵌入式硬件平台上运行的操作系统,目前主流的嵌入式操作系统有嵌入式linux、C/OS-II等,具体应用那种嵌入式操作系统应视具体情况而定。嵌入式linux提
11、供了完善的网络技术支持,C/OS-II操作系统也成为实时操作系统或RTOS,使用它作为开发工具将会使实时应用程序变得相对容易。 图1.1 嵌入式系统嵌入式芯片需要必要的外围芯片给它提供基本的工作条件。一个嵌入式芯片供电系统为其供电;必须有时钟信号系统提供时钟信号;必须有复位系统。嵌入式芯片还需要有存储系统。如果芯片内部没有存储器或存储器容量不足以满足需求,则需要外扩存储芯片。调试接口也是嵌入式系统不可缺少的一部分。这些嵌入式处理器运行的必要条件的电路或者芯片与嵌入式处理器一起构成了嵌入式处理器的最小系统。最小系统结构框图如图1.2: 图1.2 最小嵌入式系统1.3 嵌入式系统与普通单片机开发的
12、不同之处按照软件工程的原理,嵌入式开发软件的一般流程为需求分析、软件概要设计、软件详细设计、软件实现和软件测试。与一般软件开发的区别在于软件实现的编译和调试两部分。1.3.1 交叉编译 由于宿主机和目标机的体系结构不同,在宿主机X86平台上可以运行的程序在目标机ARM平台上无法运行,因此嵌入式软件开发采用交叉编译方式在一个平台上生成可以在另一个平台上执行的代码。编译的主要工作就是将程序转化成该程序的CPU所能识别的机器代码。进行交叉编译的主机称为宿主机,也就是普通的通用计算机,宿主机系统资源丰富,使用的方便地集成开发环境和调试工具。 程序实际运行的环境称为目标机,也就是嵌入式系统环境。嵌入式系
13、统的系统资源紧缺,存储空间、处理器运行速度等很有限,并且没有相关的编译工具,因此,嵌入式系统的开发需要借助宿主机来编译出目标机的执行代码。由于编译的过程包括编译、链接等几个阶段,因此,嵌入式的交叉编译也包括交叉编译和交叉链接等过程,通常,ARM的交叉编译器为arm-elf-gcc,交叉链接器为arm-elf-ld,一般可执行文件是ELF格式。如图1.3所示。1.3.2 交叉调试嵌入式软件编译和链接完成后即进入调试阶段。调试器与被调试的程序一般运行在同一台计算机上,调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。在嵌入式软件开发中的调试方式采用的是交叉调试,调试器运
14、行在宿主机上的通用操作系统之上,被调试的进程运行在基于特定硬件平台的嵌入式操作系统中。宿主机与目标机通过串口或者网络进行通信。调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试的运行状态。嵌入式系统的交叉调试方法主要有两种:硬件调试和软件调试,它们共同的特点如下:调试器运行在宿主机上,而被调试的进程运行在目标机上。调试器通过串口、并口、网络、JTAG等控制被调试进程。在目标机上,一般会具备某种形式的调试代理与调试器共同配合对目标机上的进程进行调试。这种调试代理可能是某些支持调试功能的硬件设备,也可能是某些专门的调试软件。目标机可能是某种形式的系统仿真器,通过在宿主机上运
15、行目标机的仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但是逻辑上仍然存在这宿主机和目标机的区别22。第二章 设计用嵌入式模块2.1 ARM处理器 ARM处理器当前有6个产品系列:ARM7、ARM9、ARM9E、ARM10E、ARM11和SecurCore,其中ARM11是最近推出的产品。ARM7、ARM9、ARM9E、ARM10E是4个通用处理器系列。每个系列提供一套特定的性能来满足设计者对功耗、性能、体积的需求。SecurCore是第5个产品系列,是专门为安全设备而设计的。在本设计中,我们用的是ARM9处理器。下面对ARM9进行相应的介绍。ARM9系列于199
16、7年问世。由于采用了5级指令流水线,ARM9处理器能够运行在比ARM7更高的时钟频率上,改善了处理器的整体性能;存储器系统根据哈佛体系结构(程序和数据空间独立的体系结构)重新设计,区分了数据总线和指令总线。ARM9系列的第一个处理器是ARM920T,包含独立的数据指令Cache和MMU。次处理器能够被用在要求有虚拟存储器支持的操作系统上。此系列的ARM922T是ARM922T的变种,只有一半大小的数据指令Cache。ARM940T包含一个更小的数据指令Cache和一个MPU。它是针对不要求运行操作系统的应用而设计的。ARM920T、ARM940T都执型v4T架构指令13。2.2 Flash模块
17、Flash存储器是一种可在的系统的(In-System)进行电擦写,掉电后信息不丢失的存储器。它具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程(烧写)、擦除等特点,在体积、抗震性方面都有很大的优势,并且可有内部嵌入式算法完成对芯片的操作,因而在各种嵌入式系统中得到了广泛的应用。作为一种非易失性存储器,Flash在系统中用于存放程序代码、常量表以及一些在系统掉电后需要保存的用户数据等。常用的Flash为8位或16位的数据宽度,编程电压为单3.3V。Flash闪存是非易失性存储器,可以对存储器单元块进行擦写和再编程。任何Flash器件进行写入操作前必须先进行擦除。Flash按结构分为NO
18、R和NAND两大类。NAND器件执行擦除操作十分简单,而NOR则要求在进行擦出前,现将目标块内所有的地址都写0。擦除NOR器件时是以64128KB的块进行的,执行一个写入/擦除操作的时间为15s;擦除NAND器件是以832KB的块进行的,执行相同的操作最多只需要4ms。执行擦除时,块尺寸的不同进一步拉大了NAND和NOR之间的差距。NOR的特点是芯片内执行,这样应用程序可以直接在Flash闪存内运行,不必再把代码读到系统ARM中。NOR的传输速率很高,在14MB的小容量时具有极高的成本效益,但是很低的写入和擦除速度大大降低了它的性能。NAND结构能提供极高的单元密度,可以达到高存储密度,并且写
19、入和擦除的速度的都很快,应用NAND的难点在于Flash的管理和需要特殊的接口。NOR主要用在代码存储介质中,NAND适合于数据存储22。2.3 SDRAM模块SDRAM与Flash不同,它不具有掉电保护数据的特性,但其存取速度大大高于Flash存储器,且有读/写的属性,因此SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。当系统初始化后,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统及用户堆栈、运行数据也都放在SDRAM中。SDRAM具有单位空间存储容量大和价格便宜的优点,已经广泛应用在各种嵌入式系统
20、中。SDRAM的存储单元可以理解为一个电容,总是倾向于放电,为不免数据丢失,必须定时刷新(充电)。因此要在系统中使用SDRAM,就要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。SDRAM是高速的动态随机存取存储器,它的同步接口和完全流水线的内部结构使其拥有极大的数据速率,目前SDRAM时钟频率已经达到100MHz以上。另外,它们的行列地址线共用,有行地址选通(CAS),列地址选通(RAS)信号分时控制。基本存储单元是内存芯片中存储信息的最小单位,每个存储单元可以存储1bit的信息,并且有一个由行地址和列地址共同定义的唯一的地址。我们知道8bit可以组成1byte,而字节是内
21、存中最小的寻址单元。虽然内存基本存储单元具有唯一的地址,但是并不能进行独立的寻址,这将要求内存芯片有数以百计的引脚同计算机通信,显然这是不可能的。现在内存架构是处于同一列的基本存储单元共用一条列地址线,而处于同一行的基本存储单元共用一条行地址线,组成一个基本单元构成的矩阵框架。而这些内存框架构成一个内存bank,SDRAM内存以bank为组织,可由行列地址寻址。另外,为了保持内部数据还必须进行刷新。要知道SDRAM的结构特点,就必须先了解DRAM器件的结构特点。DRAM存储一个位的消息只需要一只晶体管,但是需要周期性的充电,才能使保存的信息不丢失,DRAM的一个存储位单元如图2.1所示:图2.
22、1只是DRAM一个基本单位的结构示意图,电容器的状态决定了这个DRAM单位逻辑状态是1还是0。一个电容可以存储一定量的电子或者电荷,一个充电的电容器被认为是逻辑上的1,而“空”的电容器则是0。但是电容被利用的这个特性也是它的缺点。因为电容器不能持久的保持存储的电荷,所以内存需要不断定时刷新,才能保持暂存的数据。电容器可以用电流来充电;同时,电容的充放电需要一定的时间,虽然对于内存基本单位中的电容来说这个时间很短,大约只有0.180.2s,但这个期间内存是不能执行存取操作的。 图2.1 DRAM的原理图SDRAM的存储单元的基本原理同前面提到的DRAM基本一样,但是这些存储单元的组织和控制与DR
23、AM就有相当大的差别了。SDRAM是多bank 结构22。2.4 JTAG调试器JTAG是英文“Joint Test Action Group(联合测试行为组织)”的词头字母的简写, 是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试及对系统进行仿真、调试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从J
24、TAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效,GND。 JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-System Programmable;在线编程),对FLASH等器件进行编程。 JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板
25、上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程。在硬件结构上,JTAG 接口包括两部分:JTAG 端口和控制器。与JTAG 接口兼容的器件可以是微处理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、ASIC 或其它符合IEEE1149.1 规范的芯片。IEEE1149.1 标准中规定对应于数字集成电路芯片的每个引脚都设有一个移位寄存单元,称为边界扫描单元BSC。它将JTAG 电路与内核逻辑电路联系起来,同时隔离内核逻辑电路和芯片引脚。由集成电路的所有边界扫描单元构成边界扫描寄存器BSR。边界扫
26、描寄存器电路仅在进行JTAG 测试时有效,在集成电路正常工作时无效,不影响集成电路的功能。JTAG也可以实现对电路版的Flash编程。要通过JTAG接口对系统板上Flash编程,可以利用专用的硬件控制器或独立的编程器来访问JTAG器件实现,也可以直接用电缆线把PC机并行口与嵌入式系统的微处理器的JTAG引脚连接起来,由PC机上的程序模拟JTAG时序实现。嵌入式系统的Flash芯片的地址线、数据线和控制信号线接到嵌入式系统带JTAG接口的微处理器相应的引脚上,在对Flash编程时,PC机上运行的程序控制PC机发送指令或数据到嵌入式系统微处理器内部的边界扫描寄存器里,再把此数据或指令通过JTAG专
27、用指令传送到Flash,从而将代码写入Flash中22。第三章 温度监测电路设计能够把非电量转换为电量的器件称为传感器,传感器实质上是一种功能块,其作用是将来自外界的各种信号转换成电信号。随着技术的不断进步,传感器也有了飞速的发展,体积变得越来越小,精度越来越高,功能也越来越强大。传感器的种类繁多,在本次设计中所要用到的是温度传感器,要选择适当的传感器以满足设计要求。温度传感器:温度传感器就是把温度信号转换成电信号的传感器。在本次设计中,我选用的是K型热电偶和用于温度补偿的AD590做为测温元件。3.1 AD590的室温补偿电路3.1.1 性能集成温度传感器AD590 是一种高内阻、电流输出型
28、的两端器件, 其检测灵敏度为1 A/K。由于其内部采用最新的薄膜电阻激光微调技术作最后定标, 故其具有很高的检测精度。AD590 的特点是:(1) 两端器件:电压输入,电流输出;(2) 线性电流输出:1A/K;(3) 较宽的检测范围:- 55 + 155;(4) 极好的线性:在工作范围内非线性误差 0. 5;(5) 较宽的工作电压:+ 4+ 30V。3.1.2 误差校正经过激光微调定标的AD590 芯片,其灵敏度为1A/K,输出电流值(A ) 可直接表征绝对温度(K)。但由于客观因素,使封装后的变换器灵敏度可能有所偏离。为了消除这种误差,可采用单点校正电路进行校正。如图3.1所示,在一定温度下
29、,调节R2,使A、B 两端输出电压V 0 (毫伏) 刚好等于绝对温度值(K) ,这时输出电压灵敏度为1mV/K。经校正后,大大减小了误差,同时也减小了误差对温度的依赖,即减小了误差温度系数20。图3.1 AD590校正电路在使用AD590之前,必须对其进行校正,假如要是AD590输出的是0时的电压,就要进行如下校正:先把AD590放进冰水混合物中,然后调整AD590电路图中的电阻R2,使其输出为273.15mv。在测室温时,室温为n度,那输出的电压为:V0=273.15+n,单位为mv。3.1.3 AD590的补偿电路设计图3.2 AD590室温补偿电路AD590只是在校正的温度的周围测量相对
30、来说要精确,有时我们为了得到更精确的测量结果,我们把AD590的零点调整在室温点上,这样就能使得测量结果更精确了。例如:室温在一般情况下为25,那么我们就应该调整电阻R2,使AD590的输出为:V0=273.15+25,单位为mv。在这种情况下,室温稍有变动,我们就能准确地得出室温变动的幅度,这样更有利于我们的测量,使得我们的测量结果有更小的误差。但是AD590的输出级别是mv级别,而我们的单片机的串口不能感受到这微小的变化,那么就需要对AD590的输出进行放大,这样才能使得单片机能获得这个信号。如图3.1所示,输出的信号经过两个放大器进行放大,就可以得到正的信号,也就能让单片机识别了。在本设
31、计中,单片机的串口电压是3.3V,所以AD590的信号经过放大后不能超过3.3V。假如说放大器的放大倍数是10倍,那末AD590的输出最大也就只能是330mv,330-273.15=56.85,也就是说,在这种情况之下,室温可测的最高温度是56.85,但是现实中,室温很难达到这温度,放大10倍完全可以满足测量的需求。在上图中,我们用的是两级的负放大:第一级是放大倍数,第二级的作用是使输出为正。 (3-1)第一级放大倍数。 (3-2) 第二级放大倍数,此级的作用是改变符号。 所以: (3-3)3.2 热电偶的测温电路 3.2.1 热电偶的测温原理热电偶选用的是镍铬-镍硅热电偶,分度号为K。该种热
32、电偶的正极为含铬10%的镍铬合金,负极为含3%的镍硅合金。它的负极亲磁,用磁铁可以很方便鉴别出热电偶的负极。它的特点是使用温度计范围宽,高温下性能较稳定,热电偶与温度的关系近似线性,价格便宜,因此它是目前用量最大的一种热电偶。它适于在氧化性气氛中连续使用,短期使用温度为1200度,长期使用温度为1000度。K型热电偶是氧化性较强的贱金属热电偶。不适宜在真空、含碳、含硫气氛及氧化与还原交替的气氛下裸丝使用。热电偶是工业上最常用的温度检测元件之一。其优点是:测量精度高。测量范围广。构造简单,使用方便。热电偶就是利用热电效应来工作的。将两种不同材料的导体或半导体A和B焊接起来,构成一个闭合回路。当导
33、体A和B的两个执着点1和2之间存在温差时,两者之间便产生电动势,因而在回路中形成一个大小的电流,这种现象称为热电效应。热电势与两端温度的关系式为:由于热电偶的材料一般都比较贵重,而测温点到仪表的距离都很远,为了节省热电偶材料,降低成本,通常采用补偿导线把热电偶的冷端(自由端)延伸到温度比较稳定的控制室内。热电偶补偿导线的作用只起延伸热电极,使热电偶的冷端移动到控制室,它本身并不能消除冷端温度变化对测温的影响,不起补偿作用。因此,还需采用其他修正方法来补偿冷端温度t00时对测温的影响。在使用热电偶补偿导线时必须注意型号相配,极性不能接错,补偿导线与热电偶连接端的温度不能超过100。从测温原理中可
34、以看出,热电偶回路产生的热电势由热电偶工作端温度和自由端温度函数确定。如果自由端温度保持恒定,则热电偶热电势就变成为工作段温度的单值函数。在实际使用热电偶时,往往由于环境和现场条件等限制,自由端不能维持在0度,因此需要对热电偶冷端温度进行补偿或修正。设热电偶工作端温度为t,冷端为。此热电偶也可能处于工作端温度为。冷端温度为,则有 (3-4) (3-5)两式相加得 (3-6)所以, (3-7)各种热电偶的分度表都是在冷端为0是制成的,如果在实际应用热电偶的冷端不是0,而是中间的某一温度tn时,则热电偶输出的热电势应为。根据该热电偶的分度表,则可从分度表上查得,将此值与测量值求和,即可计算出,在查
35、该热电偶的分度表,即可求得工作端温度t9。3.2.2 热电偶的测温电路设计数据采集部分是利用热电偶测量现场温度,它需要冷端温度补偿,是使用AD590测得的温度数据进行补偿的,这个过程使用程序计算处理的。用三运放高共模抑制比放大电路可将热电偶测得数据进行放大处理后,送到A/D中转换接口,再送到单片机内进行处理。结合图3.3具体解说如下:热电偶的输出信号从这里进入滤波和放大电路,经这里出来后就可以进入单片机了,从而被单片机识别。刚进入电路,是两个电容,一个是电解电容,一个是普通的电容。他们的作用是滤除电磁波等有害因素。由于他们的电容值不一样,所以他们能滤除波段的也不尽相同。当然,我们也可以多接几个
36、电容,那样我们就可以滤除更多的有害因素,但是那样就会增加我们的成本。要滤除有害的因素,也可以通过其他的途径,比如说:增大电容值可以加大滤除的效率,但是当电容值增大到一定程度的时候,器滤波的效果就不会对这电容值的增大而增加,所以电容值就要选取合适的值,不能太大,也不能太小,这样不但能有效的滤除有害因素,还能节省我们的成本。在这里,我们所取得电解电容值是2.2F ,电容所取的值是0.1F。图3.3 热电偶测温电路中间的两个电阻和一个滑动变阻器共同组成了该电路的调零部分。通过调节滑动变阻器可以使在没有输入的条件下,是输出为零,这样可以大大减小测量的误差,从而提高测量的精度。之后是三个运算放大器构成了
37、共模抑制比的放大电路,其放大倍数将在下面推导。推导过程如下:我们假设上面的运放器的输出为V01,输入为Vi1;下面的运放器的输出为V02,输入为Vi2;最后的运放器的输出为V0。 (3-8)R6为滑动变阻器,主要用于调节放大倍数。由 得, (3-9)由 得, (3-10)由(3-9)式-(3-10)式,得 (3-11) (3-12)到此为止,前面两个运算放大器是组成的放大器的放大倍数已经证明完成。第三个运放是双输入单输出的运算放大器,它的放大倍数推导过程如下:当V01单独作用的时候,输出V0为: (3-13)也就是普通的运算放大器负放大。当V02单独作用的时候,输出V0为: 由 (3-14)得
38、 (3-15)所以, (3-16)又因为 所以 (3-17)综上所述,输出为: (3-18) 式(3-18)为最终的输出,而R5是为了使整个电路的安全而设置的,R4和R8为固定电阻17。第四章 温度监测系统的Linux构建4.1 构建交叉编译器4.1.1 交叉编译器arm-linux-gcc 是一个用于linux-2.4.18内核的交叉编译器,它包括编译器、汇编器连接器、调试器、库函数等。交叉编译器就是在一个平台上生成能够在另外一个平台上运行的代码。平台包括两个概念:体系结构和操作结构。同一个体系可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。由于ARM目标板上无法安
39、装所需的编译器,只好借助于宿主机,在宿主机上对即将运行在目标机上的应用程序代码进行编译,这就是安装交叉编译器的意义。4.1.2 设置共享文件夹,并解压linux开发包此方法要求开机是进入root用户,按照以下步骤进行:(1)在虚拟机的界面下,选择菜单条的VMsetting,弹出一个画面,点击options,选择shared folders,点击右侧窗口的内的add,进行共享文件设置。本设计所设置的共享文件夹是:F/mag文件夹。(2)选择菜单条的VMInstall VMware Tools,安装tools工具完成后,在linux系统里的界面上出现光盘图标:Vmware Tools,在/mnt/
40、cdrom/下自动挂载Vmware Tools压缩包。以后在光驱中放入光盘,则光盘图标的名称会变为放入光盘的名称。(3)在linux系统的终端里,进入系统的根目录,执行命令:cp /mnt/cdrom/Vmware Tools-5.0.0-03124.tar.gz /tmp(4)进入系统的/tmp目录,执行命令:cd /tmptar zxvf Vmware Tools-5.0.0-03124.tar.gz解压时间约为15s,解压后,在/tmp/生成vmware-tools-distrib文件,大小为112.6MB。(5) 进入新生成的文件夹:vmware-tools-distrib,执行命令:
41、 cd vmware-tools-distrib./vmware-install.pl 遇到询问时点击enter回车键,看到“yes?”时输入“y”回车,最后输入“2”,可看到执行过程,完成后又回到终端。成功后,可在/mnt/hgfs目录下看到共享文件夹:mag。至此,虚拟机和主机之间的设置共享文件夹完毕。解压/mnt/hgfs/mag/linux/ 的linux开发包:tar xvzf /mnt/hgfs/mag/linux/sbc2410v6_linux-2.4.18_sdk.tgz C /另外,也可以把linux 开发包放在移动存储设备中,在linux系统下挂载移动存储设备后在解压开发包
42、。4.1.3 安装交叉编译器解压安装光盘中的编译器arm-linux-gcc-2.95.3.tgz,版本是2.95.3,在编译linux2.4.18版本时使用该编译器。(1) 解压安装设置共享完毕后,可解压 /mnt/hgfs/mag/linux/arm-linux-gcc-2.95.3.tgz c /解压时间为25s,解压成功后,将在/usr/local/目录下生成arm文件夹,此文件夹大小为177.2MB。解压前,/usr目录下大小为4.0G,解压后 /usr目录下的大小变为4.2G。(2)在根目录下,选择/etc/profile,再右键点击打开形式gredit,则进入编辑状态键入有下划线
43、一行即可。 #path maniplation if id-u=0; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin pathmunge /usr/local/arm/2.95.3/bin fi(3)重新启动系统并以root身份登录(4)在终端命令行输入arm-linux-gcc -v检查编译器是否安装: #arm-linux-gcc v回车后,显示如下信息则说明交叉编译器已安装: Reading specs from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2
44、.95.3/specs gcc version 2.95.3 20010315(release)4.2 Linux操作系统微处理器产生以来,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构,那么限制嵌入式系统发展的瓶颈就突出表现在了软件方面。尽管从八十年代末开始,陆续出现了一些嵌入式操作系统,比较著名的有Vxwork、pSOS、Neculeus和Windows CE。但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了开发者的积极性。另外,结合国内实情,当前国家对自主操作系统的大力支持,也为源码开放的LINUX的推广提供的广阔
45、的发展前景。还有,对上层应用开发者而言,嵌入式系统需要的是一套高度简练、界面友善、质量可靠、应用广泛、易开发、多任务,并且价格低廉的操作系统。在不久的将来,从冰箱到收音机都会内置处理器。因为Linux的开放性,许多人认为Linux非常适合多数Internet设备。他们认为Linux可以支持不同的设备,支持不同的配置。Linux对厂商不偏不倚而且成本极低,能够很快成为用于各种设备的操作系统。如今,业界已经达成共识:即嵌入式Linux是大势所趋,其巨大的市场潜力与酝酿的无限商机必然会吸引众多的厂商进入这一领域。 嵌入式Linux系统从软件的角度看通常可以分为4个层次:(1)引导加载程序。包括固化在固件中的启动代码(可选)和Bootloader两大部分。(2)内核。特定于嵌入式板子的定制内核以及控制内核引导系统的参数。(3)文件系统。包括根文件系统和建立于Flash内存设备之上的文件系统。通常用Ramdisk作为根文件系统。它是提供管理系统的各种配置文件以及系统执行用户应用程序的良好的运行环境的载体。(4)用户应用程序。特定于用户的应用程序。有时在用户应用程序和内核层之间可
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100