- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
于PC104与C8051F120的水下机器人环境监测系统设计
摘要:为了实现对水下机器人周围环境的监测,提出了一种基于PC104与C8051F120的水下机器人环境监测系统设计方案,并完成系统的软硬件设计。该系统的硬件部分主要是采集下潜深度传感器、姿态传感器、温湿度传感器的数据,软件部分采用用Visual C++6.0设计了监控界面。该系统能够实时显示视频和各传感器数据。实际测试表明,该系统具有稳定性高、准确性高的特点,达到了设计要求。
水下机器人具有重大需求和巨大的市场价值,如:用于泵站流道和叶轮叶片、坝体、桥墩、排沙口、拦污栅、病险水库等的水下检查和评估。用于市政饮用水系统中水管、水库检查;用于城市排污/排涝管道、下水道检查;用于科学研究、教学目的的水环境、水下生物的观测、研究和教学;用于海洋考察、冰下观察;还有,随着当前全球化的安全局势的恶化,水下机器人可以广泛应用于安全部门,如:检查大坝、桥墩上是否安装爆炸物,船侧、船底是否有炸弹等。这些功能得实现都是基于水下机器人对于周围环境的监测,所以采用一种高效、实时、简单的系统来完成环境监测的功能是十分必要的。在做了多种系统的比较后,提出并设计了基于PC104与C8051F120的水下机器人环境监测系统设计方案,该系统能够完成对环境的监测功能。
1 总体设计
图1是系统总体结构图,岸上由微型计算机组成,实时显示视频图像和各传感器数据;水下由PC104、C8051F120、视频采集卡、模拟摄像头、温湿度传感器、姿态传感器、下潜深度传感器组成。PC104通过视频采集卡采集模拟摄像头的信号,C8051F120采集各传感器的数据,通过串口传输给PC104,PC104通过脐缆把视频信号和各传感器数据送给岸上的微型计算机,微型计算机进行实时地显示。
2 硬件设计
C8051F120是完全集成的混合信号片上系统型MCU芯片,全速、非侵入式的在系统调试接口,高速、流水线结构的8051兼容的CIP-51内核,真正8位500 ksps的ADC,两个12位DAC,具有可编程数据更新方式,带PGA和8通道模拟多路开关,2周期的16 x 16乘法和累加引擎,128 KK或64KB可在系统编程的FLASH存储器,8448(8K+256)字节的片内RAM,可寻址64KB地址空间的外部数据存储器接口,硬件实现的SPI、SMBus /I2C和两个UART串行接口,5个通用的16位定时器,具有6个捕捉/比较模块的可编程计数器/定时器阵列,片内看门狗定时器、VDD监视器和温度传感器。
在本设计中PC104采用的是Em104P—i2909,温湿度传感器采用的是DHT11单总线传感器,姿态传感器采用的是SCA100T—D01。下潜深度传感器采用GB-2100A投入式压力传感器。电路使用了芯片内部自带的12位AD转换器、多路模拟选择开关和基准电压电路,使电路变得更简洁实用,并外接22.118 4 MHz晶振,经过9/4倍频得到50 MHz。由于温湿度传感器和姿态传感器都只需接在I/O口,下潜深度传感器接在模拟量输入口,故之介绍电路板的电源电路和串口电路。图2是电源电路原理图,图3是串口电路原理图。
3 软件设计
3.1 系统流程图
单片机程序软件采用的是Keil uVision4,并使用C语言编写程序。程序采用模块化的设计,分为AD转换程序、定时器中断程序、串口程序等。系统先对各个模块进行初始化,等到初始化完成后,系统进入主程序,等待中断,完成各个模块的程序。图4是主程序流程图。
3.2 传感器测量模块
舱内主要测量温度、湿度和水下机器人的姿态。对于温湿度传感器通过单片机的I/O口模拟时钟信号来进行读取数据,对于姿态传感器通过单片机的I/O口模拟SPI信号来进行读取数据。舱外主要测量水下机器人下潜的深度。通过C8051F120自带的12位ADC转换器,并选择模拟通道1进行下潜深度传感器的采集,把采集到的模拟量信号转换成数字量。AD转换器有4种转换启动方式,由ADCOCN中的ADC0启动转换方式位(ADOCM1,ADOCM0)的状态决定。转换触发源有:
1)向ADCOCN的ADOBUSY位写1;
2)定时器3溢出(即定时的连续转换);
3)外部ADC转换启动信号的上升沿,CNVSTR0;
4)定时器2溢出(即定时的连续转换)。
本程序采用向ADCOCN的ADOBUSY位写1作为启动方式。当通过向ADOBUSY写‘1’启动数据转换时,查询ADOINT位以确定转换是否结束,当转换结束后读出转换后的数据并处理。串口初始化和转换程序如下。
3.3 定时器中断模块
为了使系统达到低功耗的要求,采用定时器中断来使能各传感器,并对各传感器数据进行采集和处理。当100 ms定时器中断到来时,首先对赋予数据包的起始位,然后使能ADC,进行下潜深度传感器数据的采集;接着使能姿态传感器,读取姿态传感器数据,并对姿态传感器的X轴,Y轴数据进行正负的判别;最后使能温湿度传感器,进行温湿度传感器数据的采集并赋予数据包结束符。图5是定时器中断流程图。
定时器中断程序如下。
3.4 串口通信模块
串口通信模块主要是负责和工控机进行通信,当PC104需要传感器数据的时候,单片机就通过串口把数据发给PC104,PC104在把信息发送给岸上的微型计算机,供用户进行显示。图6是串口中断程序流程图。
串口中断程序如下。
4 视频图像的采集和传输
H264采用“回归基本”的简洁设计,不用众多的选项,获得比MPEG-4好得多的压缩性能;H.264加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误传和丢包的处理;H.264应用目标范围较宽,可以满足不同速率、不同解析度以及不同传输(存储)场合的需求。
RTP是一种网络传输协议,RTP协议不要求底层网络提供可靠的数据传输服务,它自身也不对报文丢失、重复和次序颠倒等差错进行处理。应用程序可以通过检测RTP报文固定头中的次序号发现传输过程中的差错。RTP具有较好的实时性,对于低带宽实时性要求高的场合很实用。
图7是视频结构图。PC104和微型计算机之间采用的是C/S模式。模拟摄像头的信号通过视频采集卡送入到PC104中,PC104通过H264压缩后,然后通过RTP传输给微型计算机,微型计算机接受到视频数据后进行解压显示。
5 实验应用
该系统用于水下机器人周围环境的测试。在进行测试时,通过按操作员控制器上面的相应按钮来实现相应的功能。当点击视频采集按钮时,视频图像数据会显示;当点击传感器数据采集按钮时,传感器数据会显示。测试界面如图8所示,图中的视频图像是水下桥墩的墙壁。当发现数据不对时,需要修改相应的电路或者程序。通过实际应用发现,该测试系统测试结果准确并且稳定可靠。
6 结论
经过试验测试得知,对于水下机器人舱体和舱内的基本环境监测问题,如水下机器人的姿态、舱内的温湿度、下潜深度和水下景象,传感器数据和视频数据都能够实时地采集,PC104与微型计算机之间的通信能够准确无误地传输,对于水下机器人周围环境的监测起到了实时监控的效果,为将来水下机器人的自主导航提供了有利的条件。