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