3.4 STC89C51最小系统
该系统是以MCS-51系列单片机为核心组成的开发平台,包括单片机、晶振电路、复位电路、驱动接口和控制信号接收端口,以此作为本设计小车控制单元的主控单元[9]。其结构框图如图11所示。
图11 STC89C51最小系统结构框图
4. 系统程序设计
4.1 OpenWrt平台的搭建
OpenWrt操作系统是无线路由器的操作系统,它的运行性能直接影响图像的采集和WIFI信号的传输和转化,因此OpenWrt操作系统的搭建很重要,其搭建步骤如下:
(1) 下载OpenWrt源码
mkdir /usr/src/test
cd /usr/src/test
svn co svn://svn.openwrt.org/openwrt/trunk (开发版本,不稳定,不建议下载)
wget http://downloads.openwrt.org/backfire/10.03/backfire_10.03_source.tar.bz2(目前稳定版本,建议)
(2) 参数配置
编译过程使用的交叉编译,交叉编译生成的SDK以及image等文件的类型取决于开发环境、应用硬件、以及源码版本。所以要对自己的环境进行了解,才能进行正确的配置。
[openwrt@localhost trunk]$ make defconfig
[openwrt@localhost trunk]$ make prereq
[openwrt@localhost trunk]$ make menuconfig
通过文本对话框进行选项配置,最主要的配置项有:
Target system(目标系统类型)
Package selection(软件包选择)
Build system settings (编译系统设置)
Kernel modules (内核模块)
(3) 编译
使用一个简单的命令:
[openwrt@localhost trunk]$ make
编译一个单独的软件包(例如在cups软件包):
[openwrt@localhost trunk]$ make package/cups/compile V=99
(4) 生成镜像(Image)位置
新生成的镜像会默认放在新建的一个bin目录下。例如:/bin/brcm-2.4/packages
[openwrt@localhost trunk]$ ls bin/*
将编译好的镜像做个备份,例如备份到/目录下:
[openwrt@localhost trunk]$ cp bin /
(5) 安装OpenWrt
找到相应的固件,进行升级即可。
4.2 路由器与PC机交互过程
PC机与路由器交互过程如图12所示。
图12 PC机与路由器交互过程
移动终端即无线路由器,将无线路由器配置成热点,发射WIFI信号,PC机则进行热点搜寻,之后进行匹配,匹配成功后,通过火狐浏览器访问OpenWrt网络服务端,打开制作好的界面(通过PHP脚本语言进行的编辑),此时界面上就可以浏览到视频窗口和控制按钮。通过视频窗口就可以浏览到视频,控制按钮则可以对小车的状态进行控制。
4.3 小车状态控制程序流程
在单片机控制系统中,大体上可分为数据处理和过程控制两个基本类型。本系统设计主要用到单片机的过程控制,其程序主要是使单片机按一定的方法进行计算,然后再输出,以便控制小车的运动状态[10]。
本系统软件采用模块化结构,由主程序﹑初始化程序、端口扫描程序和数据处理程序等组成。程序流程图如图13所示。
图13 小车状态控制程序流程图
单片机接收的控制数据通过TXD,RXD接口与无线路由器的端口相连,接收由路由器发送的数据,之后由程序对其接收到的数据进行分析综合,发出控制指令[11]。这些控制命令包括前进、左转、后退、右转和停止,通过L298N驱动,实现小车状态的控制。
5.仿真结果
本设计的仿真利用5个按键来模拟WIFI控制信号的五个状态,分别为后退、前进、左转、右转、停止。并用五个不同颜色的LED灯来表示小车所处的不同状态。仿真图中的两个电机不同的运行状态对应着小车不同的运行状态。电机下面的读数代表着电机的转速n,当n>0表示电机正转,n<0表示电机的反转。仿真的结果如下面图中14-18所示。 51单片机小车状态控制系统仿真研究(6):http://www.youerw.com/zidonghua/lunwen_1666.html