《嵌入式程序设计课程设计》由会员分享,可在线阅读,更多相关《嵌入式程序设计课程设计(27页珍藏版)》请在金锄头文库上搜索。
1、课程设计课 程 名 嵌入式软件开发技术 题 目 基于嵌入式 Linux 的温度监测系统的 设计与实现 专 业 计算机科学与技术(嵌入式系统方向)班 级 13 计算机嵌入式系统班 学 号 学生姓名 2016 年 6 月I摘要温度是个很普遍而又非常重要的参数,在日常生活、工农业生产以及科研领域都有着广泛的应用。因此,研制能够准确地测量和记录这个参数值的系统具有十分重要的意义。基于 ARM 的嵌入式温度监测系统是采用嵌入式 Linux 作为操作系统,针对以 S5PV210 为处理器的开发板设计的一个嵌入式温度监测系统。论文在分析了 Linux 设备驱动程序的基本工作原理基础上,讨论了开发中经常会碰到
2、的中断处理、拥塞处理、I/O 端口,并在此基础上实现了基于S5PV210 嵌入式处理器的开、读、写、关外部 RAM 的字符设备驱动和网络驱动。结合高精度温度传感器 DS18B20,实现温度的正确采集,并通过以太网络将数据上传给上位机客户端。论文首先介绍了通信网络中各种设备特性、总线结构及传输技术,然后根据单片机与 PC 机之间的串行通信原理,用 ubantu 完成温度监测系统的软件设计与实现,为用户提供一个友好的人机界面,对监测系统进行控制并显示采集后的数据。本系统还通过多线程实现了多个客户端与服务器的通信。关键词关键词:S5PV210;嵌入式 Linux 操作系统;DS18B20;网络编程I
3、IAbstractTemperature is a very common and very important parameter, in daily life, industrial and agricultural production and scientific research fields have a wide range of applications. Therefore, it is very important to develop a system that can accurately measure and record the value of this par
4、ameter.The temperature monitoring system of base on the ARM is use of embedded Linux as the operating system for the processor to S5PV210 development board designed for an embedded temperature monitoring system. Based on the analysis of the basic working principle based on the Linux device drivers d
5、iscussed development often encounter interrupt handling, congestion handling, I / O ports, and on this basis to achieve the embedded processor based on open S5PV210 reading, writing, characters off the external RAM device driver and network drives. Combined with precision temperature sensor DS18B20,
6、 to achieve the correct temperature acquisition, and upload the data via Ethernet to a PC client.At first,the paper introduces the characteristics of various devices in a communication network, the bus structure and transmission technology, and according to the principle of serial communication betw
7、een SCM and PC, with ubantu complete temperature monitoring system software design and implementation, to provide users with a friendly man-machine interface, the monitoring system to control and display the data after collection. The system also enables communication via a plurality of multi-thread
8、ed client and the server.Key words:S5PV210; embedded Linux operating system; DS18B20; Network programming11.引言 11.1 设计背景及意义.11.2 设计的主要内容22.相关技术 22.1 嵌入式 Linux22.2 S5PV210 32.3 socket 网络编程33.具体实现功能.43.1 总体框架图 .43.2 客户端功能.53.3 服务器功能 .53.4 实验板输出信息.54.具体实现过程.54.1 交叉编译工具的安装.54.2 客户端模块的设计.64.3 服务器模块.84.4
9、LED 点亮模块104.5 温度感应模块.115.测试结果分析 135.1 各模块运行的效果.135.2 可扩展功能 .156. 总结与展望 152第一章 引言1.1 设计背景及意义温度作为工业、农业、国防和科研等部门最普遍的测量项目。它在工农业生产、现代科学研究以及高新技术开发过程中也是一个极其普遍而又非常重要的参数。因此,在这些领域中,对于这个参数的测量与控制就显得尤为重要,特别是在纺织工业、冶金、化工、食品、温室种植,汽车制造以及气象预报和科研实验室等许多地方,都具有举足轻重的作用。 以往这些工作大多是由人工完成,不但工作量大,记录的数据少,对温度的调节缺乏实时性,而且电路复杂,标定和校
10、准也比较麻烦,难以满足现代温度测量的要求1。自从传感器技术、微控制器技术和计算机技术日渐成熟之后,现代的温度测量与控制系统克服了以往系统中存在的一些问题,比如对环境温度的控制与调节以及数据的记录都由微控制器或计算机自动完成,人们的工作量大大地降低,而且测得的数据也更加的精确,对环境温度的调节更具有实时性2。1.2 设计的主要内容此次主要采用嵌入式 Linux 作为操作系统,针对以 S5PV210 为处理器的开发板设计的一个嵌入式温度监测系统。在 Linux 设备驱动程序的基本工作原理基础上,讨论了开发中经常会碰到的中断处理、拥塞处理、I/O端口,并在此基础上实现了基于 S5PV210 嵌入式处
11、理器的开、读、写、关3外部 RAM 的字符设备驱动和网络驱动。结合高精度温度传感器 DS18B20,实现温度的正确采集,并通过以太网络将数据上传给上位机客户端。温度监测系统根据 Linux 中的网络通信技术和串口通信技术来传输数据。用 ubantu 完成温度监测系统的软件设计与实现,为用户提供一个友好的人机界面,对监测系统进行控制并显示采集后的数据。本系统还通过多线程实现了多个客户端与服务器的通信。第二章 相关技术2.1 嵌入式 LinuxLinux 是 UNIX 系统的一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CP
12、U 的操作系统。它能运行主要的 UNIX 工具软件、应用程序和网络协议。支持 32位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它诞生与 1991 年的 10 月 5 日。以后借助与 Internet 网,并进过全世界各地计算机爱好者的共同努力下,现已成为世界上使用最多的一种 UNIX 类操作系统,并且使用人数还在迅猛增涨。本次设计采用 Linux 作为嵌入式操作系统的原因有以下几点:31) 低成本开发系统:2) 可应用于多种硬件平台3) 可定制的内核4) 性能优异5) 良好的网络支持42.2 S5PV210S5PV210 又名“
13、蜂鸟”(Hummingbird),是三星推出的一款适用于智能手机和平板电脑等多媒体设备的应用处理器。S5PV210 采用了 ARM CortexTM-A8 内核,ARM V7 指令集,主频可达1GHZ,64/32 位内部总线结构,32/32KB 的数据/指令一级缓存,512KB 的二级缓存,可以实现 2000DMIPS(每秒运算 20 亿条指令集)的高性能运算能力。包含很多强大的硬件编解码功能,内建 MFC(Multi Format Codec),支持 MPEG-1/2/4,H.263,H.264 等格式视频的编解码,支持模拟/数字 TV输出。JPEG 硬件编解码,最大支持 8000x8000
14、 分辨率内建高性能 PowerVR SGX540 3D 图形引擎和 2D 图形引擎,支持 2D/3D图形加速,是第五代 PowerVR 产品,其多边形生成率为 2800 万多边形/秒,像素填充率可达 2.5 亿/秒,在 3D 和多媒体方面比以往大幅提升,能够支持 DX9,SM3.0,OpenGL2.0 等 PC 级别显示技术。具备 IVA3 硬件加速器,具备出色的图形解码性能,可以支持全高清、多标准的视频编码,流畅播放和录制 30 帧/秒的 19201080 像素(1080p)的视频文件,可以更快解码更高质量的图像和视频,同时,内建的 HDMIv1.3,可以将高清视频输出到外部显示器上。2.3
15、 socket 网络编程Socket 是进程通讯的一种方式,即调用这个网络库的一些 API 函数实现分布在不同主机的相关进程之间的数据交换。4几个定义:(1)IP 地址:即依照 TCP/IP 协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的 IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通讯前必须要分配一个没有被访问的端口号。5(3)连接:指两个进程间的通讯链路。(4)半相关:网络中用一个三元组可以在全局唯一标志一个进程:(协议,本地地址,本地端口号)这样一个三元组,叫做一个半相关,它指定
16、连接的每半部分。(4)全相关:一个完整的网间进程通信需要由两个进程组成,并且只能使用同一种高层协议。也就是说,不可能通信的一端用 TCP 协议,而另一端用 UDP 协议。因此一个完整的网间通信需要一个五元组来标识:(协议,本地地址,本地端口号,远地地址,远地端口号)这样一个五元组,叫做一个相关(association),即两个协议相同的半相关才能组合成一个合适的相关,或完全指定组成一连接。6第三章 具体实现功能3.1 总体框架图图 1 项目总体框架图3.2 客户端功能1)显示简单的用户界面2)发送命令给服务器3)接收服务器传输的数据4)显示温度数据73.3 服务器功能1)接收客户端发送的命令2)处理命令3)把命令转发给硬件4)获取硬件处理所得的数据5)把该数据传给客户端3.4 实验板输出信息1) LED 灯按照客户端的指令亮灭2) 蜂鸣器唱歌3)核