基于S3C2440 微处理器的智能家居远程监控系统解决方案
3 系统的软件设计
智能家居远程监控系统的软件系统由设备驱动程序、嵌入式Linux 操作系统和应用程序构成,如图6所示。其中嵌入式Linux 操作系统采用2.6 版本的内核。
Web 服务器使用Boa , 视频服务器使用Servfox5 , 这是两款Linux 下的开源软件, 将源码进行适当修改就可以移植到嵌入式系统中。
3.2 驱动程序的开发
用户进程是通过设备驱动文件控制硬件, 对设备文件的操作方式就是系统调用, 如open 、read 、write 、close等。编写设备驱动程序的主要工作就是编写子函数,并填充file_operations 结构体的各个域。步进电机、LED 和温度传感器DS18B20 都是通过通用I/O 控制的,做为字符型设备。USB 摄像头属于USB 设备。下面以步进电机驱动程序为例说明Linux 驱动程序的开发过程,具体步骤如下:
(1 ) 编写驱动程序源代码, 将程序源文件motor.c , 添加到内核的drivers/char 目录下。
(2 ) 编辑drivers/char 目录下的配置文件Kconfig,添加如下内容:config MOTOR tristateMotor Driver
(3 ) 在char 目录下打开Makefile , 添加obj -$ (CONFIG_MOTOR)+=motor.o
(4 ) 在内核目录下执行make menuconfig 命令, 进行内核配置: 在Device Driver -Character Driver 下将MOTOR 选为M, 模块方式, 退出保存设置。
(5 ) 执行命令make modules , 编译驱动模块。在char目录下产生motor.ko 的文件, 即所需的步进电机驱动模块。通过NFS 方式传到开发板上。
(6) 加载驱动模块, 执行insmod motor.ko .
(7 ) 建立文件节点, 执行mknod/dev/MOTOR_Driver c228 0 .
智能家居远程监控系统可以通过Web 服务器为用户提供简洁, 美观的操作界面。网络控制部分包括登录界面、用户认证、主界面、门窗控制、照明控制、温度监测及视频监控。
用户认证是通过CGI 程序实现的。首先在登录界面中使用HTML 语言添加表单:
form method=post action=/cgi-bin/logon.cgi>
用户名:input type=text name=user>br>
密码: input type = password name = pwd >br >
nbspnbspnbspinput type=submit value= 登录> /form>
参数action 指明处理该表单的CGI 程序, 此表单所填的内容会通过Web 服务器以name=value1pwd=value2的方式传给logon.cgi 程序处理, 该程序对用户名和密码进行认证。用户认证界面如图7 所示, 门窗控制界面如图8 所示。使用表单在网页中添加2 个按钮, 分别控制门窗的打开和关闭。对应的CGI 程序调用步进电机的驱动程序, 控制电机转动, 模拟门窗控制。
评论