成像測(cè)井中基于ARM LPC1788顯示系統(tǒng)的設(shè)計(jì)
摘要:為了實(shí)現(xiàn)對(duì)成像測(cè)井系統(tǒng)中井下儀器所采集數(shù)據(jù)的實(shí)時(shí)顯示,設(shè)計(jì)了一種基于ARM LPC1788的顯示系統(tǒng)。該系統(tǒng)主要用來接收上位機(jī)命令,采集各種模擬信號(hào),將采集數(shù)據(jù)實(shí)時(shí)顯示在液晶屏上。軟件部分采用Keil RealViewMDK+c語言編程。實(shí)際應(yīng)用表明,該系統(tǒng)具有操作簡便、測(cè)試準(zhǔn)確的特點(diǎn),達(dá)到了設(shè)計(jì)要求,滿足成像系統(tǒng)整體需求。
關(guān)鍵詞:ARM LPC1788;液晶顯示;成像測(cè)井系統(tǒng);數(shù)據(jù)采集;實(shí)時(shí)
石油行業(yè)中的測(cè)井技術(shù)是一種井下油氣勘探方法,用于發(fā)現(xiàn)油氣藏,評(píng)估油氣儲(chǔ)量及其產(chǎn)量。從1927年發(fā)展至今已經(jīng)出現(xiàn)第五代測(cè)井系統(tǒng),即成像測(cè)井系統(tǒng)。成像測(cè)井系統(tǒng)通過成像井下儀傳感器陣列掃描或旋轉(zhuǎn)掃描測(cè)量,沿井眼縱向、周向或徑向采集地層信息,經(jīng)測(cè)井電纜傳輸?shù)骄铣上駵y(cè)井地面系統(tǒng),使用圖象處理技術(shù)得到井壁的二維圖象或井眼周圍某一探測(cè)深度以內(nèi)的三維圖象。這比以往測(cè)井系統(tǒng)的曲線表示方法更精確、更直觀、更方便。
第四代數(shù)控測(cè)井地面系統(tǒng)以LED指示燈、數(shù)碼管等作為顯示器件,存在顯示信息量小,擴(kuò)展不靈活,電路復(fù)雜等諸多缺點(diǎn)。本設(shè)計(jì)以控制能力突出,外設(shè)接口豐富,運(yùn)算速度快的ARM芯片LPC1788作為控制、數(shù)據(jù)處理核心,使用了位于AHB總線上能進(jìn)行快速訪問的多個(gè)GPIO口以擴(kuò)展定制的寬溫液晶屏,對(duì)各種信息的顯示明確、清晰、實(shí)時(shí)、穩(wěn)定可靠,并能在惡劣的環(huán)境中正常工作。
1 NXP LPC1788 ARM處理器簡介
LPC1788是恩智浦公司新推出的一款基于ARM Cortex-M3的微控制器,用于處理要求高集成度和低功耗的嵌入式應(yīng)用。本系統(tǒng)選用此芯片作為主控芯片是由于它具備以下突出特點(diǎn):
1)LPC1788是下一代內(nèi)核Cortex—M3架構(gòu),在相同的時(shí)鐘速率下能提供比ARM7更高的性能,頻率可以高達(dá)120 MHz。
2)多達(dá)165個(gè)可配置上拉/下拉電阻、開漏模式的通用I/O管腳,控制能力強(qiáng)大。
3)一個(gè)以太網(wǎng)MAC帶MII/RMII,便于數(shù)據(jù)的傳輸。5個(gè)UART,帶小數(shù)波特率發(fā)生功能,支持RS-485/EIA-485。
4)12位模數(shù)轉(zhuǎn)換器(ADC),可在8只管腳之間實(shí)現(xiàn)多路輸入,轉(zhuǎn)換速率高達(dá)400 kHz,并具有多個(gè)結(jié)果寄存器。12位ADC可以與GPDMA控制器一起使用。
5)LPC1788的管腳引出線可與LPC24xx和LPC23xx保持管腳功能兼容,方便系統(tǒng)的升級(jí)。
2 ARM顯示系統(tǒng)組成
圖1是ARM顯示系統(tǒng)工作原理示意圖。ARM LPC1788是整個(gè)系統(tǒng)的核心,它主要有以下幾個(gè)方面的功能:一方面負(fù)責(zé)收發(fā)網(wǎng)絡(luò)和串口上的數(shù)據(jù),另一方面用內(nèi)置AD采集直流交流供電回路上的電壓電流信號(hào),并控制液晶屏顯示相關(guān)信息。
圖2是實(shí)際電路圖截選。ARM LPC1788、晶振電路、供電電源、復(fù)位電路、驅(qū)動(dòng)電路和其他外圍電路封裝成一個(gè)小模塊LPC1788 MODULE,通用化,以方便系統(tǒng)共用。程序調(diào)試和下載使用JTAG口。D2為MC1413,負(fù)責(zé)控制繼電器的通斷。XS10:RJ45接網(wǎng)線,和上位機(jī)進(jìn)行數(shù)據(jù)交換。XS8為液晶屏接口,分別把數(shù)據(jù)線D0-D7,地址線A0-A1,控制線CS0、WR、RD接到液晶屏相應(yīng)端口上去。ARM模塊管腳70-73是LPC1788內(nèi)部AD收入,采集模擬信號(hào)。串口為49、50兩管腳,與單片機(jī)C8051F040轉(zhuǎn)發(fā)數(shù)據(jù)。
2.1 顯示部分電路
成像測(cè)井地面系統(tǒng)在野外環(huán)境工作,條件比較惡劣,要求高溫和低溫情況下都能正常地使用。為了達(dá)到這點(diǎn),本系統(tǒng)選用了寬溫型芯片(達(dá)到-40~85℃的指標(biāo))及寬溫型液晶顯示屏。基本原理如圖3所示。
LPC1788 P3口、P4口出來的地址信號(hào)、片選信號(hào)、讀寫信號(hào)和數(shù)據(jù)信號(hào),經(jīng)三態(tài)輸出到16位總線收發(fā)器SN74LVC16245并經(jīng)驅(qū)動(dòng)連接到液晶屏控制電路上的CPLD進(jìn)行邏輯控制,并和其相應(yīng)的存儲(chǔ)器進(jìn)行數(shù)據(jù)交換。同時(shí),DC/DC電壓變化器供給液晶屏所需各種電壓,背光供電電路給液晶屏背光燈供電。邏輯控制部分加入緩沖技術(shù),可以讓寫入與顯示同時(shí)進(jìn)行,避免雪花現(xiàn)象,實(shí)現(xiàn)高速刷新。
此液晶屏為點(diǎn)陣型液晶屏,由480x272個(gè)顯示單元組成,顯示字符相對(duì)復(fù)雜。每一個(gè)漢字都可以認(rèn)為是由許多個(gè)點(diǎn)組成點(diǎn)陣所構(gòu)成的。此屏每8列對(duì)應(yīng)一個(gè)字節(jié)的8位,即每行由60字節(jié)共60x8=480個(gè)點(diǎn)組成,屏上272x60個(gè)顯示單元與顯示存儲(chǔ)器區(qū)16 320字節(jié)對(duì)應(yīng),每一字節(jié)的內(nèi)容和顯示屏上相應(yīng)位置的亮暗對(duì)應(yīng)。當(dāng)一行的字節(jié)寫滿刷新屏幕后,自動(dòng)跳轉(zhuǎn)到下一行寫新的字節(jié),如此,寫滿整屏。本設(shè)計(jì)每一個(gè)字符由20x16點(diǎn)陣組成,共需要40字節(jié)才能寫完一個(gè)字。
控制液晶屏方式為并行總線控制(片選信號(hào)/CS、讀信號(hào)/RD、寫信號(hào)/WR、數(shù)據(jù)總線D[7:0]、地址總線A[1:0])。既可以像普通存儲(chǔ)器一樣使用EMC方式控制,所有操作均對(duì)寄存器進(jìn)行讀寫;也可以用GPIO方式控制,嚴(yán)格按照時(shí)序控制相應(yīng)端口置高低電平。液晶屏需要四個(gè)寄存器,列地址寄存器(X)、行地址寄存器(Y)、狀態(tài)寄存器(CME))和數(shù)據(jù)寄存器(DAT)。每個(gè)寄存器的位寬是8bit,而行(列)寄存器地址取值范圍均超過255,需占9bit,所以行(列)地址寄存器必須連續(xù)寫兩次,第一次寫低8位,第二次寫高位地址。在此期間,不可以對(duì)其他三個(gè)寄存器做任何操作。在單點(diǎn)寫時(shí),控制寄存器寫0就可以。顯示數(shù)據(jù)通過數(shù)據(jù)寄存器寫入和讀出,每次讀寫操作后地址自動(dòng)沿X方向加一。
讀寫時(shí),先指定行列地址。然后從此點(diǎn)開始進(jìn)行連續(xù)讀寫,無須重新設(shè)置行列地址。在顯示數(shù)據(jù)每次寫操作后,列地址自動(dòng)加1。當(dāng)?shù)刂芳拥叫形矔r(shí),地址將跳到下一行的行首。當(dāng)寫一個(gè)新行時(shí),需重新設(shè)置行列地址。
2.2 數(shù)據(jù)收發(fā)電路
本設(shè)計(jì)共有兩種數(shù)據(jù)收發(fā)總線:
1)以太網(wǎng)。以太網(wǎng)因應(yīng)用廣泛,技術(shù)成熟,具有獨(dú)立性和靈活性的優(yōu)點(diǎn),適用于本系統(tǒng)結(jié)構(gòu)化綜合布線格局,且便于和計(jì)算機(jī)交換數(shù)據(jù)。故成像測(cè)井地面系統(tǒng)各分系統(tǒng)之間連接使用以太網(wǎng)網(wǎng)絡(luò)總線。ARM LPC1788 MAC通過RMII接口與PHY芯片IAN8720連接,主要負(fù)責(zé)接收當(dāng)前系統(tǒng)的控制令、上傳采集到的數(shù)據(jù)和系統(tǒng)工作狀態(tài)。
2)串口。串口通信原理簡單,穩(wěn)定可靠,主要作為數(shù)據(jù)通路的轉(zhuǎn)發(fā)器,轉(zhuǎn)發(fā)控制命令。其主要控制兩路DAC提供基準(zhǔn)電壓,調(diào)節(jié)整個(gè)電路狀態(tài)以便于AD采集。
2.3 AD采樣電路
LPC1788內(nèi)含8通道12位逐次逼近式模數(shù)轉(zhuǎn)換器,轉(zhuǎn)化速度高達(dá)400 kHz,并可高速采集多路模擬信號(hào)。逐次逼近式模數(shù)轉(zhuǎn)換器由一個(gè)比較器和D/A轉(zhuǎn)換器通過逐次比較邏輯構(gòu)成,從MSB開始,順序地對(duì)每一位將輸入電壓與內(nèi)置D/A轉(zhuǎn)換器輸出進(jìn)行比較,經(jīng)n次比較而輸出數(shù)字值。前級(jí)電路對(duì)原始信號(hào)進(jìn)行檢波、放大、電流電壓轉(zhuǎn)換、濾波等預(yù)處理以滿足AD的測(cè)量要求。
3 軟件設(shè)計(jì)
ARM LPC1788上電后自動(dòng)進(jìn)行初始化操作。首先,程序初始化設(shè)置系統(tǒng)時(shí)鐘,分頻晶振頻率;設(shè)置外設(shè)功率寄存器PCONP,使能以太網(wǎng)、串口及GPIO自身和IOCON等外設(shè)寄存器,禁止其他外設(shè)功能以節(jié)省功耗;設(shè)置I/O配置寄存器IOCON,控制器件需要使用管腳的功能;設(shè)置GPIO端口方向寄存器FIOxDIR、端口屏蔽寄存器FIOxMASK、端口輸出設(shè)置寄存器FIOxSET、端口輸出清零寄存器FIOxCLR、端口管腳值寄存器FIOxPIN等。其次,對(duì)液晶屏清屏,配置液晶屏底色及字體顏色;設(shè)置8點(diǎn)寫模式,提高顯示速度,并顯示恒定不變的信息。然后,控制輸出基準(zhǔn)電平以調(diào)整電路狀態(tài)以便能采集到穩(wěn)定正確的模擬信號(hào)。當(dāng)接收命令和初始化完成后,LPC1788網(wǎng)絡(luò)口等待接收上位機(jī)命令,判斷刷新標(biāo)志是否有效:有效則清除刷新標(biāo)志,并依次進(jìn)行數(shù)據(jù)采集、顯示數(shù)據(jù)、給上位機(jī)上傳采集到的數(shù)據(jù)等操作;無效則接收并處理新命令。程序流程圖如圖4所示。
4 結(jié)束語
該系統(tǒng)以ARM LPC1788為核心,外擴(kuò)寬溫總線型液晶顯示屏輸出顯示。以10/100M以太網(wǎng)絡(luò)作為數(shù)據(jù)傳輸總線,達(dá)到數(shù)據(jù)快速傳輸?shù)囊?。系統(tǒng)硬件設(shè)計(jì)簡單,顯示信息豐富,環(huán)境適應(yīng)性強(qiáng),擴(kuò)展靈活,效果美觀,電路穩(wěn)定可靠。