版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
PAGE北京理工大學(xué)珠海學(xué)院2008屆本科生畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)基于RFID的盲人導(dǎo)航系統(tǒng)手持終端設(shè)計與實現(xiàn)學(xué)院:計算機(jī)學(xué)院專業(yè):姓名:指導(dǎo)老師:計算機(jī)科學(xué)與技術(shù)學(xué)號:職稱:二○一一年五月Xx學(xué)院畢業(yè)設(shè)計誠信承諾書本人鄭重承諾:我所呈交的畢業(yè)設(shè)計《基于RFID的盲人導(dǎo)航系統(tǒng)手持終端設(shè)計與實現(xiàn)》是在指導(dǎo)教師的指導(dǎo)下,獨(dú)立開展研究取得的成果,文中引用他人的觀點(diǎn)和材料,均在文后按順序列出其參考文獻(xiàn),設(shè)計使用的數(shù)據(jù)真實可靠。承諾人簽名:日期:年月日Xx學(xué)院2011屆本科生畢業(yè)設(shè)計PAGE58基于RFID的盲人導(dǎo)航系統(tǒng)手持終端設(shè)計與實現(xiàn)摘要盲人出行問題一直困擾著盲人的一生,如何安全準(zhǔn)確地幫助盲人安全準(zhǔn)確地到達(dá)目的地?本系統(tǒng)目的在于提供一種基于RFID的手持式盲人導(dǎo)航系統(tǒng),旨在解決現(xiàn)有的盲人導(dǎo)航系統(tǒng)不能夠準(zhǔn)確、安全的為盲人導(dǎo)航的問題。利用物聯(lián)網(wǎng)平臺下的RFID技術(shù),將道路存儲在電子標(biāo)簽,再轉(zhuǎn)換成相應(yīng)的語音提示信息,從而實現(xiàn)為盲人提供精確,安全的導(dǎo)航,解決盲人的出行問題。本文論述了以PXA270為主控模塊、以RFID為核心技術(shù)、以物聯(lián)網(wǎng)為平臺的手持式盲人導(dǎo)航系統(tǒng)。該系統(tǒng)針對盲人出行不便而研發(fā)的一款協(xié)助盲人能自行方便到達(dá)目的地的綜合系統(tǒng)。該系統(tǒng)集RFID導(dǎo)航、盲人輸入法、智能路況識別、外部數(shù)據(jù)采集、語音提示、手機(jī)、無線傳輸、全球定位等功能于一體。本文主要論述了基于RFID的盲人導(dǎo)航系統(tǒng)手持終端設(shè)計與實現(xiàn),其主要包括在主控平臺上的盲人鍵盤的設(shè)計,語音提示,手機(jī)功能實現(xiàn)。整個系統(tǒng)包含多個處理器,在主控模塊的控制下并行高效的工作。軟件系統(tǒng)基于Linux操作系統(tǒng),采用多線程的編程模式,確保了系統(tǒng)的實時性和可靠性。關(guān)鍵詞:物聯(lián)網(wǎng)RFID盲人導(dǎo)航PXA270BlindnavigationsystembasedonRFIDhandsetdesignandimplementationABSTRACTTravelhasbeenplaguedbyblindblindlife,howtosafelyandaccuratelytohelpblindpeoplereachtheirdestinationssafelyandaccurately?ThesystemaimstoprovideahandheldRFID-basednavigationsystemfortheblind,blindtoresolvetheexistingnavigationsystemscannotaccuratelyandsafefortheblindnavigationproblems.ThingsplatformusingtheRFIDtechnology,theroadisstoredintheelectronictags,convertedtothecorrespondingvoicemessageinordertoachievefortheblindtoprovideaccurateandsafenavigation,tosolvetheblindtravelproblems.
ThisarticlediscussesthePXA270asthemaincontrolmoduletoRFIDasacoretechnologyplatformofthingsashand-heldnavigationsystemfortheblind.Thesystemisinconvenientfortheblinddevelopedforatriptohelptheblindtoitsowncomprehensivesystemforeasyaccesstothedestination.ThesystemcombinesRFIDnavigation,blindinput,intelligenttrafficidentification,externaldataacquisition,voiceprompts,phone,wirelesstransmission,globalpositioningandotherfunctions.
ThisarticlediscussestheblindnavigationsystembasedonRFIDhandsetdesignandimplementation,anditsmainhostplatforms,includingtheblindinthedesignofthekeyboard,voiceprompts,phonefunctionstoachieve.Thesystemcontainsmultipleprocessors,inparallelunderthecontrolofmaincontrolmoduleandefficientwork.SoftwaresystembasedonLinuxoperatingsystem,usingmulti-threadedprogrammingmodeltoensurethatthesystemofreal-timeandreliabilityKeywords:InternetofThingsRFIDBlindNavigationPXA270目錄TOC\o"1-3"\u摘要 IABSTRACT II目錄 III1引言 11.1項目來源 11.2開發(fā)意義 11.3需求分析 11.4國內(nèi)外的研究現(xiàn)狀 21.5可行性分析 21.5.1硬件平臺技術(shù)支持的可行性分析 21.5.2軟件開發(fā)技術(shù)的可行性分析 32功能描述及系統(tǒng)設(shè)計 52.1功能描述 52.1.1按鍵功能說明: 62.2系統(tǒng)設(shè)計 73開發(fā)環(huán)境以及硬件選型 93.1Linux的簡介 93.1.1Linux的定義 93.1.2對于普通用戶來說Linux的優(yōu)點(diǎn) 93.1.3對開發(fā)人員來說Linux的優(yōu)勢 103.2PXA270簡介 113.2.1UP-TECHPXA270-S 113.2.2PXA270-S開發(fā)平臺硬件資源 123.2.3PXA270-S開發(fā)平臺硬件架構(gòu),框圖如下: 143.3GSM模塊簡介 153.3.1TC35I/MC35I西門子短信模塊開發(fā)板M3主要技術(shù)指標(biāo): 153.3.2AT指令簡介 163.3.3AT常用指令介紹 163.4鍵盤模塊簡介 183.5GPS模塊簡介 194詳細(xì)設(shè)計 214.1硬件設(shè)計 214.2系統(tǒng)軟件設(shè)計 224.2.1Linux內(nèi)核裁剪 224.2.2linux驅(qū)動模塊的編譯與裁剪 244.2.3內(nèi)核的編譯與移植 244.2.4編譯內(nèi)核與燒錄內(nèi)核 274.2.5Linux下串行端口的程序設(shè)計 274.2.6Linux下的多線程應(yīng)用程序設(shè)計 314.2.7GSM模塊的設(shè)計與實現(xiàn) 324.2.8GPS模塊的設(shè)計與實現(xiàn) 334.2.8盲人鍵盤的設(shè)計與實現(xiàn) 354.2.9詳細(xì)設(shè)計小結(jié) 375系統(tǒng)測試 385.1測試目標(biāo) 385.2模塊測試(包擴(kuò)軟硬件模塊) 385.2.1GSM測試 385.2.2GPS測試 395.2.3mplayer解碼器測試 405.3系統(tǒng)集成測試指標(biāo) 405.4系統(tǒng)集成測試結(jié)果 406結(jié)論 43參考文獻(xiàn) 44附錄 45謝辭 561引言1.1項目來源中國有盲人800多萬,盲人產(chǎn)品的開發(fā)就成為衡量中國發(fā)展水平的一項指標(biāo)。導(dǎo)盲方面[1],日本利用帶有震動裝置的皮帶和全球衛(wèi)星定位系統(tǒng)開發(fā)出新的導(dǎo)航系統(tǒng)。德國研制出用話筒向微電腦輸入預(yù)定目標(biāo),電腦在電子地圖上找到當(dāng)前的位置、目標(biāo)和方便的步行路線,由語音合成裝置發(fā)出如何走的指令,順利到達(dá)目的地。此外還有盲人超聲波眼鏡,激光手杖和手提式超聲波雷達(dá)探路裝置等[2]。我國在這方面的研究尚處于起步階段。如何讓盲人與正常人一樣分享社會物質(zhì)文化的成果,享受信息時代的悠閑生活,像正常人一樣行走。本系統(tǒng)正是為了解決這一問題而設(shè)計的,為盲人用戶提供一個安全、方便、精確的出行導(dǎo)航方式,并充分考慮了系統(tǒng)可推廣性和后期升級維護(hù)的方便。1.2開發(fā)意義傳統(tǒng)的盲人導(dǎo)航裝置多為普通的手杖,盲人通過敲打地面及周圍的物體來判斷行走的方向,以及是否停下。這種手杖的弊端很多,它的主要缺點(diǎn)是不能發(fā)現(xiàn)較遠(yuǎn)的障礙物以及發(fā)現(xiàn)在盲人前方的懸空物體。而目前國內(nèi)生產(chǎn)的導(dǎo)盲系統(tǒng)也存在類的問題,如:帶揚(yáng)聲器的導(dǎo)航棍,優(yōu)點(diǎn)是晚上可發(fā)出光,提醒路人與司機(jī),缺點(diǎn)是易壞、太敏感;探知前方障礙物的盲人眼鏡,優(yōu)點(diǎn)是體積較小,缺點(diǎn)是測量范圍小。此外,國外研制的盲人導(dǎo)航系統(tǒng)價格昂貴,不適合普通大眾使用?;谝陨先秉c(diǎn),本文所提出的基于RFID手持式盲人導(dǎo)航系統(tǒng)很好的解決了以上問題。本系統(tǒng)結(jié)合了先進(jìn)的RFID射頻識別技術(shù),為盲人的出行全程精準(zhǔn)導(dǎo)航。不但能夠?qū)Ξ?dāng)前位置進(jìn)行定位,并在盲道上制定出一條RFID電子標(biāo)簽的路線,同時還具有對常見路況信息智能分析的功能,滿足盲人的出行需求,并且操作簡單,只要懂得盲文都能獨(dú)立的使用該系統(tǒng)的功能。反饋信息都是通過語音方式實現(xiàn),清晰易懂,使盲人在行進(jìn)的過程中也能收聽到關(guān)于位置和周圍環(huán)境情況的具體信息。為成千上萬的盲人出行帶來了方便。1.3需求分析隨著經(jīng)濟(jì)發(fā)展和社會文明程度的不斷提高,解決盲人日常出行困難的問題越來越受到人們的關(guān)注和重視。現(xiàn)有的導(dǎo)盲設(shè)備,從最簡單的盲杖到應(yīng)用了各種電子行走輔助技術(shù)的導(dǎo)盲設(shè)備…,尚無法提供全面和人性化的導(dǎo)航和定位信息,特別是當(dāng)盲人需要遠(yuǎn)距離出行或者身處陌生環(huán)境時,這一需求顯得更為迫切和重要。而隨著物聯(lián)網(wǎng)的發(fā)展,RFID技術(shù)的日益成熟,在建設(shè)盲道的同時增加RFID標(biāo)簽的投入已經(jīng)成為可能,而RFID標(biāo)簽以其耐用、持久、免維護(hù)著稱。同時,盲人也正享受這國家提供的各項福利制度,生活水平也在不斷的提高,大多數(shù)人的家庭已達(dá)到小康水平的條件,渴望有著更為方便、更安全的導(dǎo)盲產(chǎn)品。而構(gòu)建本系統(tǒng)的價格適中,使其能以較快的速度推廣到市場,為大部分人所接受。并且使用的是較為前沿的技術(shù),可以保證本系統(tǒng)在未來很長的一段時間內(nèi)不會被新技術(shù)所淘汰,能在市場推廣中占有較大優(yōu)勢。更重要的是,這樣的應(yīng)用可以在不同的環(huán)境下為盲人導(dǎo)航,解決眾多盲人出行的問題;也可以衍生為其他的商業(yè)應(yīng)用,比如為旅行者提供全世界各大城市的虛擬聲音導(dǎo)游;還可以極大的促進(jìn)我國的物聯(lián)網(wǎng)的發(fā)展。1.4國內(nèi)外的研究現(xiàn)狀在國外,類似的采用RFID技術(shù)做盲人導(dǎo)航的項目,任然處于實驗階段。作為世界主要經(jīng)濟(jì)體的歐盟資助了一項研究計劃,旨在為盲人開發(fā)基于RFID的道路指示,屬于SESAMONET計劃的一部分。目前一個Ispra的歐盟公民救援與防護(hù)中心(ISPC)組建的10人的專家組正在測試位于意大利北部的LavenoMombello的三條植入1260枚電子標(biāo)簽的人行道,并將其與SESAMONET網(wǎng)絡(luò)進(jìn)行連接。同時,于2009年8月由美國中央密歇根大學(xué)的學(xué)生研制出來RFID手杖。其工程助理教授兼項目負(fù)責(zé)人表示,這是首個研究RFID技術(shù)的戶外應(yīng)用。設(shè)計該系統(tǒng)的學(xué)生還組織了一試驗志愿團(tuán)隊,讓其攜帶設(shè)備在校園中行走。志愿者對RFID手杖非常滿意,尤其在導(dǎo)航方面非常有效。在學(xué)生團(tuán)隊中參與工作的成員表示,該RFID項目具有巨大的潛力,他相信這將為未來發(fā)展開發(fā)一條新的道路。若研發(fā)成功,將幫助視覺有障礙和聽覺有缺陷的殘疾人更安全地行走。但在國內(nèi),類似“RFID盲人導(dǎo)航系統(tǒng)”開發(fā)仍需要進(jìn)一步的努力?;A(chǔ)建設(shè)不完善,中距離RFID讀寫技術(shù)不成熟,盲道管理不夠規(guī)范、研究該系統(tǒng)的人員欠缺等等都是我們目前有待解決的主要問題[3]。1.5可行性分析1.5.1硬件平臺技術(shù)支持的可行性分析經(jīng)分析本項目所需的硬件清單如下:表1-1硬件清單1.ARM9以上性能CPU芯片,2.較大容量的存儲器3.RFID模塊4.超聲波模塊5.語言模塊6.盲人鍵盤模塊7.GSM模塊、GPS模塊8.Zigbee無線通訊模塊9.USB接口、串行接口10簡單文本顯示屏11.80C5112.供電根據(jù)上表,在UP-TECHPXA270-S硬件實驗平臺上,CPU能力當(dāng)然是毋庸置疑的,IntelXscale結(jié)構(gòu)芯片的PXA270在各方面都表現(xiàn)了很強(qiáng)悍的能力,在目前市場上來說也是一款很先進(jìn)的處理器芯片。PXA270處理器是Intel公司目前性能最為強(qiáng)勁的移動處理器,已經(jīng)成為高端移動設(shè)備中最受歡迎的處理器之一。PXA270最高主頻可達(dá)624MHz,它引入了X86架構(gòu)奔騰4系列上的多媒體技術(shù)——MMX技術(shù),能夠大大提升多媒體處理能力,用戶通過該技術(shù)可以在VGA上面播放高質(zhì)量的MPGE4視頻;同時加入了IntelSpeedStep動態(tài)電源管理技術(shù),在保證CPU性能的情況下,最大限度地降低移動設(shè)備功耗。UP-TECHPXA270-S在存儲系統(tǒng)方面也有著很高的配置,內(nèi)置了高性能價格比的NANDFLASH64M內(nèi)存,支持大容量的存儲。除此之外,有部分模塊在UP-TECHPXA270-S硬件實驗平臺上已經(jīng)具備。如語音模塊,用于提示相關(guān)信息;簡單文本顯示屏,用于顯示相應(yīng)的數(shù)據(jù)的,方便盲人向別人求助;USB接口和串行接口,用來擴(kuò)展其他額外的模塊。額外的硬件模塊,如80C51處理器,用來集成盲人手杖上的超聲波;RFID模塊,用來讀取盲道上的電子標(biāo)簽;超聲波模塊,用來識別常見的路況信息;Zigbee無線通訊模塊支持信號的發(fā)送與接收,用來傳輸盲杖到終端的數(shù)據(jù)信息;盲人鍵盤模塊,用于盲文的輸入;GSM模塊,用來實現(xiàn)手機(jī)的功能;GPS模塊,用來定位當(dāng)前的位置。通過以上分析,使用UP-TECHPXA270-S作為硬件平臺支持,添加一些額外的模塊可達(dá)到項目預(yù)期的測試結(jié)果。1.5.2軟件開發(fā)技術(shù)的可行性分析軟件開發(fā)方面,采用移植進(jìn)嵌入式linux的操作系統(tǒng)。嵌入式linux系統(tǒng)穩(wěn)定,功能強(qiáng)大,支持多種硬件平臺,簡單易用且開放源代碼,可廣泛用于各個領(lǐng)域領(lǐng)域,而Linux2.6的內(nèi)核版本也具備了實時性的性能。當(dāng)然應(yīng)用“基于RFID手持式盲人導(dǎo)航系統(tǒng)”這個項目來說就是再合適不過了。該linux操作系統(tǒng)采用linux2.6.9內(nèi)核,其他功能支持如下所示:驅(qū)動程序包含串口、NOR
Flash、AC’97、LCD、USB
HOST、USB
DEVICE、USBSERIAL等多種驅(qū)動,支持串口接口擴(kuò)展,支持串口轉(zhuǎn)USB,支持SQLite數(shù)據(jù)庫讀寫,支持Mplayer播放音頻等。linux操作系統(tǒng)在內(nèi)核的裁剪與編譯,制定出適合ARM體系的PXA270處理器的操作系統(tǒng)等這些方面的技術(shù)已十分成熟?!盎赗FID手持式盲人導(dǎo)航系統(tǒng)”所有的功能包括大量數(shù)據(jù)的實時處理,撥打電話,語音提示,當(dāng)前定位,接口數(shù)據(jù)讀寫,數(shù)據(jù)庫構(gòu)建等。而在linux環(huán)境下實現(xiàn)這些功能有很多相應(yīng)功能的開源軟件可以借鑒來,經(jīng)過有針對性地處理后使其適合本項目產(chǎn)品使用,在技術(shù)上是完全可以做到的。綜上所述,本開發(fā)項目具有可行性。2功能描述及系統(tǒng)設(shè)計2.1功能描述總述:基于RFID的盲人導(dǎo)航系統(tǒng)手持終端設(shè)計與實現(xiàn),遵循盲人產(chǎn)品設(shè)計原則:安全性,指導(dǎo)性,易操作性,科技性是本設(shè)計的重要元素,人性化,簡潔化是本設(shè)計的重要技術(shù)指標(biāo)。本系統(tǒng)是一套多功能的嵌入式電子產(chǎn)品,旨在解決現(xiàn)有的盲人導(dǎo)航系統(tǒng)不能夠準(zhǔn)確、安全的為盲人導(dǎo)航的問題。利用物聯(lián)網(wǎng)平臺下的RFID技術(shù),將道路存儲在電子標(biāo)簽,再轉(zhuǎn)換成相應(yīng)的語音提示信息,從而實現(xiàn)為盲人提供精確,安全的導(dǎo)航,解決盲人的出行問題。盲人導(dǎo)航系統(tǒng)手持終端主要用于盲人日常出行的使用,對設(shè)備的結(jié)構(gòu)也有一定的要求,本系統(tǒng)采用工作穩(wěn)定可靠、抗干擾能力強(qiáng)的嵌入式系統(tǒng)。嵌入式系統(tǒng)固化于存儲器中,其可靠性高、成本低、體積小、功耗低。嵌入式系統(tǒng)有著廣泛的應(yīng)用領(lǐng)域,在物聯(lián)網(wǎng)中應(yīng)用是其中一個重要的方面。將嵌入式設(shè)備作為導(dǎo)航應(yīng)用市政福利系統(tǒng),從而建立起全方位、實時準(zhǔn)確、高效的盲人全程導(dǎo)航系統(tǒng)。具體功能如下:當(dāng)盲人出行時,使用手杖讀取當(dāng)前標(biāo)簽,確定當(dāng)前地理位置。使用盲人拼音輸入要去的目的地。并確認(rèn)開始進(jìn)入導(dǎo)航。系統(tǒng)會根據(jù)輸入的信息查詢相關(guān)數(shù)據(jù)庫,生成一條最合理并且盲道上埋藏有RFID電子標(biāo)簽的RFID導(dǎo)航路徑。開始進(jìn)行RFID導(dǎo)航,并在盲人行進(jìn)的過程中,不斷的匹配讀取到的RFID標(biāo)簽,提供不同的提示,包括交叉路口拐彎、紅綠燈路口、標(biāo)志性建筑、目的地等提示。手持終端在日常中還可以撥打電話,接聽電話,發(fā)送短信,讀取短信的功能,配備一鍵撥打的功能,方便盲人能夠撥打電話尋求幫助配備全球定位系統(tǒng),其分辨率達(dá)到了5m,防止盲人外出走失。2.1.1按鍵功能說明:一.電話模式鎖鍵盤鎖鍵盤切換模式396#21548*07一鍵短信接電話撥號/一鍵撥號清除一位/掛機(jī)注:1.修改一鍵撥號,格式:按鍵號+電話號碼+** 如將1鍵設(shè)置為10086的快捷輸入:110086** 2.使用一鍵撥號,格式:按鍵號+撥號鍵 如撥打10086 輸入:1撥號二.導(dǎo)航模式鎖鍵盤鎖鍵盤切換模式清除一位確認(rèn)清除所有讀地址盲文輸入?yún)^(qū)2.2系統(tǒng)設(shè)計本系統(tǒng)主要設(shè)計手持終端部分:a).基于RFID手持式系統(tǒng)終端,由盲人鍵盤模塊,語音模塊,GSM模塊,以及PXA270主控平臺組成,接受來自盲人手杖信息。b).當(dāng)進(jìn)入導(dǎo)航模式時,手持終端會自動接收來自盲人手杖的發(fā)來的信息并進(jìn)行分析,將接收到的數(shù)據(jù)跟自動生成的路徑的數(shù)據(jù)進(jìn)行匹配,然后從語言模塊里面提取相應(yīng)的提示進(jìn)行播報。c).當(dāng)進(jìn)入電話模式時,手持終端會自動接收來自盲人鍵盤的發(fā)來的信息并進(jìn)行分析,將對應(yīng)的命令傳送給GSM模塊,分別可進(jìn)行撥打電話,接聽電話,發(fā)送短信,讀取短信。同時提取相應(yīng)的語音進(jìn)行提示。d).系統(tǒng)功能圖和站臺與手持終端通信圖分別如圖2-1、圖2-2所示基于RFID盲人導(dǎo)航手持終端基于RFID盲人導(dǎo)航手持終端全球定位語音提示鍵盤輸入手機(jī)功能盲人導(dǎo)航導(dǎo)航提示手機(jī)提示路況提示收發(fā)信息撥打電話接聽電話圖2-1系統(tǒng)功能框圖圖2-2手持終端通信圖3開發(fā)環(huán)境以及硬件選型3.1Linux的簡介3.1.1Linux的定義Linux的官方定義:“Linux是一種UNIX操作系統(tǒng)的克隆,它由LinusTorvalds以及網(wǎng)絡(luò)上組織松散的黑客隊伍一起從零開始編寫而成。Linux的目標(biāo)是保持和POSIX的兼容?!逼鋵崌?yán)格的講,Linux并不是一個操作系統(tǒng),它只是操作系統(tǒng)的一個內(nèi)核(Kernel),Linux的全稱應(yīng)當(dāng)是GNU/Linux,這才算是真正意義上的Linux系統(tǒng)。全面的說法,Linux是Unix克隆(Unixclone)或Unix風(fēng)格(Unixalike)的操作系統(tǒng)(OS),在原代碼級上兼容絕大部分Unix標(biāo)準(zhǔn)(指的是IEEEPOSIX,SystemV,BSD),是一個支持多用戶,多進(jìn)程,多線程,實時性較好的功能強(qiáng)大而穩(wěn)定的操作系統(tǒng)。它可以運(yùn)行在多種硬件平臺上,可以說Linux是目前運(yùn)行硬件平臺最多的操作系統(tǒng)。3.1.2對于普通用戶來說Linux的優(yōu)點(diǎn)a)極高的穩(wěn)定性回顧Linux的歷史我們會發(fā)現(xiàn),Linux操作系統(tǒng)的架構(gòu)完全沿襲了UNIX的系統(tǒng)架構(gòu),所以先天就具有成熟穩(wěn)定的特點(diǎn),在這方面不是另起爐灶的Windows系列操作系統(tǒng)可以比擬的。大家都知道,Windows系統(tǒng)最為人垢病的缺陷之一就是系統(tǒng)的穩(wěn)定性差,藍(lán)屏死機(jī)相信每個Windows用戶都親身體驗過。雖然1999年微軟不惜花費(fèi)巨資打造了Win2000這個劃時代的產(chǎn)品,系統(tǒng)的穩(wěn)定性得到了加強(qiáng),后續(xù)發(fā)布的xp和2003更進(jìn)一步增強(qiáng)了穩(wěn)定性,但是藍(lán)屏死機(jī)的問題只是有所緩解而沒能徹底的根治。反觀Linux系統(tǒng),早在上個世紀(jì)九十年代,美國Motorola公司在選擇電信級的操作系統(tǒng)的時候就選擇了Linux系統(tǒng),它的運(yùn)行可靠性要求達(dá)到99.999%。這個可靠性所代表的含義是每年的計劃外停機(jī)時間累計不得超過5分鐘,由此看見Linux系統(tǒng)所具有的穩(wěn)定性不是Win系統(tǒng)可以望其項背的。b)先天的安全性可以說一個操作系統(tǒng)的架構(gòu)就已經(jīng)預(yù)先決定了它的安全性。Linux系統(tǒng)在設(shè)計的時候就是針對多用戶環(huán)境的,所以對系統(tǒng)文件,用戶文件都做了明確的區(qū)分,每個文件都有不同的用戶屬性。作為一個普通用戶通常只能讀寫自己的文件,而對一般的系統(tǒng)文件只能讀取而不能改動,一些敏感的系統(tǒng)文件甚至連讀取都是被禁止的。這種設(shè)計在根本上保證了系統(tǒng)的安全,即使一個用戶文件出現(xiàn)了問題,也不會泱及整個系統(tǒng)。反觀Windows系統(tǒng),在Win2000之前的時代,用戶與用戶之間是沒有這種差別的,幾乎所有的系統(tǒng)用戶都有管理員的權(quán)限,可以任意改動系統(tǒng)文件。即使后來微軟意識到了這個問題,在后續(xù)的系統(tǒng)中區(qū)分了管理員和普通用戶這兩種用戶,但是在權(quán)限的問題上他還是沒有很好的解決這個問題,管理員能做的,普通用戶還是基本都可以做,比如安裝軟件,修改系統(tǒng)設(shè)置,刪除用戶文件。這從而也說明了,為什么一旦Windows的一個普通用戶中了病毒或者木馬,通常會危及整個系統(tǒng)的安全,而在Linux世界這樣的情況幾乎沒有出現(xiàn)過的原因。c)軟件安裝的便利性對于計算機(jī)初級用戶來說,軟件安裝是個很大的問題。在Windows平臺下,如果你不知道軟件應(yīng)該安裝通常只要一直用鼠標(biāo)點(diǎn)“下一步”就可以完成安裝。在Linux平臺下,軟件安裝的便利性方面曾一度落后于Win,但是apt的出現(xiàn)使得這種局面得到了徹底的改觀,用戶只要告訴安裝程序自己現(xiàn)在需要安裝什么軟件,安裝程序就會自動去下載這個程序,然后安裝,最后等待用戶開始運(yùn)行它。從這個意義上將,Linux已經(jīng)超越了Win軟件的安裝方式,進(jìn)一步降低了用戶的參與程度,方便了用戶。3.1.3對開發(fā)人員來說Linux的優(yōu)勢a)系統(tǒng)所有組件的源代碼都是自由的首先需要澄清的就是自由的含義。自由軟件所指的自由不是免費(fèi)使用,而是指程序的源代碼是開放的,任何人都可以讀,可以修改,唯一的限制就是,修改后的程序必須連同源代碼也一起發(fā)布。對于普通用戶而言這一點(diǎn)也許沒什么用處,但是對于開發(fā)人員來說,你們可以通過讀取大量的經(jīng)典程序的源代碼,迅速提高自己的編碼水平,在需要的時候可以修改源代碼來適應(yīng)自己的需要,當(dāng)你主持一個項目的開發(fā)時,你可以通過吸收別人改進(jìn)過的代碼來不斷提高這個項目的質(zhì)量,當(dāng)你的程序中存在bug的時候,會被讀取代碼的人迅速發(fā)現(xiàn)并提供補(bǔ)丁程序,使你的程序越來越安全。當(dāng)你進(jìn)入Linux世界的時候你會發(fā)現(xiàn),這里就是程序員的天堂,所有的一切你都可以主宰。而所有這些在Linux平臺上都是再正常不過的事,但是對于Windows用戶來說這些都是不可能的,源代碼就是Windows的生命,任何未經(jīng)授權(quán)的人想讀到它都是不可能的。b)有效保護(hù)學(xué)習(xí)成果前面我們講到Linux的系統(tǒng)架構(gòu)源于UNIX,這個架構(gòu)從1969年誕生至今一直沿用,在可以預(yù)見的未來它仍然會使用下去。同時主力的開發(fā)語言一直是C語言,編輯器仍然是歷史悠久的vi。雖然現(xiàn)在你可以使用任何一種語言來為Linux系統(tǒng)貢獻(xiàn)代碼,但是它們的作用都是輔助性的,C語言作為這個系統(tǒng)的核心語言的地位沒有發(fā)生變化。而Windows平臺則遠(yuǎn)遠(yuǎn)沒有這么樂觀。編程語言從古老的BASIC到后來的VB,C++到現(xiàn)在的C#,幾年就一換,開發(fā)工具更是令人眼花繚亂,讓人無從選擇,無論你選擇了哪種語言哪種開發(fā)工具,兩三年后你都不得不學(xué)習(xí)新工具的使用,新平臺的特點(diǎn),以跟上微軟變幻莫測的腳步。只有過來人才能體會到做Windows平臺開發(fā)的艱辛和無奈。c)從其擴(kuò)展性來看uClinux是一種Linux的變型版本,其主要針對ARM7TDMI,DragonBall系列的68EZ328,68VZ328,ColdFire系列的5272,5307等大量不帶MMU(內(nèi)存管理單元)功能模塊的芯片。這種芯片面向低端市場,價格便宜功能靈活。但是傳統(tǒng)的Linux內(nèi)核采用虛擬內(nèi)存管理技術(shù),這種設(shè)計運(yùn)行在沒有MMU的芯片上時,這部分關(guān)于內(nèi)存管理的代碼就變成冗余代碼甚至對系統(tǒng)整體性能產(chǎn)生負(fù)面影響。uClinux正是為了解決這一問題而開發(fā)的。其名稱中“u”(發(fā)音miu)就是micro,小的意思。而“C”則是Control,控制的意思。即uClinux是為微控制領(lǐng)域量身定做的Linux版本。uClinux的設(shè)計就是通過對標(biāo)準(zhǔn)Linux內(nèi)核裁減,去除虛擬內(nèi)存管理部分的代碼,并對內(nèi)存分配進(jìn)行優(yōu)化,從而達(dá)到提高系統(tǒng)運(yùn)行效率的目的。它雖然體積小但依然保存了Linux內(nèi)核的大多數(shù)優(yōu)點(diǎn)。其主要特點(diǎn)有:1)支持通用LinuxAPI2)內(nèi)核體積可以小于512K3)具有完整的TCP/IP協(xié)議棧4)支持其它大量的網(wǎng)絡(luò)協(xié)議5)支持各種文件系統(tǒng)(NFS,ext2,romfs,jffs,FAT16/32以及MS-DOS)3.2PXA270簡介3.2.1UP-TECHPXA270-S本系統(tǒng)硬件平臺是由北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-TECHPXA270-S實驗平臺[6]。UP-TECHPXA270-S是基于IntelXSCALE架構(gòu)最新的PXA270嵌入式微處理器。PXA270最高主頻可達(dá)624MHz,加入了WirelessMMX技術(shù),大大提升了多媒體處理能力;同時PXA270還加入了IntelSpeedStep動態(tài)電源管理技術(shù),在保證CPU性能的情況下,最大限度地降低移動設(shè)備功耗。PXA270可以廣泛應(yīng)用于PDA、智能手機(jī)、PMP產(chǎn)品中。該平臺主要是面向計算機(jī)、軟件專業(yè)的高端平臺,微處理器主頻穩(wěn)定運(yùn)行在520MHz,采用13×13mmVFBGA封裝,內(nèi)部集成iwmmx指令,加速處理器對多媒體數(shù)據(jù)的處理速度??蛇\(yùn)行Linux2.4.x和Linux2.6.x內(nèi)核,支持QT/E、miniGUI等嵌入式圖形界面,提供完整的驅(qū)動和應(yīng)用程序。既適合作為計算機(jī)、軟件等專業(yè)開設(shè)嵌入式軟件課程的教學(xué)平臺,又適合廣大從事PMP、PDA、智能手機(jī)的廠商和科研單位作為參考設(shè)計平臺。圖3-1UP-TECHPXA270-S實驗平臺實物圖3.2.2PXA270-S開發(fā)平臺硬件資源PXA270Core小板:PXA270XScaleCPU、64MSDRAM、64MNANDFLASH,16MNorFLASH。通過256Pin2mm間距直插針與主板連接。Double100MEtherNet網(wǎng)卡:由兩片DM9000構(gòu)成的雙網(wǎng)卡,HOST/1DEVICEUSB接口:PXA270的主USB口擴(kuò)展為4個,由AT43301構(gòu)成USBHUB,其中電源管理用MIC2505。USB從口保持處理器本身的1個。UART/IrDA/RS485:2個RS232串口。1個RS485串口,1個IrDA收發(fā)器,均從處理器的ICPUART引出,由FPGA內(nèi)部邏輯切換。168PinEXPORT:提供一個168Pin擴(kuò)展卡插槽,引出所有總線信號和未占用資源。LCD顯示屏:采用8寸18bit真彩屏,同時預(yù)留一個24bitLCD接口。TouchScr:通過UCB1400芯片和AC97總線實現(xiàn)。AC97AUDIO:采用UCB1400CODEC和LM4880功放芯片,具有放音、錄音等功能。PS2接口:通過FPGA實現(xiàn)PS2接口邏輯。兩個PS2可接PC鍵盤和鼠標(biāo)。板載17鍵小鍵盤:從處理器鍵盤接口擴(kuò)充。電源、RESET、RTC、JTAG等必須資源。電源電路具有專門邏輯,可以實現(xiàn)軟件關(guān)機(jī)功能。PXA270-S開發(fā)平臺需要DC12V供電。ARM7輔助處理器:平臺上配置LPC2119ARM7芯片,配合擴(kuò)展板可以完成市場上LPC2119開發(fā)板的大部分功能。LPC2119通過SPI和IIC總線與PXA270通信。IDE/CF卡插座:擴(kuò)展有筆記本硬盤和IDE模式的CF卡接口電路。PCMCIA/CF卡:由CPU直接擴(kuò)展以及FPGA實現(xiàn)PCMCIA邏輯。具有16位PCMCIA接口和PC-CARD模式的CF卡。MMC卡插座:處理器直接擴(kuò)展,支持MMC卡和SD卡讀寫。AD電位器:由LPC2119擴(kuò)展出2路AD采集。CANBUS:設(shè)置2個CAN口,由LPC2119擴(kuò)展和TJA1050芯片構(gòu)成。VGA接口:可以接駁VGA顯示器。USB2.0接口:由ISP1760擴(kuò)展,提供2個USB2.0HOST接口,1個USB2.0OTG/Device接口。MIC2526作為電源控制器件。IEEE1394總線接口:由TSB43AA82PGE擴(kuò)展出2個1394接口(FireWire火線接口)??梢蕴峁┡涮椎腉PRS、GPS、FPGA、TV卡、攝像頭、LPC2119開發(fā)板等擴(kuò)展板。3.2.3PXA270-S開發(fā)平臺硬件架構(gòu),框圖如下:圖3-2PXA270硬件框架圖3.3GSM模塊簡介3.3.1TC35I/MC35I西門子短信模塊開發(fā)板M3主要技術(shù)指標(biāo):TC35I/MC35I短信模塊中,電源供給十分重要,直接關(guān)系到收發(fā)短信的穩(wěn)定程度,一般電源可能導(dǎo)致不斷斷線、發(fā)送短信失敗等問題,非常惱人。此開發(fā)板能提供4V穩(wěn)定電壓,雜波小干擾小穩(wěn)定性好的特點(diǎn),比一般市面上的開發(fā)板的電源部分都穩(wěn)定可靠,能在模塊上電10-15秒后便連上網(wǎng)絡(luò),方便快捷。IGT使能信號是開啟短信模塊的必須信號,米豆開發(fā)板能自動提供一路IGT使能信號,使得在上電后不需要連接單片機(jī)便能自動登錄網(wǎng)絡(luò),簡化了連接電腦的流程。該開發(fā)板能在單片機(jī)和電腦的任意切換控制,解決了單片機(jī)和電腦無法兩面顧及的缺點(diǎn),性價比大大提高。不管是臺式機(jī),筆記本,各類單片機(jī)都能控制。GSM模塊實物圖圖3-3GSM模塊實物圖3.3.2AT指令簡介AT即AttentionAT命令集是從TETerminalEquipment或DTEDataTerminalEquipment向TATerminalAdapter或DCEDataCircuitTerminatingEquipment發(fā)送的通過TATE發(fā)送AT命令來控制MSMobileStation的功能與GSM網(wǎng)絡(luò)業(yè)務(wù)進(jìn)行交互用戶可以通過AT命令進(jìn)行呼叫短信電話本數(shù)據(jù)業(yè)務(wù)補(bǔ)充業(yè)務(wù)傳真等方面的控制3.3.3AT常用指令介紹ATD撥號命令行格式ATD<Numb>[I/i][G/g][;]ATD><PhbStr>[I/i][G/g][;]ATD>mem<n>[I/i][G/g][;]ATD><PhbIndex>[I/i][G/g][;]ATD<GSMsequence>ATD命令用于建立會話數(shù)據(jù)業(yè)務(wù)或傳真業(yè)務(wù)也可以控制補(bǔ)充業(yè)務(wù)對于數(shù)據(jù)或傳真業(yè)務(wù)用戶向模塊發(fā)送如下ASCII字符在此命令之前用AT+CBST命令選擇載波類型:ATD<nb><nb>為被叫號碼對于語音電話用戶向模塊發(fā)送如下ASCII字符在此命令之前用AT+CBST命令選擇載波類型或使用缺省值A(chǔ)TD<nb><nb>為被叫號碼注意對于國際號碼號碼前需加+如ATD+33146290800對ATD命令的響應(yīng)如下表所示詳細(xì)結(jié)果代碼數(shù)字化結(jié)果代碼說明OK0呼叫成功,僅對語音呼叫CONNECT<speed>3.14.15呼叫成功,對數(shù)據(jù)電話<speed>采用塊協(xié)商后的值BUSY7被叫方忙NOANSWER8固定連接時間到后未檢測到掛起信號NOCARRIER3呼叫建立失敗或遠(yuǎn)端用戶已釋放從電話本存儲在SIM卡上直接撥號采用以下的命令行格式:ATD><index>呼叫存儲在電話本位置<index>處的號碼ATD>mem<index>mem是電話本存儲區(qū)由AT+CPBS來選擇在當(dāng)前有一個電話的情況下如果要發(fā)起對外的呼叫應(yīng)先將當(dāng)前的電話掛起再建立連接命令A(yù)TD*#21#查詢呼叫轉(zhuǎn)移狀態(tài)響應(yīng)+CCFC:0,7沒有呼叫轉(zhuǎn)移命令A(yù)TD**61*+33146290800**25#登記無應(yīng)答呼叫轉(zhuǎn)移,無應(yīng)答時間定為25秒響應(yīng)OK命令已執(zhí)行命令A(yù)TD*2#呼叫序列錯誤響應(yīng)+CMEERROR3ATH呼叫掛起用戶使用ATH(或ATH0)來切斷與遠(yuǎn)端用戶的連接在有多個電話的情況下所有的電話都釋放包括正在通話掛起和等待的電話ATA呼叫應(yīng)答當(dāng)命令收到呼叫來電設(shè)置RingInd信號并向用戶發(fā)送RING然后等待用戶應(yīng)答呼叫響應(yīng)RING有來電命令A(yù)TA應(yīng)答此來電響應(yīng)OK接受呼叫命令TAH掛斷電話響應(yīng)NOCARRIER電話已切斷AT+CMGR讀取短消息命令格式AT+CMGR=<index>采用TEXT方式的響應(yīng)+CMGR:<stat>,<oa>,[<alpha>,]<scts>[,<tooa>,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<data>(對于SMS-SUBMIT)對于SMS-DELIVER+CMGR:<stat>,<da>,[<alpha>,][,<toda>,<fo>,<pid>,<dcs>,[<vp>],<sca>,<tosca>,<length>]<data>對于SMS-SUBMIT采用PDU方式的響應(yīng)+CMGR:<stat>,[<alpha>],<length><pdu>命令A(yù)T+CMGR=1讀消息響應(yīng)+CMGR:“RECUNREAD”,”0146290800”,”98/10/01,18:22:11+00ABCdefGhIOKTEXT方式AT+CMGS發(fā)送短消息采用TEXT方式的命令格式AT+CMGS=<da>[,<toda>]textisentered按ctrl-Z發(fā)送出去/按ESC取消采用PDU方式的命令格式AT+CMGS=<length>PDUisentered按ctrl-Z發(fā)送出去/按ESC取消PDU發(fā)送只能輸入十六進(jìn)制的字符0-9A-F命令A(yù)T+CMGS=”+33146290800”用TEXT方式發(fā)送消息響應(yīng)+CMGS:<mr>OK發(fā)送成功命令A(yù)T+CMGS=<length><pdu><ctrl-Z>用PDU方式發(fā)送消息響應(yīng)+CMGS:<mr>OK發(fā)送成功返回給用戶的消息參考值<mr>由模塊分配,這個值從0開始,每發(fā)送一次消息遞增1(不論是否發(fā)送成功),在0-255之間循環(huán)。3.4鍵盤模塊簡介AT89C51是一種低功耗/低電壓,高性能的8位單片機(jī),片中帶有一個4K字節(jié)的Flash可編程可擦出制度存儲器(PEROM),它采用了CMOS工藝和ATMEL公司的高密度非易失性存儲器(NURAM)技術(shù),而且其輸出引腳和指令系統(tǒng)都與MSC-51兼容,片內(nèi)的Flash存儲器允許在系統(tǒng)內(nèi)可改編程序或用常規(guī)的非易失行存儲器編程器來編程,因此,AT89C51是一種功能強(qiáng),靈活性高而且價格合理的單片機(jī)??煞奖愕膽?yīng)用在各個控制領(lǐng)域。通過89C51單片機(jī),集成了18個按鍵。其中12個為具體數(shù)據(jù)(如盲文、電話號碼)的輸入,其余的均為功能按鍵。其實物如圖3-4所示圖3-4鍵盤模塊實物圖3.5GPS模塊簡介全新SIRF第三代高靈敏度引線式GPS接收模塊,其實物如圖3-5所示。圖3-5GPS模塊實物圖模塊特點(diǎn):使用SiRF第三代低耗電量高性能芯片,性能大大提高。20個通道,確保最高的接收靈敏度內(nèi)部有可充電電池,可以保存星歷數(shù)據(jù),便于快速定位采用接插件引線式輸出,非常便于產(chǎn)品開發(fā)時制作樣機(jī)。標(biāo)準(zhǔn)的MMCX天線接口,便于連接GPS天線。標(biāo)準(zhǔn)NMEA0183信號輸出,便于后續(xù)電路使用性能參數(shù):工作電壓:3.5~5.5V直流工作電流:70毫安體積大?。?5.4x25.4x7毫米模塊重量:7克數(shù)據(jù)線接口:接插件,排線輸出接收靈敏度:-159dBmGPS天線接口:MMCX接口串口數(shù)據(jù)格式:TTL電平數(shù)據(jù)輸出,每秒一次GPS全數(shù)據(jù)。串口通訊速率:4800通訊波特率斷電數(shù)據(jù)記憶時間:大于七天使用方法:我們使用GPS模塊時其實非常簡單,一般只用到三根輸出線,第一腳紅線接3.5~5.5V的直流正電源,第五腳黑線是電源地,第二腳黃線是GPS的輸出線,它是TTL電平的串口信號,高電平大于2.4V,低電平小于0.4V,輸出驅(qū)動能力為2毫安,一般可以直接和單片機(jī)接口,如果希望用電腦的串口調(diào)試助手軟件調(diào)試時,必須加MAX232模塊組成的電平轉(zhuǎn)換電路,當(dāng)然也可以用我們提供的采用PL2303的USB轉(zhuǎn)串口模塊,模塊的第六腳綠線是秒信號輸出,每秒都會輸出一個10毫秒寬度的0.2V左右的脈沖信號,一般用于授時用途。模塊的RXA和RXB端口客戶一般不用不需要考慮它。GPS模塊默認(rèn)每秒輸出一次TTL的NMEA-0183信號。例如:$GPRMC,040936.626,A,3148.4753,N,12138.6459,E,013.6,180.54,100404,,*1APS這條信息中包含了非常精確的年/月/日/時/分/秒/毫秒,和當(dāng)前經(jīng)緯度、運(yùn)動速度、運(yùn)動方向等數(shù)據(jù)。其引腳備注如表3-1所示表3-1GPS模塊引腳備注4詳細(xì)設(shè)計4.1硬件設(shè)計系統(tǒng)硬件設(shè)計:手持終端部分包括主控模塊、單片機(jī)、盲人鍵盤輸入模塊、語音提示模塊和無線傳輸模塊(接收)。其中單片機(jī)、語音提示模塊和無線傳輸模塊均連接至主控模塊,盲人鍵盤輸入模塊連接至單片機(jī)。系統(tǒng)主控模塊采用北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-TECHPXA270-S作為主控平臺,平臺基于IntelXSCALE架構(gòu),微處理器主頻穩(wěn)定運(yùn)行于520MHz,內(nèi)部集成iwmmx指令,使多媒體數(shù)據(jù)的處理速度加快,同時平臺集成音頻處理模塊,可用于導(dǎo)航時語音提示的音頻處理,語音提示主要用于導(dǎo)航提示、撥打電話、來電提示和路況狀況,處理各種信息;GSM模塊,用于實現(xiàn)手機(jī)功能;GPS模塊,用于對當(dāng)前位置進(jìn)行定位,當(dāng)盲人不慎走失時能通過該功能向親人提出求助,為親人提供大概的位置,方便尋找,其分辨率約為5m;盲人鍵盤模塊,分為固定鍵盤和紅外無線鍵盤兩部分,用于盲文的輸入和電話功能按鍵,盲人鍵盤共設(shè)置18個按鍵,通過功能切換按鍵切換盲人輸入模式和電話撥打模式,系統(tǒng)采用我國國家標(biāo)準(zhǔn)規(guī)定的現(xiàn)行盲文輸入法,能實現(xiàn)盲文的輸入,共使用12個按鍵實現(xiàn)盲文輸入。手杖信號手杖信號圖4-1系統(tǒng)硬件框架圖4.2系統(tǒng)軟件設(shè)計4.2.1Linux內(nèi)核裁剪Linux內(nèi)核的裁剪與編譯看上去是個挺簡單的過程.只是對配置菜單的簡單選擇.但是內(nèi)核配置菜單本身結(jié)構(gòu)龐大,內(nèi)容復(fù)雜.具體如何選擇卻難住了不少人.因此熟悉與了解該菜單的各項具體含義就顯得比較重要[7].運(yùn)行makexconfig:在2.4.X以及以前版本中xconfig菜單是基于TCL/TK的圖形庫的。所有內(nèi)核配置菜單都是通過Config.in經(jīng)由不同腳本解釋器產(chǎn)生.config.而目前剛剛推出的2.6.X內(nèi)核用QT圖形庫.由KConfig經(jīng)由腳本解釋器產(chǎn)生.2.6.X版本xconfig配置菜單分別如下圖圖4-2所示:圖4-22.6.X版本xconfig配置菜單在選擇相應(yīng)的配置時,有三種選擇方式,它們分別代表的含義如下:Y--將該功能編譯進(jìn)內(nèi)核N--不將該功能編譯進(jìn)內(nèi)核M--將該功能編譯成可以在需要時動態(tài)插入到內(nèi)核中的模塊(我這里選擇將驅(qū)動編譯成模塊)在本項目中我們需要的組件為promptfordevelopmentand/orincompletecode/drivers該選項是對那些還在測試階段的代碼,驅(qū)動模塊等的支持.一般應(yīng)該選這個選項,除非您只是想使用LINUX中已經(jīng)完全穩(wěn)定的東西.但這樣有時對系統(tǒng)性能影響挺大.loadablemodulesupport動態(tài)加載模塊支持選項,其子項有:enablemodulesupport支持模塊加載功能,應(yīng)該選上.kernelmoduleloader如果您啟用這個選項,您可以通過kerneld程序的幫助在需要的時候自動載入或卸載那些可載入式的模塊。我們一般會選上.Powermanager電源管理,給X86編譯內(nèi)核時較有用可以選上,尤其是筆記本.給ARM編內(nèi)核時不可不選.unixdomainsocket對基本UNIXsocket的支持NFSfilesystem網(wǎng)絡(luò)文件系統(tǒng).NFSfilesystemsupport對網(wǎng)絡(luò)文件系統(tǒng)的支持.NFS通過SLIP,PLIP,PPP或以太網(wǎng)進(jìn)行網(wǎng)絡(luò)文件管理.它是比較重要的.NFSserversupport這項可以把您的Linux配置為NFSservernon-standarserialportsupport非標(biāo)準(zhǔn)串口設(shè)備的支持.如果您的平臺上有一些非標(biāo)準(zhǔn)串口設(shè)備需要支持,就選上它.Serialdrivers串口設(shè)置,一般選上自己開發(fā)平臺相關(guān)的串口就行.在UP-TECHPXA270-S上選pxa270serialportsupport和supportforconsoleonpxa270serialportUSBsupportUSB設(shè)備的支持.如果有相關(guān)設(shè)備就選上.soundcardsupport關(guān)于聲卡的支持,根據(jù)您自己的情況來配置。4.2.2linux驅(qū)動模塊的編譯與裁剪A)Linux內(nèi)核是一個龐大的工程,做為驅(qū)動開發(fā)工程師又怎么入手呢,是不是我們每次開發(fā)一個模塊程序都要重新編譯內(nèi)核呢?如果是這樣,那將是一件比較頭痛的事情,還好,聰明的Linux具有一項比較智能編譯選項,可以將我們開發(fā)的驅(qū)動模塊做為一個模塊,單獨(dú)編譯和單獨(dú)加載,卸載。那我們下面來看看Linux內(nèi)核模塊結(jié)構(gòu)。模塊加載函數(shù):(必須)module_init(initialization_funciton)模塊卸載函數(shù):(必須)module_exit(cleanup_function)模塊參數(shù):module_param(參數(shù)名,參數(shù)類型,參數(shù)讀/寫權(quán)限)導(dǎo)出符號(建議有)模塊聲明B)驅(qū)動模塊的編譯開發(fā)好的模塊程序可以和內(nèi)核一起編譯,也就是將模塊編譯進(jìn)內(nèi)核,也可以將模塊單獨(dú)編譯成一個獨(dú)立的模塊。為了開發(fā)的方便性,要把驅(qū)動程序編譯成模塊,怎么編譯呢?編譯成什么格式呢?在Linux中都是借助頂級目錄的Makefile來編譯寫的驅(qū)動程序,在本系統(tǒng)中,我選擇從內(nèi)核中將驅(qū)動模塊化,在linux下直接執(zhí)行make就可以在在drivers/目錄下生成驅(qū)動模塊(usbserial.ko,pl2303.ko,ftdi_sio.ko)。生成驅(qū)動模塊后使用insmodxxx.ko就可以插入到內(nèi)核中運(yùn)行了,用lsmod可以看到你插入到內(nèi)核中的模塊,也可以從系統(tǒng)中用命令rmmodxxx把模塊卸載掉;如果把編譯出來的驅(qū)動模塊拷貝到/lib/modules/~/kernel/drivers/usb/下,然后depmod一下,那么你在插入USB設(shè)備的時候,系統(tǒng)就會自動為你加載驅(qū)動模塊的;當(dāng)然這個得有hotplug的支持;加載驅(qū)動模塊成功后就會在/dev/下生成設(shè)備文件了,如果用命令cat/proc/bus/usb/devices,我們可以看到驅(qū)動程序已經(jīng)綁定到接口上了:4.2.3內(nèi)核的編譯與移植內(nèi)核的編譯:交叉編譯環(huán)境的建立最重要的就是要有一個交叉編譯器。所謂的交叉編譯就是:利用運(yùn)行在某機(jī)器上的編譯器編譯某個源程序生成在另一臺機(jī)器上運(yùn)行的目標(biāo)代碼的過程。編譯器的生成依賴于相應(yīng)的函數(shù)庫,而這些函數(shù)庫又得依靠編譯器來編譯,所以這里有個“蛋和雞”的關(guān)系,所以最初第一的版本的編譯器肯定得用機(jī)器碼去生成,現(xiàn)在的編譯器就不必了。這里我主要用到的編譯器是rm-linux-gcc,它是gcc的arm改版。gcc是個功能強(qiáng)大的c語言編譯工具,其年齡比Linux還長。無論編譯器的功能有多么強(qiáng)大,但它的實質(zhì)都是一樣的,都是把某種以數(shù)字和符號為內(nèi)容的高級編程語言轉(zhuǎn)換成機(jī)器語言指令的集合。編譯工具的基本結(jié)構(gòu)如下圖4-3所示:圖4-3編譯工具的基本結(jié)構(gòu)編譯器通常用機(jī)器語言或匯編語言編寫而成,當(dāng)然也可以用其它一些高級語言編寫。編譯過程中,編譯器把源程序的各類信息和編譯各階段的中間信息保存在不同的符號表中,表格管理程序負(fù)責(zé)構(gòu)造,查找和更新這些表格。錯誤處理程序主要功能是處理各個階段中出現(xiàn)的錯誤。編譯過程中,僅有一個編譯器是不行的,還必需和其它的一些輔助工具聯(lián)合,才能工作。這些輔助編譯工具主要有:1)解釋程序(Interpreter):它本身與編譯器類似也是一種語言翻譯工具,它直接執(zhí)行源程序,尤其是一些腳本語言程序,其有點(diǎn)是簡單,好移植,但執(zhí)行速度與編譯好的目標(biāo)代碼相比就要慢許多。2)匯編器(Assembler):它是用于特定計算機(jī)上的匯編語言翻譯程序。3)連接器(Linker):其作用是把在不同的目標(biāo)文件中編譯或匯編的代碼收集到一個可直接執(zhí)行的文件中。同時它也把目標(biāo)程序和標(biāo)準(zhǔn)庫函數(shù)的代碼相連。4)裝載器(Loader):編譯器,匯編器及連接器所生成的代碼經(jīng)常還不能直接執(zhí)行。它們的主要存儲器訪問可以在存儲器的任何位置,只是在邏輯上相互之間存在一個固定的關(guān)系,最終位置的確定和某個起始位置相關(guān)。通常這樣的代碼是可復(fù)位位的。裝載器可處理所有與指定的基地址或起始地址相關(guān)的可復(fù)位位的地址。這樣使得代碼的編譯更加靈活。5)預(yù)處理器:它是在編譯開始時由編譯器調(diào)用,專門負(fù)責(zé)刪除注釋,包含其它文件以及執(zhí)行宏替換的。6)調(diào)試器:調(diào)試器用于對目標(biāo)代碼的調(diào)試,從而達(dá)到排除代碼中存在的錯誤。在本系統(tǒng)中,我們采用GCC交叉編譯,GCC在進(jìn)行代碼編譯時,為了保證編譯過程與具體計算機(jī)硬件平臺的無關(guān)性,它使用RTL(RegisterTransferLanguage)寄存器傳遞語言對目標(biāo)平臺的指令進(jìn)行描述。GCC編譯過程也是比較復(fù)雜的,其基本流程如圖4-4所示:圖4-4GCC編譯過程4.2.4編譯內(nèi)核與燒錄內(nèi)核編譯內(nèi)核進(jìn)入linux內(nèi)核目錄%tarjxvfup-linux-2.6.9-release.tar.bz2%ln–slinux-2.6.9linux%cdlinux%makeclean%makedep%makebzImage生成的二進(jìn)制文件為zImage存儲在./arch/arm/boot/zImage。燒錄內(nèi)核:把生成的zImage文件拷貝到PC機(jī)的tftp服務(wù)目錄/tftpboot/下,啟動pxa270開發(fā)板,按ctl+c組合鍵進(jìn)入blob配置tftp服務(wù):打開PC機(jī)的tftp服務(wù),關(guān)閉防火墻;在blob下使用ifconfigserver3(3為您的tftp服務(wù)器ip)配置服務(wù)器IP,注意只能一次配置有效,若重啟開發(fā)板需要再次配置??梢暂斎雋elp查看blob下的命令,輸入helpcommand查看命令參數(shù)。按照以下命令燒寫zImage到Ram:tdownloadkernel按照以下命令燒寫zImage到flash:Flashkernel加載驅(qū)動usbserial.ko,pl2303.ko,ftdi_sio.ko可選自動加載模塊或者使用命令insmod加載驅(qū)動自動加載可以有兩個方法放在/lib/module/2.6.xx/kernel目錄下(1)在編譯內(nèi)核的時候選擇
module
auto
load
選項
(2)在/etc/modules.autoload.d/kernel-2.6
配置文件中寫上你要加載的模塊的名字4.2.5Linux下串行端口的程序設(shè)計串口通信原理1.異步串行I/O異步串行方式是將傳輸數(shù)據(jù)的每個字符一位接一位(例如先低位、后高位)地傳送。數(shù)據(jù)的各不同位可以分時使用同一傳輸通道,因此串行I/O可以減少信號連線,最少用一對線即可進(jìn)行。接收方對于同一根線上一連串的數(shù)字信號,首先要分割成位,再按位組成字符。為了恢復(fù)發(fā)送的信息,雙方必須協(xié)調(diào)工作。在微型計算機(jī)中大量使用異步串行I/O方式,雙方使用各自的時鐘信號,而且允許時鐘頻率有一定誤差,因此實現(xiàn)較容易。但是由于每個字符都要獨(dú)立確定起始和結(jié)束(即每個字符都要重新同步),字符和字符間還可能有長度不定的空閑時間,因此效率較低。圖4-5異步串行通信傳送格式圖4-5給出異步串行通信中一個字符的傳送格式。開始前,線路處于空閑狀態(tài),送出連續(xù)“1”。傳送開始時首先發(fā)一個“0”作為起始位,然后出現(xiàn)在通信線上的是字符的二進(jìn)制編碼數(shù)據(jù)。每個字符的數(shù)據(jù)位長可以約定為5位、6位、7位或8位,一般采用ASCII編碼。后面是奇偶校驗位,根據(jù)約定,用奇偶校驗位將所傳字符中為“1”的位數(shù)湊成奇數(shù)個或偶數(shù)個。也可以約定不要奇偶校驗這樣就取消奇偶校驗位。最后是表示停止位的“1”信號,這個停止位可以約定持續(xù)1位、1.5位或2位的時間寬度。至此一個字符傳送完畢,線路又進(jìn)入空閑,持續(xù)為“1”。經(jīng)過一段隨機(jī)的時間后,下一個字符開始傳送才又發(fā)出起始位。每一個數(shù)據(jù)位的寬度等于傳送波特率的倒數(shù)。微機(jī)異步串行通信中,常用的波特率為50,95,110,150,300,600,1200,2400,4800,9600等。接收方按約定的格式接收數(shù)據(jù),并進(jìn)行檢查,可以查出以下三種錯誤:1)奇偶錯:在約定奇偶檢查的情況下,接收到的字符奇偶狀態(tài)和約定不符。2)幀格式錯:一個字符從起始位到停止位的總位數(shù)不對。3)溢出錯:若先接收的字符尚未被微機(jī)讀取,后面的字符又傳送過來,則產(chǎn)生溢出錯。每一種錯誤都會給出相應(yīng)的出錯信息,提示用戶處理。Linux操作系統(tǒng)下函數(shù)接口Linux操作系統(tǒng)從一開始就對串行口提供了很好的支持,為進(jìn)行串行通信提供了大量的函數(shù),我們的項目主要是為掌握在Linux中進(jìn)行串行通信編程的基本方法。串口操作需要的頭文件打開串口在Linux下串口文件是位于/dev下,串口一為/dev/ttyS0,串口二為/dev/ttyS1,打開串口是通過使用標(biāo)準(zhǔn)的文件打開函數(shù)操作設(shè)置串口最基本的設(shè)置串口包括波特率設(shè)置,校驗位和停止位設(shè)置。串口的設(shè)置主要是設(shè)置structtermios結(jié)構(gòu)的各成員值。設(shè)置該結(jié)構(gòu)類型的變量值比較復(fù)雜,可以參考linux系統(tǒng)上的聯(lián)機(jī)man手冊。波特率設(shè)置下面是修改終端波特率的程序代碼:校驗位和停止位的設(shè)置無校驗8位:Opt.c_cflag&=~PARENB;Opt.c_cflag&=~CSTOPB;Opt.c_cflag&=~CSIZE;Opt.c_cflag|=~CS8;奇校驗(Odd)7位:Opt.c_cflag|=~PARENB;Opt.c_cflag&=~PARODD;Opt.c_cflag&=~CSTOPB;Opt.c_cflag&=~CSIZE;Opt.c_cflag|=~CS7;偶校驗(Even)7位:Opt.c_cflag&=~PARENB;Opt.c_cflag|=~PARODD;Opt.c_cflag&=~CSTOPB;Opt.c_cflag&=~CSIZE;Opt.c_cflag|=~CS7;Space校驗7位:Opt.c_cflag&=~PARENB;Opt.c_cflag&=~CSTOPB;Opt.c_cflag&=~CSIZE;Opt.c_cflag|=CS8;設(shè)置停止位1位:Opt.c_cflag&=~CSTOPB;2位:Opt.c_cflag|=CSTOPB;讀寫串口設(shè)置好串口之后,讀寫串口只需要把串口當(dāng)作文件讀寫就可以了。發(fā)送數(shù)據(jù):charbuffer[512];intwByte;nByte=write(fd,buffer,512);讀取串口數(shù)據(jù)使用文件操作read函數(shù)讀取,如果設(shè)置為原始模式(RawMode)傳輸數(shù)據(jù),那么read函數(shù)返回的字符數(shù)是實際串口收到的字符數(shù)。charbuff[512];intrByte;rByte=read(fd,buff,512);關(guān)閉串口即關(guān)閉文件:close(fd);4.2.6Linux下的多線程應(yīng)用程序設(shè)計多線程程序的優(yōu)缺點(diǎn)多線程程序作為一種多任務(wù)、并發(fā)的工作方式,有以下的優(yōu)點(diǎn):a)提高應(yīng)用程序響應(yīng)。這對圖形界面的程序尤其有意義,當(dāng)一個操作耗時很長時,整個系統(tǒng)都會等待這個操作,此時程序不會響應(yīng)鍵盤、鼠標(biāo)、菜單的操作,而使用多線程技術(shù),將耗時長的操作(timeconsuming)置于一個新的線程,可以避免這種尷尬的情況。b)使多CPU系統(tǒng)更加有效。操作系統(tǒng)會保證當(dāng)線程數(shù)不大于CPU數(shù)目時,不同的線程運(yùn)行于不同的CPU上。3)改善程序結(jié)構(gòu)。一個既長又復(fù)雜的進(jìn)程可以考慮分為多個線程,成為幾個獨(dú)立或半獨(dú)立的運(yùn)行部分,這樣的程序會利于理解和修改。LIBC中的pthread庫提供了大量的API函數(shù),為用戶編寫應(yīng)用程序提供支持[4]。主程序的流程圖 本系統(tǒng)采用多線程的編程模式,主程序中創(chuàng)建了三個線程[5]。鍵盤接口監(jiān)聽線程用于檢測鍵盤按鍵的情況。Zigbee接口監(jiān)聽線程則用于接受外部采集到的數(shù)據(jù),并進(jìn)行處理。而GSM接口監(jiān)聽線程則是為了檢測來電的情況。其詳細(xì)代碼可查閱附錄。圖4-6主程序流程圖4.2.7GSM模塊的設(shè)計與實現(xiàn)GPRS模塊和應(yīng)用系統(tǒng)是通過串口連接的,控制系統(tǒng)可以發(fā)給GPRS模塊AT命令的字符串來控制,其行為。GPRS模塊具有一套標(biāo)準(zhǔn)的AT命令集,包括一般命令、呼叫控制命令、網(wǎng)絡(luò)服務(wù)相關(guān)命令、電話本命令、短消息命令、GPRS命令等。詳細(xì)信息請參考擴(kuò)展板的應(yīng)用文檔。用戶可以直接將擴(kuò)展板和計算機(jī)串口相連,打開串口并正確設(shè)置端口和如下參數(shù):波特率設(shè)為115200,數(shù)據(jù)位為8,關(guān)閉奇偶校驗,數(shù)據(jù)流控制采用硬件方式,停止位為1。然后可以在超級終端里輸入“AT”并回車,即可看到GPRS模塊回顯一個“AT”;GSM接口查詢流程圖,該程序主要用來接受GSM發(fā)送回來的AT指令信息,并作出響應(yīng)。圖4-7GSM接口查詢流程圖代碼實現(xiàn)gprs_call實現(xiàn)voidgprs_call(char*number,intnum){//tty_write串口寫函數(shù)tty_write("atd",strlen("atd"));//發(fā)送撥打命令A(yù)TD,詳見AT命令tty_write(number,num);//發(fā)送電話號碼tty_write(";\r",strlen(";\r"));//發(fā)送結(jié)束字符usleep(200000);//進(jìn)行適當(dāng)?shù)难訒r}這里就只列舉打電話的程序代碼實現(xiàn),其它的請查看源碼。4.2.8GPS模塊的設(shè)計與實現(xiàn)GPS(GlobalPositioningSystem-全球定位系統(tǒng))是美國從本世紀(jì)70年代開始研制,歷時20年,耗資200億美元,具有在海、陸、空進(jìn)行全方位實時三維導(dǎo)航與定位能力的新一代衛(wèi)星導(dǎo)航與定位系統(tǒng)。(1)全球,全天候工作:能為用戶提供連續(xù),實時的三維位置,三維速度和精密時間。不受天氣的影響。(2)定位精度高:單機(jī)定位精度優(yōu)于10米(3)功能多,應(yīng)用廣:目前已廣泛的應(yīng)用于大地測量、工程測量、航空攝影測量、運(yùn)載工具導(dǎo)航和管制、地殼運(yùn)動監(jiān)測、工程變形監(jiān)測、資源勘察、地球動力學(xué)等學(xué)科領(lǐng)域。GPS由三個獨(dú)立的部分組成:空間部分:21顆工作衛(wèi)星,3顆備用衛(wèi)星。地面支撐系統(tǒng):1個主控站,3個注入站,5個監(jiān)測站。用戶設(shè)備部分:接收GPS衛(wèi)星發(fā)射信號,以獲得必要的導(dǎo)航和定位信息,經(jīng)數(shù)據(jù)處理,完成導(dǎo)航和定位工作。GPS接收機(jī)硬件一般由主機(jī)、天線和電源組成。GPS定位原理:GPS定位的基本原理是根據(jù)高速運(yùn)動的衛(wèi)星瞬間位置作為已知的起算數(shù)據(jù),采用空間距離后方交會的方法,確定待測點(diǎn)的位置。如圖所示,假設(shè)t時刻在地面待測點(diǎn)上安置GPS接收機(jī),可以測定GPS信號到達(dá)接收機(jī)的時間△t,再加上接收機(jī)所接收到的衛(wèi)星星歷等其它數(shù)據(jù)可以確定以下四個方程式,如圖4-8所示:圖4-8GPS信號計算公式上述四個方程式中待測點(diǎn)坐標(biāo)x、y、z和Vto為未知參數(shù),其中di=c△ti(i=1、2、3、4)。di(i=1、2、3、4)分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4到接收機(jī)之間的距離?!鱰i(i=1、2、3、4)分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的信號到達(dá)接收機(jī)所經(jīng)歷的時間。c為GPS信號的傳播速度(即光速)。四個方程式中各個參數(shù)意義如下:x、y、z為待測點(diǎn)坐標(biāo)的空間直角坐標(biāo)。xi、yi、zi(i=1、2、3、4)分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4在t時刻的空間直角坐標(biāo),可由衛(wèi)星導(dǎo)航電文求得。Vti(i=1、2、3、4)分別為衛(wèi)星1、衛(wèi)星2、衛(wèi)星3、衛(wèi)星4的衛(wèi)星鐘的鐘差,由衛(wèi)星星歷提供。Vto為接收機(jī)的鐘差。由以上四個方程即可解算出待測點(diǎn)的坐標(biāo)x、y、z和接收機(jī)的鐘差Vto。目前GPS系統(tǒng)提供的定位精度是優(yōu)于10米,而為得到更高的定位精度,通常采用差分GPS技術(shù):將一臺GPS接收機(jī)安置在基準(zhǔn)站上進(jìn)行觀測。根據(jù)基準(zhǔn)站已知精密坐標(biāo),計算出基準(zhǔn)站到衛(wèi)星的距離改正數(shù),并由基準(zhǔn)站實時將這一數(shù)據(jù)發(fā)送出去。用戶接收機(jī)在進(jìn)行GPSGPS代碼實現(xiàn)gps_parse實現(xiàn)GPRMC格式數(shù)據(jù)的解析:voidgps_parse(char*line,GPS_INFO*GPS){inti,tmp,start,end;charc;char*buf=line;c=buf[5];if(c=='C'){//判斷GPRMC語句GPS->D.hour=(buf[7]-'0')*10+(buf[8]-'0');//讀取小時GPS->D.minute=(buf[9]-'0')*10+(buf[10]-'0');//讀取分鐘GPS->D.second=(buf[11]-'0')*10+(buf[12]-'0');//讀取秒tmp=GetComma(9,buf);GPS->D.day=(buf[tmp+0]-'0')*10+(buf[tmp+1]-'0');//讀取日GPS->D.month=(buf[tmp+2]-'0')*10+(buf[tmp+3]-'0');//讀取月GPS->D.year=(buf[tmp+4]-'0')*10+(buf[tmp+5]-'0')+2000;//讀取年//GPS->status=buf[GetComma(2,buf)];GPS->latitude=get_double_number(&buf[GetComma(3,buf)]);//讀取緯度GPS->NS=buf[GetComma(4,buf)];//南緯或北緯GPS->longitude=get_double_number(&buf[GetComma(5,buf)]);//讀取精度GPS->EW=buf[GetComma(6,buf)];//東經(jīng)或西經(jīng)#ifdefUSE_BEIJING_TIMEZONEUTC2BTC(&GPS->D);#endif}if(c=='A'){//"$GPGGA"GPS->high=get_double_number(&buf[GetComma(9,buf)]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年幼兒園食品安全管理協(xié)議書
- 合作投資合同書示例
- 廣州市勞動合同范本參考
- 2024燈飾采購合同范文
- 安徽省淮南市七年級上學(xué)期語文期中試題3套【附答案】
- 提升機(jī)租賃合同樣式
- 2024抵押貸款合同協(xié)議書樣式
- 6.2 共筑生命家園(導(dǎo)學(xué)案) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級上冊
- 購房合同協(xié)議書范本
- 倉庫租賃合同樣本
- 安徽省蕪湖市七年級上學(xué)期語文期中試卷(含答案)
- 兩癌知識科普課件
- 食用菌現(xiàn)代高效農(nóng)業(yè)示范園區(qū)建設(shè)項目建議書
- 東營港加油、LNG加氣站工程環(huán)評報告表
- 2024年日歷(打印版每月一張)
- 車用動力電池回收利用 管理規(guī)范 第2部分:回收服務(wù)網(wǎng)點(diǎn)征求意見稿編制說明
- 新劍橋少兒英語第六冊全冊配套文本
- 科學(xué)預(yù)測方案
- 職業(yè)生涯規(guī)劃網(wǎng)絡(luò)與新媒體專業(yè)
- T-WAPIA 052.2-2023 無線局域網(wǎng)設(shè)備技術(shù)規(guī)范 第2部分:終端
- 市政管道開槽施工-市政排水管道的施工
評論
0/150
提交評論