




已阅读5页,还剩52页未读, 继续免费阅读
毕业设计(论文)-机车车辆轮、箍在线检测系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
- I - 机车车辆轮、箍在线检测系统机车车辆轮、箍在线检测系统机车车辆轮、箍在线检测系统机车车辆轮、箍在线检测系统 摘要摘要摘要摘要 该报告是本人在秦皇岛爱科电子技术开发有限公司实习期间所作的研究和开 发工作的总结。主要取得了以下成果:采用可编程 ASIC 技术实现了超声数字信 号处理软件的集成和固化。 为了解决超声波探伤仪在铁路机车车辆轮、箍在线检测系统的应用中遇到的 数据处理能力差及显示数据更新频率低的问题,我们将原有的数字式超声波探伤 仪的一些信号处理电路和软件设计成了基于 FPGA 实现的可编程专用集成电路。 克服了软件串行处理方式带来的数字式超声波探伤仪的数据处理能力差和显示数 据更新频率低的问题,使得新的电路能适应产品的需要。通过对样机的现场测试 和试用,证明了采用 FPGA 技术对提高数字式超声波探伤仪器技术性能提高的可 行性和优越性。 关键词关键词关键词关键词超声波;探伤仪;FPGA;可编程 ASIC;在线检测 哈尔滨理工大学学士学位论文 - II - RollingRollingRollingRolling stockstockstockstock roundroundroundround、hoop-linehoop-linehoop-linehoop-line detectiondetectiondetectiondetection systemsystemsystemsystem AbstractAbstractAbstractAbstract The report is finished when I Internship in Echo Compony of Qinhuangdao city. The following major achievements has been given: programmable ASIC technology to achieve the ultrasound digital signal processing software integration and curing. Toaddress the ultrasonic flaw detector in the round of railway rolling stock, the hoop-line detection system encountered in the application of the data-processing capacity of poor and update data show that the problem of low frequency, We will be the original digital ultrasonic flaw detector of some signal processing circuit and software design to achieve a programmable FPGA-based ASIC. To overcome the software handling of the serial digital ultrasonic flaw detector data processing capability to update data show that poor and the problem of low frequency, making the circuit to adapt to the new product needs. Through the prototype and field testing and trials to prove that the use of FPGA technology to improve digital ultrasonic flaw detector technology performance of the feasibility and superiority. KeywordsKeywordsKeywordsKeywordsUltrasound; Detectors; FPGA; Programmable ASIC; Online testing 哈尔滨理工大学学士学位论文 - III - 目录目录目录目录 摘要.I Abstract II 第 1 章 绪论.1 1.1 研究内容概述1 1.2 国内外现状1 1.3 主要研究内容及研究方法和前期工作基础(可行性及技术路线)1 1.4 要达到的目标、成果形式及主要指标2 1.5 研究课题及主要工作3 第 2 章 基于 FPGA 技术的超声信号处理软件的集成和固化的实现 4 2.1 引言4 2.2 数字式超声波探伤仪基本原理4 2.3 硬件资源4 2.4 外形尺寸及外部接口5 2.5 硬件逻辑框图5 2.6 各功能模块的说明6 2.7 接口协议8 2.8 逻辑设计说明10 第 3 章 软件的实现.11 3.1 Main.c:主模块14 3.2 function.c:功能操作模块 15 3.3 detect.c:检测操作模块18 3.4 adjust.c:校准操作模块19 3.5 push.c:基本屏幕操作模块21 3.6 wave.c:曲线制作模块. 22 3.7 rtc.c:实时时钟模块22 3.8 selectprint.c:选择模块.24 3.9 print.c:打印模块24 3.10 storage.c:数据存储及删除模块26 3.11 uart.c 和 usb375.c:通讯模块. 28 3.12 其他模块32 结论.33 致谢.34 参考文献.35 附录 A.36 附录 B.39 哈尔滨理工大学学士学位论文 - IV - 附录 C.43 附录 D.48 哈尔滨理工大学学士学位论文 - 1 - 第第第第 1 1 1 1 章章章章 绪论绪论绪论绪论 随着不断加快的国家现代化建设步伐,铁路也不断重载、提速,实现跨越 式发展;为了适合跨越式发展的速度,就必须树立科学发展观,才能保证铁路 跨越式发展的安全;车轮是机车车辆走行的关键部件,近年来有加速疲劳的趋 势;只有实现车轮、箍在线检测、将定修变成状态修、变人控为机控、才能变 被动为主动;在确保安全前提下,实现铁路跨越式发展。 1.11.11.11.1 研究内容概述研究内容概述研究内容概述研究内容概述 当前机车车辆的轮、箍疲劳是有上升趋势,也是制约铁路跨越式发展速度 的课题之一,多年的论证和试验证明:抓大放小;把轮、箍的定修变为状态 修;变人控为机控是解决这一课题的最有效办法。 现在各铁路局对轮、箍的运行安全非常重视,把轮、箍的检测列入小修范 围,可是险性事故和疲劳掉大块的险情时有发生,严重的威胁着行车安全。 2000 年通过昆明铁路局首先验证,后来也得到其他铁路局的证明,用部装 字(335 号)文件的方法能解决轮、箍的危害性疲劳缺陷,全路机务系统大大 减少了崩箍事故;但是对提速重载的新型机车整体轮,用同样的方法就存在难 解决的课题; 用现代信息技术与超声波探伤结合;选用工业级信息技术、机械技术、探 伤技术结合设计;在入段线的线路上,8 米范围内两侧安装机械手传感器 216 个,单探头检测速度 1000Hz,确保单探头发现两次以上才能判为是缺陷,保证 全天候检测结果的可靠性。 记录:年、月、日、时、分、秒,机车车辆型号、轴位、端别、有(无) 伤,自动记录、自动上传至总调度、自动统计、人工查询、打印报告; 管理:每天人工确认单探头的工作状态、耦合、打出系统自检报告。 1.21.21.21.2 国内外现状国内外现状国内外现状国内外现状 目前国内外也都在解决这一难题,一是用表面波探伤方式,只是解决踏面 下 10mm 以内的缺陷;二是用组合探头在轮的内侧面探伤;三是用纵波发现大 于 100mm 的缺陷,用横波发现径向缺陷;有的对钢轨改动变形比较大;但是对 于疲劳危害性缺陷有遗漏的可能性,因为裂源有很大的不确定性。 国内也有些单位进行试验,但是都在方法上的不可靠而没得到推广应用, 或者推广了也没有实际应用。 1.31.31.31.3 主要研究内容及研究方法和前期工作基础(可行性及技术主要研究内容及研究方法和前期工作基础(可行性及技术主要研究内容及研究方法和前期工作基础(可行性及技术主要研究内容及研究方法和前期工作基础(可行性及技术 路线)路线)路线)路线) 探伤方法:经过八年的全路验证和我们公司反复试验,对轮、箍的径向缺 哈尔滨理工大学学士学位论文 - 2 - 陷(335 号文件)提供一套可靠的探伤方法,有效地防止了崩箍事故的发生; 随着铁路跨越式发展新型的机车都是整体轮了,整体轮疲劳缺陷特征一般都是 周向的,对于这类周向缺陷非得用纵波方法不可;根据钢轨的几何形状和车轮 踏面的几何形状,实现对轮箍部位的纵波、横波探伤确实在方法上有难度;要 让纵波探头接触到车轮、箍踏面耦合好才能实现超声波探伤,从钢轨结构形状 安装 108 个探头(单侧) ,并且保证耦合良好无盲区谈何容易,只有方法上可靠 探伤结果才可靠。 可靠性:以电力机车为例,车轮一周要 4m 长,用纵波覆盖 4m 长的距离, 按照 500 平方毫米当量检出周向缺陷,就要 100 个纵波探头(单侧) ,加上横波 探头 8 个(单侧) ,共计 216 个探头都要监控各自的工作状态,每天都要打出单 个探头的工作状态表;确保不合格的探头得到及时更换。 从机车和车辆的轴距结构看也有难度,在四米的范围内会有三个探头同时 采集来信号,所以就要很高的信号处理技术; 技术资源准备:经过八年的努力,我们公司拥有四项超声波探伤专利技 术,国内第一家实现轮箍不动车探伤,积累了轮、箍超声波探伤的经验;有中 科院声学教授沈建中老师和铁科院教授黎连修老师的指导,有公司一批十几年 锻炼出来的综合技术力量;有公司试验成功的超声波透射法专利技术;有前些 年试验的经验和其他企业的经验教训,为该项目的成功奠定了基础。 1.41.41.41.4 要达到的目标、成果形式及主要指标要达到的目标、成果形式及主要指标要达到的目标、成果形式及主要指标要达到的目标、成果形式及主要指标 单探头检测重复速度 1000HZ,保证单探头重复两次以上发现的缺陷才能确 认; 要能够发现小于或等于 500 平方毫米周向缺陷和 3mm 直径 30mm 长的径向 缺陷; 每次检测后自动对 216 个探头自检,并显示出每个探头的工作状态备查; 自动检测自身系统的工作状态备查,否则就无法可靠的探伤; 保证机车、车辆在小于 10 公里的时速通过,探伤系统对车轮、轮箍在线检 测; 探伤的耦合剂用水循环完成,冬季用防冻液循环实现探伤耦合,沉淀物定 时人工清理; 采用哈科研所车号识别系统标识检测记录,探伤报告内容有:车号、轴 位、左右端别、有(无)缺陷、系统工作状态,有缺陷自动声光报警并自动显 示报告打印上传; 机车、车辆进入检测前 20 米系统复位提示人探伤准备,10 米自动开启横 波传感器防护罩,5 米耦合剂自动循环;超过一个车距后耦合剂停止、系统自 检、系统复位,自动关合横波传感器防护罩; 钢轨需要加工出长 140mm、宽 25mm 梯形槽单侧四处,用来安装横波探头 及开启装置,需要公务系统加工安装轨道; 系统设备安装在入库线附近,需要安装在四平方米的空间,可以与其他值 哈尔滨理工大学学士学位论文 - 3 - 班兼用一室隔离使用,距离传感器直线小于 20 米为最佳; 设计制作单独的接地极,确保在线检测系统的可靠性。 1.51.51.51.5 研究课题及主要工作研究课题及主要工作研究课题及主要工作研究课题及主要工作 基于 FPGA 技术的超声信号处理软件的集成和固化。将超声波探伤仪中的 采样控制、数据压缩、闸门设置、报警、显示点阵组成电路和算法,设计成由 FPGA 实现的专用集成电路,以满足铁路机车车辆在线检测系统对实时性和大 数据量的要求。 哈尔滨理工大学学士学位论文 - 4 - 第第第第 2 2 2 2 章章章章 基于基于基于基于 FPGAFPGAFPGAFPGA 技术的超声信号处理软件的集成技术的超声信号处理软件的集成技术的超声信号处理软件的集成技术的超声信号处理软件的集成 和固化的实现和固化的实现和固化的实现和固化的实现 2.12.12.12.1 引言引言引言引言 由于在传统的以 CPU 软件处理为核心的超声波仪器中,数据的压缩预处 理、闸门及报警控制、波形显示形成等算法均由软件实现,占用了较多的 CPU 处理时间,的确是的无法满足实时性和大数据量的要求,采用 FPGA 技术实现 的 ASIC 电路代替原有的软件算法可以极大提高处理速度,满足以上要求。 2.22.22.22.2 数字式超声波探伤仪基本原理数字式超声波探伤仪基本原理数字式超声波探伤仪基本原理数字式超声波探伤仪基本原理 超声波在被检测材料中传播时,材料的声学特性和内部组织的变化对超声波 的传播产生一定的影响,通过对超声波受影响程度和状况的探测了解材料性能 和结构变化的技术称为超声检测,超声波在两种不同声阻抗的介质的交界面上 将会发生反射,反射回来的能量的大小与交界面两边介质声阻抗的差异和交界 面的取向、大小有关,超声波探伤仪就是根据这个原理设计的。 数字式超声波探伤仪是以模拟超声波探伤为基础,对接收和放大后的超声 回波信号进行采样、压缩后,采用数字信号处理的方法对工作界面和不连续性 所产生的回波信号进行存储、显示及分析、打印等处理。 数字式超声波探伤仪的优越性体现在以下四方面,计算机控制的超声检测 系统可自动选择检测参数,相互校正自动选择操作工艺,自动记录数据,进行 换能器的自动补偿和检测结果的自动判断。从而实现自动判伤,自动读出和显 示缺陷位置与当量值,并存储和打印输出探伤报告,大大地提高了探伤结果的 可信度。 2.32.32.32.3 硬件资源硬件资源硬件资源硬件资源 CPU:EZ80L92 主频 25Mhz ROM:W29C040 存储模块: RAMLV5128 大容量 FLASH 39VF080 通用串口:USB 全功能通用串口(RS232 协议) LPT 通用并口 具有电池监控电路、实时时钟电路 外部接口: 具模拟电路控制接口 640 X 480 彩色 LCD 显示模块接口 电源输入接口 哈尔滨理工大学学士学位论文 - 5 - 外形尺寸:178129mm 功率:1.5W,5V3.3V 供电 2.42.42.42.4 外形尺寸及外部接口外形尺寸及外部接口外形尺寸及外部接口外形尺寸及外部接口 探伤仪主机的外部形状及外部数据交换接口图如图 2-1。 图 2-1 外型尺寸及外部接口图 2.52.52.52.5 硬件逻辑框图硬件逻辑框图硬件逻辑框图硬件逻辑框图 以下是系统基于 FPGA 芯片的硬件逻辑框图,如图所示,模拟口控制、监 视器、打印与通讯设备、显存及主 RAM、A/D 采样、波形及参数存储器、程序 存储器、时钟控制芯片等硬件设施均由 FPGA 芯片控制,这样提高了处理数据 的效率,以满足对实时性和大量数据的要求。 哈尔滨理工大学学士学位论文 - 6 - 图 2-2硬件逻辑框图 2.62.62.62.6 各功能模块的说明各功能模块的说明各功能模块的说明各功能模块的说明 1Cpu: (ez80l92) (1)与实时时钟芯片 ds1302 连接,负责实时时钟控制: DS1302 为串行 io 总线工作方式。Cpu 的 PC1 口为该芯片提供串行时钟, PC2 口与该芯片的数据 io 口相连,对该芯片的数据进行读写操作。PC3 口与该 芯片的复位引脚相连,提供复位信号。 (2)与电池采样芯片 tlc548 连接,负责电池电压监测: TLC548 为 8 位串行 AD 芯片。对系统的电池电压进行采样,通过电阻的匹 配,将电压信号转换为数字量,使 cpu 可以识别。Cpu 的 PD7 口为该芯片的片 选信号。当 cpu 需要读取电池电量时,先通过 PD7 口,使能该芯片,然后,通 过 PD5 口提供串行时钟,而数据则通过 PD6 口读入到 cpu。 (3)Cpu 的 PD2 口与蜂鸣器连接,控制报警。高电平有效。 (4)Cpu 的 PD0,PD1 口可复用为串行收发总线。PD0 为 out,PD1 为 in, 分别与 cp2101 的收发总线连接。实现数据 PC 机的通讯功能。 (5)Cpu 的数据线与 hc273 连接,片选通过 cpu 的 io 地址操作,经过 pld 的 译码选通,将数据线的电平提升为 5V,从而与打印机的电压相兼容,实现打印 功能。 (6)Cpu 的 PB 口与键盘相连,实现人机交流功能。 哈尔滨理工大学学士学位论文 - 7 - 表 2-1 PB7PB6PB5PB4PB3PB2PB1PB0 L4L3L2L1C4C3C2C1 2Tlc5540:数字采样芯片,8 位并行 AD。负责将模拟数据转换为数量, 存储与 pld 中,供 cpu 及 pld 进行处理。 339VF080:数据存储芯片,掉电数据不丢。用于存储 cpu 的静态参数及 需要保留的采样数据。地址线、数据线直接与 cpu 的地址、数据线相连。片 选、读写信号由 pld 逻辑译码给出。 4Lv5128al,显存及主 ram:存储 cup 动态参数(如堆栈等),及显示存储 的数据。掉电后数据丢失。地址线、数据线直接与 cpu 的地址、数据线相连。 片选、读写信号由 pld 逻辑译码给出。 5FPGA(LFXP6C) : (1)与 tlc5540 连接,控制采样芯片,并将采样数据存储于 FPGA 内部的 ram 中.采样控制状态图如图 2 所示,当 FPGA 收到到采样使能信号后,根据场行计 数,每帧发送一次 EE,使能采样信号,即每帧采样信号一次。DELY 为采样信 号,当 EE 有效后,开始采样。并且延时计数器开始计数,当延时计数器全为 1 后,SAMP 信号开始有效。这时 FPGA 开始存储采样数据。并用存储的采样数 据,进行动态采样波的制作。通常情况下,进入采样后 DELY 和 SAMP 是同沿 信号,即采样开始,便开始存储数据。延时和闸门展开的功能通过延时计数, 使 AD 先开始工作,FPGA 延时后存储数据来实现的。 E E DELY SAMP 图 2-3 采样控制状态图 注:EE :采样使能信号,cpu 设置与 FPGA 场行配合,每帧一个信号。 SAMP : 有效采样信号。 DELY :采样信号。 (2)实时动态波的制作,根据采样的数据,与屏幕的行信号通过描点法制作 硬波。 (3)地址译码、io 口译码,根据 cpu 数据线,地址线,读写线,及 io 或存储 器控制线,进行译码,使能相应的芯片或是控制信号。 哈尔滨理工大学学士学位论文 - 8 - (4)监视器(pd060vt5)的显示控制:点频*列计数*行计数*帧数=1S,通过 该公式以及监视器对场行的要求、系统对监视器帧频的要求,来确定点频及列 计数、行计数的计数值。并生成显示器需要的场、行、点信号,将显示存储器 内数据映射到显示器上。 2.72.72.72.7 接口协议接口协议接口协议接口协议 1存储器: Rom 地址00000007FFFF 512KB 空间 显示存储器地址08000009FFFF 128KB 空间 分为 2 桢 1、2 可同屏显示 每屏 480 行,每行只使用前 80 列 主 RAM 地址10000013FFFF 256KB 空间 采样数据存储器地址0E00000EFFFF64KB 空间 FLASH 存储地址200000-2FFFFFH共 1M 空间 只使用前 1024 字节具体为 512512 采样数据SHIFT 值为每采样点 12 位高位在前 2I/O 口: 由于 eZ80 的寄存器地址与 I/O 地址 80FFH 共用,所以 I/O 地址从 40H 到 7FH 键盘在 CPU PB 口C1、 C2、 C3、 C4、 L1、 L2、 L3、 L4 PB0、PB1、PB2、PB3、PB4、PB5、PB6、PB7 蜂明器器报警在 PD2 口. Cp2101 的收发: in: PD1, out: PD0 读采样数据中断: PD4 口. 电池监控在 PD 口: TLC548 时钟: PD5, TLC548 数据: PD6, TLC548 片选: PD7 口. 实时时钟芯片 1302 控制在 PC 口:TCLK PC1,TIO: PC2 口, TIO: PC3 口, TRST: PC3 口. 3屏幕显示桢选择: P40 D0 闸门内硬波变色使能位.1,红色,0,不变色W P4150000H 区颜色配置位W D7D6D5D4D3D2D1D0 RED2RED1RED0GREEN2GREEN1GREEN0BLUE1BLUE0 P42硬波颜色配置位W D7D6D5D4D3D2D1D0 RED2RED1RED0GREEN2GREEN1GREEN0BLUE1BLUE0 哈尔滨理工大学学士学位论文 - 9 - P43 闸门内硬波颜色配置位W D7D6D5D4D3D2D1D0 RED2RED1RED0GREEN2GREEN1GREEN0BLUE1BLUE0 P4440000H 区颜色配置位W D7D6D5D4D3D2D1D0 RED2RED1RED0GREEN2GREEN1GREEN0BLUE1BLUE0 P50 分频低 8 位原码W P51 分频高 8 位原码W 分频值范围:0-1023 分频 P52 延时低 8 位原码W P53 延时高 8 位原码W P54 延时最高 3 位原码W 最大延时 19 位 整体采样最大时间(延时采样时间) :15ms P60 Db 档设置W D7D6D5D4D3D2D1D0 A2AA1AB2AC2AJBB1AC1AJA P61 dB 档设置W D7D6D5D4D3D2D1D0 JE P64 dB 档设置W D7D6D5D4D3D2D1D0 BSJDJC P65 D0, stb 信号1 有效W P67 pen:273 片选1 有效W P70 D0 采样使能 1 ENABEL 0 DISABELW P71 D0 硬波使能 1 ENABEL 0 DISABELW P72 闸门起始地址低 8 位A7-A0W P73 D0 闸门起始地址高位A8W D7 闸门结束地址高位A8W P74 闸门结束低地址A7-A0W 哈尔滨理工大学学士学位论文 - 10 - P76 读中间值低 8 位R P77 D3,D4 读中间值高 2 位R 2.82.82.82.8 逻辑设计说明逻辑设计说明逻辑设计说明逻辑设计说明 编译语言:verilog HDL。 编译环境:Synplify Pro 8.4、ispLEVER5.1 逻辑实现的功能: (1)地址译码 (2)Io 口译码 (3)监视器显示控制 (4)A/D 采样控制及存储 (5)硬波曲线的制作 (6)打印与通讯控制 哈尔滨理工大学学士学位论文 - 11 - 第第第第 3 3 3 3 章章章章 软件的实现软件的实现软件的实现软件的实现 液晶显示探伤仪的软件系统,由 C 语言编写,采用 CPU-eZ80 L92 的相关 集成开发环境 ZDSIIeZ80Acclaim。 软件源代码文件一共可分为 19 个模块,一个主模块(包含 main()函数 的模块) ,18 个辅助模块(其中包括启动模块) 。清单如下: 1main.c(主模块) 所有的全局变量都在这个模块中定义。包含了头文件“function.h“、 “someFunction.h“、”rtc.h“、“push.h“和“init_lcd.h“。 用来执行主函数 main(),以及对存储器的初始和全局变量全局缓冲的初 始。 2Adjust.c 与仪器上的校准功能相对应,同样的分扫查、校距离和校角度三个部分。 3Detect.c 与仪器上的检测功能相对应。 4Init-lcd.c 用来初始仪器的开始界面。 5Push.c 将信息显示到屏幕上的一组通用函数。包括在屏幕上显示点、字节、线、 字符、字符串、汉字、汉字串、整数等。 6Cls.asm 汇编模块,为提高某块程序的运行速度,可将此模块中的汇编代码嵌如 C 代码中,主要应用于是波形的显示和实时采样处理。 7LCDTAB.asm 将屏幕地址做成表,提高运行效率。方便后续操作及可视性。使地址项更 加规范。 8rtc.c 实时时钟模块。对日期和时间进行设置、运行和监控,并且采用定时器 2 为中断源,每隔 1 秒钟读一次当前时间,在一起屏幕上显示出来。 9Init-ad.c 为提高检测功能的执行效率,定义了几组 const 数组变量(存储在 rom 中) ,包括波高的 插点和去点表,db 档设置表,db 与波高的互相转化表以及波高对百分比的 转换表。 10print.c 打印模块。包括对并口打印机的初始设置和打印数据时的格式控制。 11Selscprint.c 选择功能模块,与仪器的选择功能相对应。包括进入各菜单项的文字及数 哈尔滨理工大学学士学位论文 - 12 - 字选择。 12Storage.c 存储模块。与仪器的存储功能相对应。包括进入存储功能的初始化界面和 对具体每一项的存储。 存储参数的编辑。以及与之相对数据的读出和删除。由于波形数据存储区 分在了 flash 中,因此存储时又相关了对 flash 的读写操作。 13Timer2.c 定时器模块。软件过程中用了三个定时器,其中定时器 2 用来监测显示实 时时钟,定时器 0 和定时器 1 用来做读采样数据的中断源。后来有了改动,读 采样数据的中断源使用 PD 口的第 4 位,即 PD4,所以整个程序文件现在只使 用了一个定时器,也就是用来显示时间的定时器 2。 14Somefunction.c 菜单项的显示和处理。各项文字说明及图形分析显示,将具体数据做成菜 单项的功能。 15Uart.c 通讯模块。串口通讯。 16Usb375.c 基于 USB375 芯片的通讯。液晶显示没用这个模块。 17Wave.c 曲线制作模块。 18Function.c 各个端口的初始化配置,各个功能的选择、设置,菜单的选择、设置,以 及电池采样功能。 19Zsldevinit.asm 启动模块。 其中的启动模块由集成开发环境提供的,提供了从 0 地址到 main()函数 之间的程序代码,集合了内存、端口的复位,中断矢量表的初始,软件陷阱 等。 另外还有相应的头文件和预处理。预处理包括存储区的分配(明细可参考 5512flash 接口协议 )和 I/O 接口的定义以及常量的宏替换。 头文件清单: (1)16x16hz.h (2)16x16 点阵汉字库字模,字库文件见附录 BTZH 探伤仪专用库 。 (3)Ide1.h (4)21x21 点阵汉字库的字模,字库文件同上。 (5)Ascii.h 提供两种字体的字符库字模,分别为 8x16 点阵和 16x20 点阵,采用标准 ascii 码表。 (6)Function.h 哈尔滨理工大学学士学位论文 - 13 - 使用编译环境规定的格式定义各硬件相关 I/O 端口; 外部定义模块 function.c 中可能被其他模块调用的函数。 (7)Funtable.h 定义了键盘的键码表; 提供探伤对象的图标位图,56x20 点阵; 提供检测功能的功能图标的位图,包括闸门移动、闸门伸缩、DB、波形 移位、展宽等; 提供电池余量显示图标的位图。 (8)Prbmpx.h 打印图形的位图数据,由于每个图形的数据量比较大,因此这里保存的是 经过压缩后的图形数据。压缩方法: 2 个以上(包含 2 个但不超过 255 个)连续的 00 或 FF 字节可仅用 2 个连 续字节代替,第一个字节放 00 或 FF,紧跟的第二个字节放连续的 00 或 FF 的个 数。所以,在每遇到单个的 00 或 FF 时,会导致增加 1 个字节数;在遇到连续 2 个 00 或 FF 时,字节数不变在遇到 3 个以上时则会比原来的字节数少。 当连续的 00 或 FF 超过 255 的处理如下:在 00 或 FF 后跟 00,表示 00 或 FF 的个数超过了 255 个,然后再跟 2 个字节,表示实际的 00 或 FF 个数,比如 有连续 65535 个 00,则用 00,00,ff,ff 来代替;再比如有连续 1000 个 ff,则用 ff,00,e8,03 来代替。 (9)Push.h 定义了各存储区地址。具体包括屏幕显存存储区、采样数据存储区、探 头参数存储区、探伤数据存储区以及特殊含义字符存储区; 定义了存储、发送的数据的数据结构; 宏定义程序中常用的常量; 外部定义模块 push.c 中可能被其他模块调用的函数。 (10)Rtc.h 外部定义模块 rtc.c 中可能被其他模块调用的函数。 (11)Somefunction.h 外部定义模块 somefunction.c 中可能被其他模块调用的函数。 (12)Storage.h 为模块 storage.c 提供所用的汉字串常量和字符串常量。 (13)其他 其他头文件主要是两部分:关于 CPU 的头文件和关于浮点库的头文件。都 由编译器提供。 程序执行总流程如图 3-1 示意: 当仪器通上电以后,系统软件总是从 0 地址开始执行操作,一直到找到 main()函数,再依次执行其它程序模块操作,这部分工作具体由编译器提供 完成,基于此,程序说明从主模块开始。 哈尔滨理工大学学士学位论文 - 14 - 图 3-1程序执行总流程 3.13.13.13.1 Main.c:Main.c:Main.c:Main.c:主模块主模块主模块主模块 包含头文件:“function.h“ “someFunction.h“ “rtc.h“ “push.h“ “init_lcd.h“ 模块说明: 1首先检查 flash 中的清零标志,看程序是否第一次被执行。方法是读 Flash 中的 201000H 开始的三个字节,如果程序被执行过,会依次读出 0AH,1BH,2CH。 程序启动 进入主模块 选择功能 执行功能 哈尔滨理工大学学士学位论文 - 15 - 2如果读出来的不是 0AH,1BH,2CH,说明程序已经第一次执行,就需要 对 flash 进行初始化设置。具体有以下几个步骤: (1)首先将 31 组探头数据依次写入 flash 中;相关函数为 initialize(void), SParameter(uchar Tsindex)。 (2)初始化存储链表,首先将链表首地址写入 1,接着写入 2,再写入 3,如此依次写入,一直写到最大存储数,因为存储链表的最大存储数为 400, 也就是说明仪器最多可以存储 400 组数据。初始化存储链表的相关函数是 ClearData(void)。 (3)记录当前探头号,并将当前所用探头号初始为 0 后,再存入 flash 的 204000H 中。 (4)将存储器清零,在 flash 的地址 201000H,201001H,201002H 上依次 写入 0AH,1BH,2CH,这样就表示存储器已经被清零。 (5)将已存储总数目清零。已经记录的数目存储地址在 202000H 和 202001H。 (6)将第一组探头参数写入内存。相关函数为 RParameter(uchar Tsindex) 函数参数即探头号,这里为 0。 对 flash 的相关读、写、擦除操作的相关函数为:Program_One_Byte (uint data_adr, uchar data):data_adr 表示数据写入地址,data 表示要写入的数 据;Erase_Area (uint star_adr,uchar area)。 4如果读出的数据表示已经清过零,则 (1)先从 flash 中先读出 31 组探头号(0-30) ,再根据探头号将相应探头 数据从 flash 中复制到内存(ram)中。相关函数为 RParameter(uchar Tsindex), 这里参数 Tsindex 即为探头号(0-30) 。 (2)将存储链表从 flash 复制到内存。 5初始化各个 I/O 端口。调用了辅助模块 function.c 中的 ini_drive()。 6设置颜色。包括硬波的颜色,第二屏幕的颜色,以及闸门开关内硬波需 要改变颜色时的颜色和改变后的颜色。调用了辅助模块 ini-lcd.c 中的函数 init_color()。 7初始化屏幕显示。调用了辅助模块 ini-lcd.c 中的函数 ini_screen(); 基于以上,就得到了主模块 main.c 的流程如图 3-2。 3.23.23.23.2 function.cfunction.cfunction.cfunction.c:功能操作模块:功能操作模块:功能操作模块:功能操作模块 此模块的主要功能有:键盘输入;功能的切换和选择;菜单项的编辑;电 池监控;图形解压缩。 包含头文件:“funTable.h“ “push.h“ “rtc.h“ “init_lcd.h“ “someFunction.h“ 哈尔滨理工大学学士学位论文 - 16 - “function.h“ 图 3-2 主模块 main.c 的流程 模块说明: 1键盘输入: 使用 CPU 的 PB 口的低 4 位作为输入口,高 4 位作为输出口,对应 4x4 键 盘的行列。程序采用查询法来读键盘。 此功能的实现函数:uchar key_code(uchar keytype) 。 参数用来表示功能键和数字键的切换,返回值即键码。 2功能切换与选择: 仪器共有 9 大功能: 检测、校准、波形比较、数据读出删除、波幅曲线、时间设置、选择探伤 开始 是否需要清零 初始 flash 从 flash 中读出数据 初始端口屏幕 进入操作状态 是 否 哈尔滨理工大学学士学位论文 - 17 - 类型、打印信息、存储信息。 其中后三项功能可通过键盘上的快捷键直接选择进入,前六项功能需要通 过滚动功能表才能回车进入。 相关函数包括: (1)uchar fun_section(void)。进行功能选操作。 返回值为 0x4a 表示仪器进行了清零,程序重新执行。 (2)ucharfun_left(void)。 手标左移。 (3)fun_left(void) 手标右移。 (4)voidfun_down(void)。 向下翻滚功能表。 (5)voidfun_up(void) 向上翻滚功能表。 (6)void fun_enter(void)。 进入功能表中的相应功能。 3菜单操作: 仪器菜单选项共有 10 项: 探头频率、探头角度、探头前沿、外径、坐标、声速、校准参数、补 偿、判废、清零。 当闪动手标在功能选项的最左端时,再按左方向键,便进入菜单操作。相 关函数如下: (1) voidmenu_down(void); voidmenu_up(void); voidmenu (void)。 用来选择要进入的菜单项。 (2) ucharmenu_enter(void): 修改菜单参数。返回值为 0x4a 表示做了清零操作。 4电池采样操作: 相关函数:voidget_bv(void)。 采用 4 格显示法。将读到的电压数据,从最小值到最大值分成五个区域。 若读到的电压数据位于第一区域,则显示空格,并报警;若位于第二区域,则 显示一格 5图形解压缩显示: 仪器需要存储一些比较大的图形数据,如果直接存如,非常占用空间,所 以存储时都是先进行压缩。 显示时,由于数据经过了压缩,不能直接使用,需要先解压,然后显示。 实现函数:void disbmp_pr(uint x,uint y,uchar *p,uchar width,uchar height,uchar CmpFF)。 哈尔滨理工大学学士学位论文 - 18 - 其中的参数含义:x,y:图形显示起始位置。 Width,height:图形长、宽。 *p:所要显示图形的数据。 CmpFF:压缩方式控制字。 3.33.33.33.3 detect.cdetect.cdetect.cdetect.c:检测操作模块:检测操作模块:检测操作模块:检测操作模块 这个模块对应仪器的检测功能。入口函数为:voidA_Scan(void)。 包含头文件: “push.h“ “init_lcd.h“ “someFunction.h“ “function.h“ 模块说明: 检测状态下,程序执行以下几个方面的工作: 1读采样数据: 这是检测功能的主操作,由中断控制,中断程序通过外部中断来触发。中 断服务程序在模块 timer2.c 中。 2闸门的移动与伸缩: 只有闸门内的采样数据才进行计算处理,因此闸门的伸缩反映着探伤数据 处理范围的大小,闸门的移动表示着探伤部位的改动。 相关函数为:void Handle(uchar *currentFun,uchar key)。 CurrentFun:表示当前正在进行的操作。如 currentFun1的值为1,表示正 在进行闸门移动的操作;若 currentFun1的值为2,表示正在进行是是闸门伸 缩的操作。 Key:操作内容。 3DB 挡的设置: 通过 DB 的加减,调节波形的高低。 DB 档的设置,分为补偿和不补偿两种状态。 4探伤范围调节: 改变分频值,使每个采样点所表示的探伤距离发生改变,从而对探伤范围 进行调节,分频值 01023。 5采样数据的处理: 对于闸门内的采样数据,需要进行比较,记录其最大值和其所在的位置, 通过位置计算出波源到探头的真实距离,存储并显示出来。 计算方法: (storagepara.maxtest 即为真实距离值) para.Maxpot=(Hcon)*(para.dispartfrq+1)+para.move_pot+(para.dispartfrq+1- shift); storagepara.maxtest=para.Maxpot*para.soundspeed/100000; 上式中:para.dispartfrq 表示分频值,取值范围 01023; para.move_pot 表示零点移位值; 哈尔滨理工大学学士学位论文 - 19 - shift:中间值,范围:从 0 到分频值; para.soundspeed:声速值。 相关函数:uint fouan(void)。返回值是闸门内的最大数据点。 6峰值搜索: 相关函数是:void Found(uchar *currentFun)。 在检测过程中保留最大波,便与发现伤波。 7自动增益操作: 探伤操作中按下这一快捷键,程序自动调节 DB 档设置,使回波高度变为 满屏的 80%。 相关函数:void auto_plus(void) 8测高操作: 在搜索状态中按下存储键,便可进行测高操作。其理论依据是端点衍射 法。 相关函数:void save_wave(uchar seri)。 9显示探伤结果: 探伤结束后,首先将波形显示出来。 数据结果的显示分 3 中情况: (1)测高后对数据的显示。 形式:H2-H1=xxxx.xx-xxxx.xx=xxxx.xx; 函数原型:void disS2S1(void)。 (2)搜索状态下扫查完成后的显示。 形式:S=xx.xxL=xx.xxH=xx.xx. 函数原型:void disHLS(void)。 (3)一般检测回车后的显示: 形式:S=xx.xx. 函数原型:void dis_test(void)。 检测过程的流程如图 3-3。 3.43.43.43.4 adjust.cadjust.cadjust.cadjust.c:校准操作模块:校准操作模块:校准操作模块:校准操作模块 包含头文件: “push.h“ “rtc.h“ “someFunction.h“ “function.h“ 模块说明:校准功能分三个部分,手动扫查,入口函数为 void Scan(void); 校距离,入口函数为 voidAdjust_distance(void);校角度,入口函数为 voidAdjust_Angle(void)。校准功能的程序流程如图 3-4。 哈尔滨理工大学学士学位论文 - 20 - 图 3-3检测过程的流程 开始检测 开采样中断 关采样中断 检测过 程执行 测高 峰值搜索 有无曲线 绘制曲线 检测完成 无 有 哈尔滨理工大学学士学位论文 - 21 - 图 3-4 校准功能的程序流程 3.53.53.53.5 push.cpush.cpush.cpush.c:基本屏幕操作模块:基本屏幕操作模块:基本屏幕操作模块:基本屏幕操作模块 包含头文件: “ide1.h“ “ascii.h“ “16x16hz.h“ 模块说明: 这个模块中的函数都是针对屏幕操作的一些基本函数,和对一些简单端口 的简单设置。 校准开始 校 距 离 校 角 度 扫查 设 置 参数 操作完成 选 择 校 准方 计算角度 设置零点 计算距离 更新 flash 中 的 探 头 数 哈尔滨理工大学学士学位论文 - 22 - 主要的用的比较多的函数有: 1写 ascii 码的函数:void stascii(uint x,uint y,uchar n)(8x16 点阵) , void wrasc1624(uint x,uint y ,uchar n)(16x24 点阵) ,参数:x.y 为屏幕位置;n 为 ascii 码值。 2写字符串的函数:void wrascstr(uint x,uint y,uchar *p,uchar n)。 (8x16 点阵) ,void Str1624(uint x,uint y,uchar *p,uchar n)(16x24 点阵) 参数:x,y 为屏幕地址; p 为字符串内容首地址;n 为字符串长度控制字。 3写汉字的函数:void wrhz16(uint x,uint y,short index)(16x14 点阵) void wrhz24(uint x,uint y,short index)(24x21 点阵) ,参数:x,y 为屏幕地址; index 为所写汉字在字库中的序号。 4写汉字串的函数:void hzstr16(uint x,uint y,short *p,int n)(16x14 点阵) void hzstr24(uint x,uint y,short *p,int n)(24x21 点阵) 。 3.63.63.63.6 wave.cwave.cwave.cwave.c:曲线制作模块:曲线制作模块:曲线制作模块:曲线制作模块 包含头文件: “push.h“ “init_lcd.h“ “function.h“ 模块说明: 入口函数:void wave_make(void)。 首先确定制作点,即通过几个点来制作曲线,最小值为 3 最大值为 9。 确定每个点的横坐标、纵坐标和检测灵敏度,分别存起来。 根据已知几个点的横、纵坐标推算出其他点的坐标值。这里采用的数学模 型为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河南-河南无损探伤工一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-河南-河南土建施工人员二级(技师)历年参考题库含答案解析
- 2024版合同协议内容变更协议
- 2025年事业单位工勤技能-河北-河北家禽饲养员五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河北-河北公路养护工四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江西-江西水工监测工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏汽车修理工(技师/高级技师)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏医技工三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-新疆-新疆热力运行工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西客房服务员一级(高级技师)历年参考题库典型考点含答案解析
- 创伤性血气胸的急救与护理
- 2025关于医疗平台与医疗机构合作合同模板
- 福州工会考试试题及答案
- 学校后勤工作管理培训
- 胰腺炎的营养治疗与护理
- 教师校园安全培训课件
- 头皮健康与头发生长关系的研究
- 财务结账相关管理制度
- 叉车维修方案(3篇)
- 口腔科护士正确吸唾操作规范
- 中学升旗管理制度
评论
0/150
提交评论