基于嵌入式开发版的DS18B20数字测温系统_第1页
基于嵌入式开发版的DS18B20数字测温系统_第2页
基于嵌入式开发版的DS18B20数字测温系统_第3页
基于嵌入式开发版的DS18B20数字测温系统_第4页
基于嵌入式开发版的DS18B20数字测温系统_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、封面郑州大学毕业设计毕业论文亲爱的同学本论文仅供参考,不要害怕,辩论没有不过的题 目: 基于嵌入式开发版的DS18B20数字测温系统 指导教师: 职称: 学生姓名: 学号: 专 业: 院系: 完成时间: 年 月 日摘要 随着科技的进步和开展,嵌入式技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比拟成熟的技术。 本文主要介绍了一个基于TQ2440嵌入式系统开发板的DS18B20数字测温系统,该系统可以方便的实现温度采集和显示,并可根据需要任意设定上下限报警温度。重点对传感器在ARM开发板下的硬件连接,软件设计以及各模块系统流程进行了详尽地分析总结,核心控制局部采用三星公司的ARM9系

2、列芯片s3c2440以及DALLAS公司生产的数字温度传感器,该测温系统硬件连接简单,可以直接连接开发板即单总线双向传输。难点在于软件设计,DS18B20驱动模块以及LCD驱动模块设计。即核心控制器s3c2440移植了嵌入式Linux操作系统和Qt图形界面函数库,采用C语言编写操作系统串口驱动程序,采用C+开发Qt图形界面程序。 本设计遵循嵌入式开发的通用流程:首先配置编译uboot作为系统引导程序,然后裁剪编译Linux内核,编写用户应用程序,最后制作包含用户应用程序的YAFFS根文件系统。本设计基于交叉编译环境进行编译调试,最终将上述编译好的镜像文件烧写入开发板完成整个嵌入式系统的开发。

3、TQ2440与DS18B20数字温度传感器结合实现最简温度检测系统,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:TQ2440、DS18B20、嵌入式Linux、Qt开发AbstractWith the advancement of technology and development,embedded technology has spread to the way we live,work,research in various fie

4、lds,has become a relatively mature technology.This paper describes a TQ2440 based on the embedded system development board DS18B20 digital temperature measuring system, the system can facilitate the realization of temperature acquisition and display, and can be arbitrarily set the alarm temperature.

5、 Focus on the sensor in the ARM development board under the hardware connection, software design and system flow of each module has carried out detailed analysis and summary, the core control part adopts the Samsung ARM9 series chip S3C2440 and DALLAS companys digital temperature sensor, the tempera

6、ture measurement system hardware connection is simple, can be directly connected to that of a single bus bidirectional transmission development board. The difficulty lies in the software design, the DS18B20driver module and LCD drive module design. The core controller S3C2440transplant of the embedd

7、ed Linux operating system and Qt interface function library, using C language operating system serial port driver, using C + + development Qt graphical interface program.The design follows the embedded development process: first of all, the general configuration compiler uboot as the system boot, th

8、en cut to compile the Linux kernel, user applications, finally making contains user application YAFFS root file system. Based on the design of cross compiler compiler environment debugging, finally the compiled file burned into the development board to complete the whole embedded system development.

9、TQ2440 and DS18B20 digital temperature sensor based on temperature detection system, for our daily life and industrial and agricultural production, temperature measurement, but also can be used as a temperature processing module embedded in other systems, as the other main system auxiliary extension

10、. The system has the advantages of simple structure, strong anti-interference ability, suitable for harsh environment on-site temperature measurement, and has wide application prospect.Key words: TQ2440, DS18B20, Linux embedded ,Qt development目录1 绪论1.1嵌入式测温系统的开展背景 目前嵌入式系统渗透到我们生活的各个领域,几乎很难找到哪个领域没有ARM

11、的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的平安保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开嵌入式系统。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,嵌入式系统的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。 在工、农业生产和日常生活中,对温度的测量及控制占据着极其重要地位。首先让我们了解一下嵌入式DS18B20温度检测系统在各个方面的应用领域:消防电气的非破坏性温度检测,电力、电讯设备之过热故障预知检测,空调系统的

12、温度检测,各类运输工具之组件的过热检测,保全与监视系统之应用,医疗与健诊的温度测试,化工、机械等设备温度过热检测。温度检测系统应用十分广阔。本设计基于上述情况,利用价格较低的设备完成了嵌入式DS18B20测温系统的设计,可以满足结构简单、结果精确数字测温要求。1.2相关技术的开展现状本设计涉及到得技术领域有:嵌入式系统软硬件开发和DS18B20数字温度传感器等相关技术。嵌入式技术的开展现状 嵌入式系统是一种以计算机技术为根底,以应用为中心,软件硬件可剪裁的适应应用系统对功能、可靠性、本钱、体积、功耗等严格综合性要求的专用计算机系统。它是一个技术密集,不断创新的基于硅片的知识集成系统。嵌入式系统

13、是从通用计算机系统开展出来的一个分支,但其又区别于原有的通用计算机系统,我们把嵌入到对象体系中,实现对象体系智能化控制的计算机,称作嵌入式计算机系统。因此,嵌入式系统诞生于微型机时代,嵌入式系统的嵌入性本质是将一个计算机嵌入到一个对象体系中去。但是,微型计算机的体积、价位、可靠性都无法满足广阔对象系统的嵌入式应用要求。 因此,嵌入式系统必须走独立开展道路。这条道路就是芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立开展的时代。具体到本设计,采用的是以ARMAdvanced RISC Machines为架构的三星s3c2440芯片,ARM是一个公司的名字,同时又是按照本公司设计的芯片

14、内部结构制作的通用芯片的名称。基于ARM技术的微处理器应用约占据了32位RISC微处理器75以上的市场份额,ARM技术已经渗入到我们生活的各个方面。数字测温传感器的开展现状 温度是表征物体冷热程度的物理量, 是国际单位制中七个根本物理量之一, 它与人类生活、工农业生产和科学研究有着密切关系。随着科学技术水平的不断提高, 温度测量技术也得到了不断的开展。温度传感器有四种主要类型:热电偶、热敏电阻、电阻温度检测器(RTD)和IC温度传感器。IC温度传感器又包括模拟输出和数字输出两种类型。接触式温度传感器的检测局部与被测对象有良好的接触,又称温度计。 我国在温度传感器生产产业化过程中,应该兼顾引进国

15、外技术和自主创新两方面。在引进国外先进技术中,可以提高自己的技术,同时也满足了国内市场的需求,形成了传感器生产产业规模。 另外,它有广阔的市场,因为它在石油化工、冶金、电力等多个行业均用量很大。 近年来,传感器正处于传统型向新型传感器转型的开展阶段。新型传感器的特点是微型化、数字化、智能化、多功能化、系统化、网络化,它不仅促进了传统产业的改造,而且可导致建立新型工业和军事变革,是21世纪新的经济增长点。1.3本设计研究意义 本系统采用ARM TQ2440系列S3C2440系列芯片和可编程串行I/O接口芯片DS18B20为中心器件来设计数字温度计,实现了设计一个数字温度采集系统,利用LCD液晶屏

16、显示当前温度、时间和日期。1.4课题设计过程1、需求分析根据课题所要到达的目标,进行总体设计。首先要对用户的要求,控制对象,硬件资源以及现场的情况做出调研,尤其是对用户的要求要详细询问记录,并做好备案,以免日后做大的修改,浪费人力物力,还有可能耽误合同期。2、系统总体设计按照需求分析中的要求,确定系统地功能及结构框图,完成整个系统地软硬件的总体规划。软硬件设计本课题硬件连接简单,只需要将DS18B20传感器的DQ口连接到TQ2440GPIO口,VCC连接到TQ2440VCC口,GND连接到TQ2440口,不需要其他额外的电路链接,此系统电路连接简单方便。引导程序 BootLoader和Embe

17、dded Linux 操作系统的裁减和移植,根文件系统的构建,总线接口在linux下驱动程序的编写,QT用户界面应用程序的开发。4、嵌入式开发环境构建以及调试在主机上构建嵌入式开发环境,完成Linux环境的建立,ARM-Linux-GCC交叉编译环境的建立构建QT可移植的图像开发环境主机开发环境与目标机开发环境。利用RS232串口、USB接口、以太网接口等构成开发调试嵌入式程序的整套工具。1.5论文结构第 1 章,绪论。本章简单介绍了数字温度传感器地研究现状,研究意义以及系统研究的内容及结构。第 2 章,系统的需求分析。根据任务书中的所要求的系统应完成的目标,选择核心控制器和各个子模块,确定各

18、个子模块与核心控制器的主要功能。第 3 章,系统总体分析。根据系统所要到达得目标,结合嵌入式系统的结构特点,给出了整个系统的总体设计方案。第 4 章,软硬件设计。硬件设计:首先简单介绍ARM微处理器,即S3C2410 微处理器(TQ2440),然后介绍DS18B20温度传感器相关参数。软件设计:嵌入式Linux软件架构设计和DS18B20驱动程序设计以及QT图形界面程序设计。第 5章,系统整体调试。将系统的所有程序下载到开发板上进行软硬件综合调试过程。第6章,总结与展望。系统的主要工作,系统的缺乏,以及将来改良的方向。2 系统需求分析2.1LCD温度显示功能 随着科学技术的开展,提高工作效率,

19、我们需要明确温度测量的精确性、简单性、方便性。在这种情况下我们需要使用一种技术实现温度的测量TQ2440嵌入式ARM开发板软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以完成对DS18B20控制工作TQ2440在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟。 为满足工农业的温度测量需要我们选择TQ2440开发板和DS18B20传感器的硬件组合,又由于LCD可同时显示温度和时间,显示清晰,实现功能全。所以使用TQ2440开发板套装,上面集成了LCD显示器,驱动厂家已编写好,只需要编写相应的DS18B20驱动程序就可

20、以实现对DS18B20传感器的实时控制,连接方便,操作简单。 2.2时间日期显示功能 通过编写相应QT驱动函数在LCD上显示当前时间和温度,使系统更趋于完善,还可以通过键盘对时间日期进行相应的调整。3 系统总体分析3.1系统功能模块设计利用控制芯片、温度传感器、LCD液晶屏、时钟资源、LED等分别实现:1实时显示当前室内温度2显示年、月、日、星期、时、分、秒;3能够通过LCD键盘输入日期和时间的初值;4温度超限报警;图3.1为系统功能模块框图温度传感器显示ARM9TQ2440报警模块按键图3.1系统功能模块框图系统初始化后,LCD上显示当前室内温度 ,同时LCD上显示时间和日期,通过功能键能实

21、现日期和时间的初值设定。 3.2系统结构模块设计1设计思路:温度只要在所设定的上下温度界限内,就会在显示设备中精确的显示出来,如果温度超过了所设定的温度界限,就发出报警声。能够及时向温度监控人员发出温度超限信息。便于温控人员及时的调整与控制。另外此温度控制器操作简单,体积小,灵敏度高,精度高。2总体设计方框图: 图3.2系统结构模块框图方框图所示为数字温度控制器的单体设计方框图。其工作原理为:当该电路上电工作以后,首先刷新显示LED,然后,温度传感器采集温度送单片机检查温度的上下,由ARM送出信号经过驱动电路送往显示电路。3.3系统硬件设计方案嵌入式处理器芯片选择嵌入式技术开展的核心是嵌入式微

22、控制芯片技术的开展。当今微控制芯片功能变得越来越强,种类更为繁多,如 MIPS,PowerPC,X86,ARM,PIC 等,但这些嵌入式处理器受到价格以及兼容性等因素要求的限制,应用状况有所不同。MIPS 和 PowerPC 处理器市场定位较高,对于本钱敏感的应用并不适宜,而 x86系列处理器要与 8068、286、386 等保持兼容性,x86系列的处理器采用的是复杂指令计算机CISC从而限制了CPU 系统性能的提高。 与其他嵌入式处理器相比,ARM 体系处理器的优点是能兼顾到高性能、低功耗和低价格。首先ARM是一款精简指令计算机RISC,这类处理器的效率比复杂指令计算机有很大的提高,同时采用

23、5级流水线操作,大大提高了处理速度。在这里我们选择TQ2440其芯片类型是S3C2440。以下图为ARM TQ2440板载硬件设备说明:图3.3.1TQ2440接口电路图1、电源接口: 请一定注意输入电压不要大于7V,TQ2440标配的电源适配器是5V供电。在不清楚适配器输出电压时,请像适配器的供给商确认输出电压或自行用电压表测试输出电压:以防止因为输入电压过高而导致开发板出现损坏的情况。 注意:请尽量使用天嵌科技提供的标配电源适配器或其他稳定的5V供电源。2、Nor/Nand选择开关: 说明:这个开关只有V2.0的TQ2440开发板的底板才有,对于V1.0的TQ2440开发板的底板Nor和N

24、and选择在电源开关旁边的接口上当从Nor Flash启动时,请在开发板开机前将该开关拨到远离绿色接口的地方。当从Nand Flash启动时,请在开发板开机前将该开关拨到靠近绿色接口的地方。3、音频输入输出接口: TQ2440提供的音频接口完全按照标准接口提供,绿色为音频输出接口,红色为音频输入接口。4、USB接口(USB Host和USB Slave): 在TQ2440开发板中有两个USB接口,一个是USB A口开发板上面的USB_HOST接口,作为HOST使用,主要用于接U盘,USB摄像头等设备:另外一个是USB B口开发板上面的USB_Deive接口,使用标配的USB延长线,连接到PC,

25、用于传输数据。当使用USB下载功能时,需要连接标配提供的USB延长线到开发板和PC直接。建议,当下载完毕后,请及时把USB线拔掉。5、RTC备份电池: 默认出厂是安装了电池的,如果遇到快递公司或国家邮政法规规定不让邮递电池时,出厂就没有安装电池。6、串口接口串口0RS232和三个串口扩展接口3.3V电平: 串口在TQ2440开发板的使用中是非常重要的接口之一,TQ2440可以通过它用PC和开发板直接进行交互操作、传输数据、完成调试等。TQ2440开发板提供的标配串口线是直连串口线,在使用开发板时请把串口线的一段接开发板的串口接口,另外一端接PC的串口接口,然后就可以通过串口进行交互等操作了。三

26、串口扩展接口引出的串口的TX和RX引脚均是3.3V电平,如果需要使用232电平,请扩展MAX3222或者SP3232EEN芯片转成232电平。网络接口RJ45网络座子:TQ2440开发板提供了100M网卡接口。在启动操作系统后,接上网线就可以进行上网等操作:在uboot的下载模式下面可以使用TFTP下载数据到开发板。7、复位按钮: 硬件重启开发板时使用。8、Jtag接口: 在TQ2440开发板中,Jtag的用途是当Nand Flash或Nor Flash中没有uboot时,使用它烧写uboot进去:或者是进行仿真时使用它。使用时请接上TQ2440提供的Jtag板到开发板的Jtag接口和PC的并

27、口接口,然后再使用Jtag软件进行烧写或仿真操作。说明:当不使用Jtag烧写时,请拔掉Jtag线。9、系统总线接口: 引出了数据总线和地址总线等,详细管脚定义请查看光盘配套的原理图。10、用户按钮: 使用中断功能的4个用户按钮.11、AD输入测试电阻: 在Linux或无OS中可以测试ADC接口AIN2 管脚。12、Camera接口: 在接camera时,请把镜头侧对外、13、蜂鸣器PWM控制: 使用PWM控制蜂鸣器。14、蜂鸣器/LCD电压选择接口: 翻开或关断蜂鸣器的电源,选择LCD供电电压。15、用户LED灯: 使用GPIO口控制的LED灯。16、LCD接口LCD接口1和2: 在接LCD接

28、口是请注意排线接口的定位方向,请不要接反了。说明:这两个接口是使用的相同的数据线和控制线,唯一不同的是一个是FPC接口而另外一个是插针式的接口。注意:在使用东芝屏的时候,请注意不要碰到LCD驱动板背后的高压包了,虽然天嵌科技已经对高压包的高压输出脚打胶隔离了,但是可能会被电到,造成不必要的麻烦。17、0SD卡接口: 接SD卡时,接口面朝下插入即可。18、电源指示灯: 正常开机后,将会点亮红色的LED灯。19、电源开关: 控制着整个开发板的供电,需要开机时请拨动该开关到靠近电源指示灯的方向,关机时拨动该开关到反方向。20、AT24C02: IIC接口的EEPROM芯片,用于测试IIC接口。21、

29、GPIO接口:不光包含GPIO口,还包含了AIN0到AIN3 SPI IIC等接口。 数字温度传感器选择数字温度传感器是就是能把温度物理量和湿度物理量,通过温、湿度敏感元件和相应电路转换成方便计算机、plc、智能仪表等数据采集设备直接读取得数字量的传感器。数字温湿度传感器输出数字信号分类:RS232数据格式接口、 RS485数据格式接口、一总线数据格式接口、CAN总线数据格式接口、ZIGBEE数据格式接口、TCP/IP数据格式接口、占空比输出。在这里我们选择DS18B20温度传感器,其安装方便操作简单。 DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形

30、式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。DS18B20支持“一线总线接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。该温度传感器电路可实现对温度传感器DS18B20数据的读写,具体控制方法如下:ARM9的GPIO口连接DS18

31、B20的DQ口,控制串行数据的读和写;DS18B20 的VDD连接到ARM9开发板的VDD上;DS18B20 的GND连接到ARM9开发板的GND上;DS18B20外部结构如以下图DS18B20内部结构如以下图 图 DS18B20数字传感器的内部结构3.4系统软件设计方案软件设计主要包括嵌入式操作系统环境的选择以及在此系统下进行应用程序的开发。嵌入式操作系统选择 嵌入式操作系统根据应用场合可以分为两大类:一类是面向消费电子产品的非实时系统,这类设备包括个人数字助理PDA、移动 、机顶盒STB等;另一类那么是面向控制、通信、医疗等领域的实时操作系统。实时系统Real Time System是一种

32、能够在指定或者确定时间内完成系统功能,并且对外部和内部事件在同步或者异步时间内能做出及时响应的系统。在实时系统中,操作的正确性不仅依赖于逻辑设计的正确程度,而且与这些操作进行的时间有关,也就是说,实时系统对逻辑和时序的要求非常严格,如果逻辑和时序控制出现偏差将会产生严重后果。 目前已经出现了很多嵌入式操作系统,如 Vxwork、pSOS、ECOS、Neculeus 和Windows CE,但这些专用操作系统都是商业化产品,其高昂的价格使许多低端产品的小公司望而却步;而且,源代码封闭性也大大限制了嵌入式系统的开发和应用。而嵌入式操作系统uC/OS-II虽然开放源代码,但其只有一个实时内核,没有内

33、存管理和文件管理等模块的支持,因此其只适合于简单的任务数目较少的应用,而对于复杂的应用那么无能为力。 所以在本设计中采用嵌入式Linux作为操作系统,具体来说,嵌入式Linux 还具有如下几大优势:1、 广泛的硬件支持Linux 能够支持 x86、ARM、MIPS、ALPHA、PowerPC 等多种体系结构,目前已经成功移植到数十种硬件平台,几乎能够运行在所有常用的 CPU 上。Linux有着异常丰富的驱动程序资源,支持各种主流硬件设备和最新硬件技术,甚至可以在没有存储管理单元MMU的处理器上运行,这些都进一步促进了 Linux 在嵌入式系统中的应用。2、 内核高效稳定Linux 内核的高效和

34、稳定已经在各个领域内得到了大量事实的验证,Linux 的内核设计非常精巧,分成进程调度、内存管理、进程间通信、虚拟文件系统和网络接口五大局部,其独特的模块机制可以根据用户的需要,实时地将某些模块插入到内核或从内核中移走。这些特性使得 Linux 系统内核可以裁剪得非常小巧,很适合于嵌入式系统的需要。3、 开放源码,软件丰富Linux 是开放源代码的自由操作系统,它为用户提供了最大限度的自由度,由于嵌入式系统千差万别,往往需要针对具体的应用进行修改和优化,因而获得源代码就变得至关重要了。Linux 的软件资源十分丰富,每一种通用程序在 Linux 上几乎都可以找到,并且数量还在不断增加。在 Li

35、nux 上开发嵌入式应用软件一般不用从头做起,而是可以选择一个类似的自由软件做为原型,在其上进行二次开发。4、 优秀的开发工具开发嵌入式系统的关键是需要有一套完善的开发和调试工具。传统的嵌入式开发调试工具是在线仿真器In-Circuit Emulator,ICE,它通过取代目标板的微处理器,给目标程序提供一个完整的仿真环境,从而使开发者能够非常清楚地了解到程序在目标板上的工作状态,便于监视和调试程序。在线仿真器的价格非常昂贵,而且只适合做非常底层的调试,如果使用的是嵌入式 Linux,一旦软硬件能够支持正常的串口功能时,即使不用在线仿真器也可以很好地进行开发和调试工作,从而节省了一笔不小的开发

36、费用。嵌入式 Linux 为开发者提供了一套完整的工具链,它利用 GNU 的 gcc 做编译器,用 gdb、kgdb、xgdb 做调试工具,能够很方便地实现从操作系统到应用软件各个级别的调试。5、 完善的网络通信和文件管理机制Linux 支持所有标准的 Internet 网络协议,并且很容易移植到嵌入式系统当中。此外,Linux 还支持 ext2、fat16、fat32、romfs 等文件系统,这些都为开发嵌入式系统应用打下了很好的根底。综上所述,本系统采用嵌入式Linux操作系统作为操作系统。图形用户界面程序选择在用户应用程序方面采用采用Qt应用程序库进行编程。Qt 是一个跨平台的 C+ 图

37、形用户界面库,由挪威 TrollTech 公司出品,目前包括Qt,基于Framebuffer的Qt Embedded,快速开发工具 Qt Designer,国际化工具 Qt Linguist 等局部 Qt 支持所有 Unix 系统,当然也包括 Linux,还支持 WinNT/Win2k,Win95/98 平台。根本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界 面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 具有以下优点:1.优良的跨平台特性:2.面向对象3.丰富的 API4.支持 2D/3D 图形渲染,支持 O

38、penGL5.大量的开发文档6.XML 支持基于以上特性,在软件系统的设计方面采用嵌入式Linux与QT Embedded相结合的方式。4软硬件设计4.1软硬件整体流程整体-温度测量-?驱动?显示-?软硬件-硬件整体设计:ARM9 TQ2440系统实现如下功能:1控制温度传感器DS18B20读取当前温度值;2控制ARM9内部时钟资源读取时间和日期;3控制LCD液晶屏显示当前温度、时间和日期;图硬件整体连接DS18B20温度传感器的设计软件整体流程设计:以下图为系统主流程图,主流程图具体介绍如下:1系统初始化包括对DS18B20进行初始化、设定GPIO、RTC初始化、液晶屏初始化;2初始化之后显

39、示当前室内温度同时显示日期和时间;3与此同时进行按键判断,如果有按键继续判断是什么按键,如果是修改时间按键那么修改时间;如果是修改日期按键那么修改日期。如没有按键按下,那么判断室内温度是否超过预先设定值,如果超过驱动LED闪烁报警。以下图为系统主流程图:开始系统初始化显示时间、日期、温度有按键?NYNY修改年?修改年值NY修改月?修改月值NY修改日?修改日值NY修改周?修改周值NY修改时?修改时值NY修改分?修改分值温度超过限?YNLED闪烁报警图系统主流程图以下图为温度传感器功能模块流程图:开始初始化温度传感器向温度传感器写指令读取温度传感器数据数据转化为温度显示结束图温度传感器功能模块流程

40、图以下图为液晶显示功能模块流程图:开始LCD初始化写命令到LCD写数据到LCD显示图液晶显示功能模块流程图以下图为TQ2440开发板的接口引脚连接说明:图TQ2440开发板引脚图DS18B20 DQ口连接到TQ2440的GPG14口上,控制数据的读和写;DS18B20的VDD口连接到TQ2440 的的VDD口上;DS18B20的GND口连接到TQ2440的GND口上。4.2嵌入式软件架构本系统的软件系统主要有三个层次:嵌入式Linux系统的编译移植、底层驱动程序的开发、上层应用程序的开发。以下图为嵌入式Linux开发中程序的层次图:图4.2 嵌入式系统层次结构图4.3引导装载程序bootloa

41、der4.3.1Bootloader 设计Bootloader 引导程序是嵌入式开发很重要的组成局部。Bootloader 引导程序最根本的功能是对硬件系统的初始化和内核启动参数设置并启动内核。Bootloader的存储器映射如以下图所示:图 Bootloader的存储器映射Bootloader的主要功能有: 初始化 CPU 的主频、SDRAM、中断、串口等硬件; 启动 Linux 内核并提供一个 RAMDISK; 通过串口下载内核或 RAMDISK 到目标板上; 将修改正的内核或 RAMDISK 写入到 Flash 内; 为用户提供一个命令接口。在嵌入式系统开发过程中,Bootloader

42、还与主机通信,不断检测从主机传来的控制信息和数据信息,完成相应的操作。Linux 运行在保护模式下,但是当机器启动复位的时候却处于实模式下。所以写 Bootloader 的工作也是在实模式之下的。 Bootloader 的 stage1stage1 是 Bootloader 一开始就执行的操作,其目的是为了 stage2 的执行以及随后的内核的执行,设置好一些根本的硬件环境。包括以下步骤 :1屏蔽中断。为中断提供效劳的通常是操作系统,因此在执行 Bootloader 的过程中可以不响应任何中断。中断屏蔽通过写 CPU 的中断屏蔽存放器来完成;2设置 CPU 的时钟频率和速度;3初始化 RAM

43、设置系统的内存控制器的功能存放器和各内存库控制存放器等;4为 stage2 准备 RAM 空间;5装载stage2 到 RAM 中;6到 stage2 的入口点。 Bootloader 的 stage2stage2 的主要的功能是通过串口下载 Linux 内核到目标板上。 包括以下几个步骤:1初始化本阶段要使用到的硬件设备。这通常包括:初始化至少一个串口,以便和终端用户进行 I/O 输出信息;初始化计时器等。2系统的内存映射。所谓内存映射就是指在整个 4GB 物理地址空间中有哪些地址范围被分配用来寻址系统的 RAM 单元。3将内核映像和根文件系统从 Flash 读入到 Rom 中。这里包括两个

44、方面:a内核映像所占用的内存范围;b根文件系统所占用的内存范围。在规划内存占用的布局时,主要考虑基地址和映像的大小两个方面。4内核的启动参数。5调用内核。Bootloader 调用 Linux 内核的方法是直接跳转到内核的第一条指令处。4.3.2 Bootloader 启动流程根据 bootloader 的原理可以得出启动代码的典型流程如以下图所示。在设计中,采用的是开源的U-boot,然后根据本设计用到的具体芯片进行相应的配置,编译生成了可移植的 boot_linux2.6.bin 文件,供烧录到Flash中做引导程序使用。图启动代码的典型流程进过上述的Bootloader的启动过程,程序指

45、针直接跳转到内核代码的起始处,引导程序将处理器的控制权交给内核。4.4Linux内核的配置与编译在嵌入式系统开发中,Linux内核的编译处于软件开发的第一步,首先必须获得最新版本的内核。进入Linux-文件夹内。如果机器上已有2.6.26内核代码,也可以直接使用,可以使用make distclean命令去除上次编译的遗留物。准备结束后,开始配置内核。在本机编译内核时,我们可以直接make menuconfig之类,就可根据当前机器内核的配置产生.config文件。但对于嵌入式当然就很困难。幸好Linux支持上百种平台。对于不同平台都有默认的配置文件,对于本设计中使用的arm处理器,可以在/ar

46、ch/arm/configs文件夹下看到。要根据自己所使用的平台来选择。如本次使用S3C2440的处理器,可以选择s3c2440_defconfig。之后需要修改Makefile中的相关选项,选择正确的交叉编译器,编译成镜像文件。这里编译成make zImage ARCHarm CROSS_COMPILE=arm-Linux- zImage。图4.4 内核配置单4.5根文件系统的编译一般情况下,Linux的根文件系统应包含有以下目录:/dev设备文件节点用目录。如果使用设备文件系统,那么把它挂载到这里/proc挂载proc文件系统/bin存储系统根本命令的目录/etc系统启动配置等脚本/lib

47、系统默认的动态链接库目录/usr用户目录/sbin存储系统根本命令的目录/tmp临时目录,此目录不是必需的/var包含系统一般运行时要改变的数据,通常这些数据所在的目录大小是要经常变化的构建Linux根文件系统需要用到busybox中编译生成的文件,然后利用mkyaffs2image软件制作YAFFS文件系统映像。YAFFS 文件系统嵌入式Linux 下常见的文件系统类型如下: RomFS:只读文件系统,可以放在 ROM 空间,也可以在系统的 RAM 中,嵌入式Linux 中常用来作根文件系统; RamFS:利用 VFS 自身结构而形成的内存文件系统,使用系统的 RAM 空间; JFFS/JF

48、FS2:为 Flash 设计的日志文件系统; YAFFS:专门为 Nand Flash 设计; proc:为内核和内核模块将信息发送给进程提供一种机制,可以查看系统模块装载的信息; devFS:设备文件系统。YAFFS,Yet Another Flash File System,是一种类似于 JFFS/JFFS2 的专门为Flash 设计的嵌入式文件系统,也是一个开源的文件系统。与 JFFS 相比,它减少了一些功能,因此速度更快、占用内存更少,具有很好的可移植性,能够在 linux,uclinux,和 wince 下面运行。考虑到本设计中使用的为Nand Flash,所以采用YAFFS文件系统

49、。4.6DS18B20驱动程序开发由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在

50、进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。(1)DS18B20的复位时序(2)DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。(3)DS18B20的写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间

51、能够正确地采样IO总线上的“0电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。具体DS18B20驱动程序见附录。4.7Qt图形界面程序的开发Qt是一个跨平台的C+图形用户界面库,由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的Qtopia Core、快速开发工具Qt Designer和国际化工具Qt Linguist等局部。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNT/Win2k、Windows 95/98平台。根本上Qt同X-Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC

52、、OWL、VCL、ATL是同类型的。真正使得Qt在自由软件界的众多Widgets如Lesstif、Gtk、EZWGL、Xforms及fltk等中脱颖而出的还是基于Qt的重量级软件KDE。Qt虽然是商业公司的产品,但是走的却是开源路线,提供免费下载,全部都是开放源代码,非商业用途亦采用GPL的版权宣告,著名的Open SourceKDE工程便是采用Qt开发的。Trolltech也针对嵌入式环境推出了Qt/Embedded产品。与桌面版本不同,Qt/Embedded已经直接取代了X Server及X Library等角色,将所有的功能全部整合在一起。Qt/Embedded同样具有跨平台的特点,省掉

53、了不少移植软件的功夫,这样的概念和Java十分接近。同时它还采用模块化设计,其最大的好处是有弹性,Qt/Embedded号称最小,可以缩到800 KB左右,最多可以长到3 MBfor Intel x86,这样的弹性也让Qt/Embedded更适合在嵌入式环境下生存。Qt/Embedded类库完全采用C+封装。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面。它的类库接口完全兼容于同版本的Qt-X11,使用X下的开发工具可以直接开发基于Qt/Embedded的应用程序QUI界面。Qt/Embedded当前已经升级为Qtopia Core和Qtopia Core,继承了Qt4

54、的新技术,包括:高性能渲染引擎、模板容器类及基于行为的主窗口架构,改良的功能特点包括文本渲染与多线程技术。当编译Qtopia Core时,可以去除不用的功能,以最小化软件的占用空间。Qtopia Core是一个为嵌入式设备上的图形用户接口和应用开发而订做的C+工具开发包。Qtopia Core采用与桌面版本同样的一套API,但在其内部实现上作了很多出色的调整来适应硬件有所限制的嵌入式环境。Qtopia Core包含多个Qt工具,可以进行快速和优化开发,如Qt 4增强的GUI布局和窗体构建器Qt Designer。Qtopia Core与Qt/X11最大的区别在于Qtopia Core不依赖于X

55、 Server或Xlib,而是直接访问帧缓存FrameBuffer,这样显著减少了内存消耗。Qt中的对象通讯是通过信号与槽机制来实现的,信号与槽是Qt的核心机制,它是一种高级接口,是Qt区别于其它工具包的最具特性的局部。信号与槽机制取代原始的回调和消息映射机制,信号与槽是类型平安的,完全面向对象的,并且它们之间的耦合比拟松散,可以使得我们编写的通信程序更为简洁明了。当一个特定的事件发生时,一个被指定的信号就被发射,槽那么是响应信号的函数,如果存在一个槽和该信号相连接,那在该信号被发射后,这个槽就会立刻执行。多个信号可以连接一个槽,一个信号也可以连接多个槽,甚至可以把信号与信号相连接。信号与槽构

56、造了一个强大的组件编程机制,可以创立彼此互不了解的对象,利用信号就可以把信息正确的传递到对应的槽函数进行处理。以下图为所开发的用户界面及程序:5系统开发调试过程5.1Linux环境的建立建立交叉编译环境需在主机上安装Linux操作系统,主机主要用于运行操作系统和系统应用软件,目标板所用到的操作系统的内核编译、应用程序的开发和调试那么需要通过宿主 PC 机来完成。双方之间一般通过串口、并口或以太网接口建立连接关系。通常主机和目标板上的处理器不同,主机通常为 Intel 处理器或者与其兼容的处理器,而目标板的处理器为 S3C2410,所以程序需要使用针对处理器特点的编译器才能生成在相应平台上可运行

57、代码,这就需要在主机上建立arm-linux-gcc交叉编译环境,在编译交叉编译器时可以选择开发所需的主机和目标机从而建立开发环境。一般的嵌入式开发采用过程中,主机安装Linux系统方的式有两种:直接安装Linux系统;安装虚拟机,在虚拟机下安装Linux系统。在此,我选择直接在虚拟机下安装Linux系统u-boot。5.2建立主机与目标机的编译调试环境在主机上安装好Linux系统之后,自动安装了GCC编译器,这个编译器可以编译X86下的应用程序,而我们编译的程序需要在ARM体系结构下运行,所以需要安装arm-linux交叉编译器来完成这项工作。交叉编译器可以根据用户自己的需要自行配置、编译,

58、也可使用已经编译好的EABIEmbedded application binary interface。EABI,即嵌入式应用二进制接口,是描述可连接目标代码,库目标代码,可执行文件影像,如何连接,执行和调试,以及目标代码生成过程,和c,c+语言接口的标准,是编译连接工具的根底标准,也是研究它们工作原理的根底。在下载了EABI后,需要将arm-linux-gcc和arm-linux-g+的路径添加到系统的默认环境路径下,这样在编译应用程序时系统调用才可以找到这些编译器,对程序源码进行编译,连接,生成可执行文件。对于本设计的实际情况,具体执行顺序如下:1、将EABI复制到/home/admini

59、strator/arm/目录下。2、更改系统配置文件bash.bashrcshell的配置文件,更改此文件后, 系 统将自动添加EABI的目录到环境变量中。3、使用 source /etc/profile 命令,使刚刚设置的环境变量生效。将EABI下的目录添加到环境变量后交叉编译工具的建立工作已经完成,在主机上可以利用arm-linux-gcc与arm-linux-g+编译Linux内核,根文件系统,应用程序等。5.3Bootloader的配置与编译本设计中使用开源的u-boot作为Linux的引导程序。下载好u-boot源码,解压u-boot,进入目录,修改Makefile:加上EmbedS

60、ky_config: unconfig$(MKCONFIG) $(:_config=) arm arm920t EmbedSky NULL s3c24x0修改使用的处理器:ARCH=arm指定交叉编译器:CROSS_COMPILE = arm-linux-修改完Makefile后,执行make TX2440_config 即可编译成功。5.4内核的裁剪和安装一、下载并解压源码1、使用文件:linux-.4_20210531.tar.bz2,解压命令:#tar xvfj linux-.4_20210531.tar.bz2 -C /将源码解压到/opt/EmbedSky/linux-.4目录下2、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论