DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1339|回复: 0
打印 上一主题 下一主题

[待整理] 基于PIC32的铁路隧道监测系统

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-10 07:17:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、引言
                        隧道的开采、施工和使用过程中,隧道围岩变形是围岩应力分布、整体力学形态变化和稳定状态最直接和可靠的反映,围岩净空位移的测量是隧道施工过程中一个重要环节,是判断围岩稳定性和指导施工的重要依据。对隧道围岩变形进行及时的监测和分析预报成为隧道施工中保证施工安全、防止事故发生、合理确定隧道支护的十分重要的工作。
                         
                        传统的隧道围岩位移量测方法主要有两种:一种是在施工过程中布置测量断面,间隔一定的时间由人工使用各种机械式或机械-电子式收敛计量测;另一种是借助隧道断面仪定时定点量测待测断面。两者的不足之处在于:
                         
                        (1)不能实时监测:即不能随时监测待测断面的变形情况,因而不能及时反映施工过程中隧道围岩的异常变化。
                        (2)对施工干扰大:由于变形量测中或者需要拉尺,或者需要架设断面仪,所以对施工作业,尤其是运输作业干扰很大。
                        (3)量测工作危险:在人员不易接近的地方,为了获取量测数据,人员不得不频繁接近危险空间,因而对人员与仪器的安全威胁较大。
                        (4)量测费用高:因同一断面要多次反复量测,加之量测过程繁琐,用人多,耗时长,导致量测费用较高。
                        (5)量测数据不可靠:造成量测数据不可靠的原因主要是量电子和机械仪表的测量精度不够和处理测量数据时造成的误差。
                         
                        由于以上五个主要缺点局限了传统的隧道监测技术,本系统采用PIC32处理器构建铁路隧道监测系统,具有集成度高、处理速度快、实时监测等优势。PIC32处理器工作频率高达80MHZ,具有32位处理宽度、32K RAM、并带有10位、500ksps A/D等性能,能够减少产品的外围器件,增强系统稳定性,降低系统成本。
                         
                        二、整体方案设计
                        用激光器光束、CCD进行铁路隧道施工中围岩位移监测原理示意图2-1。由四部分组成:半导体激光光源及光束变换传输、CCD传感器、数据采集采集处理传输模块、支架(固定CCD)光传感器与激光光源相对位置,包括微调节架等)。图2-2为在施工工地上架设的图片,图2-3为在实验室搭建的模拟平台。
                         
       
               

       
                图2-1 铁路隧道监测原理示意图

                         
       
               

       
                图2-2 施工工地上架设监测平台

       
                 

       
               

       
                图2-3 实验模拟平台

                         
                        整个系统设计框图如下所示,采用PIC32MX460F512L为核心处理器,整个系统分为数据采集、数据显示、数据存储、数据通信。
                 
                        数据采集部分为:通过RA接口驱动线阵CCD TCD1501;由于线阵CCD输出的是模拟信号,需要通过ADC接口转换为MCU能够处理的数字信号,并计算出当前光斑位置;使用I2C接口连接温度传感器LM75,获取当前的温度数据;使用RTCC接口获取当前的实时时钟和日历。数据显示部分:采用PMP接口驱动字符型液晶LCD1602,显示当前的时间、温度、光斑位置信息。数据存储部分:采用SPI接口驱动常用的miniSD卡,并使用流行的文件操作系统FatFS,存储时间、温度、光斑位置数据。数据通信部分:采用USART接口,通过串口通信将数据传输到上位机电脑上,并使用图形化编程软件LabVIEW进行编程。
                         
       
               

       
                图2-4 整个系统框图

       
                 

         
                        3.1.3 MPLAP软件仿真与实验测试
                        采用MPLAB软件编写驱动软件,在DEBUG选择中选择MPLAB SIM进行软件仿真,如图3-4所示。然后采用泰克示波器TDS1012检测CCD输出电压,可以看到驱动成功,并输出周期性的波形。其中一个波形中,高电压部分表示此处探测到光,低电压部分表示没有光。
                         
       
               

       
                图3-4 使用MPLAB进行软件仿真

       
                 

       
               

       
                图3-5使用泰克示波器TDS1012检测CCD输出电压

                 
                        3.2.2 并行主接口PWP简介
                        并行主端口(Parallel Master Port,PMP)是一个 8 位 /16 位并行 I/O 模块,专用于与通信外设、LCD、外部存储器件以及单片机等多种并行器件进行通信。由于并行外设接口的多样化,PMP模块具有高度可配置性。
                         
                        PMP 模块的主要特性包括:
                        •  最多 16 条可编程地址线
                        •  最多 2 条片选线
                        •  可编程选通选项
                        •  独立的读和写选通,或
                        •  带使能选通的读 / 写选通
                        •  地址自动递增 / 自动递减
                        •  可编程地址 / 数据复用
                        •  可编程控制信号的极性
                        •  支持传统并行从端口
                        •  支持增强型并行从端口
                        •  地址支持
                        •  4 字节深自动递增缓冲区
                        •  施密特触发器或 TTL 输入缓冲器
                         
                        3.2.3 配置PMP用于LCD模块
                        从上面我们了解了液晶LCD1602,尽管我们可以如果人工访问PORTE和PORTD的各个引脚来控制I/0信号实现总线时序。但是PIC32提供的并行主接口PMP,它能够把单片机从控制慢速外围设备的繁琐任务中解脱出来。图3-7是使用PMP接口与LCD1602的连线图,图3-8是驱动液晶显示一行“EEFOCUS GOOD”字符。
                         
       
               

       
                图3-7 使用PMP接口与LCD1602的连线图

       
                 

       
               

       
                图3-8 驱动液晶显示一行“EEFOCUS GOOD”字符

       
                 

                        2.3 串口通信COM
                        串行接口简称串口,也称串行通信接口(通常指COM接口),是采用串行通信方式的扩展接口,由于其配置简单,广泛地用于数据传输到计算机。由于开发板上没有串口模块,而且我们也没有申请串口模块,所以我们根据图3-9原理图,使用PIC32的串口2接口和MAX232芯片,自己焊接了一个串口模块,如图所示。
       
               

       
                图3-9 PIC32的串口2接口和MAX232芯片电路连接

       
                 

       
               

       
                图3-10 串口模块实物图

                 
                        3.4 温度传感器LM75A
                        3.4.1 LM75A简介
                        LM75A是一个高速I2C接口的温度传感器,可以在-55~+125的温度范围内将温度直接转换为数字信号,并实现0.125的精度。PIC32可以通过I2C总线直接读取其内部寄存器中的数据,并可通过I2C对4个数据寄存器进行操作,设置不同的工作模式。LM75A有3个可选的逻辑地址管脚,使得同一总线上可同时连接8个器件而不发生地址冲突。
                         
                        3.4.2 LM75A实现
                        LM75A与PIC32的连接是以I2C总线的形式,如图3-11所示,总线上需要加上拉电阻,因为通信开始之前,I2C总线必须空闲或者不忙,这意味着总线上的所有器件都必须释放SCL和SDA线,SCL和SDA线被总线的上拉电阻拉高,上拉电阻取10K左右,实物连线图如图所示。
                         
       
               

       
                图3-11 PIC32的I2C1接口与LM75A连线图

       
                 

       
               

       
                图3-12 LM75A与I2C1接口实物连续图

                 
                        3.6.2 miniSD与PIC32连接
                        如图2-13所示,使用SPI1接口与miniSD卡相连,图2-14为实物连接图。
                         
       
               

       
                图3-14 使用SPI1接口与miniSD卡连接

       
                 

       
               

       
                图3-15 实物连接图

       
                 

                        3.6.3 Fatfs文件操作系统
                        FatFs是一个通用的文件系统模块,用于在小型嵌入式系统中实现FAT文件系统。 FatFs 的编写遵循ANSI C,因此不依赖于硬件平台。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM 等等,不需要做任何修改。其特点: FAT12, FAT16 与 FAT32.多个卷(物理驱动器与分区).两种分区规则: FDISK 与 Super-floppy.多种配置选项:长文件名支持。可选的编码页,包括DBCS(DBCS为双位元组字元系统 Double Byte Char Systems )多任务支持只读,最小化API,缓冲区配置等等应用程序接口。因为FatFs模块完全与磁盘I/O层分开,因此需要下面的函数来实现底层物理磁盘的读写与获取当前时间。底层磁盘I/O模块并不是FatFs的一部分,并且必须由用户提供。
                         
       
               

       
                图3-16 FatFs文件操作系统模型

       
                 

                        3.7 上位机LabVIEW
                        3.7.1 LabVIEW简介
                        LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是与传统文本编程语言不同的图形化编程语言开发环境,采用图形模式的结构和框图构建程序代码。由美国国家仪器NI公司开发的一款虚拟仪器开发平台,也是目前最流行、功能最强、发展最快的图形化编程语言,通常称为G语言。
                         
                        传统的文本编程语言,如C、Java、VB等,它们具有一个相同的特点:就是使用字母构成单词,用单词表达某种数据操作;再用单词构成语句,用语句表示对某个数据的赋值和运算等操作。这几种计算机语言参考了人类自然语言,是一种高度抽象的语言。它的优势在于效率高,用简短的语句就能表达复杂的功能;缺点在于:文本不够直观,也不容易学习。开发者需要花费大量的时间学习并记忆其关键字、编程语法规则等等,而且文本语言往往不能直观地给阅读者提供信息,需要阅读完整段代码程序才能了解其意义。目前许多高级语言,如VB、VC等在程序界面设计时引入可视化设计方式,直接使用鼠标选择和调整程序界面的方式,能够直接看到程序运行时的效果。虽然它们在界面设计使用图形化方式,但是程序的功能依然需要通过文本编程方式来实现。LabVIEW与上述编程语言相比,不但在程序设计时采用图形化编程方式,而且在编写程序代码和实现程序功能的时候,也使用图形化编程方式。在一个LabVIEW程序当中,看到不是一行行文本,而是由线和各种小图形块的连接组成。由于图形比文字更为直观,因此LabVIEW相比其他编程语言更容易学习,让开发者可以把更多时间分配到数据处理和算法分析上,提高了编程效率,降低硬件成本,减少了系统开发周期。
                 
                        3.7.2 上位机程序
                        使用到LabVIEW中VISA模块实现串口通信,编写程序界面如下,通过选择串口号和通信的波特率,就能在面板上显示出CCD的波形数据,与图3-5示波器采集数据一致。
       
               

       
                图3-17 上位机界面
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-27 00:28 , 耗时 0.095243 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表