第10章嵌入式Linux综合项目实例第十章嵌入式Linux综合项目实例嵌入式Linux在实际中的应用非常广泛,本书前面各章介绍了嵌入式各个模块、各个软硬件的原理和实验,本章将向读者介绍一些基于嵌入式Linux的实际项目。读者通过阅读前面内容,已经有了嵌入式的概念,初步了解了如何开发简单的嵌入式程序,理解了嵌入式编程的一般流程以及软硬件环境的使用。在此基础上,我们将综合利用各个模块、软硬件环境开发具体的实际项目。主要内容第一节基于嵌入式平台的电梯监控系统第二节硬件设计基础知识第三节硬件设计中应注意的一些问题一、系统功能框图二、功能简介三、体系结构四、功能解析图五、基本设计概念六、效果图第一节基于嵌入式平台的电梯监控系统第一节基于嵌入式平台的电梯监控系统——一、系统结构本系统基于客户/服务器结构,ARM2410S嵌入式开发板作为电梯服务端,PC机为客户端。客户端在Linux下开发,客户端和服务端之间通过Socket通信第一节基于嵌入式平台的电梯监控系统——二、功能简介1.视频图像采集结构:根据Video4Linux标准视频接口进行编程时所采用的结构体,包括视频采集部分的4个关键结构体video_capability、video_picture、video_mbuf、video_mmap。2.键盘驱动file_operations数据结构:缩减基本键盘驱动功能建立的键盘驱动结构体,如open()、close()、read()等等。3.电梯运行结构:模拟电梯的基本结构,主要包括当前电梯的状态、上下楼状态、目标楼层数组和当前电梯所在的楼层。一旦模拟电梯开发运行就会不断更新该结构体内数据。4.Socket网络传输结构:选用的网络传输协议、客户机IP、客户机进程端口号、服务器端IP和服务器端进程端口号。5.缓冲区结构:图像缓冲区为JPEG文件,电梯缓冲区为电梯数据结构体,Socket网络传输缓冲区是长度为1000个字节的字符数组。6.QT界面显示结构:在监控中心接收服务器端传送过来的图像和电梯数据信息后利用QT界面进行显示.。QT界面上分成两个区,左半区采用Qframe控件用于视频图像的显示,右半区采用Qpushbutton按钮用于显示电梯数据。第一节基于嵌入式平台的电梯监控系统——三、体系结构第一节基于嵌入式平台的电梯监控系统——四、功能解析图第一节基于嵌入式平台的电梯监控系统——五、基本设计概念(1)服务器端1.视频采集模块:采用WEBEYEV2000摄像头,编译并加载OV511驱动程序;利用Video4Linux标准视频处理接口进行视频图像的采集;交叉编译JPEG库并移植至开发板,从而实现对视频图像数据的JPEG压缩,以减小网络传输负担。2.小键盘电梯模拟模块:17键小键盘区模拟电梯的按钮区,键盘1~9数字键分别对应电梯的9个楼层,适当修改键盘驱动,使其能够随时读取键值;同时选择同方向优先的电梯算法实现电梯的运行。3.Socket网络传输模块:采用Linux下的Socket编程方法,利用TCP协议建立现场和监控中心的连接并发送相关数据。(2)客户端1.Socket网络接收模块:采用Linux下的Socket编程方法,利用TCP协议建立现场和监控中心的连接并接收相关数据。2.客户端显示模块:将服务器端采集的视频图像和电梯运行状态直观地显示在客户端主机上。第一节基于嵌入式平台的电梯监控系统——六、效果图一、系统功能框图二、功能简介三、体系结构四、基本设计概念五、效果图第二节基于蓝牙技术的嵌入式点菜系统第二节基于蓝牙技术的嵌入式点菜系统——一、系统功能框图本系统采用C/S结构,以上述模型为原型,实现了简单的基于蓝牙技术的点菜系统。将嵌入式开发板ARM2410S作为无线点菜器,即客户端;PC机作为后台管理端,即服务器端,服务器端在Linux下开发。客户端和服务器端之间通过蓝牙进行无线通信服务器端有数据库,用于存储菜单信息和消费信息。为了方便,在客户端也创建了数据库,其中存储了菜单信息和房间信息,因此客户端不能很好地动态共享菜单信息和房间使用信息,所以本系统只适合点对点方式。第二节基于蓝牙技术的嵌入式点菜系统——二、功能简介蓝牙通信本地数据库本地数据库点菜信息结账房间号客户端PDA服务端菜单管理消费结账开台点菜第二节基于蓝牙技术的嵌入式点菜系统——三、体系结构Sqlite数据库Sqlite数据库蓝牙模块蓝牙模块图形界面图形界面Qt库支持Qt库支持Sqlite接口Sqlite接口蓝牙接口蓝牙接口Qt接口Qt接口客户端蓝牙传输服务端客户端1)开台点菜模块通过Qt图形界面,客户可以选择房间即开台,进入房间并将该房间置为使用状态后便可以点菜,然后进入该类菜的详细菜单的选择。客户点完所要的菜后,便可提交,通过蓝牙传输模块将所点的菜传到服务器端。2)蓝牙传输模块客户端的蓝牙数据传输主要包括点菜信息的发送和结账房间信息的接收服务端1)菜单管理模块通过Qt图形界面的相关操作与数据库中菜单信息表的交互,服务器端可以对菜单进行管理(即增加、删除和修改菜单信息)。2)消费结账模块通过Qt图形界面的相关操作与数据库中消费信息表的交互,服务器端可以实现消费结账功能,即选择某个房间查询并显示此房间所点菜的信息。3)蓝牙传输模块服务器端的蓝牙数据传输主要包括点菜信息的接收和结账房间信息的发送。第二节基于蓝牙技术的嵌入式点菜系统——四、基本设计概念第二节基于蓝牙技术的嵌入式点菜系统——五、效果图一、系统功能框图二、功能简介三、体系结构四、基本设计概念五、效果图第三节基于WebService的数字油田监控系统第三节基于WebService的数字油田监控系统——一、系统功能框图现场设备服务端现场设备服务端包括直流电机服务端和视频采集服务端两部分。直流电机服务端接收监控中心的控制数据,控制直流电机的运转状态。同时,采集直流电机的相关信息,当监控中心请求这些数据时将这些数据发送到监控中心。视频采集服务端接收监控中心的视频采集图像属性参数,设置摄像头图像采集参数,调节图像画面效果,并将视频采集图属性参数发送到监控中心。监控中心监控中心是整个系统的中心部件,对系统中的数据进行处理、存储,完成数据的路由和分发并监视系统中各个设备的状态,为进行故障诊断与维护作准备。监控中心发送直流电机控制数据到直流电机服务端来控制直流电机的运行;获取现场设备信息,实时监视油井运行情况;接收视频采集服务端传过来的视频数据并显示,获取视频图像属性参数,并可以随时调节视频采集图像属性;接收移动终端的直流电机控制数据,转发至直流电机服务器端来控制直流电机,并将现场环境状态参数发送到移动终端。移动控制终端移动控制终端只对直流电机进行监控,从监控中心获取现场设备信息并进行显示。操作人员根据这些信息,调节直流电机控制数据,发送至监控中心控制、调节直流电机的运行状态。第三节基于WebService的数字油田监控系统——二、功能简介第三节基于WebService的数字油田监控系统——三、体系结构基于WebService的数字油田监控系统电机开关控制电机转速转向控制油井信息采集设置视频图像属性获取视频图像属性视频图像数据传输电机监控视频监控视频开关控制添加/删除视频设备添加/删除直流电机添加/删除移动终端系统设置WebService设置连接设置连接扫描设置添加/删除设备第三节基于WebService的数字油田监控系统——四、基本设计概念移动监控终端监控中心其它基于Web服务的嵌入式设备数据路由数据分发数据采集数据存储实时监控设备管理上层应用WebService组件XMLSOAPWSDLUUDIWindows/Linux平台键盘控制LCD显示A/D数据采集移动监控终端直流电机控制WebService数据传输摄像头画面调节直流电机WebService数据传输摄像头视频采集数据压缩视频传输(socket)设备服务端控制数据设备状态信息直流电机控制数据直流电机状态信息摄像头画面控制画面参数视频数据第三节基于WebService的数字油田监控系统——五、效果图一、系统功能框图二、功能简介三、体系结构四、数据库结构设计五、效果图第四节基于嵌入式与WebService的智能家居系统第四节基于嵌入式与WebService的智能家居系统——一、系统功能框图局域网无线网络视频监控设备家庭大门湿度机电饭锅智能机器保姆空调数据库·········用户账号财务管理美味菜谱本地控制终端Socket通信Web通信Socket通信移动终端模拟智能家居环境Web服务端本系统实现了多种服务访问方式,客户端PocketPC通过WebService调用Web服务端上提供的各项服务,实现远程家居系统的监控。同时,在服务端建立了站点,可以通过网页方式方便地进行本地或远程的查询与控制操作。所以,本系统使用灵活,既可以用智能设备PDA,也可以通过网页来进行操作。本系统可以基于SQLServer数据库实现家庭信息(如财政信息、物资信息、事物信息、菜谱信息、健康信息等)的管理和使用本系统的用户信息(注册用户)、正在使用的用户信息(在线用户)等的管理以及基于嵌入式平台的家庭设备(如大门、电饭锅、空调、湿度机、机器管家、视频监控等)的管理。所有家居系统的监控功能都是以Web服务的方式在服务端实现的,客户端通过远程调用服务端提供的Web服务方法实现本系统的管理。服务端的SQLServer数据库中存储了各种家庭信息,通过数据库操作来响应远程客户查询与更新家庭信息的服务请求,通过与嵌入式开发板交互来响应远程客户监控家庭设备的服务请求。第四节基于嵌入式与WebService的智能家居系统——二、功能简介第四节基于嵌入式与WebService的智能家居系统——三、体系结构基于WebService的智能家居系统事物管理日记更新日程查询日记查询日程更新生活向导菜谱查询菜谱更新用户管理重置密码增加用户修改密码健康查询设备管理湿度机监控电饭锅监控空调监控门监控机器人控制家庭管理财务更新物资查询财务查询物资更新设备配置单一配置登录注销总体配置登陆与注销视频监控删除用户第四节基于嵌入式与WebService的智能家居系统——四、数据库结构设计Log_InfoUserNameTimeOperation数据库日志表配置表事务信息表注册用户表在线用户表财务信息表物资信息表菜谱信息表健康信息表RegisterUserPKIDUserPswPtyOnlineUserPKIDKeyTimeFinanceInfoPKTimeInComeOutComeReMarkHealthInfoTableCrowdTypeDescriptionReMarkMenuListPKNameTypeMaterialFixingMethodReMarkMtrInfoPKNameTypeNumberUnitReMarkAffairIDTypeTimeContentConfigUpdateLog_InfoDOOR_PSW第四节基于嵌入式与WebService的智能家居系统——五、效果图一、功能简介二、音视频数据在双处理器间的传输模块设计三、音频处理方案设计四、视频处理方案设计第五节基于OMAP的音频与视频处理本节设计的方案是基于OMAP5910开发平台的,我们可以将OMAP5910中的DSP和ARM描述为两个“终端”,本节设计的总体方案为:在ARMLINUX开发环境下开发ARM端的应用程序,在TI提供的CCS开发环境下完成DSP端的程序。两个程序在运行时,ARM端作为音视频数据的输入端,传到DSP端进行处理,然后再把处理后的结果返回到ARM端,并进行显示或播放等处理。当然,ARM端还有一些控制功能。这样就充分利用了OMAP5910的双核结构,实现了音视频数据的高效处理,提高了多媒体应用的性能。OMAP5910中的ARM核和DSP核之间的通信通过DSPGateway机制实现。DSPGateway能够支持OMAP5910构架的OMAP处理器,它主要包含两部分:一是ARM端的Linux驱动程序,二是DSP端的基于DSPBIOS的