基于arm9的智能家居毕业设计(编辑修改稿)内容摘要:
序)和应用软件(包括 web 服务器、 CGI程序、视频采集等)。 本次设计有三个部分组成,前端是用于视频采集的 CMOS 摄像头,中间部分是移植了嵌入式 Linux 操作系统的 ARM9 开发板,它的作用是对采集来的图像进行处理,并内建嵌入式 web 服务器和视频流媒体服务器,从而将视频传递给远端用户。 第三个部分是监控端,由带有浏览器的 PC 机组成,用来浏览远端的视频,同时也可以通过网络对系统平台进行控制。 如图 所示。 嵌入式 Web 服务器器是指将 Web 服务器引入到嵌入式系统中,在相应的硬件平台和软件系统的支持下,根据应用的需要实现通用的 Web 服务器的全部或者部分功能。 嵌入式 Web 服务器仍然以 TCP/IP 协议为底层,在该 Web 中使用的应用层的通信协议是 HTTP 协议,通过 HTTP 协议实现客户端(一般为浏览器)和嵌入式 Web 服务器的信息交换 [4]。 在嵌入式领域,常用的 Web 服务器有 td 和 boa, boa 目前用的最多。 boa 是一个非常小巧的 Web 服务器,可执行代码只有约 60 KB,占用系统资源少,而且速度快、安全性好 [5]。 目前使用的 内核还没有包含 boa 代码,因此需要移植到本系统中。 首先从 下载 boa源代码 (目前最新版本 ),解压到 Linux 系统目录下,用交叉编译器编译。 这样在 ,把生成的 boa应用程序下载到开发板上 Linux 系统中的 /bin 目录下,让 boa 在系统启动时自动运行,这样在开发板上就移植了 boa 服务器。 ARM9 开发板 CMOS 摄像头 监控端 网线 串口线 山东科技大学毕业设计(论文) 11 第 3章 监控系统 硬件 环境 智能家居监控系统 采用 TQ2440 开发板,是一个有高性能、高集成度及强扩展功能的一体化开发板。 TQ2440 由底板和核心板组成。 核心板采用的是 S3C2440 嵌入式处理器芯片 [1],是三星公司研制的一款处理器。 摄像头采用的是 ov9650 图像传感器 [2]。 硬件平台总体结构 本系统的硬件平台总体结构如图 所示。 该设计将硬件系统分成两部分:核心板和外围电路。 核心板主要由 S3C2440A微处理器、 64MB NAND Flash、 64MB SDRAM、晶振、 转 电压转换芯片组成。 外围电路则主要为图 核心板以外的相关模块。 图 系统硬件平台结构图 ARM920T 核心板 LCD 显示模块 摄像头接口电 路 ov9650 移动控制模块 电源模块 存储模块 USB主接口 USB从接口 DM9000 网卡及网络接口 山东科技大学毕业设计(论文) 12 主控制芯片 本次设计采用 Samsung 公司生产的 S3C2440A 微处理器作为主控制芯片。 它是 Samsung 公司基于 ARM920T 核,采用 工艺生产的16/32 位 RISC 微处理器。 是一款专为手持设备及低功耗、小尺寸、高性能微控制器解决方案的微处理器。 内部主要含以下模块: ( 1) 内核, , 扩展 I/O16kB 指令 ( 2) cache( I— chche) /16kB 数据 cache( D— chche) ( 3) 外部存储控制器( SDRAM 控制盒片选逻辑) ( 4) 集成 LCD专用 DMA的 LCD控制器(支持最大 4k 色 STN256KTFT)4 路拥有外部请求引脚的 DMA 控制器 ( 5) 3 路 URAT5) 2 路 SPI ( 6) IIC 总线接口(多主支持) ( 7) IIS 音频编码接口 ( 8) AC97 编解码器接口 ( 9) 版 SD 主接口,兼容 版 MMC 接口 ( 10) 2 路 USB 主机控制 /1 路 USB 期间控制( ) ( 11) 4 路 PWM 定时器 /1 路内部定时器 /看门狗定时器 ( 12) 8 路 10 位 ADC 和触摸屏接口 ( 13) 具有日历功能的 RTC ( 14) 摄像头接口 ( 15) 130 个通用 I/O, 24 个外部中断源 ( 16) 电源控制:正常,慢速,空闲,睡眠模式 带 PLL 片上时钟发生器 山东科技大学毕业设计(论文) 13 Ov9650摄像头 s3c2440 仅仅提供了一个摄像接口,因此要实现其功能,还需要摄像头。 在这里,我们使用 OV9650。 OV9650 内部有大量的寄存器需要配置,这就需要另外的数据接口。 OV9650 的数据接口称为 SCCB(串行摄像控制总线),它由两条数据线组成:一个是用于传输时钟信号的 SIO_C,另一个是用于传输数据信号的 SIO_D。 SCCB 的传输协议与 IIC 的极其相似,只不过 IIC 在每传输完一个字节后,接收数据的一方要发送一位的确认数据,而 SCCB 一次要传输 9 位数据,前 8 位为有用数据,而第 9 位数据在写周期中是 Don’ tCare 位(即不必关心位),在读周期中是 NA 位。 SCCB定义数据传输的基本单元为相( phase),即一个相传输一个字节数据。 SCCB只包括三种传输周期,即 3 相写传输周期(三个相依次为设备从地址,内存地址,所写数据), 2 相写传输周期(两个相依次为设备从地址,内存地址)和 2 相读传输周 期(两个相依次为设备从地址,所读数据)。 当需要写操作时,应用 3 相写传输周期,当需要读操作时,依次应用 2 相写传输周期和 2 相读传输周期。 因此 SCCB 一次只能读或写一个字节。 下面我们就用 s3c2440 的 IIC 总线接口分别与 OV9650 的 SIO_C 和 SIO_D 相连接来实现 SCCB 的功能。 山东科技大学毕业设计(论文) 14 硬件的连接 山东科技大学毕业设计(论文) 15 第 4章 嵌入式环境的配置 嵌入式 操作系统简介 嵌入式操作系统的概念 嵌入式系统( Embedded system),是一种 “完全嵌入受控器件内部,为特定应用而设计的专用 计算机 系统 ”,根据英国电气工程师协会( . Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。 与 个人计算机 这样的通用 计算机 系统不同,嵌入式系统通常执行的是带有特定要求的预先定义的任务。 由于嵌入式系统只针对一项特殊的任务,设计人员能够对它进行优化,减小尺寸降低成本。 嵌入式系统通常进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。 嵌入式系统是用来控制或者 监视 机器、装置、工厂等大规模 设备 的系统。 国内普遍认同的嵌入式系统定义为:以应用为中心,以 计算机 技术 为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、 功耗等严格要求的专用计算机系统。 通常,嵌入式系统是一个控制程序存储在ROM 中的嵌入式 处理器 控制板。 事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。 嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的 微处理器 或者 单片机 组成。 与通用计算机能够运行用户选择的软件不同,嵌入式系统上的软件通常是暂时不变的;所以经常称为 “固件 ”。 山东科技大学毕业设计(论文) 16 嵌入式操作系统的分类 (1) VxWorks VxWorks操作系统是美国 WindRiver公司于 1983 年设计开发的一种实时操作系统。 VxWorks 拥有良好的持续发展能力、高性能的内核以及良好的用户开发环境,在实时操作系统领域内占据一席之地。 它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。 它支持多种处理器,如 x86, i960, Sun Sparc, Motorola MC68xxx,MIPS RX000, Power PC, ARM , StrongARM 等。 大多数的 VxWorksAPI是专有的。 (2) QNX QNX是一个实时的、可扩充的操作系统;它部分遵循 POSIX 相关标准,如 实时扩展;它提供了一个很小的微内核以及一些可选的配合进程。 其内核仅提供 4 种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间中运行。 所有其他操作系统服务都实现为协作的用户进程,因此 QNX内核非常小巧 (QNX4. x大约为 12KB),而且运行速度极快。 这个灵活的结构可以使用户根据实际的需求,将系统配置成微小的嵌入式操作系统或包括几百个处理器的超级 虚拟机操作系统。 (3) Palm OS 3Com公司的 Palm OS 在掌上电脑和 PDA 市场上占有很大的市场份额。 它有开放的操作系统应用程序接口 (API),开发商可以根据需要自行开发所需的应用程序。 (4) Windows CE 山东科技大学毕业设计(论文) 17 Microsoft Windows CE是从整体上为有限资源的平台设计的多线程、完整优先权、多任务的操作系统。 它的模块化设计允许它对从掌上电脑到专用的工业控制器的用户电子设备进行定制。 操作系统的基本内核至少需要 200KB 的 ROM。 (5) LynxOS Lynx Realtime Systems 的 LynxOS 是一个分布式、嵌入式、可规模扩展的实时操作系统 ,它遵循 , 和 标准。 LynxOS 支持线程概念,提供 256 个全局用户线程优先级;提供一些传统的、非实时系统的服务特征,包括基于调用需求的虚拟内存, 一个基于 Motif的用户图形界面,与工业标准兼容的网络系统以及应用开发工具。 Motif 是开放软件基金( OSF)于 1989 年推出的一个图形用户界面系统。 (6) 嵌入式 Linux 随着 Linux 的迅速发 展,嵌入式 Linux 现在已经有许多的版本,包括强实时的嵌入式 Linux(如新墨西哥工学院的 RTLinux 和堪萨斯大学的KURTLinux)和一般的嵌入式 Linux 版本 (如 uClinux 和 Pocket Linux 等 )。 其中, RTLinux 通过把通常的 Linux 任务优先级设为最低,而所有的实时任务的优先级都高于它,以达到既兼容通常的 Linux 任务又保证强实时性能的目的。 由于嵌入式系统越来越追求数字化、网络化和智能化,因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继,因为要达到上述要求,整个系统必须是开放的、提供标准的 API,并且能够方便地与众多第三方的软硬件沟通。 (7) uC/OS 山东科技大学毕业设计(论文) 18 uC/OS 是源码公开的实时嵌入式操作系统。 嵌入式 Linux的简介 Linux 是 1991 年由芬兰人 Linus Torvalds 发明的,一套免费使用和自由传播的类 Unix 操作系统,是个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的 操作系统: Linux 不仅支持 x86 芯片,它可以支持 2030 中 CPU; Linux 是开放源代码的,不存在黑箱技术,遍布全球的众多爱好者都是 Linux 开发者的强大技术支持者, Linux 的源代码随处可得,注释丰富,文档齐全,易于解决各种问题; Linux 在内核结构的设计中考虑适应系统的可裁剪性的要求。 Linux 主要特点如下: ( 1) Linux 是开放源码的,不存在黑箱技术,遍布全球的众多 Linux 爱好者又是 Linux 开发的强大技术后盾。 ( 2) Linux 的内核小、功能强大、运行稳定、系统健壮、效率高。 ( 3) Linux 易于定制裁剪,在价格上极具竞争力。 ( 4) Linux 不仅支持 x86 CPU,还可以支持其他数十种 CPU 芯片。 ( 5) 有大量的且不断 增加的开发工具,这些工具为嵌入式系统的开发提供了良好的开发环境。 ( 6) Linux 沿用了 Unix 的发展方式,遵循国际标准,可以方便地获得众多第三方软硬件厂商的支持。 ( 7) Linux 内核的结构在网络方面是非常完整的,它提供了对十兆 /百兆/千兆以太网、无线网络、令牌网、光纤网、卫星网等多种联网方式的全面支持。 山东科技大学毕业设计(论文) 19 ( 8) 在图像处理、文件管理及多任务支持等诸多方面, Linux 的表现也都非常出色,不仅可以充当嵌入式 系统的开发平台,本身也是嵌入式系统应用开发的好工具。 综上所述,正是由于嵌入式 Linux 具有源码开放、移植简易、资源内容丰富、免费等优点,使它在嵌入式控制领域越来越流行。 更重要的是,由于嵌入式 Linux 与 PC 机的 Linux 源于同一套内核代码。 只是裁剪的程度不同,这使得很多为 PC 机的开发的软件经过了再次的编译后,也可以直接在嵌入式控制设备上工作,这使得它的软件资源极大的丰富。基于arm9的智能家居毕业设计(编辑修改稿)
相关推荐
京: 清华大学出版社, 2004.[ 4] 刘六彬. 嵌入式视频监控系统中Linux 应用的研究[ J] . 科技广场, 2005, 2( 2) : 4 7.LIU Liubin . The research of uClinux application in embeddedvideosystem[ J] . Science Mosaic, 2005, 2( 2) : 4 7.[5]
(TRUE) { pTxData[0] = KeyScan()。 // 键 值扫描 if(pTxData[0]!= 0) { basicRfSendPacket(LIGHT_ADDR,pTxData,APP_PAYLOAD_LENGTH)。 halIntOff(); halIntOn()。 } } 这段程序可以说,是发送模块的精华,或者说是核心。 Appswich()函数进来之后
代码一样,是在相同的 32 位寄存器上进行操作。 Thumb 代码仅为 ARM 代码规模的 65%,但其性能却是连接到 16 位存储器系统的相同 ARM 处理器性能的 160%。 取指 译码 执行 取指 译码 执行 江西理工大学 20xx 届本科生毕业设计 ( 论文 ) 9 第三章 外围电路设计 电源电路设计 电源是整 个系统 的能源提供者,电源性能的好坏直接关系到整个系统的成败。
像属性,设置图像参数,捕捉图像数据,都是通过 Video4Linux 借口标准调用驱动的相关函数完成的。 Servfox 流程图 2 视频流及摄像头相关技术基础 8 8 图 22 Servfox流程图 Servfox 运行过程:。 TCP 套接字服务端 ,为图像数据发送线程做好准备。 Servfox 采集数据端 Servfox,修改 Makefile 文件为 : CC= armlinuxgcc
绍这种应用的开发和移植工作。 用户首先需要在嵌入式设备上成功移植支持脚本或 CGI 功能的 Web 服务器,然后才能进 行应用程序的开发。 应用 :。 Boa 是一个非常小巧的 Web 服务器,可执行代码只有约 60KB。 它是一个单任务 Web 服务器,只能依次完成用户的请求,而不会 fork 出新的进程来处理并发连接请求。 但 Boa 支持 CGI,能够为 CGI 程序 fork
减少主存带宽和响应性带来的影响。 6. 采用 ARM920T CPU 内核支持 ARM 调试体系结构。 7 . 内 部高 级 微 控制 总 线( AMBA )体系结构( ,AHB/APB)。 其系统管理器为: 1. 支持大 /小端模式。 2. 支持快速总线模式和同步总线模式 3. 寻址空间:每 bank 128M 字节(总共 1G 字节)。 4. 支持可编程的每 bank 8/16/32