基于PIC32的鐵路隧道監(jiān)測(cè)系統(tǒng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
一、引言
隧道的開(kāi)采、施工和使用過(guò)程中,隧道圍巖變形是圍巖應(yīng)力分布、整體力學(xué)形態(tài)變化和穩(wěn)定狀態(tài)最直接和可靠的反映,圍巖凈空位移的測(cè)量是隧道施工過(guò)程中一個(gè)重要環(huán)節(jié),是判斷圍巖穩(wěn)定性和指導(dǎo)施工的重要依據(jù)。對(duì)隧道圍巖變形進(jìn)行及時(shí)的監(jiān)測(cè)和分析預(yù)報(bào)成為隧道施工中保證施工安全、防止事故發(fā)生、合理確定隧道支護(hù)的十分重要的工作。
傳統(tǒng)的隧道圍巖位移量測(cè)方法主要有兩種:一種是在施工過(guò)程中布置測(cè)量斷面,間隔一定的時(shí)間由人工使用各種機(jī)械式或機(jī)械-電子式收斂計(jì)量測(cè);另一種是借助隧道斷面儀定時(shí)定點(diǎn)量測(cè)待測(cè)斷面。兩者的不足之處在于:
(1)不能實(shí)時(shí)監(jiān)測(cè):即不能隨時(shí)監(jiān)測(cè)待測(cè)斷面的變形情況,因而不能及時(shí)反映施工過(guò)程中隧道圍巖的異常變化。
(2)對(duì)施工干擾大:由于變形量測(cè)中或者需要拉尺,或者需要架設(shè)斷面儀,所以對(duì)施工作業(yè),尤其是運(yùn)輸作業(yè)干擾很大。
(3)量測(cè)工作危險(xiǎn):在人員不易接近的地方,為了獲取量測(cè)數(shù)據(jù),人員不得不頻繁接近危險(xiǎn)空間,因而對(duì)人員與儀器的安全威脅較大。
(4)量測(cè)費(fèi)用高:因同一斷面要多次反復(fù)量測(cè),加之量測(cè)過(guò)程繁瑣,用人多,耗時(shí)長(zhǎng),導(dǎo)致量測(cè)費(fèi)用較高。
(5)量測(cè)數(shù)據(jù)不可靠:造成量測(cè)數(shù)據(jù)不可靠的原因主要是量電子和機(jī)械儀表的測(cè)量精度不夠和處理測(cè)量數(shù)據(jù)時(shí)造成的誤差。
由于以上五個(gè)主要缺點(diǎn)局限了傳統(tǒng)的隧道監(jiān)測(cè)技術(shù),本系統(tǒng)采用PIC32處理器構(gòu)建鐵路隧道監(jiān)測(cè)系統(tǒng),具有集成度高、處理速度快、實(shí)時(shí)監(jiān)測(cè)等優(yōu)勢(shì)。PIC32處理器工作頻率高達(dá)80MHZ,具有32位處理寬度、32K RAM、并帶有10位、500ksps A/D等性能,能夠減少產(chǎn)品的外圍器件,增強(qiáng)系統(tǒng)穩(wěn)定性,降低系統(tǒng)成本。
二、整體方案設(shè)計(jì)
用激光器光束、CCD進(jìn)行鐵路隧道施工中圍巖位移監(jiān)測(cè)原理示意圖2-1。由四部分組成:半導(dǎo)體激光光源及光束變換傳輸、CCD傳感器、數(shù)據(jù)采集采集處理傳輸模塊、支架(固定CCD)光傳感器與激光光源相對(duì)位置,包括微調(diào)節(jié)架等)。圖2-2為在施工工地上架設(shè)的圖片,圖2-3為在實(shí)驗(yàn)室搭建的模擬平臺(tái)。
圖2-1 鐵路隧道監(jiān)測(cè)原理示意圖
圖2-2 施工工地上架設(shè)監(jiān)測(cè)平臺(tái)
圖2-3 實(shí)驗(yàn)?zāi)M平臺(tái)
整個(gè)系統(tǒng)設(shè)計(jì)框圖如下所示,采用PIC32MX460F512L為核心處理器,整個(gè)系統(tǒng)分為數(shù)據(jù)采集、數(shù)據(jù)顯示、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)通信。
數(shù)據(jù)采集部分為:通過(guò)RA接口驅(qū)動(dòng)線陣CCD TCD1501;由于線陣CCD輸出的是模擬信號(hào),需要通過(guò)ADC接口轉(zhuǎn)換為MCU能夠處理的數(shù)字信號(hào),并計(jì)算出當(dāng)前光斑位置;使用I2C接口連接溫度傳感器LM75,獲取當(dāng)前的溫度數(shù)據(jù);使用RTCC接口獲取當(dāng)前的實(shí)時(shí)時(shí)鐘和日歷。數(shù)據(jù)顯示部分:采用PMP接口驅(qū)動(dòng)字符型液晶LCD1602,顯示當(dāng)前的時(shí)間、溫度、光斑位置信息。數(shù)據(jù)存儲(chǔ)部分:采用SPI接口驅(qū)動(dòng)常用的miniSD卡,并使用流行的文件操作系統(tǒng)FatFS,存儲(chǔ)時(shí)間、溫度、光斑位置數(shù)據(jù)。數(shù)據(jù)通信部分:采用USART接口,通過(guò)串口通信將數(shù)據(jù)傳輸?shù)缴衔粰C(jī)電腦上,并使用圖形化編程軟件LabVIEW進(jìn)行編程。
圖2-4 整個(gè)系統(tǒng)框圖
三 各個(gè)模塊介紹
3.1線陣CCD TCD1501
3.1.1 線陣CCD工作原理
CCD 是一種半導(dǎo)體器件,由一系列相鄰的MOS(金屬-氧化物-半導(dǎo)體) 存儲(chǔ)單組成。在外界光照條件下,能產(chǎn)生電荷,并存儲(chǔ)在 MOS 存儲(chǔ)單元里,產(chǎn)生電荷的多少與入射光的強(qiáng)度和照射時(shí)間成正比。在一定的外加電壓驅(qū)動(dòng)下,CCD中存儲(chǔ)的電荷可以一個(gè)接一個(gè)的順序移動(dòng),通過(guò)輸出放大器在輸出端產(chǎn)生與存儲(chǔ)電荷成正比的輸出電壓。CCD的一個(gè)工作周期分為兩個(gè)階段:光積分階段和電荷轉(zhuǎn)移階段. 光積分階段實(shí)現(xiàn)光電荷的積累,與此同時(shí)將上一幀移位寄存器中的電荷輸出并清空像元?jiǎng)葳逯械臒o(wú)效電荷;電荷轉(zhuǎn)移階段實(shí)現(xiàn)光電荷向移位寄存器的轉(zhuǎn)移。CCD 的感光陣列與移位寄存器是分開(kāi)的,像元接受外界光源照射產(chǎn)生電荷,通過(guò)轉(zhuǎn)移柵控制光生信號(hào)電荷向移位寄存器轉(zhuǎn)移,一般信號(hào)轉(zhuǎn)移時(shí)間遠(yuǎn)小于光積分時(shí)間。轉(zhuǎn)移信號(hào)控制轉(zhuǎn)移柵,轉(zhuǎn)移柵關(guān)閉,感光陣列收集光信號(hào),此時(shí)感光陣列和移位寄存器之間為阻斷態(tài),不會(huì)發(fā)生電荷轉(zhuǎn)移現(xiàn)象。
3.1.2 東芝TCD-1501簡(jiǎn)介
TCD-1501是由東芝半導(dǎo)體生產(chǎn)的一款具有5000個(gè)有效像元的線陣CCD,單12V供電,有極高的靈敏度,像元大小為7um×7um,典型的時(shí)鐘脈沖頻率為1MHz,最大可以達(dá)到12MHz。實(shí)物圖如圖所示:
圖3-1 TCD1501實(shí)物圖
3.1.3 PIC32驅(qū)動(dòng)TCD1501
TCD1501的時(shí)序圖如圖2-2所示,使用Altium Designer構(gòu)建的原理圖如圖2-3,采用PIC32的RA0到RA5這5個(gè)端口輸出圖2-2的時(shí)序。由于PIC內(nèi)部ADC轉(zhuǎn)換的范圍為0到3.3,所以將輸出的結(jié)果由兩級(jí)比例差分放大電路LM358處理,第一級(jí)把CCD_OS與CCD_DOS相減,第二級(jí)構(gòu)成電壓跟隨器,使用電位器R5等比例縮寫(xiě)輸出電壓。
圖3-2 TCD1501時(shí)序圖
3.1.3 MPLAP軟件仿真與實(shí)驗(yàn)測(cè)試
采用MPLAB軟件編寫(xiě)驅(qū)動(dòng)軟件,在DEBUG選擇中選擇MPLAB SIM進(jìn)行軟件仿真,如圖3-4所示。然后采用泰克示波器TDS1012檢測(cè)CCD輸出電壓,可以看到驅(qū)動(dòng)成功,并輸出周期性的波形。其中一個(gè)波形中,高電壓部分表示此處探測(cè)到光,低電壓部分表示沒(méi)有光。
圖3-4 使用MPLAB進(jìn)行軟件仿真
圖3-5使用泰克示波器TDS1012檢測(cè)CCD輸出電壓
3.2 字符型液晶LCD1602
3.2.1 液晶LCD1602簡(jiǎn)介
LCD1602是常用的工業(yè)級(jí)別字符型液晶,能夠同時(shí)顯示16×2即32個(gè)字符。下圖為實(shí)物圖和引腳定義。模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼。
圖3-6 液晶LCD1602實(shí)物圖和引腳定義
引腳
符號(hào)
功能說(shuō)明
1
VSS
一般接地
2
VDD
接電源(+5V)
3
V0
液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度)。
4
RS
RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。
5
R/W
R/W為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。
6
EN
E(或EN)端為使能(enable)端,下降沿使能。
7
DB0
底4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)
8
DB1
底4位三態(tài)、 雙向數(shù)據(jù)總線 1位
9
DB2
底4位三態(tài)、 雙向數(shù)據(jù)總線 2位
10
DB3
底4位三態(tài)、 雙向數(shù)據(jù)總線 3位
11
DB4
高4位三態(tài)、 雙向數(shù)據(jù)總線 4位
12
DB5
高4位三態(tài)、 雙向數(shù)據(jù)總線 5位
13
DB6
高4位三態(tài)、 雙向數(shù)據(jù)總線 6位
14
DB7
高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flang)
15
BLA
背光電源正極
16
BLK
背光 電源負(fù)極
3.2.2 并行主接口PWP簡(jiǎn)介
并行主端口(Parallel Master Port,PMP)是一個(gè) 8 位 /16 位并行 I/O 模塊,專用于與通信外設(shè)、LCD、外部存儲(chǔ)器件以及單片機(jī)等多種并行器件進(jìn)行通信。由于并行外設(shè)接口的多樣化,PMP模塊具有高度可配置性。
PMP 模塊的主要特性包括:
• 最多 16 條可編程地址線
• 最多 2 條片選線
• 可編程選通選項(xiàng)
• 獨(dú)立的讀和寫(xiě)選通,或
• 帶使能選通的讀 / 寫(xiě)選通
• 地址自動(dòng)遞增 / 自動(dòng)遞減
• 可編程地址 / 數(shù)據(jù)復(fù)用
• 可編程控制信號(hào)的極性
• 支持傳統(tǒng)并行從端口
• 支持增強(qiáng)型并行從端口
• 地址支持
• 4 字節(jié)深自動(dòng)遞增緩沖區(qū)
• 施密特觸發(fā)器或 TTL 輸入緩沖器
3.2.3 配置PMP用于LCD模塊
從上面我們了解了液晶LCD1602,盡管我們可以如果人工訪問(wèn)PORTE和PORTD的各個(gè)引腳來(lái)控制I/0信號(hào)實(shí)現(xiàn)總線時(shí)序。但是PIC32提供的并行主接口PMP,它能夠把單片機(jī)從控制慢速外圍設(shè)備的繁瑣任務(wù)中解脫出來(lái)。圖3-7是使用PMP接口與LCD1602的連線圖,圖3-8是驅(qū)動(dòng)液晶顯示一行“EEFOCUS GOOD”字符。
圖3-7 使用PMP接口與LCD1602的連線圖
圖3-8 驅(qū)動(dòng)液晶顯示一行“EEFOCUS GOOD”字符
2.3 串口通信COM
串行接口簡(jiǎn)稱串口,也稱串行通信接口(通常指COM接口),是采用串行通信方式的擴(kuò)展接口,由于其配置簡(jiǎn)單,廣泛地用于數(shù)據(jù)傳輸?shù)接?jì)算機(jī)。由于開(kāi)發(fā)板上沒(méi)有串口模塊,而且我們也沒(méi)有申請(qǐng)串口模塊,所以我們根據(jù)圖3-9原理圖,使用PIC32的串口2接口和MAX232芯片,自己焊接了一個(gè)串口模塊,如圖所示。
圖3-9 PIC32的串口2接口和MAX232芯片電路連接
圖3-10 串口模塊實(shí)物圖
3.4 溫度傳感器LM75A
3.4.1 LM75A簡(jiǎn)介
LM75A是一個(gè)高速I(mǎi)2C接口的溫度傳感器,可以在-55~+125的溫度范圍內(nèi)將溫度直接轉(zhuǎn)換為數(shù)字信號(hào),并實(shí)現(xiàn)0.125的精度。PIC32可以通過(guò)I2C總線直接讀取其內(nèi)部寄存器中的數(shù)據(jù),并可通過(guò)I2C對(duì)4個(gè)數(shù)據(jù)寄存器進(jìn)行操作,設(shè)置不同的工作模式。LM75A有3個(gè)可選的邏輯地址管腳,使得同一總線上可同時(shí)連接8個(gè)器件而不發(fā)生地址沖突。
3.4.2 LM75A實(shí)現(xiàn)
LM75A與PIC32的連接是以I2C總線的形式,如圖3-11所示,總線上需要加上拉電阻,因?yàn)橥ㄐ砰_(kāi)始之前,I2C總線必須空閑或者不忙,這意味著總線上的所有器件都必須釋放SCL和SDA線,SCL和SDA線被總線的上拉電阻拉高,上拉電阻取10K左右,實(shí)物連線圖如圖所示。
圖3-11 PIC32的I2C1接口與LM75A連線圖
圖3-12 LM75A與I2C1接口實(shí)物連續(xù)圖
3.5 實(shí)時(shí)時(shí)鐘和日歷
由于采集到的數(shù)據(jù)需要以時(shí)間作為標(biāo)記,PIC32器件提供硬件實(shí)時(shí)時(shí)鐘和日歷(Real-Time Clock and Calendar,RTCC),該模塊提供實(shí)時(shí)時(shí)鐘和日歷功能。RTCC 是為需要長(zhǎng)時(shí)間維持精確時(shí)間的應(yīng)用設(shè)計(jì)的,無(wú)需或只需最少的 CPU 干預(yù)。該模塊為低功耗使用進(jìn)行了優(yōu)化,以便在跟蹤時(shí)間的同時(shí)延長(zhǎng)電池的使用壽命。RTCC 模塊具有 100 年的時(shí)鐘和日歷,能自動(dòng)檢測(cè)閏年。時(shí)鐘范圍從 2000 年 1 月 1 日 00:00:00(午夜)到 2099 年 12 月 31 日 23:59:59。小時(shí)數(shù)以 24 小時(shí) (軍用時(shí)間)格式提供。該時(shí)鐘提供一秒的時(shí)間粒度,用戶可看到半秒的時(shí)間間隔。需要外部32.768KHZ的低速晶振。由于開(kāi)發(fā)板沒(méi)有焊接晶振,所以我們自己焊上晶振和一個(gè)貼片電容,加快晶振起振速度。下圖是使用RTCC模塊在液晶上顯示當(dāng)前的時(shí)間和日期,其中第一行為:Current time is:,第二行為:16-46-25 03-07,表示當(dāng)前的時(shí)間為3月7日,16點(diǎn)46分25秒。
圖3-13 使用RTCC模塊顯示當(dāng)前時(shí)間
3.6 數(shù)據(jù)存儲(chǔ)miniSD
本節(jié)介紹miniSD存儲(chǔ)卡,以及與PIC32的SPI模塊連接,并介紹了常用的FATFS文件操作系統(tǒng)。
3.6.1 miniSD簡(jiǎn)介
mini-SD卡是在數(shù)碼相機(jī),PDA等所用的Flash。全稱Memory Card(中文名:快閃存儲(chǔ)卡)基礎(chǔ)上發(fā)展出的一種更小更適合小型手機(jī)用的存儲(chǔ)卡。盡管mini-SD卡的外形大小及接口形狀與原來(lái)的SD卡不同,但接口等電氣標(biāo)準(zhǔn)相同,以確保兼容性。將mini-SD卡插入專用適配器,可通過(guò)原來(lái)的SD卡插槽讀寫(xiě)mini-SD卡。不過(guò),不具備像SD卡那樣防寫(xiě)入的鎖定功能。
3.6.2 miniSD與PIC32連接
如圖2-13所示,使用SPI1接口與miniSD卡相連,圖2-14為實(shí)物連接圖。
圖3-14 使用SPI1接口與miniSD卡連接
圖3-15 實(shí)物連接圖
3.6.3 Fatfs文件操作系統(tǒng)
FatFs是一個(gè)通用的文件系統(tǒng)模塊,用于在小型嵌入式系統(tǒng)中實(shí)現(xiàn)FAT文件系統(tǒng)。 FatFs 的編寫(xiě)遵循ANSI C,因此不依賴于硬件平臺(tái)。它可以嵌入到便宜的微控制器中,如 8051, PIC, AVR, SH, Z80, H8, ARM 等等,不需要做任何修改。其特點(diǎn): FAT12, FAT16 與 FAT32.多個(gè)卷(物理驅(qū)動(dòng)器與分區(qū)).兩種分區(qū)規(guī)則: FDISK 與 Super-floppy.多種配置選項(xiàng):長(zhǎng)文件名支持??蛇x的編碼頁(yè),包括DBCS(DBCS為雙位元組字元系統(tǒng) Double Byte Char Systems )多任務(wù)支持只讀,最小化API,緩沖區(qū)配置等等應(yīng)用程序接口。因?yàn)镕atFs模塊完全與磁盤(pán)I/O層分開(kāi),因此需要下面的函數(shù)來(lái)實(shí)現(xiàn)底層物理磁盤(pán)的讀寫(xiě)與獲取當(dāng)前時(shí)間。底層磁盤(pán)I/O模塊并不是FatFs的一部分,并且必須由用戶提供。
圖3-16 FatFs文件操作系統(tǒng)模型
3.7 上位機(jī)LabVIEW
3.7.1 LabVIEW簡(jiǎn)介
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是與傳統(tǒng)文本編程語(yǔ)言不同的圖形化編程語(yǔ)言開(kāi)發(fā)環(huán)境,采用圖形模式的結(jié)構(gòu)和框圖構(gòu)建程序代碼。由美國(guó)國(guó)家儀器NI公司開(kāi)發(fā)的一款虛擬儀器開(kāi)發(fā)平臺(tái),也是目前最流行、功能最強(qiáng)、發(fā)展最快的圖形化編程語(yǔ)言,通常稱為G語(yǔ)言。
傳統(tǒng)的文本編程語(yǔ)言,如C、Java、VB等,它們具有一個(gè)相同的特點(diǎn):就是使用字母構(gòu)成單詞,用單詞表達(dá)某種數(shù)據(jù)操作;再用單詞構(gòu)成語(yǔ)句,用語(yǔ)句表示對(duì)某個(gè)數(shù)據(jù)的賦值和運(yùn)算等操作。這幾種計(jì)算機(jī)語(yǔ)言參考了人類自然語(yǔ)言,是一種高度抽象的語(yǔ)言。它的優(yōu)勢(shì)在于效率高,用簡(jiǎn)短的語(yǔ)句就能表達(dá)復(fù)雜的功能;缺點(diǎn)在于:文本不夠直觀,也不容易學(xué)習(xí)。開(kāi)發(fā)者需要花費(fèi)大量的時(shí)間學(xué)習(xí)并記憶其關(guān)鍵字、編程語(yǔ)法規(guī)則等等,而且文本語(yǔ)言往往不能直觀地給閱讀者提供信息,需要閱讀完整段代碼程序才能了解其意義。目前許多高級(jí)語(yǔ)言,如VB、VC等在程序界面設(shè)計(jì)時(shí)引入可視化設(shè)計(jì)方式,直接使用鼠標(biāo)選擇和調(diào)整程序界面的方式,能夠直接看到程序運(yùn)行時(shí)的效果。雖然它們?cè)诮缑嬖O(shè)計(jì)使用圖形化方式,但是程序的功能依然需要通過(guò)文本編程方式來(lái)實(shí)現(xiàn)。LabVIEW與上述編程語(yǔ)言相比,不但在程序設(shè)計(jì)時(shí)采用圖形化編程方式,而且在編寫(xiě)程序代碼和實(shí)現(xiàn)程序功能的時(shí)候,也使用圖形化編程方式。在一個(gè)LabVIEW程序當(dāng)中,看到不是一行行文本,而是由線和各種小圖形塊的連接組成。由于圖形比文字更為直觀,因此LabVIEW相比其他編程語(yǔ)言更容易學(xué)習(xí),讓開(kāi)發(fā)者可以把更多時(shí)間分配到數(shù)據(jù)處理和算法分析上,提高了編程效率,降低硬件成本,減少了系統(tǒng)開(kāi)發(fā)周期。
3.7.2 上位機(jī)程序
使用到LabVIEW中VISA模塊實(shí)現(xiàn)串口通信,編寫(xiě)程序界面如下,通過(guò)選擇串口號(hào)和通信的波特率,就能在面板上顯示出CCD的波形數(shù)據(jù),與圖3-5示波器采集數(shù)據(jù)一致。
圖3-17 上位機(jī)界面
四 模塊化軟件設(shè)計(jì)
推薦閱讀:30例經(jīng)典檢測(cè)、監(jiān)測(cè)、監(jiān)控系統(tǒng)完整解決方案,從實(shí)際應(yīng)用需求出發(fā)