史俊莉
(河南工業(yè)職業(yè)技術(shù)學(xué)院,473000)
基于uClinux的測井儀器調(diào)試臺架前端機軟件設(shè)計探究
史俊莉
(河南工業(yè)職業(yè)技術(shù)學(xué)院,473000)
文章介紹了一種基于uClinux的系統(tǒng)平臺測井儀器調(diào)試臺架前端機軟件設(shè)計方法。實際應(yīng)用表明,該軟件設(shè)計滿足了調(diào)試工作的需要,不僅有利于這些儀器設(shè)備的研制,還能夠提高這些儀器設(shè)備的維護效率,將來在測井儀器調(diào)試臺架中值得進一步推廣和應(yīng)用。
uClinux;測井儀器;調(diào)試臺架;軟件設(shè)計
在實際工作中,要想促進高端成像測井儀器更好的運用和工作,就必須重視對它的調(diào)試和維護工作。而進行調(diào)試和維護的過程中,測井儀器調(diào)試臺架是不可缺少的組成部分,在具體應(yīng)用中有著重要的作用。筆者根據(jù)具體工作的需要,考慮系統(tǒng)前端機硬件平臺的具體情況,介紹基于uClinux的測井儀器調(diào)試臺架前端機軟件設(shè)計方法。
1.1 系統(tǒng)整體結(jié)構(gòu)。在結(jié)構(gòu)體系的選擇上,為了提高使用效果,滿足實際工作的需要,采用通過以太網(wǎng)互聯(lián)的先進體系結(jié)構(gòu),為實現(xiàn)上位機與前端機的通訊,在二者聯(lián)系方式的選擇上,考慮具體工作的需要,設(shè)計中采用的是基于連接的客戶端/服務(wù)器工作模式,系統(tǒng)的主要結(jié)構(gòu)包括主控電路板、下井儀、遙傳測試板、部件調(diào)試接口等等,不同的組成部分發(fā)揮不同的作用,統(tǒng)一于系統(tǒng)中,促進整個軟件正常運行和工作。
1.2 具體結(jié)構(gòu)構(gòu)成。就前端機來說,它的具體構(gòu)成部分包括AMR7核心電路板、遙傳測試板、人機交互功能板、各種板級/部件級調(diào)試接口板等。對于遙傳測試板的結(jié)構(gòu)來說,它擁有2路CAN和1路DTB,這些構(gòu)成部件的主要功能是用于儀器的整體調(diào)校,從而確保系統(tǒng)處于良好的運行狀態(tài)。CAN是指控制局域網(wǎng)總線,具體指EILog06系統(tǒng)井下儀器總線。DTB總線指斯倫貝謝CTS系統(tǒng)兼容的井下儀器總線,為EILog05系統(tǒng)井下儀器使用。外接通用下井儀器電源通過核心板RS232口程控操作。該臺架系統(tǒng)還設(shè)置板級/部件級調(diào)試接口,將其配接不同的儀器功能電路板,或配接部件測試板卡構(gòu)成測井儀器調(diào)試臺架,以滿足實際工作的需要,促進整個系統(tǒng)的運行和工作。
2.1 具體架構(gòu)設(shè)計。在儀器調(diào)試臺架結(jié)構(gòu)設(shè)計上,采用的是前后臺設(shè)計的方式方法,該設(shè)計形式具有自身顯著的優(yōu)點,主要表現(xiàn)為方便上位機的工作,上位機在日常運行中,只需要進行測試命令下發(fā),以及測試數(shù)據(jù)的分析和處理即可。而為了提高工作效率,實現(xiàn)數(shù)據(jù)分析和傳遞的實時性,對于CAN/DTB總線通訊、儀器子功能電路、部件測試等任務(wù),則需要前端機來完成。儀器調(diào)試臺架的主要功能是測試各種儀器整機、部件等,為了促進這些功能的順利實現(xiàn),需要考慮的關(guān)鍵工作是采取相應(yīng)的措施,實現(xiàn)前端機與上位機高速以太網(wǎng)通訊,也就是在具體工作中,應(yīng)該采取相應(yīng)的策略,實現(xiàn)TCP/IP協(xié)議。開源的Linux系統(tǒng)包含完整的TCP/IP網(wǎng)絡(luò)協(xié)議。前端機采用的是基于ARM7TDMI的S3C44B0,
在構(gòu)成部件的內(nèi)部,沒有存儲管理單元MMU,因此,由于缺乏這個單元的支持,在實際使用過程中,系統(tǒng)不能運行Linux,但是,系統(tǒng)能夠運行uClinux系統(tǒng)。uClinux系統(tǒng)運行的環(huán)境要求相對較低,事實上,它是針對沒有MMU的微處理器設(shè)計的,是從Linux2.0/2.4內(nèi)核當(dāng)中派生出來的。盡管uClinux沒有Linux所有的功能,但是它仍然具備Linux的絕大部分特征,在很多方面仍然具有相似性。同時,uClinux系統(tǒng)體積小、移植性能好、網(wǎng)絡(luò)功能優(yōu)良等等。正是具備上述特點和優(yōu)勢,滿足了軟件系統(tǒng)平臺的實際需要,在軟件設(shè)計的時候基于uClinux進行設(shè)計。
2.2 系統(tǒng)平臺實現(xiàn)。前端軟件在系統(tǒng)平臺上的實現(xiàn),包括兩個方面的內(nèi)容:驅(qū)動程序和應(yīng)用程序。就驅(qū)動程序來說,它在實際應(yīng)用中,主要實現(xiàn)CAN/DTB實時高速通訊、鍵盤鍵值讀取等,任務(wù)完成的實時性要求較高,對系統(tǒng)的要求也較高。而應(yīng)用程序沒有這方面的要求,任務(wù)的實時性要求不高。就具體的結(jié)構(gòu)構(gòu)成圖來看,嵌入端測控軟件架構(gòu)如圖1所示,從結(jié)構(gòu)圖可以得知,主要的結(jié)構(gòu)包括硬件層、系統(tǒng)層、應(yīng)用層,采用的是模塊結(jié)構(gòu)形式,不同的模塊層具有不同的特點,發(fā)揮不同的功能。網(wǎng)絡(luò)通訊模塊:實現(xiàn)ARM端與PC端以太網(wǎng)socket連接。命令響應(yīng)及板卡接口模塊:響應(yīng)PC機下傳命令,對調(diào)試板卡進行操作控制。驅(qū)動接口:與驅(qū)動程序的異步消息接口,進行數(shù)據(jù)交換。界面顯示及鍵值處理:進行前端機本地人機交互。LCD接口模塊:完成圖形繪制,文字顯示。整個前端機軟件設(shè)計的時候,為了提高設(shè)計水平,采用的是模塊化的設(shè)計方式,這樣不僅能夠為各種調(diào)試板卡提供程序接口,還便利了將來功能的擴展,有利于系統(tǒng)的升級,對整個系統(tǒng)設(shè)計和運用具有積極的意義。
圖1 嵌入端測控軟件架構(gòu)
3.1 解決設(shè)計的關(guān)鍵和難點問題。就uClinux設(shè)備結(jié)構(gòu)類型來看,它分為字符、網(wǎng)絡(luò)、塊設(shè)備三種不同的類型。在該軟件驅(qū)動程序設(shè)計的時候,采用的是字符型設(shè)備,通過合理的設(shè)計,實現(xiàn)系統(tǒng)功能的實時驅(qū)動,包括遙傳測試板上的兩路CAN、一路DTB儀器端、一路DTB遙測端、鍵盤等的實時驅(qū)動。設(shè)計的難點如下:實現(xiàn)大量通訊數(shù)據(jù)快速實時收發(fā),實現(xiàn)驅(qū)動與應(yīng)用程序數(shù)據(jù)和信息的快速交換。為實現(xiàn)總線實時高速數(shù)據(jù)收發(fā),驅(qū)動程序設(shè)計中為每路CAN和DTB分別設(shè)計4KB的系統(tǒng)緩存和專門的中斷處理。驅(qū)動程序在中斷驅(qū)動下對數(shù)據(jù)緩存自動操作,完成儀器數(shù)據(jù)幀收發(fā)。數(shù)據(jù)幀收發(fā)完成后驅(qū)動程序向應(yīng)用程序發(fā)出異步通知,應(yīng)用程序收到通知只需提供或讀取儀器數(shù)據(jù)幀即可。通過這樣的運行方式,不能能夠促進通訊速率的提高,還能夠促進整個程序運行效率的提高。
3.2 驅(qū)動程序運行流程圖。先對CAN、DTB、鍵盤相關(guān)硬件初始化,然后使用函數(shù)注冊驅(qū)動程序,將中斷處理函數(shù)裝載入內(nèi)核,最后驅(qū)動程序開放中斷,進入休眠狀態(tài)。當(dāng)進入休眠狀態(tài)后,只有在兩種情況下,程序才會開始工作,包括應(yīng)用程序調(diào)用、設(shè)定的中斷產(chǎn)生。如果出現(xiàn)中斷的情況,驅(qū)動程序會發(fā)生相應(yīng)的指令,對鍵盤、CAN、DTB儀器端、DTB遙測端依次進行判斷,執(zhí)行操作并保持中斷標志,向應(yīng)用程序發(fā)出SIGIO異步信號。
3.3 數(shù)據(jù)交換與加載方式。應(yīng)用程序和驅(qū)動程序處于不同的內(nèi)存空間,不能直接交換數(shù)據(jù)。數(shù)據(jù)交換的實現(xiàn)是通過copy-touser和copy-from-user完成的。另外,在加載方式上,驅(qū)動程序有兩種不同的方式,包括直接編譯入內(nèi)核和動態(tài)加載,二者各有自己的特點和操作方法,其中動態(tài)加載的方式操作簡單,也便于調(diào)試和修改程序,在實際工作更值得采用。
4.1 運行流程。應(yīng)用程序具體的運行流程如圖4所示。啟動應(yīng)用軟件,對LCD進行初始化,調(diào)用setitimer函數(shù)和signal函數(shù),初始化硬件驅(qū)動程序,調(diào)用sigaction函數(shù),初始化網(wǎng)絡(luò)socket,連接PC主機,進入命令接收和網(wǎng)絡(luò)狀態(tài)檢測循環(huán)。
4.2 中斷處理。實際運行中,如果出現(xiàn)中斷現(xiàn)象,由驅(qū)動程序進行檢測并作出處理,保存當(dāng)前中斷狀態(tài),向應(yīng)用程序發(fā)出SIGIO異步信號。收到異步信號中斷當(dāng)前操作,進行處理。運行中如果鍵盤中斷,應(yīng)用程序取回當(dāng)前按鍵值,顯示按鍵標志,返回主程序。
4.3 模塊設(shè)置。應(yīng)用程序采用的是模塊化的設(shè)置方式,分為
主模塊和測試板驅(qū)動模塊。各模塊又包括相應(yīng)的子模塊,兩大模塊采用的是分開編譯的方式,不僅便利了不同板卡驅(qū)動模塊的添加,還方便了對程序的維護,有利于促進應(yīng)用程序更好的運行。
5.1 具體應(yīng)用。當(dāng)驅(qū)動程序和應(yīng)用程序設(shè)計完成,在軟件具體運用之前,還需要將它們設(shè)置為開機自主運行方式,從而將軟件運用到實際工作當(dāng)中,滿足具體工作的需要。應(yīng)用程序和驅(qū)動程序程序編譯完成,拷貝至已經(jīng)編譯好的uClinux操作系統(tǒng)可執(zhí)行文件romfs in 目錄下,在啟動配置文件vendors samsung 44b0x rc中,用 insmod 指令加載驅(qū)動程序,將啟動應(yīng)用程序命令加入該文件末尾,用make romfs和make image命令,從而能夠生成系統(tǒng)鏡像文件,滿足具體工作的需要。而將該鏡像文件寫入FLASH當(dāng)中,就能夠?qū)崿F(xiàn)開機的自主運行,從而方便運用和操作,滿足實際工作的需要。
5.2 應(yīng)用效果。整體設(shè)計完成,并且設(shè)置為開機自主運行之后,將該軟件運用到微電阻率掃描、陣列感應(yīng)、多極陣列聲波等調(diào)試臺架中。結(jié)果表明,該軟件設(shè)計不僅滿足了這些儀器的使用需要,還方便了對儀器的研制,有利于提高對這些儀器的維護效率,取得了令人滿意的效果,將來在具體工作中值得推廣和應(yīng)用該軟件。
綜上所述,文章結(jié)合儀器調(diào)試臺架硬件架構(gòu)的特點,考慮具體工作的需要,設(shè)計前端機軟件。在軟件的具體設(shè)計工作中,運用的是模塊化的設(shè)計方式;在具體的功能設(shè)計方面,主要實現(xiàn)了異步中斷處理、本地人機交互、與上位機異步網(wǎng)絡(luò)通訊等多種功能,這些功能的實現(xiàn),不僅方便了對軟件的操作,還有利于提高系統(tǒng)的工作效率,取得更好的效果。此外,該軟件還提供了板卡驅(qū)動擴展接口,方便對系統(tǒng)的操作,也有利于功能的拓展和系統(tǒng)的完善。通過將該軟件進行實際運用表明,該軟件滿足了微電阻率掃描、陣列感應(yīng)、多極陣列聲波等調(diào)試臺架具體工作的需要,在實際運用具有良好的效果,今后在具體工作中應(yīng)該進一步推廣和應(yīng)用該軟件。
[1] 門百永,鞠曉東.基于嵌入式架構(gòu)的陣列感應(yīng)成像測井儀調(diào)試臺架設(shè)計[J].科學(xué)技術(shù)與工程,2011(11),2450-2454
[2] 李俊.嵌入式Linux設(shè)備驅(qū)動程序開發(fā)詳解[M].北京:人民郵電出版社,2008 、
[3]吳文河,鞠曉東.基于uClinux的測井儀器調(diào)試臺架前端機軟件設(shè)計[J].中國石油大學(xué)學(xué)報(自然科學(xué)版), 2011(3),63-67
[4] 劉崢嶸,張智超,許振山.嵌入式Linux應(yīng)用開發(fā)詳解[M].北京:機械工業(yè)出版社,2006
[5] 吳文河.基于NiosII的隨鉆聲波測井儀器調(diào)試臺架系統(tǒng)設(shè)計[J].測井技術(shù),2013(3),306-309
Logging instrument of uClinux test bench front-end machine software design research based on
Shi Junli
(Henan Polytechnic Institute,473000)
This paper introduces front-end machine software design method for ogging instrument debugging bench based on uClinux system platform. The application shows that the software designed meet the needs of commissioning work,not only conducive to the development of these equipment,but also to improve maintenance efficiency.It is worthy of further promotion and application in debug logging equipment gantry.
uClinux;logging instrument;Debugging bench;software designe