为了实现对水下机器人周围环境的监测,提出了一种基于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是定时器中断流程图。