




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于linux的嵌入式无损检测仪器的软件设计
0检查仪器的功能便携式损伤检测仪器在损伤检测领域有其独特的应用范围。由于其经济易用性低、成本低、体积小、使用灵活等优点,深受市场喜爱。本文所介绍的这一款基于ARM平台的便携式无损检测仪器除了具备普通便携式检测仪器所应具有的功能之外,还具有能通过网络接口将检测数据传输至上位机或接收上位机下达的特殊动作指令的功能。另外仪器还实现了通过网络接口构建FTP服务器的功能,使得仪器内部的应用程序易于更新和升级,同时仪器在检测过程中所保存的数据或屏幕截取图片通过FTP接口也易于被用户所获取。1涡流检测仪器所谓的无损检测即是指在不破坏构件材质和使用性能的前提条件下,运用现代检测技术来确定被检测对象的特征以及缺陷,以评价构件的使用性能。而无损检测仪器就是实现无损检测的设备载体。本文所介绍的无损检测仪器是一种基于涡流检测方法的仪器。涡流检测原理,即将被检测物体(导电体)置于交变的磁场中,导体中就会有感应电流产生。而导电体自身各种因素(如电导率、磁导率、形状尺寸)的变化会导致感应电流的变化,利用这种现象来判断导体的性质或有无缺陷的方法就是涡流检测方法。GNU/Linux是一款遵循GPL协议的操作系统,它是Internet发展的产物。Linux以其具有开放独立、安全、免费、网络功能强大等特点,已经在各个领域特别是嵌入式领域得到广泛的应用,本文所介绍的仪器就是构建在Linux操作系统之上并利用它成熟可靠的网络协议栈实现数据传输以及通信功能的。2盘与系统的交互图1是仪器的硬件结构图。从图上可以看出射频模拟信号经由探头激发并拾取,经过数字化转换之后进入FPGA芯片,数据在FPGA片内再经过一系列数学上的变换预存储在内置RAM区域中等待ARM的采集。以ARM芯片为核心的片上系统通过内部总线协议将数据搬运到外部的SDRAM中,再根据一些逻辑算法运算后将数据实时地显示到LCD屏幕上。用户还可以通过外接键盘与系统进行交互,例如设置参数、进行数据迁移等。另外,如果工作场合需要,仪器也可以不做任何数据上的处理,直接将FPGA中生成的数字化后的数据通过网络接口传输给上位机进行处理。图2是仪器的软件结构图。由图可以看出软件部分主要分为三个层次:引导程序、操作系统、应用层。引导程序采用的是开源软件U-boot,它的作用相当于台式机的bios,即做一些基本的初始化工作,为Linux操作系统的运行做好准备。主要工作有设置ARM芯片运行状态的相关寄存器,初始化SDRAM,设置系统运行堆栈,载入Linux操作系统以及文件系统。软件的第二层是操作系统层,Linux操作系统提供驱动接口供应用程序操控硬件或提供集成的系统调用供应用层使用。最后一层是应用层,该层由三个部分组成,分别是FTP服务器、主控程序、应用程序。应用程序实现仪器的基本检测功能;FTP服务器提供给用户一个友好的升级应用程序的界面;主控程序是调度程序,负责应用程序的升级。应用程序的升级包含有程序的有效性校验以及搬运功能。FTP服务器独立于主控程序和应用程序是因为进行FTP文件传输的时候需要较多的内存资源,因此只有在需要程序升级的时候才启动FTP服务程序,平时是处于关闭状态。3网络编程的实现3.1软件的基本类型Socket编程即套接字编程。所谓的套接字,是指一种通信机制,凭借这种通信机制,客户/服务器系统的通信工作既可以在本地单机上进行,也可以跨网络进行。在Linux下的网络编程就是指使用系统所提供的基于文件描述符的系统API函数进行套接字编程的过程。套接字有三种基本类型:流式Socket(TCP),数据报Socket(UDP),原始Socket(无协议)。这三种套接字类型各有特点,本文介绍的仪器采用的是流式套接字。流式套接字采用的是一个有序、可靠、双向字节流的连接。因此发送的数据可以确保不会丢失、复制或乱序到达,满足仪器数据的传输要求。通用的网络模型有7层结构,但是在实际的应用当中经常将它归结为4层,即应用层、传输层、Internet层、网络访问层,仪器进行数据传输的软件处在应用层。考虑到数据传输的稳定性,应用软件采用TCP协议。Internet层与网络访问层由Linux操作系统自动完成协议封装。3.2仪器程序的初始化代码基于TCP协议的网络编程,按照是否有帧听端口,通常分为两种模式,一种是服务器模式(侦听端口),另外一种为客户端模式。本仪器采用的是客户端模式。关于Linux网络通信中客户端编程的初始化代码,由于资料较多,这里不再累述。本文仅仅给出接收数据或发送数据的部分代码,因为仪器除了要处理网络信息外,还要进行检测数据的采集以及按键信息的处理,因此网络数据的传送或接收,不可以是阻塞的模式,必须是能够立即返回的非阻塞模式。本仪器采用传统的Linux操作系统下API函数select,来实现对网络端口状态的监控,进而实现数据传输的非阻塞功能。以下是实现功能的部分代码。发送数据的代码段,其中m_tv变量保存的是超时返回的时间设置。接收数据的代码段,m_tv的定义同上。如检测到网络口有数据上送的时候才进行数据的接收。4通信模块的详细介绍4.1数据传输的传输发生通信的两端(仪器和上位机),按照事先对数据传送的同步方式、数据结构、底层通信协议进行相互的约定,共同的遵守,这些约定就称为通信规约。基于网络接口的通信协议工作在应用层。通信协议制定的好坏直接影响仪器传输数据的速率,以及通信质量的可靠程度。按照通信协议的传输类型一般分为三类:(1)循环上送类型。仪器在进行正常的设置之后,不经过上位机的干预,主动将数据发送到上位机。(2)事件驱动类型。在正常工作模式下不向上位机发送数据,当有特殊事件发生的时候才向上位机发送数据。(3)被动召调类型。正常工作的时候,仪器不向上位机传送数据,直到上位机向仪器发送召调报文的时候才进行数据上送。考虑到仪器的工作模式,需要实时的向上位机发送数据,所以排除事件驱动类型的通信规约。由于检测手段的限制,要求仪器软件采样率较高,通常为10kHz以上,故对于数据传输的实时性要求较高,也不采用召调类型的传输协议。最终,仪器采用的是循环上送类型传输协议。4.2深刻控制字的长度仪器与上位机进行通信,包括两个方面的内容:(1)从上位机接收报文,例如开始采集数据、停止采集、发送参数等;(2)将采集到的数据发送给上位机,以供上位机进行显示或分析。通信内容以数据帧为最小发送单位。数据帧结构如表1。同步字:用于确认新一帧数据的开始。仪器采用的是三组0xD70x09共6个字节作为同步字,该报文头参照“部颁CDT循环远动规约”中的报文规定。数据帧长度:表示该帧报文的长度,由两个字节的长度表示,低字节在前,高字节在后。报文的长度不包括同步字的六个字节。命令控制字:指示该帧报文的作用,由两个字节的长度表示,低字节在前,高字节在后。数据区域:包含需要上传或是下载数据的内容。数据的内容都是两个字节组成一个数据元素,低字节在前,高字节在后。在原协议中,在数据区域后还存在一个校验码域,是用来检验该帧报文的数据是否完整。但由于仪器的底层采用的是基于流套接字的TCP报文协议,是可靠性连接,并且考虑到数据传送的实时性,在实际的工程使用中将校验码域进行删除。因篇幅有限,仅给出部分实际报文例子,其他报文类似推导即可:(1)开始采集数据0xD70x090xD70x090xD70x090x040x000x010x00(2)发送心跳包0xD70x090xD70x090xD70x090x040x000x050x00(3)循环上送数据0xD70x090xD70x090xD70x090x140x000x080x000x110x000x220x000x330x000x440x000x550x000x660x000x770x000x880x00其中,0x110x00~0x880x00表示的是八个物理采样通道的检测数值。……4.3仪器控制程序流程任何数据通信协议都必须依靠软件实现,因此软件对通信协议实现的好坏情况,直接影响仪器的系统稳定性和其他性能指标。系统的稳定性是指仪器能否经受得住长时间,大数据量传输的考验而不出现死机或数据传输不稳定的情况。其他性能指标是指实时性以及均匀性,实时性指仪器能否将数据实时的传输给上位机或对于上位机给出的报警信息是否及时响应,均匀性指数据的传输是否节奏一致,不能时快时慢。详细的程序处理流程见图3协议分析流程图。当协议解析程序段分析出上位机给出的命令控制字后,就可以很方便地根据命令来进行相关的动作,例如设置参数、应答数据、设置报警等。5逻辑上的瑕疵由于软件自身的特性,使得任何一款软件产品在发布的早期阶段都不可避免的存在一些逻辑上的瑕疵或功能上的缺失。因此,为了使客户能有良好的使用体验,仪器必须能够提供一种有效的机制,使其在提供给用户使用之后,用户仍然能够方便地对其进行软件上的升级、更新操作。5.1系统程序的升级考虑到升级软件的操作必须简单、可靠,故仪器采用同样基于网络接口的FTP模式进行程序更新。实现描述如下:预先在仪器的内部存储芯片上固化一种FTP服务程序。当有需要进行软件更新时启动该服务程序,这样仪器就立刻变成了一台拥有FTP服务功能的“服务器”。用户通过网线将仪器与个人电脑相连接,通过浏览器登录到仪器上,将程序下载到仪器内部的存储器的某个地址空间,之后将仪器与个人电脑分离,让仪器内部的主控程序在对下载的应用程序进行有效性检验后,将它替换当前的应用程序,完成软件升级。升级程序的软件处理流程见图4。5.2md5码的校验在更新仪器程序的过程中,由于外界偶然因素的干扰,可能导致程序的传输过程发生中断或因人为疏忽造成应用程序传输错误等问题,这样应用程序的更新就可能不成功,因此需要一种校验机制来判断所传输的程序是否正确、完整。本仪器采用的是通用的用于确保信息传输完整一致的MD5码校验机制。根据公开的MD5算法将待升级的程序进行数学变换得到一个128位的特征码,将该特征码附加到程序文件结尾,连同该程序文件一起传输给仪器。由主控程序将所下载的程序进行MD5码检验后,根据比较的结果向用户报告所传输的程序是否是完整的和正确的。MD5码生成函数参考开源MD5码软件包,主要函数与结构包含有MD5_CTX、MD5Iinit、MD5Update、MD5Final。5.3仪器的后台服务程序FTP的全称是FileTransferProtocol(文件传输协议)。FTP服务器是指能提供以FTP协议为传输协议进行文件传输服务的设备。能够实现FTP服务器功能的软件非常多,本仪器采用的是VSFTP这一款开源软件做为提供FTP服务的后台服务程序。采用VSFTP作为后台服务程序有三点理由:(1)VSFTP服务器是开源软件,可以获得源代码。(2)VSFTP服务器规模较小,性能可靠,适合嵌入式仪器使用。(3)VSFTP具有高度的可配置性,使得仪器的使用比较灵活。由于篇幅有限,VSFTP服务器的交叉编译以及安装过程略过,读者可以从相关的官方网站上获得。正确地编写VSFTP服务器配置文件vsftp.conf,将文件复制到文件系统的/etc目录中,当vsftpd程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 救助档案管理办法
- 律所文件管理办法
- 无疫单元管理办法
- 往来科目管理办法
- 黄文波健康管理课件
- 商务谈判策划书模板范文(12篇)
- 学前教育信息化2025年技术演进报告:人工智能在教育领域的应用与发展
- 2025年科中学试题及答案
- 2025年住院医师规范培训(各省)-广西住院医师精神科历年参考题库含答案解析(5卷100道合辑-单选题)
- 罕见病药物研发激励政策对产业发展的推动作用及创新模式研究报告
- 《舞蹈赏析》舞蹈之美
- 胃癌患者的护理课件
- 自己的冲刷公式
- 卫星通信教案
- 有限空间监理实施细则
- 胶带有限公司双体系资料之风险分级管控体系实施手册
- 第9课《从百草园到三味书屋》课件-2024-2025学年统编版(2024)语文七年级上册
- 订婚彩礼协议书合同
- 国际贸易术语解释通则(中文完整版)-20210708013627
- 《中国传统文化》课件模板(六套)
- 浅谈“双减”背景下提高学生听英语课效率方法的研究
评论
0/150
提交评论