嵌入式设计应用
摘要:本文主要讨论设计基于嵌入式OpenWrt系统的路由器的远程监控平台,涵盖的功能有视频音频监测、自主移动、环境信息采集、位置定位、WiFi通信等,是一种具有高性价比、良好的操控性、安全性及可配置的远程监控智能设备平台。
上层以安装OPENWRT系统TP—LinkWRT03N路由器(基于Atheros的AR9331芯片)作为上层的主板,主要负责功能为图像采集模块、无线通信模块的功能,实现控制信号、图像采集、声音采集和WiFi无线通信的数据传输。上层架构硬件核心系统是基于TP—LinkWR703N的改造路由器,安装OpenWrt系统设计出基于AtheroS的AR9331芯片WiFi通信模块,选择天敏$606、$608的网络摄像头为监控视频和声音的硬件设施。实现远程监控、控制等功能。并且预留可扩张的接口,用于智能家居的控制。
下层是以通用8位或16位单片机为控制板,外按传感器、电机驱动、显示、串口通信电路等。主要实现运动过程控制、传感器数据处理、串口遥控信号的接收和执行。
远程监控平台的软件设计包括嵌入式操作系统、网络摄像头加载程序、视频处理程序、WEB服务器程序以及单片机控制应用程序等。核心系统选用嵌入式LINUX发行版OpenWrt为上层硬件架构即路由器的操作系统。OpenWrt的设计开发理念是将操作系统分解组合成为一套完全可写的文件系统及软件包管理,使用软件包的概念来管理嵌入式设备,因此嵌入软件开发的过程变得更为简单和容易。
我们需要通过改装的路由器使实现下面的功能:驱动并控制摄像头,通过串口控制硬件层的C51单片机,驱动无线网卡并连接,运行服务端,提供uI界面。而实现以上的功能,我们需要首先构建一个嵌入式操作系统。经过反复地讨论研究,我们决定在主芯片是Atheros的AR9331路由器上移植OpenWrt。
OpenWrt它是一个开源的用于各种无线路由及嵌入式设备的linux发行版。它可以实现与另外一个著名的固件DDWRT相类似的功能。OpenWrt提供了一个完全可写文件系统及软件包管理,它通过简单易用的方式,最大限度地降低了嵌入式linux开发的门槛,它允许使用软件包的概念来定制嵌入式设备,这使得它能适用于绝大多数应用并实现更多的功能。对于开发人员,OpenWrt提供简单易用的环境框架来构建应用程序。OpenWrt主页:http://www.OpenWrt.org。
本课题重点研究的路由器,已经发布有通用的版本,因此不需要自己再去重复的编译。为了深入学习和了解,也可以下载源码来自己编译,得到的“固件”效果是一样。
整体设计实现的步骤:
(1)改造能刷Linux的无线路由器,将其操作系统刷成OpenWrt。
(2)将Linux下的摄像头驱动安装到路由器上,即在路由器上安装程序:挂载摄像头、安装mJPEG。
(3)PC端与机器人建立通讯。
(4)通过上位机操作,选择PC端的上化机软什,利用上机的Socket把特定的数据包发送到路由端。直接控制单片机电机运动,并能实时接收到机器人上的摄像头视频。整体设计如下图1所示:
提前准备好OPENWRT系统编译好的“同什”,具体编译方法存下一章会有介绍。这里先学会运用成熟的网络公共资源,寻找主页:http://www.OpenWrt.org或F载同件“openwrt—ar71XX—generic—tl—wr703nv1squashfs—sysupgrade.bin”(针对TPLINKWR703N路由器,Flash=4MBRAM=32MBar9331芯片属于ar71XX),官网下载最新的OpenWrt固件,保证各种软件的安装不出问题,但是提供界面LUCI(WEB服务器软件LuC),openwrt系统下的WEB服务器LuCi是一个嵌入式设备的Web框架。
本系统需要给路由器刷OPENWRT系统。目前刷饥大致有两种方法,一种是通过网线法进行刷机,另一种是通过TTL线进行刷机。一般采用网线法刷机比较简单,不需要什么工具。下面重点介绍网线法刷机步骤:
第一步:首先关闭路由器电源,网线连接电脑和路由器的LAN4或LAN1。
第二步:电脑IP设置为192.168.1.x/255.255.255.0(x为2-255之间的任意数字),网关不用设置。
第三步:用针状物按住路由器的RST键,然后打外路由器电源,等待大概1O至15秒钟,路由器的电源灯会变成红色,此时可松开复位按键。
第四步:运行电脑端的cmd.exe,然后输入ping192.168.1.1,测试是否能ping通,如能ping通继续,否则返回榆查。
第五步:打开电脑浏览器输入192.168.1.1,会出现一个页面,即出现CFE更新的页面,这里要选择要刷的OpenWrt固件,请按图示文字进行操作更新固件,此时固件选择“openwrt.ar71xx—generic—tl—wr703n—vl—squashfs—sysupgrade.bin”,点击确定开始刷机,然后等待一会儿,大概两分钟后路由器会自动重启,至此说明路由器刷机完成。
第六步:这里还需要进行的步骤是开启WiFi,设置pppoe联网,安装LUCI,本处暂时不详细讨论,因为在自己编译固件时候可以将LUCI软件编译在一起。
也可以非常方便的在openwrt官网可得到LUCI软件安装包,使用putty(该软件是嵌入式系统调试常用的软件)登陆路由后,通过如下命令安装LUCI与中文包:
opkgupdate//先更新软件列表
opkglist—installed//进一步查看已安装软件
opkginstallluci//执行安装LUCI
opkginstallluci—il8n—chinese//安装LUCI中文补丁支持中文
即可完成LUCI的安装。
最后支持中文界面运行在PC上ping192.168.1.1,如能ping通路由器,则表示本次刷机成功,这时候可以访问http://192.168.1.1将会看到期待的openwrtWEB中文界面,即WEB服务器软件LuC中文版。如不能ping通则关闭电源,回到步骤前面几步重做。
目前常用的USB摄像头分两种:有驱的和免驱的。在本系统中使用的是有驱的,主控芯片为中星微301,此摄像头挂载成功率100%,并且性价比高,特别适合本系统的设计。以下是OpenWrt挂载摄像头的程序参考语句。
OpenWrt挂载UVC摄像头
opkgupdate
opkginstallkmod—usb—ohci#一般BCM用的是ohciUSB控制器
#opkginstallkmod·usb—uhci#UHCIUSB控制器
opkginstallkmod-usb—-video
opkginstallkmod-video—-gspca—-core
opkginstallkmod-video—-core
opkginstallkmod一deo—UVC#免驱摄像头
opkginstallkmod—video—gspca—zc3xx#摄像头如zc301zc3zc305
opkginstallkmod—·i2c·-core
opkginstallkmod—-input-core
opkginstallmotion
MJPEG作为一个小型的视频服务器软件,对系统消耗非常小,也很适合本系统设计。(另外一种预选方案是考虑安装Palantir模块)
(1)安装MJPEG
使用如下命令安装:
Opkginstallmjpg-strcamer
(2)启动MJPEG
/etc/init.d/mjpg—streamerstart
(3)查看图像
由于火狐浏览器支持动态刷新,因此需要下载安装火狐浏览器。在地址栏输入:http://192.168.1.1:8080/?action—s~eam可查看到摄像头的动态视频。
通过上位机操作,选择PC端的上位机软件,利用上位机的Socket把特定的数据包发送到路由端。直接控制单片机电机运动,并能实时接收到机器人上的摄像头视频。关于嵌入式系统通过上位机与PC通信的研究,已经有许多成熟的方案,本处不在展开讨论。
全部0条评论
快来发表一下你的评论吧 !