物联网硬件设计与开发综合实践课程设计题目:基于Web的蜂鸣器远程控制程序的设计与实现基于Web的蜂鸣器远程控制程序的设计与实现摘要物联网在国际上又称为传感网,这是继计算机、互联网与移动通信网之后的又一次信息产业浪潮。世界上的万事万物,小到手表、钥匙,大到汽车、楼房,只要嵌入一个微型感应芯片,把它变得智能化,这个物体就可以“自动开口说话”。再借助无线网络技术,人们就可以和物体“对话”,物体和物体之间也能“交流”,这就是物联网。本次试验主要要完成通过WEB网页远程控制程序的设计,在linux-2.6.12内核中编译FL2440蜂鸣器驱动,模块化后在开发板上加载,再通过向开发板上移植BOA服务器,编写对应的CGI程序和HTML网页,完成WEB的远程控制蜂鸣器开关以及变频。关键词:物联网FL2440蜂鸣器linux-2.6.12BOA目录1引言...............................................................................................................................11.1课题背景..................................................................................................................11.2本课题研究的迫切性..............................................................................................11.3本课题的研究作用..................................................................................................11.4本文的主要工作......................................................................................................12系统需求分析及开发工具...................................................................................................12.1系统目标....................................................................................................................12.2开发环境及工具........................................................................................................12.2.1Ubuntu12.04.....................................................................................................12.2.2BOAWeb服务器...........................................................................................22.2.3FL2440开发板................................................................................................22.2.4超级终端.........................................................................................................23环境搭建...............................................................................................................................23.1交叉编译器................................................................................................................23.2BOA服务器移植.......................................................................................................33.3安装FL2440平台的Linux内核源码......................................................................43.4超级终端....................................................................................................................44系统流程与实现...................................................................................................................44.1系统流程.....................................................................................................................44.2.1index.html网页................................................................................................54.2.2CGI脚本..........................................................................................................54.2.3fl2440_pwm驱动............................................................................................65运行测试...............................................................................................................................9结论...................................................................................................................................9参考文献...................................................................................................................................9第1页共13页1引言1.1课题背景随着“后PC”时代的到来,嵌入式的应用范围日益广泛,涉及到人类生活的诸多方面,如数字通信、信息家电、工业过程控制等。嵌入式技术和人们的日常生活的方方面面关系越来越紧密,消费电子、计算机、通信一体化趋势日益明显,作为计算机领域的一个重要组成部分,嵌入式系统再度成为研究与应用的热点。本次实验主要针对物联网硬件开发的学习,了解开发板与宿主机的开发模式,以及硬件驱动开发的流程,最后实现WEB的远程控制。1.2本课题研究的迫切性作为一门实践课程,极好的将理论与实际结合起来,让学生有效的提高了动手能力,理解到硬件的开发流程。1.3本课题的研究作用了解硬件驱动的基本开发流程、熟悉LINUX的开发环境、学习CGI程序的编写、了解BOA+WEB服务器的移植过程。1.4本文的主要工作介绍基于Web的蜂鸣器远程控制程序的设计与实现的原理及流程,说明在开发过程遇到的错误以及完成状况。2系统需求分析及开发工具2.1系统目标通过WEB网页控制蜂鸣器,输入大于0的一个数字,使蜂鸣器变化不同频率,输入0蜂鸣器停止。2.2开发环境及工具2.2.1Ubuntu12.04FL2440平台的Linux内核源码为linux2.6.12.修改内核根目录下Makefile文件,其中CROSS_COMPILE?=处修改为安装的交叉第2页共13页编译器的目录。注意:2440-linux-2.6.12.tar.gz文件厂商提供的文件,很多配置选项已经配置了,这里只需要修改交叉编译器所在的目录。在内核根目录下编译内核,执行makezImage,将在/arch/arm/boot下生成内核镜像文件。2.2.2BOAWeb服务器BOA服务器是一个小巧高效的web服务器,是一个运行于unix或linux下的,支持CGI的、适合于嵌入式系统的单任务的http服务器,源代码开放、性能高。2.2.3FL2440开发板1)共5个16位的定时器,定时器0、1、2、3都带有脉冲宽度调制功能(PWM);2)每个定时器都有一个比较缓存寄存器(TCMPB)和一个计数缓存寄存器(TCNTB);3)定时器0、1共享一个8位的预分频器(预定标器),定时器2、3、4共享另一个8位的预分频器(预定标器),其值范围是0~255;4)定时器0、1共享一个时钟分频器,定时器2、3、4共享另一个时钟分频器,这两个时钟分频器都能产生5种不同的分频信号值(即:1/2、1/4、1/8、1/16和TCLK);5)两个8位的预分频器是可编程的且根据装载的值来对PCLK进行分频,预分频器和钟分频器的值分别存储在定时器配置寄存器TCFG0和TCFG1中;6)有一个TCON控制寄存器控制着所有定时器的属性和状态,TCON的第0~7位控制着定时器0、第8~11位控制着定时器1、第12~15位控制着定时器2、第16~19位控制着定时器3、第20~22位控制着定时器4。2.2.4超级终端超级终端是一个通用的串行交互软件,很多嵌入式应用的系统有与之交换的相应程序,通过这些程序,可以通过超级终端与嵌入式系统交互,使超级终端成为嵌入式系统的“显示器”。3环境搭建3.1交叉编译器(1)创建在/usr/src下创建FL2440文件夹:#sudomkdir/usr/src/FL2440拷贝压缩包cross-3.4.1.tar.bz2到该目录下,例如如果文件在U盘下,cross-3.4.1.tar.bz2被挂载到/mnt/usb下,则执行:#sudocp/mnt/usb/cross-3.4.1.tar.bz2/usr/src/FL2440(2)切换到/usr/src/FL2440目录下:#cd/usr/src/FL2440(3)用命令解压缩该压缩包第3页共13页#sudotar-jxvfcross-3.4.1.tar.bz2,一般会自动解压到目录/usr/src/FL2440/usr下(4)添加工具的环境变量到PATH:#sudogedit/etc/bash.bashr