深井打捞机说明书嵌入式部分.docx
- 文档编号:13145998
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:14
- 大小:67.71KB
深井打捞机说明书嵌入式部分.docx
《深井打捞机说明书嵌入式部分.docx》由会员分享,可在线阅读,更多相关《深井打捞机说明书嵌入式部分.docx(14页珍藏版)》请在冰点文库上搜索。
深井打捞机说明书嵌入式部分
嵌入式深井打捞机系统的设计
摘要:
1
1系统整体2
2救援系统硬件设计3
3打捞系统软件设计5
3.1嵌人式Linux操作系统6
3.2嵌入式打捞机软件系统平台建立7
1)uboot移植7
2)Linux移植7
3)Yaffs文件系统的建立8
3.3Linux驱动与应用编程8
3.4本打捞系统中Linux下USB摄像机应用程9
4结论10
附录:
11
参考文献17
摘要:
嵌入式深井打捞系统(以后简称打捞系统)在井口较小不方便人进入的情况下,达到打捞物品或必要时候有救援的用途,这种系统大大减轻了劳动强度和危险性,提高了工作效率。
打捞系统是机械系统,嵌入式实时控制系统,自动化智能控制的重要组成部分,是集ARM与Linux系统、自动导向,图像采集、机电一体的新型产物;目前,该系统可应用在小口水井,管道打捞等领域。
而当机械设备与嵌入式Linux结合,其最大的特点是:
1)减少了研制开发周期,系统可升级性强;2)价格大幅度降低,便于市场普及。
1系统整体
打捞系统采用Samsung公司$3C2440A的ARM9处理器主频最高可达400MHz,通过在USB接口外接一个带USB口的CMOS摄像头,将采集HSL空问的图像,并二值化,显示在qt的可视化窗口上,然后通过可视化的控制平台进行手动和自动的模式,有反馈的进行控制。
自动模式下我们能通过手动设置设置开启和关闭分立的六个机械爪子,以便于控制抓取位置,避免对被打捞物的损伤。
同时我们可以设置抓取的三个档位,实现3——1步完成本次是抓取过程;手动模式下与自动模式基本相同,唯一不同的可以实现六个机械爪子的单步执行。
本系统最大特点是使用了嵌入式Linux操作系统。
嵌入式Linux用于机械控制系统势必大大减少了工作量,因为操作系统将控制软件的通用部分抽取出来,抽象为一个底层硬件系统和上层软件系统之间的不同,而在设计新的嵌入式控制系统时,只需编写应用程序以及驱动,就可快速的完成一个全新的嵌入式系统,而且嵌入式Linux的打捞系统在很容易原有基础上进行系统功能的扩展,如实现无线监视,无线遥控,进一步添加传感器等,必将使得在Linux下可以做到很短时问设计出一个功能强大,高效,低成本的打捞系统,如图1嵌入式Linux视频导航AGV系统框图。
2救援系统硬件设计
系统选用S3C2440A作为CPU,在S3C2440A上具有五个16位寄存器,由于嵌入式io有很多复用功能,引脚非常珍贵,我们其中还用到了串口功能减少io引脚的浪费。
另外S3C2440A处理器内部集成的USBHOST控制器支持两个USBhost通信端口,其符合USB1.1协议规范,用其进行视频信息的采集,以下进行模块说明:
图2嵌入式打捞机的硬件结构
CPU制模块如图2所示,电路包括核心CUP,JTAG调试电路,USB接口,存储电路,复位电路等,采用一颗ARM核心的嵌入式CPUs3C2440A结合外围扩展元件组成小型嵌入式系统。
运行Linux操作系统。
ARM处理器的主要应用领域有工业控制、Intemet设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用,S3C2440A是三星公司开发的一款32位RISC处理器,采用了ARM920T核心,支持WINDOWSCE和LINUX操作系统,内置SDRAM控制器,液晶控制器,sD控制器,AD转换器。
可以方便地扩充所需的设备而不用增加外围元件。
存储器分为FLASH存储器和SDRAM存储器,FLASH存储器是一种非易失性存储器,掉电后数据不丢失。
所以用来保存系统引导程序、OS、应用程序和重要数据。
电路上程序存储器采用了K9XXX08UOA-PCB0。
其容量为256Mbytes,电路上采用兼容设计,可以根据需要采用不同容量的存储器。
SDRAM是一种随机读取存储器,掉电后数据不保存,但是其读写速度非常快。
所以,一般用作为程序的运行空间。
系统引导以后,将FLASH中的程序解压缩到SDRAM中运行,提高系统的运行速度。
电路设计中选择K9F1216U0A,容量为32MBytes,采用2片组成64M,32位存储系统。
复位电路,提供CPU和外围设备上电复位和按键复位。
使用一片美信公司专用复位芯片MAX8860EUA18。
电路结构简单,复位可靠,提供标准的20PJTAG调试接口。
可以下载烧写板上BOOTLOADER程序。
3打捞系统软件设计
所有软件在Fedora10环境下建立嵌入式Linux开发所需要的交叉编译环境,安装编译工具,编译内核,制作yaffs根文件系统并添加驱动程序以及应用程序,该打捞系统软件主要分为三个模块:
图形控制界面、执行部分和反馈部分。
整
个Linux软件模块如图3所示。
图3软件模块
3.1嵌人式Linux操作系统
Linux操作系统内核稳定、功能强大、支持多种11期安源,等:
一种嵌入式Linux视觉引导AGV系统的设计2549硬件平台、且源代码完全开放,软硬件均可裁减适合于嵌入式开发应用,虽然Linux内核本身不具备强实时陛,并不是一个专门为嵌入式设计的操作系统,且内核体积较大,而且一般嵌入式系统的硬件资源有限。
但是,如果对Linux通过配置内核,裁减shell和嵌入式c库对系统定制,使整个系统能够存放到容量较小的FLASH中,Linux进行实时化和嵌入式化便是可行的。
3.2嵌入式打捞机软件系统平台建立
1)uboot移植
去网站下载uboot1.1.6的源码包,参照2420的配置修改2440的板子的支持,根据笔者经验,如果是norflash启动汇编start.s文件几乎不用改,因为在进入start_armboot的c入口点的时候会自动初始化。
直接修改speed.c文件,因为2420和2440的总线时钟分频计算不同,根据2440手册get_PCLK函数中多了2倍的关系,修改一下。
到此为止串口就能打印出信息,加上几个自定义的命令,然后移植usbslave,网上有大把的usbslave资料,这里不做介绍。
能够在norflash上运行之后就是叫板子支持nandflash,因为nand不能直接运行代码,必须复制到内存重运行,需要修改start.s重写代码复制到内存的这段,把nandflash的驱动加上就ok了。
2)Linux移植
首先填写machine_desc结构体,支持当前开发板,因为linux第一个汇编文件head.s,调用检测cpu支持id的__lookup_processor_type和板级支持的__lookup_machine_type段校验,arm920的id是0x41129200不用管,板级校验machine_desc时候要自己填写要不引导不能通过。
在这里要注意uboot和linux的机器码必须一致,要不uboot想linux传递参数的时候,linux不能通过机器码校验。
完成以上,就可以在menuconfig上配置自己板子的linux了,网上配置armlinux的时候大同小异,自己琢磨一下就ok了。
3)Yaffs文件系统的建立
我们用busybox制作文件系统,把相应的linux交叉编译出来的指令、库和模块驱动都加入进去,修改一些启动脚本,就完成了文件系统的制作。
4)Qtopia图形平台的移植
下载源码包,首先编译pc下的qtopia模拟平台,然后编译arm平台的qt,最后把一些程序和库加入到制作好的文件系统里,修改启动脚本rc,完成qt的移植
3.3Linux驱动与应用编程
本系统中有USB的CMOS摄像头,以及oi控制需
要驱动程序的编写,一般需要进行以下几步:
(1)给file—operations结构赋初值l2]。
一般语句
为:
staticstructfile_operations_fops=
{,
Open:
用户定义功能函数,
Read:
用户定义功能函数,
Write:
用户定义功能函数,
Release:
用户定义功能函数。
}.
(2)设计open、read、write、release后用户定义
的功能函数,实现设备的选定、读、写等功能。
(3)设计一init函数实现向内核注册设备。
(4)设计module—init驱动程序的模块人口
当整个驱动程序写完后,需要编写Makefile文
件,这样可以利用交叉编译环境在主机上生成AGV
系统可执行的目标文件,最后利用insmod命令向内
核加载编写好的驱动程序,这样就会在Linux系统
的/dev下产生一个新的逻辑设备结点。
3.4本打捞系统中Linux下USB摄像机应用程
序的编写
本系统中摄像头所实现的任务是进行数据采
集,以便处理,而摄像头是视频类设备。
在目前的
Linux中,Video4Linux是其下用于获取视频和音频
数据的API接口,
V4L定义了套接口,内核、驱动、应用程序以
这个接口为标准进行交流。
本系统中的USB摄像
头受到V4L支持。
图像采集的程序流程如下:
(1)打开AGV系统的COMS摄像头;
(2)读取CMOS摄像头的信息;
(3)更改CMOS摄像头当前设置;
(4)进行CMOS摄像头图象采集时我们有两种
方法可以选择:
①内存映射,
②直接从设备读取;
(5)对CMOS摄像头采集的视频进行处理压缩,采用jpg压缩格式,完成位图到灰度颜色空间的转换并用Qpixmaps类的repainer刷新缓冲池。
用DateToLoader()加载数据到缓冲池;
(6)关闭CMOS摄像头。
4结论
随着控制系统功能变的复杂,现实中的系统已经
再不是过去逻辑结构简单隋况下进行设计了,从新设
计一个新的控制软件系统的费用还有软件人员的工
作量会成倍的增加,那么基于Linux嵌入式操作系统
的用于打捞系统势必大大减少了工作量,原因就像
我们说过的因为有了操作系统,而在设计新的嵌入式
控制系统时,只要编写应用程序以及驱动,就可快速
的完成一个全新的嵌入式系统而也是因为操作系
统的出现使得嵌入式Linux的控制在很容易原有基
础上进行系统功能的扩展,如实现无线监视,无线遥
控,进一步添加传感器进行数据融合等,必将使得在Linux下可
以做到很短时间设计出一个功能强大,高效,低成本
的打捞系统。
附录:
程序片段
#include
#include
typedefunsignedcharU8;
typedefunsignedintU16;
#include
sbitP2_0=P2^0;
U8U8FLAG,U8temp;
U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
U8U8comdata;
voidDelay_10us(void)
{
U8i;
i--;
i--;
i--;
i--;
i--;
i--;
}
voidinit_ser1()
{
REN=1;
SM0=0;
SM1=1;
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
EA=1;
TR1=1;
ES=1;
}
voidDelay(U16z)
{
U16x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidCOM(void)
{
U8i;
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!
P2_0)&&U8FLAG++);
Delay_10us();
Delay_10us();
//Delay_10us();
U8temp=0;
if(P2_0)U8temp=1;
U8FLAG=2;
while((P2_0)&&U8FLAG++);
if(U8FLAG==1)break;
U8comdata<<=1;
U8comdata|=U8temp;
}
}
voidRH(void)
{
P2_0=0;
Delay(180);
P2_0=1;
Delay_10us();
Delay_10us();
Delay_10us();
Delay_10us();
P2_0=1;
if(!
P2_0)
{
U8FLAG=2;
while((!
P2_0)&&U8FLAG++);
U8FLAG=2;
while((P2_0)&&U8FLAG++);
COM();
U8RH_data_H_temp=U8comdata;
COM();
U8RH_data_L_temp=U8comdata;
COM();
U8T_data_H_temp=U8comdata;
COM();
U8T_data_L_temp=U8comdata;
COM();
U8checkdata_temp=U8comdata;
P2_0=1;
U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);
if(U8temp==U8checkdata_temp)
{
U8RH_data_H=U8RH_data_H_temp;
U8RH_data_L=U8RH_data_L_temp;
U8T_data_H=U8T_data_H_temp;
U8T_data_L=U8T_data_L_temp;
U8checkdata=U8checkdata_temp;
}
}
}
voidxz(chartemp)
{
RI=0;//
ES=0;//
SBUF=temp;
while(!
TI);
TI=0;
ES=1;
}
voidmain()
{
init_ser1();
while
(1)
{
RH();
xz(0x01);
xz(0x01);
xz(U8RH_data_H);
xz(U8RH_data_L);
xz(U8T_data_H);
xz(U8T_data_L);
}
}
参考文献
1.苗忠良,宛斌,Qtopia编程之道
1许杭,许榕,叶庆泰,嵌入式Linux在AGV控制中的应用研
究,计算机工程与应用,2003;(25):
2孙天泽,等著.嵌入式设计及Linux驱动开发指南——基于ARM9
处理器(第二版).北京:
电子工业出版社,
3张进,叶庆泰,AGV视觉引导控制的研究.起重运输机械,
2003;(8):
4IMAQVisionConceptsManua1.NationalInstuments,2000;(10):
34
5ThyagarajanR.AmotioncontrolalgorithmforsteeringallAGVinan
outdoorenvironment.UniversityofCincinnati,2000
6KalyanK,HallEL.Steeringcontrolsystemforamovilerobot.
ProeedingsofSPIE——TheinternationalSocietyforOptical
Engineering,SocietyofPhoto—orlticalInstrumentationEngineers,
1997;3208:
162—169
7DofRC,BishopRH.MordernControlSystems.
8许峰,李东海,薛亚丽.基于ITAE指标的PID参数整定方法比
较研究.中国电机工程学报,2003;(8):
DesignforVision-guidedAGVSystemBasedonEmbeddedLinux
ANYuan|-.MACai—wen。
(ChineseAcademyofSciences,Beijing100039,P,R.China;
Xi’allInstituteofOpticsandPrecisionMechanics.ChineseAcademyofSciencesXi’an710068,P,R.China)
[Abstract]ThisAGVsystemisdesignedbasedonARM9processorandembeddedLinuxoperatingsystem,
Researchesimagesamplingandprocessing,andcontro1.EmbeddedLinuxoperatingsystemusedinAGVdesign
couldmakethingseasierwhenneedtodesignanewAGVsystem,andthiskindofnewembeddedAGVsystemis
easytodesign,andalsolowpriceandgoodquanlity.
[Keywords]AGVARMembeddedlinuximagesamplingandprocessingPIDITAE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深井 打捞 说明书 嵌入式 部分