版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于linux的嵌入式無(wú)損檢測(cè)儀器的軟件設(shè)計(jì)
0檢查儀器的功能便攜式損傷檢測(cè)儀器在損傷檢測(cè)領(lǐng)域有其獨(dú)特的應(yīng)用范圍。由于其經(jīng)濟(jì)易用性低、成本低、體積小、使用靈活等優(yōu)點(diǎn),深受市場(chǎng)喜愛。本文所介紹的這一款基于ARM平臺(tái)的便攜式無(wú)損檢測(cè)儀器除了具備普通便攜式檢測(cè)儀器所應(yīng)具有的功能之外,還具有能通過(guò)網(wǎng)絡(luò)接口將檢測(cè)數(shù)據(jù)傳輸至上位機(jī)或接收上位機(jī)下達(dá)的特殊動(dòng)作指令的功能。另外儀器還實(shí)現(xiàn)了通過(guò)網(wǎng)絡(luò)接口構(gòu)建FTP服務(wù)器的功能,使得儀器內(nèi)部的應(yīng)用程序易于更新和升級(jí),同時(shí)儀器在檢測(cè)過(guò)程中所保存的數(shù)據(jù)或屏幕截取圖片通過(guò)FTP接口也易于被用戶所獲取。1渦流檢測(cè)儀器所謂的無(wú)損檢測(cè)即是指在不破壞構(gòu)件材質(zhì)和使用性能的前提條件下,運(yùn)用現(xiàn)代檢測(cè)技術(shù)來(lái)確定被檢測(cè)對(duì)象的特征以及缺陷,以評(píng)價(jià)構(gòu)件的使用性能。而無(wú)損檢測(cè)儀器就是實(shí)現(xiàn)無(wú)損檢測(cè)的設(shè)備載體。本文所介紹的無(wú)損檢測(cè)儀器是一種基于渦流檢測(cè)方法的儀器。渦流檢測(cè)原理,即將被檢測(cè)物體(導(dǎo)電體)置于交變的磁場(chǎng)中,導(dǎo)體中就會(huì)有感應(yīng)電流產(chǎn)生。而導(dǎo)電體自身各種因素(如電導(dǎo)率、磁導(dǎo)率、形狀尺寸)的變化會(huì)導(dǎo)致感應(yīng)電流的變化,利用這種現(xiàn)象來(lái)判斷導(dǎo)體的性質(zhì)或有無(wú)缺陷的方法就是渦流檢測(cè)方法。GNU/Linux是一款遵循GPL協(xié)議的操作系統(tǒng),它是Internet發(fā)展的產(chǎn)物。Linux以其具有開放獨(dú)立、安全、免費(fèi)、網(wǎng)絡(luò)功能強(qiáng)大等特點(diǎn),已經(jīng)在各個(gè)領(lǐng)域特別是嵌入式領(lǐng)域得到廣泛的應(yīng)用,本文所介紹的儀器就是構(gòu)建在Linux操作系統(tǒng)之上并利用它成熟可靠的網(wǎng)絡(luò)協(xié)議棧實(shí)現(xiàn)數(shù)據(jù)傳輸以及通信功能的。2盤與系統(tǒng)的交互圖1是儀器的硬件結(jié)構(gòu)圖。從圖上可以看出射頻模擬信號(hào)經(jīng)由探頭激發(fā)并拾取,經(jīng)過(guò)數(shù)字化轉(zhuǎn)換之后進(jìn)入FPGA芯片,數(shù)據(jù)在FPGA片內(nèi)再經(jīng)過(guò)一系列數(shù)學(xué)上的變換預(yù)存儲(chǔ)在內(nèi)置RAM區(qū)域中等待ARM的采集。以ARM芯片為核心的片上系統(tǒng)通過(guò)內(nèi)部總線協(xié)議將數(shù)據(jù)搬運(yùn)到外部的SDRAM中,再根據(jù)一些邏輯算法運(yùn)算后將數(shù)據(jù)實(shí)時(shí)地顯示到LCD屏幕上。用戶還可以通過(guò)外接鍵盤與系統(tǒng)進(jìn)行交互,例如設(shè)置參數(shù)、進(jìn)行數(shù)據(jù)遷移等。另外,如果工作場(chǎng)合需要,儀器也可以不做任何數(shù)據(jù)上的處理,直接將FPGA中生成的數(shù)字化后的數(shù)據(jù)通過(guò)網(wǎng)絡(luò)接口傳輸給上位機(jī)進(jìn)行處理。圖2是儀器的軟件結(jié)構(gòu)圖。由圖可以看出軟件部分主要分為三個(gè)層次:引導(dǎo)程序、操作系統(tǒng)、應(yīng)用層。引導(dǎo)程序采用的是開源軟件U-boot,它的作用相當(dāng)于臺(tái)式機(jī)的bios,即做一些基本的初始化工作,為L(zhǎng)inux操作系統(tǒng)的運(yùn)行做好準(zhǔn)備。主要工作有設(shè)置ARM芯片運(yùn)行狀態(tài)的相關(guān)寄存器,初始化SDRAM,設(shè)置系統(tǒng)運(yùn)行堆棧,載入Linux操作系統(tǒng)以及文件系統(tǒng)。軟件的第二層是操作系統(tǒng)層,Linux操作系統(tǒng)提供驅(qū)動(dòng)接口供應(yīng)用程序操控硬件或提供集成的系統(tǒng)調(diào)用供應(yīng)用層使用。最后一層是應(yīng)用層,該層由三個(gè)部分組成,分別是FTP服務(wù)器、主控程序、應(yīng)用程序。應(yīng)用程序?qū)崿F(xiàn)儀器的基本檢測(cè)功能;FTP服務(wù)器提供給用戶一個(gè)友好的升級(jí)應(yīng)用程序的界面;主控程序是調(diào)度程序,負(fù)責(zé)應(yīng)用程序的升級(jí)。應(yīng)用程序的升級(jí)包含有程序的有效性校驗(yàn)以及搬運(yùn)功能。FTP服務(wù)器獨(dú)立于主控程序和應(yīng)用程序是因?yàn)檫M(jìn)行FTP文件傳輸?shù)臅r(shí)候需要較多的內(nèi)存資源,因此只有在需要程序升級(jí)的時(shí)候才啟動(dòng)FTP服務(wù)程序,平時(shí)是處于關(guān)閉狀態(tài)。3網(wǎng)絡(luò)編程的實(shí)現(xiàn)3.1軟件的基本類型Socket編程即套接字編程。所謂的套接字,是指一種通信機(jī)制,憑借這種通信機(jī)制,客戶/服務(wù)器系統(tǒng)的通信工作既可以在本地單機(jī)上進(jìn)行,也可以跨網(wǎng)絡(luò)進(jìn)行。在Linux下的網(wǎng)絡(luò)編程就是指使用系統(tǒng)所提供的基于文件描述符的系統(tǒng)API函數(shù)進(jìn)行套接字編程的過(guò)程。套接字有三種基本類型:流式Socket(TCP),數(shù)據(jù)報(bào)Socket(UDP),原始Socket(無(wú)協(xié)議)。這三種套接字類型各有特點(diǎn),本文介紹的儀器采用的是流式套接字。流式套接字采用的是一個(gè)有序、可靠、雙向字節(jié)流的連接。因此發(fā)送的數(shù)據(jù)可以確保不會(huì)丟失、復(fù)制或亂序到達(dá),滿足儀器數(shù)據(jù)的傳輸要求。通用的網(wǎng)絡(luò)模型有7層結(jié)構(gòu),但是在實(shí)際的應(yīng)用當(dāng)中經(jīng)常將它歸結(jié)為4層,即應(yīng)用層、傳輸層、Internet層、網(wǎng)絡(luò)訪問(wèn)層,儀器進(jìn)行數(shù)據(jù)傳輸?shù)能浖幵趹?yīng)用層??紤]到數(shù)據(jù)傳輸?shù)姆€(wěn)定性,應(yīng)用軟件采用TCP協(xié)議。Internet層與網(wǎng)絡(luò)訪問(wèn)層由Linux操作系統(tǒng)自動(dòng)完成協(xié)議封裝。3.2儀器程序的初始化代碼基于TCP協(xié)議的網(wǎng)絡(luò)編程,按照是否有幀聽端口,通常分為兩種模式,一種是服務(wù)器模式(偵聽端口),另外一種為客戶端模式。本儀器采用的是客戶端模式。關(guān)于Linux網(wǎng)絡(luò)通信中客戶端編程的初始化代碼,由于資料較多,這里不再累述。本文僅僅給出接收數(shù)據(jù)或發(fā)送數(shù)據(jù)的部分代碼,因?yàn)閮x器除了要處理網(wǎng)絡(luò)信息外,還要進(jìn)行檢測(cè)數(shù)據(jù)的采集以及按鍵信息的處理,因此網(wǎng)絡(luò)數(shù)據(jù)的傳送或接收,不可以是阻塞的模式,必須是能夠立即返回的非阻塞模式。本儀器采用傳統(tǒng)的Linux操作系統(tǒng)下API函數(shù)select,來(lái)實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)端口狀態(tài)的監(jiān)控,進(jìn)而實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)姆亲枞δ?。以下是?shí)現(xiàn)功能的部分代碼。發(fā)送數(shù)據(jù)的代碼段,其中m_tv變量保存的是超時(shí)返回的時(shí)間設(shè)置。接收數(shù)據(jù)的代碼段,m_tv的定義同上。如檢測(cè)到網(wǎng)絡(luò)口有數(shù)據(jù)上送的時(shí)候才進(jìn)行數(shù)據(jù)的接收。4通信模塊的詳細(xì)介紹4.1數(shù)據(jù)傳輸?shù)膫鬏敯l(fā)生通信的兩端(儀器和上位機(jī)),按照事先對(duì)數(shù)據(jù)傳送的同步方式、數(shù)據(jù)結(jié)構(gòu)、底層通信協(xié)議進(jìn)行相互的約定,共同的遵守,這些約定就稱為通信規(guī)約?;诰W(wǎng)絡(luò)接口的通信協(xié)議工作在應(yīng)用層。通信協(xié)議制定的好壞直接影響儀器傳輸數(shù)據(jù)的速率,以及通信質(zhì)量的可靠程度。按照通信協(xié)議的傳輸類型一般分為三類:(1)循環(huán)上送類型。儀器在進(jìn)行正常的設(shè)置之后,不經(jīng)過(guò)上位機(jī)的干預(yù),主動(dòng)將數(shù)據(jù)發(fā)送到上位機(jī)。(2)事件驅(qū)動(dòng)類型。在正常工作模式下不向上位機(jī)發(fā)送數(shù)據(jù),當(dāng)有特殊事件發(fā)生的時(shí)候才向上位機(jī)發(fā)送數(shù)據(jù)。(3)被動(dòng)召調(diào)類型。正常工作的時(shí)候,儀器不向上位機(jī)傳送數(shù)據(jù),直到上位機(jī)向儀器發(fā)送召調(diào)報(bào)文的時(shí)候才進(jìn)行數(shù)據(jù)上送。考慮到儀器的工作模式,需要實(shí)時(shí)的向上位機(jī)發(fā)送數(shù)據(jù),所以排除事件驅(qū)動(dòng)類型的通信規(guī)約。由于檢測(cè)手段的限制,要求儀器軟件采樣率較高,通常為10kHz以上,故對(duì)于數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性要求較高,也不采用召調(diào)類型的傳輸協(xié)議。最終,儀器采用的是循環(huán)上送類型傳輸協(xié)議。4.2深刻控制字的長(zhǎng)度儀器與上位機(jī)進(jìn)行通信,包括兩個(gè)方面的內(nèi)容:(1)從上位機(jī)接收?qǐng)?bào)文,例如開始采集數(shù)據(jù)、停止采集、發(fā)送參數(shù)等;(2)將采集到的數(shù)據(jù)發(fā)送給上位機(jī),以供上位機(jī)進(jìn)行顯示或分析。通信內(nèi)容以數(shù)據(jù)幀為最小發(fā)送單位。數(shù)據(jù)幀結(jié)構(gòu)如表1。同步字:用于確認(rèn)新一幀數(shù)據(jù)的開始。儀器采用的是三組0xD70x09共6個(gè)字節(jié)作為同步字,該報(bào)文頭參照“部頒CDT循環(huán)遠(yuǎn)動(dòng)規(guī)約”中的報(bào)文規(guī)定。數(shù)據(jù)幀長(zhǎng)度:表示該幀報(bào)文的長(zhǎng)度,由兩個(gè)字節(jié)的長(zhǎng)度表示,低字節(jié)在前,高字節(jié)在后。報(bào)文的長(zhǎng)度不包括同步字的六個(gè)字節(jié)。命令控制字:指示該幀報(bào)文的作用,由兩個(gè)字節(jié)的長(zhǎng)度表示,低字節(jié)在前,高字節(jié)在后。數(shù)據(jù)區(qū)域:包含需要上傳或是下載數(shù)據(jù)的內(nèi)容。數(shù)據(jù)的內(nèi)容都是兩個(gè)字節(jié)組成一個(gè)數(shù)據(jù)元素,低字節(jié)在前,高字節(jié)在后。在原協(xié)議中,在數(shù)據(jù)區(qū)域后還存在一個(gè)校驗(yàn)碼域,是用來(lái)檢驗(yàn)該幀報(bào)文的數(shù)據(jù)是否完整。但由于儀器的底層采用的是基于流套接字的TCP報(bào)文協(xié)議,是可靠性連接,并且考慮到數(shù)據(jù)傳送的實(shí)時(shí)性,在實(shí)際的工程使用中將校驗(yàn)碼域進(jìn)行刪除。因篇幅有限,僅給出部分實(shí)際報(bào)文例子,其他報(bào)文類似推導(dǎo)即可:(1)開始采集數(shù)據(jù)0xD70x090xD70x090xD70x090x040x000x010x00(2)發(fā)送心跳包0xD70x090xD70x090xD70x090x040x000x050x00(3)循環(huán)上送數(shù)據(jù)0xD70x090xD70x090xD70x090x140x000x080x000x110x000x220x000x330x000x440x000x550x000x660x000x770x000x880x00其中,0x110x00~0x880x00表示的是八個(gè)物理采樣通道的檢測(cè)數(shù)值?!?.3儀器控制程序流程任何數(shù)據(jù)通信協(xié)議都必須依靠軟件實(shí)現(xiàn),因此軟件對(duì)通信協(xié)議實(shí)現(xiàn)的好壞情況,直接影響儀器的系統(tǒng)穩(wěn)定性和其他性能指標(biāo)。系統(tǒng)的穩(wěn)定性是指儀器能否經(jīng)受得住長(zhǎng)時(shí)間,大數(shù)據(jù)量傳輸?shù)目简?yàn)而不出現(xiàn)死機(jī)或數(shù)據(jù)傳輸不穩(wěn)定的情況。其他性能指標(biāo)是指實(shí)時(shí)性以及均勻性,實(shí)時(shí)性指儀器能否將數(shù)據(jù)實(shí)時(shí)的傳輸給上位機(jī)或?qū)τ谏衔粰C(jī)給出的報(bào)警信息是否及時(shí)響應(yīng),均勻性指數(shù)據(jù)的傳輸是否節(jié)奏一致,不能時(shí)快時(shí)慢。詳細(xì)的程序處理流程見圖3協(xié)議分析流程圖。當(dāng)協(xié)議解析程序段分析出上位機(jī)給出的命令控制字后,就可以很方便地根據(jù)命令來(lái)進(jìn)行相關(guān)的動(dòng)作,例如設(shè)置參數(shù)、應(yīng)答數(shù)據(jù)、設(shè)置報(bào)警等。5邏輯上的瑕疵由于軟件自身的特性,使得任何一款軟件產(chǎn)品在發(fā)布的早期階段都不可避免的存在一些邏輯上的瑕疵或功能上的缺失。因此,為了使客戶能有良好的使用體驗(yàn),儀器必須能夠提供一種有效的機(jī)制,使其在提供給用戶使用之后,用戶仍然能夠方便地對(duì)其進(jìn)行軟件上的升級(jí)、更新操作。5.1系統(tǒng)程序的升級(jí)考慮到升級(jí)軟件的操作必須簡(jiǎn)單、可靠,故儀器采用同樣基于網(wǎng)絡(luò)接口的FTP模式進(jìn)行程序更新。實(shí)現(xiàn)描述如下:預(yù)先在儀器的內(nèi)部存儲(chǔ)芯片上固化一種FTP服務(wù)程序。當(dāng)有需要進(jìn)行軟件更新時(shí)啟動(dòng)該服務(wù)程序,這樣儀器就立刻變成了一臺(tái)擁有FTP服務(wù)功能的“服務(wù)器”。用戶通過(guò)網(wǎng)線將儀器與個(gè)人電腦相連接,通過(guò)瀏覽器登錄到儀器上,將程序下載到儀器內(nèi)部的存儲(chǔ)器的某個(gè)地址空間,之后將儀器與個(gè)人電腦分離,讓儀器內(nèi)部的主控程序在對(duì)下載的應(yīng)用程序進(jìn)行有效性檢驗(yàn)后,將它替換當(dāng)前的應(yīng)用程序,完成軟件升級(jí)。升級(jí)程序的軟件處理流程見圖4。5.2md5碼的校驗(yàn)在更新儀器程序的過(guò)程中,由于外界偶然因素的干擾,可能導(dǎo)致程序的傳輸過(guò)程發(fā)生中斷或因人為疏忽造成應(yīng)用程序傳輸錯(cuò)誤等問(wèn)題,這樣應(yīng)用程序的更新就可能不成功,因此需要一種校驗(yàn)機(jī)制來(lái)判斷所傳輸?shù)某绦蚴欠裾_、完整。本儀器采用的是通用的用于確保信息傳輸完整一致的MD5碼校驗(yàn)機(jī)制。根據(jù)公開的MD5算法將待升級(jí)的程序進(jìn)行數(shù)學(xué)變換得到一個(gè)128位的特征碼,將該特征碼附加到程序文件結(jié)尾,連同該程序文件一起傳輸給儀器。由主控程序?qū)⑺螺d的程序進(jìn)行MD5碼檢驗(yàn)后,根據(jù)比較的結(jié)果向用戶報(bào)告所傳輸?shù)某绦蚴欠袷峭暾暮驼_的。MD5碼生成函數(shù)參考開源MD5碼軟件包,主要函數(shù)與結(jié)構(gòu)包含有MD5_CTX、MD5Iinit、MD5Update、MD5Final。5.3儀器的后臺(tái)服務(wù)程序FTP的全稱是FileTransferProtocol(文件傳輸協(xié)議)。FTP服務(wù)器是指能提供以FTP協(xié)議為傳輸協(xié)議進(jìn)行文件傳輸服務(wù)的設(shè)備。能夠?qū)崿F(xiàn)FTP服務(wù)器功能的軟件非常多,本儀器采用的是VSFTP這一款開源軟件做為提供FTP服務(wù)的后臺(tái)服務(wù)程序。采用VSFTP作為后臺(tái)服務(wù)程序有三點(diǎn)理由:(1)VSFTP服務(wù)器是開源軟件,可以獲得源代碼。(2)VSFTP服務(wù)器規(guī)模較小,性能可靠,適合嵌入式儀器使用。(3)VSFTP具有高度的可配置性,使得儀器的使用比較靈活。由于篇幅有限,VSFTP服務(wù)器的交叉編譯以及安裝過(guò)程略過(guò),讀者可以從相關(guān)的官方網(wǎng)站上獲得。正確地編寫VSFTP服務(wù)器配置文件vsftp.conf,將文件復(fù)制到文件系統(tǒng)的/etc目錄中,當(dāng)vsftpd程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度門窗加工車間環(huán)保設(shè)施建設(shè)與運(yùn)營(yíng)合同4篇
- 二零二五年度模板工建筑工程安全防護(hù)合同范本(含風(fēng)險(xiǎn)評(píng)估)3篇
- 2025年度綠色環(huán)保瓷磚批量供貨及安裝一體化服務(wù)合同4篇
- 二零二四年度園林綠化工程設(shè)計(jì)、施工、養(yǎng)護(hù)一體化合同3篇
- 二零二五年度出國(guó)勞務(wù)派遣與境外法律法規(guī)遵守培訓(xùn)服務(wù)合同3篇
- 2025年洗衣機(jī)產(chǎn)品智能化改造項(xiàng)目銷售合同3篇
- 2025年智能工廠廠房出租合同4篇
- 二零二五年度商鋪?zhàn)赓U合同消防安全責(zé)任書3篇
- 二零二五年度農(nóng)貿(mào)場(chǎng)市場(chǎng)租賃合同2篇
- 二零二四年度信息技術(shù)外包服務(wù)合同標(biāo)的詳細(xì)說(shuō)明
- 售后工程師述職報(bào)告
- GB 19053-2024殯儀場(chǎng)所致病菌安全限值
- 綠化養(yǎng)護(hù)難點(diǎn)要點(diǎn)分析及技術(shù)措施
- 2024年河北省高考?xì)v史試卷(含答案解析)
- 車位款抵扣工程款合同
- 小學(xué)六年級(jí)數(shù)學(xué)奧數(shù)題100題附答案(完整版)
- 湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 英漢互譯單詞練習(xí)打印紙
- 2023湖北武漢華中科技大學(xué)招聘實(shí)驗(yàn)技術(shù)人員24人筆試參考題庫(kù)(共500題)答案詳解版
- 一氯二氟甲烷安全技術(shù)說(shuō)明書MSDS
- 母嬰護(hù)理員題庫(kù)
評(píng)論
0/150
提交評(píng)論