欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于ARM的嵌入式远程数据采集系统设计文档格式.docx

    • 资源ID:4705057       资源大小:1.08MB        全文页数:63页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于ARM的嵌入式远程数据采集系统设计文档格式.docx

    1、3、 论文中软件部分用大量的程序代码作为正文篇幅,请修改,改为程序流程图的方式来表述软件部分,并用文字对流程图做适当的说明。毕业设计(论文)评阅成绩 (百分制): 62 评阅结论: 修改后答辩 (同意答辩、不同意答辩、修改后答辩)评阅人姓名中国地质大学(武汉)评阅时间2014/10/2论文原创性声明本人郑重声明:本人所呈交的本科毕业论文基于ARM的嵌入式远程数据采集系统设计,是本人在导师的指导下独立进行研究工作所取得的成果。论文中引用他人的文献、资料均已明确注出,论文中的结论和结果为本人独立完成,不包含他人成果及使用过的材料。对论文的完成提供过帮助的有关人员已在文中说明并致以谢意。本人所呈交的

    2、本科毕业论文没有违反学术道德和学术规范,没有侵权行为,并愿意承担由此而产生的法律责任和法律后果。 论文作者(签字):日期: 2014 年9月1日摘 要 本项目以Linux为平台ARM为核心,加以测距传感器,红外蔽障,循迹传感器,摄像头以实现图像识别,配合一定的机械设备完成从发现到报警、响应,最终完成灭火操作。预期目标:该项目对用于对火种比较敏感的场合,在安全时期该机器处于侦察状态,不断扫描周围的环境,一旦发现火苗,立即发出报警信号,并循迹走到达火源地并利用自带装备将火苗扑灭。该项目利用ARM可以移植操作系统并可以并行处理事件的优势,在对于时间要求严格的场合,可以并行完成多个任务,以节约时间进而

    3、节约成本,该项目可以最大限度的减少财产损失和保证生命财产安全。 该项目的重要难点在于:拟利用摄像头和传感器确定火源或火种方位的图像识别部分难度较大;在火源或火种方位确定之后如何接近火源,既可以保证机器的安全又要可以把火势较小的火源扑灭的算法,以及实现准确靠近火源的测量和在机器车上安装何种设备可实现小面积火的扑救作业。另外,整个过程中的操作都是由编制的程序完成,而程序和操作系统关联,所以,整个过程需要的应用程序和驱动程序以及对应的引导编译程序是重点也是难点,也是整个工程中最大的部分。该项目是利用比较高端的处理器ARM和开源操作系统Linux,处理功能强大,是智能家电,工业控制中的佼佼者。该项目被

    4、运用于防火比较严格的单位,例如博物馆、图书馆、天然气加气站等,它可以减少危害发生的几率或减小危害程度,可以挽回不可估量的经济损失,作用巨大。国内、外都有大型的嵌入式远程数据采集系统,可以拖着水管进行消防作业,但是由于体积大不可能运用在室内;对应的保护室内物品、避免发生火险的却没有,预计如果制作成功可在室内对火险敏感的地方作业。可以实现明火的探测,明火从出现到被传感器探测到最慢1s,从探测到到冲向火源的时间由距离决定,一般速度为1m/s,前提是:火源在传感器的探测范围之内(15m),没有障碍物阻挡,并且地面没有阻拦物与障碍。可以扑灭一定程度的火源,可根据易燃物种类搭配相应的灭火材料。报警是在发现

    5、火源的时候,报警并向火源靠近。 关键词:ARM、消防、循迹1、系统概述(一)系统架构“嵌入式远程数据采集系统”系统是由嵌入式操作系统配合应用程序作为软件控制部分,通过驱动程序来指挥硬件工作,实现控制的目的。整个系统的结构如图1所示。图11、系统组成嵌入式远程数据采集系统由车体、驱动板、循迹板、核心控制板、摄像头、探测板、无线网卡等部分组成,系统框图如图1所示。嵌入式远程数据采集系统具有自动循迹和定位功能;能够完成目标拍照,并实现图像识别;能够完成探测目标的温度和发光频率的测量,实现目标距离测量;通过无线通信接收服务器指令,并将探测数据传回服务器。图2 嵌入式远程数据采集系统系统框图(1) 主要

    6、硬件模块 1)核心控制模块:核心板使用S3C2440A处理器,通过SPI、I2C、USB、串口等接口,完成和驱动模块、循迹模块、探测模块、摄像模块和无线网卡的连接、驱动和控制。 2)驱动模块:采用ARM7处理器,接收核心控制板传来的控制参数,产生PWM信号控制电机驱动模块,并将电机编码器信息回传核心控制板。 3)循迹模块:采用ARM7处理器,利用24路反射式红外传感器,采集路线循迹信息,通过SPI接口上传核心控制板。 4)无线通信模块:使用WIFI无线网卡,接收服务器发出的控制命令,并将探测数据和图像数据上传至服务器。 5)探测模块:利用温度传感器、光电传感器和超声波传感器,实现探测目标的温度

    7、、发光频率和距离的测量,通过I2C总线将探测数据传给核心控制板。 6)摄像头模块:采集目标图像信息,由核心控制板完成图像识别,并上传服务器。(2)主要软件模块 1)操作系统:嵌入式远程数据采集系统采用linux 2.6版操作系统,系统内核可以裁减,用户可根据产品的应用能力和范围,定制其具体功能。 2)驱动程序:CMOS摄像头驱动Camera;I2C总线驱动dev/i2c/0;SPI驱动ledar ray;手动按钮驱动extraio;串口驱动ttySAC0,1,2; 3)主要应用程序:小车控制程序car_control.c;图像采集与识别程序camera.c;无线通信程序wf_trans.c;探

    8、测板数据处理程序24cXX.c。2、系统功能小车与多种传感器协调工作,具备一定的自动识别和判断能力;小车整体有电机、寻迹板、驱动板、主板、核心板、摄像头、红外传感器、无线网卡和整个车体组成,系统框图如图3所示。图3它可实现如下功能:(1)寻迹,可跟随线前进,在短线处也可实现正确到达目的。(2)在距离火源一定距离时停止前进,停下采集火源照片。(3)同时采集火源的物理参数,并通过wifi传回pc机。(4)对所拍图像进行颜色识别。3、系统主要硬件模块(1)核心控制模块嵌入式远程数据采集系统控制核心板使用S3C2440A控制器,他可以运行操作系统,集成如下主要片上功能:1) 3路URAT(IrDA1.

    9、0,64-Byte Tx FIFO,64Byte Rx FIFO)2) 12路USB主机控制/1路USB期间控制(ver1.1)3) 摄像头接口(支持最大4096x4096的输入,2048x2048缩放输入)4) 130个通用I/O,24个外部中断源5) 最高频率:400MHz从而实现对摄像头的大量数据的高速处理,对串口、USB、大量通用I/O口和中断的控制,(2)寻迹模块采用RPR220反射式红外传感器进行路面信息的采集,路面信息的准确性直接影响到控制决策的准确性。根据红外传感器的输出值,可以得到嵌入式远程数据采集系统相对黑线的位置,从而控制智能车向相应的方向转向,使其不会冲出跑道。它的具体

    10、工作过程:红外传感器采集传感器信息,8路传感器传回数据组成一个字节,传至2440,计算是否偏离黑线,传感器和:temp=1flagSensor 1+2 flagSensor2+3 flagSensor3+ 4flagSensor4+ 5flagSensor5+6flagSensor6+7flagSensor7+ 8flagSensor8;偏离值计算:temp/4.5,带入速度调整公式:motor-speed = (int)(motor-proportion * bias) + motor- speedNormal ;得出电机pwm值,分别放入wr_buf2 ,wr_buf3中,利用write(

    11、fd_COM1, wr_buf, SEND_BUFF_SIZE)将速度发到AVR单片机,调整电机pwm值,达到调整方向的目的。图4(3)无线通信模块无线传输模块使用wifi,属于在办公室和家庭中使用的短距离无线技术,通讯距离可达305米,在封闭性区域,通讯距离为76米到122米,方便与现有的有线以太网络整合,组网的成本更低。 Wi-Fi的半径则可达300英尺左右 约合100米 WiFi最主要的优势在于不需要布线,可以不受布线条件的限制,(4)图像识别模块1)具有8位的CMOS图像传感器接口, 根据不同颜色图像在经过二值化处理,存储在ROM的编码数据2)具有在黑暗处补偿的功能;3)具有色彩修正的

    12、功能;4)具有图像(灰度)校正,亮度校正,非线性校正的功能;5)具有获得目标物体的形状和中心位置的功能;6)具有主从通讯的串形通讯方式的接口;框图如下:图5(5)探测模块采用AT89c51做控制器,作为超声波,红外测温,测频率协调工作的基础,主要完成对红外传感器传来的信息和超声波的数据进行处理,使用传感器技术对目标的物理量进行物理分析、计算、进而产生结果,通过出口传入2440,再通过无线网卡传回PC。具体框图如下:图64、主要软件模块(1)操作系统嵌入式远程数据采集系统系统采用Fedora 9操作系统,它也是一种开源操作系统,系统内核可以裁减,我们可以针对我们的产品的应用能力和范围,来定制操作

    13、系统支持的功能,该车需要USB口,摄像头,不需要蓝牙支持,我们在编译内核是就不需要蓝牙的支持,这也是因为系统的flash的大小是有限制的,要留出更多的空间来存储程序,而不是操作系统。(2)嵌入式编译环境该系统使用的交叉编译环境为ARM-Linux-gcc,它的是针对专门的硬件设计的,它编译完成的可执行文件只能在开发环境时针对的硬件环境下工作,虽然2440是一种带操作系统的处理器,但是它不具备自主开发能力,所以需要pc机编译。(3)主要应用程序 1) car_control.c 功能:小车循迹定位控制算法,PC启动和按钮启动,各个设备启动与传输 2)camera.c 功能:拍照与图像识别算法 3

    14、)wf_trans.c 功能:命令、图像,数据的通信(4)ARM9与ARM7间通信ARM9 与ARM7 单片机之间的串口通信没有固定的格式,可以仿照以太网通信里面的数据打包的概念,每次传输都是以一个数据包为基本单位。 (5)与上位机的接口服务器侦听自己IP地址和端口7001,等待客户机Socket连接。等到客户机connect()操作的上位机等待并读取客户机的“请求数据”,上位机处理服务请求后,写入“答应数据”给客户机。客户机发起请求,上位机答应请求,命令总长度是40个字节,上传图像数据命令长度例外,命令长度不够40字节,数据内容填0。2、电源部分图7(一)主要接口图8(二)控制部分图9(三)

    15、图像及音频部分图10(四)通信接口图11(五)寻迹部分图121、寻迹算法取传感器传回数据,将各位分别放入数组的08位,待以后方便使用 tempData = sensorData; for(i=0; i= 1; 最后运算结果为temp=1flagSensor1+2 flagSensor8在此之后,根据结果计算调整量:if(temp != 0) *bias = temp*1.0 / (*sum) - REF_VALUE; /产生计算结果 如果在中间即flagSensor4 和flagSensor5的值为1,最后运算结果为4.5,而基值REF_VALUE=4.5,则偏移量为0,导致结果不做调整,如此

    16、往左偏,偏移量为正值,往右偏,偏移值为负值。if(*sum 4) for(i=0;sizeof(table); i+) /sizeof(table)=7 if(tempData = tablei) /判断与预计的那种情况相同 *bias = 0; return 1; 图13判断是不是与预定的值相等,预定的值有以下的几种情况,如图所示:speedNormal; /计算公式y=kx+b如果传回的传感器位置,与上图的位置某一相同,则速度保持不变(即*bias=0,motor-speed= speedNormal),若不与上图任一类型相同,则将计算结果带入该式计算出偏移量,分别放入wr_buf2 ,w

    17、r_buf3中,利用write(fd_COM1, wr_buf, SEND_BUFF_SIZE)将速度发到ARM7单片机,控制电机调整pwm值,达到调整方向的目的。(六)驱动板部分图14(七)测温部分图15(八)印制板图1、探测板印制图图162、寻迹印制板图图17三、硬件组装(一)控制部分装配图1、主板在核心板上平面图(俯视)图182、核心板装在主板上图19注意:(1)JP为主板与驱动板的接口 (2)J1、J2为核心板与主板的主要接口。(3)装配顺序为驱动板在最下面,主板在驱动板的上面,接口为JP。(4)核心板在主板的上面,接口为J1,J2(颜色相对应)。(5)D1、D2为电源1、电源2电源2

    18、。(6)主板图上P1口为扩展板接口,插接红外线探测板。(7)主板图上P2口为摄像头接口,插接摄像头连接板。(8)摄像头连接板上插接摄像头模块。(9)烧写ARM7单片机时,在驱动板上烧写,需取下核心板及主板,把ISP接头插入ARM7 ISP 接口,即可实现程序的烧写。(二)探测部分装配图1、寻迹传感器装配(侧面)图202、探测板装配图21(1)红外传感器(RPR220)的高度可以通过调整螺丝的高度调整,具体方法:拧松螺帽,把探测板抬(降)值理想高度,再紧固螺帽即可完成。(2)红外传感器的安装高度,约为0.81.4cm,具体情况,应以调试时能正确探测到黑线为低电平,其他情况为高电平为标准。(3)扩

    19、展板应插入如上图所示的P2口,方向以红外探头的玻璃窗面向被测物体即为安装正确。 (4)最后装塑料保护外壳,缺口朝前。(5)无线网卡在靠内侧USB接口。(三)摄像头部分装配(侧视图)图22(四)整车装配完成实物图图23(五)寻迹板安装1、布局为了达到最理想的寻迹效果:既不会偏离线太远才调整,又不会反复在线周围摆动,可以适当的调整传感器之间的距离,来达到目的。2、高度RPR220的使用有一定的距离范围,寻迹传感器应布置在小车的前面,根据线的宽度可做相应的调整,但是传感器的高度应在0.8CM1.3CM之间,过低可能导致发出的红外线不能反射到接收端,过高则会影响它的灵敏度。(六)探测板安装探测板插接到

    20、主板的J2口(靠外侧的十针接口)上,以探测板面向被测物体为安装正确。(七)摄像头安装探测板插接到主板的J1口(靠内侧的十针接口)上,以摄像头面向被测物体为安装正确。(八)无线网卡安装无线网卡通过主板上靠内侧的USB口向接。4、电路接线(一)控制板接线1、驱动板接线图242、电源,电机接线图25(二)探测板接线1、循迹板接线图26方向:探测板插接到P2口,以红外传感器的测温面向被测物体为正确方向。摄像头板插接到P1口,以摄像头面向物体为正确。2、摄像头板接线图273、探测板接线图284、寻迹板红外传感器板接线板图295、Sensor接口接线在主板P2插接口上,如下图所示图30实物图如下图315、

    21、软件部分(一) 程序说明1、 Car_contol.c完成电机的控制部分,从采集红外传感器数据到处理数据并计算出偏离值,并发送到ARM7纠正路线,和图像的控制部分,主要功能部分如下:(1)初始化电机(2)建立电机控制模型(3)初始化串口(4)从传感器读回来原始数据并计算出偏移黑线值和在黑线上的传感器数目(5)用电机控制模型计算出电机各自的调整量(6)为摄像头开辟内存(7)打开串口,红外传感器,摄像头出错处理(8)发送并等待“启动消防车请求”,并以10ms循环读取“启动按钮”(9)发送图像数据2、 Camera.c 完成如何采集一帧图像的完整操作,具体功能部分如下:(1)开辟图像处理暂存区(2)

    22、打开摄像头(3)获取当前时刻的一帧图像(4)图像识别(5)关闭摄像头3、 Extraio.c 为红外传感器和以后添的各种传感器预留的统一接口,主要完成从传感器读数据到处理,再到返回结果的一个流程,具体功能部分如下;(1)建立输入与输出结构(2)配置数字口(3)从数字口读数据、从数字口写数据(4)获取测温传感器的值,分别需要获取两个通道(5)等待启动按钮函数(6)收到启动消防车应答信号4、 wifi_trans.c 完成与上位机的的各种通信协议及参数命令的配置,和对使用大量内存图像的处理操作,具体功能部分如下:(1)配置通信的各种参数(2)跟PC机通信的各种握手命令(3)分配图像指针(4)启动消

    23、防车请求函数(5)上传采集数据函数的处理实体(6)上传采集数据函数(7)上传一帧图像函数的处理实体(8)上传一帧图像函数(9)上传一帧LOGO图像函数的处理实体(二)程序流程图1、寻迹主程序流程图2、寻迹前进子函数流程图图323、采集数据,上传子函数图334、红外线传感器程序流程图5、其它传感器程序流程图图34(三) 程序1、 controller.c #include #include sys/ipc.hsys/shm.hsys/sem.hfcntl.hstrings.hsignal.hunistd.hstdio.hstdlib.htime.h #include controller.hco

    24、mmu.hcamera.h #define DEBUG_CONTROLLER /* controller_running全局变量初始为1,在进程接收到SIGINT信号后 * 设成0,在进程的主要的循环条件中加上此条件,即能够令用户通过Ctrl+C * 来正常退出循环。 */ int controller_running=1; void on_sig(int sig) /如果是SIGINT信号,则设置controller_running变量 if(sig=SIGINT) controller_running=0; if(sig=SIGUSR2) printf(Controller receive

    25、d SIGUSR2.n); if(sig=SIGCHLD) Child process has ended.n void register_sig_handler() struct sigaction sig_act; sig_act.sa_handler=on_sig; sigemptyset(&sig_act.sa_mask); sig_act.sa_flags=SA_RESTART; if(sigaction(SIGINT,&sig_act,NULL)=-1) perror(Register SIGINT handler fails. exit(1); if(sigaction(SIGUSR2,&sig_act,NULL)=-1) Register SIGUSR2 handler fails. if(s


    注意事项

    本文(基于ARM的嵌入式远程数据采集系统设计文档格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开