版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 綜合課程設(shè)計</b></p><p> 基于ARM和QT的信號自動測試系統(tǒng)</p><p> 學 院: 自動化工程學院</p><p> 專 業(yè): 測控技術(shù)與儀器</p><p> 學生姓名: </p><p> 學
2、 號: </p><p> 指導教師: </p><p> 2013 年 6 月</p><p><b> 摘 要</b></p><p> 自動測試系統(tǒng)是一種組裝電路板自動測試系統(tǒng),而在線多路信號測試是一種不斷開電路,不拆下元器件管腳的測試技術(shù)
3、,“在線”反映了ICT重在通過對在線路上的元器件或開短路狀態(tài)的測試來檢測電路板的組裝問題。</p><p> 隨著嵌入式越來越受到重視,嵌入式系統(tǒng)近年來的發(fā)展有目共睹,嵌入式系統(tǒng)的應(yīng)用越來越廣泛。無論是傳統(tǒng)的工業(yè)監(jiān)測、機械控制,還是新興的移動通訊、數(shù)字娛樂,嵌入式系統(tǒng)正逐漸走進人們的生活生產(chǎn)的方方面面。在工業(yè)檢測方面,傳統(tǒng)的監(jiān)控系統(tǒng)主要以單片機為硬件載體進行設(shè)計,功能相對單一,可視化及拓展性有限。隨著Linux
4、系統(tǒng)的不斷升級換代,現(xiàn)在出現(xiàn)了以ARM芯片為載體,以Linux系統(tǒng)為軟件平臺設(shè)計出的新一代監(jiān)控系統(tǒng)。除了能實現(xiàn)原有單片機的功能外,其可視化更強,具備網(wǎng)絡(luò)通信功能,是一臺具備功能拓展更豐富的微型計算機。</p><p> 本文先從硬件平臺設(shè)計入手,根據(jù)要求對硬件設(shè)備進行了解,設(shè)計了功能模塊,在軟件部分移植了Linux操作系統(tǒng)平臺,構(gòu)建了開發(fā)環(huán)境,就數(shù)模轉(zhuǎn)換、觸摸屏驅(qū)動程序進行編程,最后詳述在了Qt下,如何使用C+
5、+語言設(shè)計監(jiān)控系統(tǒng)圖形界面。最后展現(xiàn)了系統(tǒng)運行效果,并提出了改進意見。</p><p> 運行效果表明,設(shè)計的監(jiān)控系統(tǒng)是有效和實時的。</p><p> 關(guān)鍵詞: 嵌入式系統(tǒng) Linux 驅(qū)動 Qt 自動測試</p><p><b> Abstract</b></p><p> With the inc
6、reasing importance of embedded technology, the development of embedded systems for all to see in recent years, embedded system applications increasingly broad. Whether in traditional industrial monitoring, mechanical con
7、trol, or the emerging mobile communications, digital entertainment, embedded systems are gradually moved into all aspects of production and lives of the people. In the industrial testing, the traditional embedded control
8、 systems primarily for the single-chip microcomp</p><p> This paper, based on UP-NetARM2410-S experiment instrument provided by the Beijing Universal Pioneering Technology Co., LTD., des
9、igns a monitoring system to conduct research and application. System platform is Linux2.4.18 kernel, GUI for the first time in the bottom Qt graphics module, using C++ and Qt graphical user interface library monitor the
10、development of graphical data integration platform.</p><p> This article first start with the hardware platform design, required to understand the hardware devices designed modules, ported in the software p
11、art of the Linux operating system platform, build the development environment, how to build a development environment, and were on the A/D conversion, touch screen driver programming, the final details in Qt, how to use
12、C++ language designed monitoring system graphical interface. As an application of research papers, the paper mainly on the software de</p><p> The study proved to be effective and real-time.</p><
13、p> Key words: Embedded system,Linux,Driver,Qt</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractII</p><p><b> 目 錄III<
14、;/b></p><p><b> 第一章 前言1</b></p><p> 1.1課題研究背景和意義1</p><p> 1.2 自動測試系統(tǒng)的發(fā)展1</p><p> 1.3嵌入式技術(shù)發(fā)展現(xiàn)狀與未來2</p><p> 1.4 課題研究內(nèi)容2</p>&
15、lt;p> 第二章 基于ARM和QT的自動測試系統(tǒng)硬件設(shè)計3</p><p><b> 2.1系統(tǒng)組成3</b></p><p> 2.2 S3C2410介紹3</p><p><b> 2.3設(shè)計方案5</b></p><p> 2.4 ADC硬件設(shè)計6</p>
16、;<p> 第三章 嵌入式linux移植及驅(qū)動開發(fā)8</p><p> 3.1 linux主要特征8</p><p> 3.2 驅(qū)動程序開發(fā)9</p><p> 3.2.1 嵌入式linux驅(qū)動程序開發(fā)方法9</p><p> 3.2.2 ADC在ARM中的驅(qū)動開發(fā)9</p><p&g
17、t; 3.2.3 觸摸屏在ARM中的驅(qū)動開發(fā)17</p><p> 第四章 信號自動測試應(yīng)用軟件設(shè)計21</p><p> 4.1 Qt 主要特性22</p><p> 4.2 Qt 類庫及其機制簡介23</p><p> 4.2.1 Qt類庫23</p><p> 4.2.2 Qt 對象間通訊
18、機制23</p><p> 4.3 信號監(jiān)測UI 設(shè)計25</p><p> 4.4信號監(jiān)測UI和驅(qū)動連接25</p><p> 第五章 總結(jié)與展望28</p><p> 5.1 全文總結(jié)28</p><p><b> 5.2 展望28</b></p><
19、;p><b> 參考文獻29</b></p><p><b> 致 謝29</b></p><p><b> 附錄30</b></p><p><b> 第一章 前言</b></p><p> 1.1 課題研究背景和意義</p
20、><p> 在現(xiàn)在日益信息化的社會中,計算機和網(wǎng)絡(luò)已經(jīng)全面滲透到日常生活的每一個角落。對于我們每個人,需要的已經(jīng)不再僅僅是那種放在桌上處理文檔,進行工作管理和生產(chǎn)控制的計算機"機器";各種各樣的新型嵌入式系統(tǒng)設(shè)備在應(yīng)用數(shù)量上已經(jīng)遠遠超過通用計算機。而在工業(yè)和服務(wù)領(lǐng)域中,使用嵌入式技術(shù)的數(shù)字機床,智能工具,工業(yè)機器人,服務(wù)機器人也將逐漸改變傳統(tǒng)的工業(yè)和服務(wù)方式。 目前嵌入式系統(tǒng)技術(shù)已經(jīng)成
21、為了最熱門的技術(shù)之一,吸引了大批的優(yōu)秀人才投入其中。嵌入式系統(tǒng)可以稱為后PC時代和后網(wǎng)絡(luò)時代的新秀。由于嵌入式系統(tǒng)采用的是微處理器,實現(xiàn)相對單一的功能,采用獨立的操作系統(tǒng),所以往往不需要大量的外圍器件。因而在體積上,功耗上有其自身的優(yōu)勢。嵌入式在應(yīng)用中擁有廣闊的前景!</p><p> 1.2 自動測試系統(tǒng)的發(fā)展</p><p> 自動測試系統(tǒng)是一種組裝電路板自動測試系統(tǒng),例如:ICT
22、(In-Circuit Test System),中文慣用名為在線測試儀(這里指組裝電路板在線測試儀),主要用于組裝電路板(PCBA)的測試。這里的“在線”是“In-Circuit”的直譯,主要指電子元器件在線路上(或者說在電路上)。在線測試是一種不斷開電路,不拆下元器件管腳的測試技術(shù),“在線”反映了ICT重在通過對在線路上的元器件或開短路狀態(tài)的測試來檢測電路板的組裝問題。</p><p> 自動測試設(shè)備(AT
23、E)的研制工作始于 20世紀50年代?,F(xiàn)代測試內(nèi)容日益復(fù)雜, 測試工作量激增,而且要求完成測試的時間越來越短,人工測試很難滿足這些要求,自動測試技術(shù)因而得到迅速發(fā)展。較完善的自動測試設(shè)備是60年代采用電子計算機以后才問世的。</p><p> 自動測試設(shè)備的發(fā)展經(jīng)歷了三個階段。①采用專用測試設(shè)備:這種系統(tǒng)比較復(fù)雜,研制工作量大,造價高,適應(yīng)性差,在改變測試內(nèi)容時要重新設(shè)計接口(包括儀器與儀器之間的接口和儀器與計
24、算機之間的接口)。專用測試設(shè)備僅用來進行大量重復(fù)性試驗、快速測試或復(fù)雜測試,或用于對測試可靠性要求極高、有礙測試人員健康以及測試人員難以接近的測試場所。②采用標準化通用接口母線(GPIB)連接有關(guān)設(shè)備,系統(tǒng)中各組成部分均配標準化接口功能,用統(tǒng)一的無源母線電纜連接起來。不需要自行設(shè)計接口,可靈活地更改、增刪測試內(nèi)容。在這兩個階段中,計算機主要承擔系統(tǒng)的控制、計算和數(shù)據(jù)處理任務(wù),基本上是模擬人工測試的過程,尚不能充分發(fā)揮計算機的功能。③將計
25、算機與測試設(shè)備融為一體,用計算機軟件代替?zhèn)鹘y(tǒng)設(shè)備中某些硬件的功能,能用計算機產(chǎn)生激勵,完成測試功能,生成測試程序。</p><p> 1.3 嵌入式技術(shù)發(fā)展現(xiàn)狀與未來</p><p> 嵌入式系統(tǒng)是將計算機技術(shù)、半導體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合后的產(chǎn)物,是一門綜合技術(shù)學科。由于空間和各種資源相對不足,嵌入式系統(tǒng)的硬件和軟件都必須高效率地設(shè)計,量體裁衣、去除冗余,力爭在同樣
26、的硅片面積上實現(xiàn)更高的性能,這樣才能在具體應(yīng)用中對處理器的選擇更具有競爭力。 作為軟硬件高度結(jié)合的產(chǎn)物。為了提高執(zhí)行速度和系統(tǒng)可靠性,嵌入式系統(tǒng)中的軟件一般都固化在存儲器芯片或單片機本身中,而不是存貯于磁盤等載體中。片上系統(tǒng),板上系統(tǒng)的實現(xiàn),使得以pda等為代表的這類產(chǎn)品擁有更加熟悉的操作界面和操作方式,比著傳統(tǒng)的商務(wù)通等功能更加完善,實用。</p><p> 嵌入式系統(tǒng)是這個后PC時代的擎天之柱。我們有理由相
27、信,未來的電子技術(shù)就是嵌入式系統(tǒng)技術(shù)的天下。</p><p> 1.4 課題研究內(nèi)容</p><p> 嵌入式系統(tǒng)逐漸成為IT業(yè)界技術(shù)研究和產(chǎn)品開發(fā)的熱點。其重要性隨著手持設(shè)備的普及而越來越突出。本文通過對嵌入式linux和qt的分析與研究,在Qt和ADC自定義驅(qū)動的基礎(chǔ)上,開發(fā)了基于S3C2410和ADC實現(xiàn)對多路模擬量信號的實時監(jiān)測系統(tǒng),利用QT和液晶實現(xiàn)圖形化顯示數(shù)據(jù)。一體化的圖
28、形界面非常方便用戶觀測,充分地體現(xiàn)了嵌入式系統(tǒng)的優(yōu)勢。此外Qt作為一個GUI解決方案,可用于對GUI大小要求苛刻的系統(tǒng)中。</p><p> 第二章 基于ARM和QT的自動測試系統(tǒng)硬件設(shè)計</p><p><b> 2.1系統(tǒng)組成</b></p><p> 信號監(jiān)測系統(tǒng)設(shè)計包括信號采集模塊、數(shù)據(jù)處理功能電路模塊、以及液晶顯示模塊,如圖2-
29、1所示。這些模塊使得該設(shè)備擁有強大的功能,集信號采集、數(shù)據(jù)處理、參數(shù)顯示為一體,用戶可方便的對多路信號進行實時監(jiān)測。</p><p> 圖2-1 系統(tǒng)概要框圖</p><p> 2.2 S3C2410介紹</p><p> S3C2410處理器是Samsung公司基于ARM公司的ARM920T處理器內(nèi)核,采用0.18um制造工藝的32位微控制器。該處理器擁有
30、:獨立的16KB指令Cache和16KB數(shù)據(jù)Cache,MMU,支持TFT的LCD控制器, NAND閃存控制器,3路UART,4路DMA,4路帶PWM的Timer ,I/O口,RTC,8路10位ADC,Touch Screen接口,IIC-BUS 接口,IIS-BUS 接口,2個USB主機,1個USB設(shè)備,SD主機和MMC接口,2路SPI。S3C2410處理器最高可運行在203MHz。[1,7,11]</p><p&
31、gt; 圖2-2 S3C2410資源結(jié)構(gòu)圖</p><p> CPU:S3C2410X芯片是基于ARM920T內(nèi)核,主頻200M,提供如下功能: </p><p> ?、?.8V內(nèi)核電壓/電源管理有Normal、Slow、Idle、Stop和Power-off模式</p><p> ?、?.3V內(nèi)存電壓、3.3V的處理器IO電壓,處理器擁有16KB I-Cach
32、e, 16KB D-Cache, 和MMU</p><p> ?、弁獠縎DRAM控制器 </p><p> ④集成LCD控制器可以支持4K color STN and 64K color TFT,1個通道的專用DMA用于顯存刷新 </p><p> ?、萦型獠空埱笠_的4通道DMA,3通道的UART,支持IrDA1.0 16-byteFIFO, 1個通道的SPI
33、</p><p> ?、?個多主IIC總線控制器,一個IIS總線控制器 </p><p> ?、逽DHost支持1.1的多媒體協(xié)議 </p><p> ?、鄡蓚€USB1.1控制器,可以配置成為host或device </p><p> ?、?通道PWM和一通道的內(nèi)部定時器 /8通道10bitADC和觸摸屏控制器</p><
34、p> ?、饪撮T狗定時器 /117個外部通用IO、24個外部中斷源</p><p> 其中本文主要顯示應(yīng)用ADC和LCD資源!</p><p> UP-NetARM2410-S 實驗儀器硬件配置如下表:</p><p><b> 2.3 設(shè)計方案</b></p><p> 圖2-5 系統(tǒng)結(jié)構(gòu)圖</p&
35、gt;<p> 如圖2-5所示,電流電壓信號經(jīng)過電阻分壓簡單濾波后送入S3C2410 ADC模塊,S3C2410接受電阻觸摸屏輸入和鼠標輸入,并送顯示。</p><p> 2.4 ADC硬件設(shè)計</p><p> A/D 轉(zhuǎn)換器是模擬信號源和CPU 之間聯(lián)系的接口,它的任務(wù)是將連續(xù)變化的模擬信號轉(zhuǎn)換為數(shù)字信號,以便計算機和數(shù)字系統(tǒng)進行處理、存儲、控制和顯示。在工業(yè)控
36、制和數(shù)據(jù)采集及許多其他領(lǐng)域中,A/D 轉(zhuǎn)換是不可缺少的。A/D 轉(zhuǎn)換器有以下類型:逐位比較型、積分型、計數(shù)型、并行比較型、電壓-頻率型,主要應(yīng)根據(jù)使用場合的具體要求,按照轉(zhuǎn)換速度、精度、價格、功能以及接口條件等因素來決定選擇何種類型。[1]常用的有以下兩種:</p><p> ?、?雙積分型的 A/D 轉(zhuǎn)換器</p><p> 雙積分式也稱二重積分式,其實質(zhì)是測量和比較兩個積分的時間,一
37、個是對模擬輸入電壓積分的時間T0,此時間往往是固定的;另一個是以充電后的電壓為初值,對參考電源Vref反向積分,積分電容被放電至零所需的時間T1。模擬輸入電壓Vi 與參考電壓VRef 之比,等于上述兩個時間之比。由于VRef 、T0 固定,而放電時間T1 可以測出,因而可計算出模擬輸入電壓的大小(VRef 與Vi 符號相反)。由于T0、VRef 為已知的固定常數(shù),因此反向積分時間T1 與輸入模擬電壓Vi 在T0 時間內(nèi)的平均值成正比。輸
38、入電壓Vi 愈高,VA 愈大,T1 就愈長。在T1 開始時刻,控制邏輯同時打開計數(shù)器的控制門開始計數(shù),直到積分器恢復(fù)到零電平時,計數(shù)停止。則計數(shù)器所計出的數(shù)字即正比于輸入電壓Vi 在T0 時間內(nèi)的平均值,于是完成了一次A/D 轉(zhuǎn)換。由于雙積分型A/D 轉(zhuǎn)換是測量輸入電壓Vi 在T0 時間內(nèi)的平均值,所以對常態(tài)干擾(串摸干擾)有很強的抑制作用,尤其對正負波形對稱的干擾信號,抑制效果更好。雙積分型的A/D 轉(zhuǎn)換器電路簡單,抗干擾能力強,精度
39、高,這是突出的優(yōu)點。但轉(zhuǎn)換速度比較慢,常用的A/D 轉(zhuǎn)換芯片</p><p> ?、谥鸫伪平偷?A/D 轉(zhuǎn)換器</p><p> 逐次逼近型(也稱逐位比較式)的 A/D 轉(zhuǎn)換器, 主要由逐次逼近寄存器SAR、D/A 轉(zhuǎn)換器、比較器以及時序和控制邏輯等部分組成。它的實質(zhì)是逐次把設(shè)定的SAR 寄存器中的數(shù)字量經(jīng)D/A 轉(zhuǎn)換后得到電壓Vc 與待轉(zhuǎn)換模擬電壓V。進行比較。比較時,先從SAR 的
40、最高位開始,逐次確定各位的數(shù)碼應(yīng)是“1”還是“0”,其工作過程如下:轉(zhuǎn)換前,先將SAR 寄存器各位清零。轉(zhuǎn)換開始時,控制邏輯電路先設(shè)定SAR 寄存器的最高位為“1”,其余位為“0”,此試探值經(jīng)D/A 轉(zhuǎn)換成電壓Vc,然后將Vc 與模擬輸入電壓Vx 比較。如果Vx≥Vc,說明SAR 最高位的“1”應(yīng)予保留;如果Vx<Vc,說明SAR 該位應(yīng)予清零。然后再對SAR 寄存器的次高位置“1”,依上述方法進行D/A 轉(zhuǎn)換和比較。如此重復(fù)上述
41、過程,直至確定SAR 寄存器的最低位為止。過程結(jié)束后,狀態(tài)線改變狀態(tài),表明已完成一次轉(zhuǎn)換。最后,逐次逼近寄存器SAR 中的內(nèi)容就是與輸入模擬量V 相對應(yīng)的二進制數(shù)字量。顯然A/D轉(zhuǎn)換器的位數(shù)N 決定于SAR 的位數(shù)和D/A 的位數(shù)。圖2.4.1(b)表示四位A/D 轉(zhuǎn)換器的逐次逼近過程。轉(zhuǎn)換結(jié)果能否準確逼近</p><p> 本文所用為逐次逼近型的A/D轉(zhuǎn)換器。</p><p> 第三
42、章 嵌入式linux移植及驅(qū)動開發(fā)</p><p> 3.1 linux主要特征</p><p> ?、俜螾OSIX 1003.1標準</p><p> POSIX 1003.1標準定義了一個最小的Unix操作系統(tǒng)接口,任何操作系統(tǒng)只有符合這一標準,才有可能運 行Unix程序??紤]到Unix具有豐富的應(yīng)用程序,當今絕大多數(shù)操作系統(tǒng)都把滿足POSIX 1003.
43、1標準作為實現(xiàn) 目標,Linux也不例外,它完全支持POSIX 1003.1標準。另外,為了使Unix System V和BSD上的程序能直接在 Linux上運行, Linux還增加了部分System V和BSD的系統(tǒng)接口,使Linux成為一個完善的Unix程序開發(fā)系統(tǒng)。</p><p> ?、谥С侄嘤脩粼L問和多任務(wù)編程</p><p> Linux是一個多用戶操作系統(tǒng),它允許多個用戶同
44、時訪問系統(tǒng)而不會造成用戶之間的相互干擾。另外, Linux還支持真正的多用戶編程,一個用戶可以創(chuàng)建多個進程,并使各個進程協(xié)同工作來完成用戶的需求. </p><p> ?、鄄捎庙撌酱鎯芾?</p><p> 頁式存儲管理使Linux能更有效地利用物理存儲空間,頁面的換入換出為用戶提供了更大的存儲空間。 </p><p><b> ?、苤С謩討B(tài)鏈接<
45、;/b></p><p> 用戶程序的執(zhí)行往往離不開標準庫的支持,一般的系統(tǒng)往往采用靜態(tài)鏈接方式--即在裝配階段就已將 用戶程序和標準庫鏈接好,這樣,當多個進程運行時,可能會出現(xiàn)庫代碼在內(nèi)存中有多個副本而浪費存儲 空間的情況。Linux 支持動態(tài)鏈接方式,當運行時才進行庫鏈接,如果所需要的庫已被其它進程裝入內(nèi)存, 則不必再裝入,否則才從硬盤中將庫調(diào)入。這樣能保證內(nèi)存中的庫程序代碼是唯一的。</p&g
46、t;<p> ⑤支持多種文件系統(tǒng) </p><p> Linux能支持多種文件系統(tǒng)。目前支持的文件系統(tǒng)有:EXT2、EXT、XIAFS、ISOFS、HPFS、MSDOS、UMSDOS、 PROC、NFS、SYSV、MINIX、SMB、UFS、NCP、VFAT、AFFS。Linux最常用的文件系統(tǒng)是EXT2,它的文件名長度可 達255字符,并且還有許多特有的功能,使它比常規(guī)的Unix文件系統(tǒng)更加安
47、全。</p><p> ⑥支持TCP/IP、SLIP和PPP</p><p> 在Linux中,用戶可以使用所有的網(wǎng)絡(luò)服務(wù),如網(wǎng)絡(luò)文件系統(tǒng)、遠程登錄等。SLIP和PPP能支持串行線上的 TCP/IP協(xié)議的使用,這意味著用戶可用一個高速Modem通過電話線連入Internet網(wǎng)中。[10] </p><p> 3.2 驅(qū)動程序開發(fā)</p><
48、p> 3.2.1 嵌入式linux驅(qū)動程序開發(fā)方法</p><p> Linux 中的驅(qū)動設(shè)計是嵌入式Linux 開發(fā)中十分重要的部分,它要求開發(fā)者不僅要熟悉Linux 的內(nèi)核機制、驅(qū)動程序與用戶級應(yīng)用程序的接口關(guān)系、考慮系統(tǒng)中對設(shè)備的并發(fā)操作等等,而且還要非常熟悉所開發(fā)硬件的工作原理。這對驅(qū)動開發(fā)者提出了比較高的要求,這個實驗主要是給大家進入驅(qū)動設(shè)計提供一個簡單入門的一個實例,并不需要提供太多與硬件
49、相關(guān)的內(nèi)容,這部分應(yīng)該是通過仔細閱讀芯片廠家提供的資料來解決。驅(qū)動程序的作用是應(yīng)用程序與硬件之間的一個中間軟件層,驅(qū)動程序應(yīng)該為應(yīng)用程序展現(xiàn)硬件的所有功能,不應(yīng)該強加其他的約束,對于硬件使用的權(quán)限和限制應(yīng)該由應(yīng)用程序?qū)涌刂?。但是有時驅(qū)動程序的設(shè)計是跟所開發(fā)的項目相關(guān)的,這時就可能在驅(qū)動層加入一些與應(yīng)用相關(guān)的設(shè)計考慮,主要是因為在驅(qū)動層的效率比應(yīng)用層高,同時為了項目的需要可能只強化或優(yōu)化硬件的某個功能,而弱化或關(guān)閉其他一些功能;到底需要展
50、現(xiàn)硬件的哪些功能全都由開發(fā)者根據(jù)需要而定。驅(qū)動程序有時會被多個進程同時使用,這時我們要考慮如何處理并發(fā)的問題,就需要調(diào)用一些內(nèi)核的函數(shù)使用互斥量和鎖等機制。驅(qū)動程序主要需要考慮下面三個方面:提供盡量多的選項給用戶,提高驅(qū)動程序</p><p> 3.2.2 ADC在ARM中的驅(qū)動開發(fā)</p><p><b> 一、開發(fā)環(huán)境</b></p><
51、p> 主 機:redhat/linux2.4.2</p><p> 開發(fā)板:北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-NetARM2410-S 實驗儀器</p><p> 編譯器:arm-linux-gcc-4.3.2</p><p><b> 二、硬件原理分析</b></p><p> 圖3-1所
52、示S3C2410內(nèi)部ADC結(jié)構(gòu)</p><p> 圖3-1 S3C2410內(nèi)部ADC結(jié)構(gòu)</p><p> 我們從上面的結(jié)構(gòu)圖和數(shù)據(jù)手冊可以知道,該ADC模塊總共有8個通道可以進行模擬信號的輸入,分別是AIN0、AIN1、AIN2、AIN3、 YM、YP、XM、XP。那么ADC是怎么實現(xiàn)模擬信號到數(shù)字信號的轉(zhuǎn)換呢?首先模擬信號從任一通道輸入,然后設(shè)定寄存器中預(yù)分頻器的值來確定AD轉(zhuǎn)換器
53、 頻率,最后ADC將模擬信號轉(zhuǎn)換為數(shù)字信號保存到ADC數(shù)據(jù)寄存器0中(ADCDAT0),然后ADCDAT0中的數(shù)據(jù)可以通過中斷或查詢的方式來訪問。 對于ADC的各寄存器的操作和注意事項請參閱數(shù)據(jù)手冊。</p><p> S3C2410的ADC及觸摸屏控制寄存器以下有5種:</p><p> (1)ADC控制寄存器:ADCCON。該寄存器各參數(shù)描述見表3-1。</p>&l
54、t;p> 表3-1 ADC控制寄存器</p><p> (2)ADC觸摸屏控制寄存器:ADCTSC。該寄存器主要是通過觸摸屏的各個控制引腳來決定觸摸屏轉(zhuǎn)換狀態(tài),使其進行坐標軸轉(zhuǎn)換,或者進入中斷狀態(tài),等待觸摸屏終端。各參數(shù)描述見表3-2。</p><p> 表3-3 ADC觸摸屏控制寄存器</p><p> ?。?)ADC延時寄存器:ADCDLY。該寄存器
55、是只讀的,其中控制位都是標志位和結(jié)果位。各參數(shù)描述見表3-3。</p><p> 表3-3 ADC延時寄存器</p><p> ?。?)ADC數(shù)據(jù)寄存器0:ADCDATA0。該寄存器是只讀的,其中控制位都是標志位和結(jié)果位。該寄存器各參數(shù)描述見表3-4。</p><p> 表3-4 ADC數(shù)據(jù)寄存器0</p><p> ?。?)ADC數(shù)據(jù)寄
56、存器1:ADCDATA1。該寄存器是只讀的,其中控制位都是標志位和結(jié)果位。該寄存器各參數(shù)描述見表3-5。</p><p> 表3-5 ADC數(shù)據(jù)寄存器1</p><p> 圖3-2 ADC接口電路圖</p><p> 上圖是UP-NetARM2410-S上的ADC應(yīng)用實例,開發(fā)板通過一個10K的電位器(可變電阻)來產(chǎn)生電壓模擬信號,然后通過第一個通道(即:AI
57、N0)將 模擬信號輸入ADC。[1,8]</p><p><b> 三、實現(xiàn)方法</b></p><p> ADC設(shè)備在Linux中可以看做是簡單的字符設(shè)備,也可以當做是一混雜設(shè)備(misc設(shè)備),這里我們作為misc設(shè)備來實現(xiàn)ADC的驅(qū)動。注意:這里我們獲取AD轉(zhuǎn)換后的數(shù)據(jù)將采用中斷的方式,即當AD轉(zhuǎn)換完成后產(chǎn)生AD中斷,在中斷服務(wù)程序中來讀取ADCDAT0的第
58、0-9位的值(即AD 轉(zhuǎn)換后的值)。</p><p> 1、建立驅(qū)動程序文件s3c2410-adc.c,實現(xiàn)驅(qū)動的打開、讀、寫和退出</p><p> static int s3c2410_adc_open(struct inode *inode, struct file *filp)</p><p><b> //adc打開句柄</b>
59、</p><p><b> {</b></p><p> init_MUTEX(&adcdev.lock);</p><p> init_waitqueue_head(&(adcdev.wait));</p><p> adcdev.channel=0;</p><p>
60、 adcdev.prescale=0xff;</p><p> MOD_INC_USE_COUNT;</p><p> DPRINTK( "adc opened\n");</p><p><b> return 0;</b></p><p><b> }</b></
61、p><p> static ssize_t s3c2410_adc_write(struct file *file, const char *buffer, size_t count, loff_t * ppos)</p><p><b> {</b></p><p> int data;
62、60; //用來保存應(yīng)用程序傳來的數(shù)</p><p><b> 據(jù)</b></p><p> if(count!=sizeof(data)){</p><p> printk("the size o
63、f input data must be %d\n", sizeof(data)); //應(yīng)用程序傳來的數(shù)據(jù)和data長度不同,報錯</p><p><b> return 0;</b></p><p><b> }</b></p><p> static s
64、size_t s3c2410_adc_read(struct file *filp, char *buffer, size_t count, loff_t *ppos)</p><p><b> {</b></p><p> int ret = 0;</p><p> if (down_interruptible(&adcdev.
65、lock)) //先獲得互斥鎖</p><p> return -ERESTARTSYS;</p><p> START_ADC_AIN(adcdev.channel, adcdev.prescale); //開始轉(zhuǎn)換</p><p> #ifdef USE_IRQ_WAITQUEUE</p&g
66、t;<p> interruptible_sleep_on(&adcdev.wait); //休眠進程,讓CPU做其他的事情</p><p><b> #endif</b></p><p> printk(&q
67、uot;in read channel=%d\n",adcdev.channel);</p><p> printk("ADCDAT0=%x\n",ADCDAT0);</p><p> while(!(ADCCON & 0x8000))
68、60; //查看AD是否轉(zhuǎn)換完成</p><p> udelay(100);</p><p> ret = ADCDAT0;</p><p> ret &= 0x3ff;
69、160; //10位AD轉(zhuǎn)換,所以取低十位</p>&
70、lt;p> copy_to_user(buffer, (char *)&ret, sizeof(ret)); //把得到的值傳回應(yīng)用程序</p><p> up(&adcdev.lock);
71、0; //釋放信號量</p><p> return sizeof(ret);</p><p><b> }</b></p><p
72、> static int s3c2410_adc_release(struct inode *inode, struct file *filp) //關(guān)閉</p><p><b> adc {</b></p><p> MOD_DEC_USE_COUNT;</p><p> DPRINTK( "adc closed\n&
73、quot;);</p><p><b> return 0;</b></p><p><b> }</b></p><p> 由于編譯開發(fā)板內(nèi)核時直接把ad驅(qū)動加入到內(nèi)核里面,對用戶的只是下面的一個文件結(jié)構(gòu)。在用戶程序里只需要用到open、read、write、release等內(nèi)核函數(shù)即可。</p>&
74、lt;p> static struct file_operations s3c2410_fops = {</p><p> owner: THIS_MODULE,</p><p> open: s3c2410_adc_open,</p><p> read: s3c2410_adc_read,</p><p> write:s
75、3c2410_adc_write,</p><p> release: s3c2410_adc_release,</p><p><b> };</b></p><p> 2、編寫用戶應(yīng)用程序測試my2410_adc驅(qū)動。建立應(yīng)用程序adc_test.c</p><p> #include "s3c24
76、10-adc.h"</p><p> #define ADC_DEV "/dev/adc/0raw"</p><p> static int adc_fd = -1;</p><p> static int init_ADdevice(void) //初始化設(shè)備</p><p><b> {&
77、lt;/b></p><p> if((adc_fd=open(ADC_DEV, O_RDWR))<0){</p><p> printf("Error opening %s adc device\n", ADC_DEV);</p><p> return -1;</p><p><b> }
78、</b></p><p><b> }</b></p><p> static int GetADresult(int channel) //獲取AD值</p><p><b> {</b></p><p> int PRESCALE=0XFF;</p><
79、;p> int data=ADC_WRITE(channel, PRESCALE);</p><p> write(adc_fd, &data, sizeof(data));</p><p> read(adc_fd, &data, sizeof(data));</p><p> return data;</p><
80、p><b> }</b></p><p> int main(void)</p><p><b> {</b></p><p><b> int i;</b></p><p><b> float d;</b></p><
81、;p> pthread_t th_com;</p><p> void * retval;</p><p> //set s3c44b0 AD register and start AD</p><p> if(init_ADdevice()<0)</p><p> return -1;</p><p
82、> /* Create the threads 創(chuàng)建線程 */</p><p> pthread_create(&th_com, NULL, comMonitor, 0);</p><p> printf("\nPress Enter key exit!\n");</p><p> while( stop==0 )</
83、p><p><b> {</b></p><p> for(i=0; i<=2; i++){//采樣0~2 路A/D 值</p><p> d=((float)GetADresult(i)*3.3)/1024.0;</p><p> printf("a%d=%8.4f\t",i,d);<
84、;/p><p><b> }</b></p><p> usleep(1);</p><p> printf("\r");</p><p><b> }</b></p><p><b> }</b></p><
85、;p> GetADresult函數(shù)的具體過程如下:假如我們的比列因子是0XFF,通道是1路,即0XO1,那么經(jīng)過int data=ADC_WRITE(channel, PRESCALE);后我們可以得到數(shù)據(jù)為0X0100FF,而通過下一條語句write(adc_fd, &data, sizeof(data))后,實際調(diào)用的是驅(qū)動程序中的s3c2410_adc_write函數(shù),在這個函數(shù)中 ch=ADC_WRITE_G
86、ETCH(data),又將通道0X01獲取出來。這是因為我們經(jīng)常在采樣的時候需要知道是哪個通道的數(shù)據(jù),比列因子是AD頻率轉(zhuǎn)換的一個因素,所以我們在讀取數(shù)據(jù)時,要保持這兩個部分的值是不變的,而真正換取10位二進制的數(shù)據(jù)則是在read函數(shù)中,通過讀取寄存器的值,再取出需要的那10位。</p><p> 3、將驅(qū)動程序下載掛載到內(nèi)核,下載應(yīng)用程序到開發(fā)板上后,運行應(yīng)用程序,扭動s3c2410開發(fā)板上的定位器,可以觀察
87、到ADC轉(zhuǎn)換值的變化,證明驅(qū)動程序工作正常。</p><p> 3.2.3 觸摸屏在ARM中的驅(qū)動開發(fā)</p><p> SPI接口是Motorola推出的一種同步串行接口,采用全雙工、四線通信系統(tǒng),S3C2410X是三星推出的自帶觸摸屏接口的ARM920T內(nèi)核芯片,ADS7848為Burr-Brown生產(chǎn)的一款性能優(yōu)異的觸摸屏控制器。本文采用SPI接口的觸摸屏控制器ADS7848外
88、接四線電阻式觸摸屏,這種方式最顯著的特點是響應(yīng)速度更快、靈敏度更高,微處理器與觸摸屏控制器間的通訊時間大大減少,提高了微處理器的效率。ADS7848與S3C2410的硬件連接如圖3-4所示,鑒于ADS7848差分工作模式的優(yōu)點,在硬件電路中將其配置為差分模式。[4]</p><p><b> 圖3-4 連接圖</b></p><p> Linux操作系統(tǒng)通過系統(tǒng)調(diào)
89、用和硬件中斷完成從用戶空間到內(nèi)核空間的控制轉(zhuǎn)移。設(shè)備驅(qū)動模塊的功能就是擴展內(nèi)核的功能,主要完成兩部分任務(wù):一個是系統(tǒng)調(diào)用,另一個是處理中斷。圖3-5是一個設(shè)備驅(qū)動模塊動態(tài)掛接、卸載和系統(tǒng)調(diào)用的全過程。系統(tǒng)調(diào)用部分則是對設(shè)備的操作過程,比如open,read,write,ioctl等操作,設(shè)備驅(qū)動程序所提供的這組入口點由幾個結(jié)構(gòu)向系統(tǒng)進行說明,分別是file_operations數(shù)據(jù)結(jié)構(gòu)、inode數(shù)據(jù)結(jié)構(gòu)和file 數(shù)據(jù)結(jié)構(gòu)。內(nèi)核內(nèi)部通
90、過file結(jié)構(gòu)識別設(shè)備,通過file_operations數(shù)據(jù)結(jié)構(gòu)提供文件系統(tǒng)的入口點函數(shù),也就是訪問設(shè)備驅(qū)動的函數(shù),結(jié)構(gòu)中的每一個成員都對應(yīng)著一個系統(tǒng)調(diào)用。在嵌入式系統(tǒng)的開發(fā)中,我們一般僅僅實現(xiàn)其中幾個接口函數(shù):read、write、open、ioctl及release就可以完成應(yīng)用系統(tǒng)需要的功能。寫驅(qū)動程序的任務(wù)之一就是完成file_operations中的函數(shù)指針。[9]</p><p> 圖3-5 設(shè)備
91、驅(qū)動在內(nèi)核中的掛接、卸載和系統(tǒng)調(diào)用過程</p><p> 在驅(qū)動程序中有三個重要的數(shù)據(jù)結(jié)構(gòu):用于表示筆觸點數(shù)據(jù)信息的結(jié)構(gòu)TS_RET,表示ADS7843中有關(guān)觸摸屏控制器信息的結(jié)構(gòu)TS_DEV,以及驅(qū)動程序與應(yīng)用程序的接口file_operations結(jié)構(gòu)的s3c2410_fops:</p><p> typedef struct {</p><p> uns
92、igned short pressure;</p><p> unsigned short x;</p><p> unsigned short y;</p><p> unsigned short pad;</p><p><b> } TS_RET;</b></p><p> typ
93、edef struct {</p><p> unsigned int PenStatus;</p><p> TS_RET buf[MAX_TS_BUF];</p><p> unsigned int head, tail;</p><p> wait_queue_head_t wq;</p><p> s
94、pinlock_t lock;</p><p><b> } TS_DEV;</b></p><p> static struct file_operations s3c2410_fops = {</p><p> owner: THIS_MODULE,</p><p> open: s3c2410_ts_ope
95、n,</p><p> read: s3c2410_ts_read, release: s3c2410_ts_release,</p><p> poll: s3c2410_ts_poll, };</p><p> init_module函數(shù)是模塊的入口函數(shù)。在函數(shù)內(nèi)部通過s3c2410_ts_ini
96、t( )實現(xiàn)模塊的初始化工作。在本設(shè)計中設(shè)備與系統(tǒng)之間以中斷方式進行數(shù)據(jù)交換。</p><p> 在s3c2410_ts_init()中的另一個重要任務(wù)是執(zhí)行接口函數(shù)s3c2410_ts_open(),在這個函數(shù)中初始化緩沖區(qū)的頭尾指針、觸摸屏狀態(tài)變量及觸摸屏事件等待隊列。</p><p> module_exit()</p><p> 該函數(shù)調(diào)用s3c241
97、0_ts_exit(),主要任務(wù)是撤銷驅(qū)動程序向內(nèi)核的登記以及釋放申請的中斷資源。</p><p> 接口函數(shù)s3c2410_ts_read( )</p><p> 這個函數(shù)實現(xiàn)的任務(wù)是將事件隊列從設(shè)備緩存中讀到用戶空間的數(shù)據(jù)緩存中。實現(xiàn)的過程主要是通過一個循環(huán),只有在事件隊列的頭、尾指針不重合時,才能成功的從tsdev.tail指向的隊列尾部讀取到一組觸摸信息數(shù)據(jù),并退出循環(huán)。否則調(diào)
98、用讀取函數(shù)的進程就要進入睡眠。</p><p> 坐標讀取函數(shù)s3c2410_get_XY()</p><p> 在定時器中斷處理程序中,當查詢到與相連的EINT5/GPF5為低電平時,即表示有有效事件,應(yīng)該調(diào)用s3c2410_get_XY()函數(shù)采集筆觸信息。</p><p> ADS7843有多種轉(zhuǎn)換時序,時序規(guī)定了芯片與設(shè)備及CPU間是如何配合工作的。設(shè)
99、計中采用16個時鐘周期啟動一次轉(zhuǎn)換的坐標轉(zhuǎn)換方式。坐標的讀取是通過多次采集取平均值的方法,以X坐標的讀取為例。循環(huán)過程中的每一步都在8個時鐘周期內(nèi)完成,數(shù)據(jù)的處理嚴格按照時序進行,Y坐標的采集與X坐標類似。</p><p> 第四章 信號自動測試應(yīng)用軟件設(shè)計</p><p> 4.1 Qt 主要特性</p><p> 隨著嵌入式L i n u x 應(yīng)用的不斷發(fā)
100、展,嵌入式處理器運算能力的不斷增強,越來越多的嵌入式設(shè)備開始采用較為復(fù)雜的G U I 系統(tǒng),手持設(shè)備中的G U I 系統(tǒng)發(fā)展得非常迅速。傳統(tǒng)的GUI 系統(tǒng),如Microwindows 等,由于項目規(guī)模較小、功能較為薄弱,缺乏第三方軟件開發(fā)的支持等諸多原因,在比較高級的手持或移動終端設(shè)備(如PDA、Smart-Phone、車載導航系統(tǒng))中應(yīng)用較少。Qt/Embedded 是著名的Qt 庫開發(fā)商Trolltech 公司開發(fā)的面向嵌入式系統(tǒng)的
101、Qt 版本,開發(fā)人員多為K D E 項目的核心開發(fā)人員。許多基于Qt的XWindow 程序可以非常方便地移植到Qt/Embedded上,與X11 版本的Qt 在最大程度上接口兼容, 延續(xù)了在X 上的強大功能,在底層徹底摒棄了Xlib,僅采用framebuffer作為底層圖形接口。Qt/Embedded 類庫完全采用C++ 封裝。豐富的控件資源和較好的可移植性是Qt/Embedded 最為優(yōu)秀的一方面,使用X 下的開發(fā)工具Qt Desig
102、ner 可以直接開發(fā)基于Qt/Embedded 的UI(用戶操作接口)界面。越</p><p> 圖4-1 Qt/Embedded的實現(xiàn)結(jié)構(gòu)</p><p> 4.2 Qt 類庫及其機制簡介</p><p> Qt 類庫是一個跨平臺的面向?qū)ο蟮腃++類庫, 目前主要用于Linux下的開發(fā)。普通的UI編程是極其底層和繁瑣的,而Qt高度面向?qū)ο蠛湍K化的特征將
103、我們從這種繁瑣中解脫了出來。Qt還提供了免費的版本, 這對于非商業(yè)的科學項目如我們目前正在設(shè)計的《基于ARM和Qt的多路信號監(jiān)測系統(tǒng)》特別適合,同時Qt還是跨平臺的, 這對于要求移植性很強的項目也是很好的選擇。</p><p> 4.2.1 Qt類庫</p><p> Qt類庫大致可以分為三個部分: 控件, 框架和工具。</p><p><b> ?、?/p>
104、控件</b></p><p> 控件部分包括環(huán)境控件, 主窗口控件, 標準對話框, 基本的GUI控件, 擴展GUI控件,GUI組織控件,以及幫助系統(tǒng)控件。主窗口類為應(yīng)用程序提供界面框架, 可以在上面添加菜單、工具條等, 為應(yīng)用程序提供集裝箱的功能,標準對話框類是打開/關(guān)閉文件, 選擇顏色等預(yù)先設(shè)計的標準對話框,基本控件包括所有的GUI控件,如按鈕組合框等,擴展的控件包括樹狀視圖、進度條等, 如Qli
105、stView GUI組織類負責對各種控件進行組織以構(gòu)成復(fù)雜的對話框, 如Q GroupBox幫助系統(tǒng)是為應(yīng)用程序提供在線幫助的類, 如QStstusBar,QToolTip。</p><p><b> ?、诳蚣?lt;/b></p><p> 框架部分包括的是一些抽象的類, 通常不可見, 如對象模型、抽象控件、繪圖、拖放、控件、外觀。對象模型是框架的基礎(chǔ), 如QObjec
106、t可見的控件一般從抽象控件派生, 如QButton繪圖類控制繪圖, 如QBrush拖放類控制拖放操作,如QDragObject控件外觀類控制控件的外觀如顏色、字體等。例如QColor。Qt的應(yīng)用程序框架(framework),Qt的應(yīng)用程序框架是自頂向下的, 首先是在main函數(shù)中產(chǎn)生一個Qapplication 類的實例a和一個主窗口類w,主窗口可以是任何QWidget 類的派生類, 這里用的是QMainWidget類, 調(diào)用該類的方
107、法來設(shè)置主窗口的位置和大小, 調(diào)用a 的方法來把窗口w設(shè)置成主窗口并顯示, 剩下的工作就是按照項目對面板的要求來編輯主窗口類w了。下面是一個最簡單的程序框架:</p><p> int main(int argc,char **argv)</p><p><b> {</b></p><p> QApplication a(argc,ar
108、gv);//Qapplication實例化</p><p> myMainWindow w;</p><p> a.setMainWidget(&w);</p><p> w.show();//窗口開顯示</p><p> a.exec();//告訴程序退出,伴隨返回代碼</p><p><b&g
109、t; }</b></p><p><b> ?、酃ぞ?lt;/b></p><p> 工具部分包括時間日期和鏈表樹等數(shù)據(jù)結(jié)構(gòu), 它們和GUI無關(guān)。普通工具包括鏈表、堆棧、隊列、樹等常見數(shù)據(jù)結(jié)構(gòu), 如QArray。圖形處理工具控制圖像的編碼/解碼算法。如Qimage等,IO控制工具具體處理IO的一些類, 如QFile。時間和日期工具類處理時間和日期, 如Qda
110、te,QTime。另外還有其他雜類如Qsignal,QIconSet等。</p><p> 4.2.2 Qt 對象間通訊機制</p><p> 對象間通訊是面向?qū)ο蟪绦蛟O(shè)計的一個極其重要的內(nèi)容, 類似于Microsoft MFC 的消息映射(MessageMaping) 和事件循環(huán),Qt 的對象間通訊采用的是signal/slot 機制, 信號就好像是事件,而slot則是響應(yīng)事件的方法
111、, 如果需要實現(xiàn)對象間的通訊, 只需要把一個對象的slot和另外一個對象的信號“連接起來”就可以實現(xiàn)“事件驅(qū)動”。在Qt中信號是一個全新的東西, 它既不屬于成員函數(shù)也不是變量, 用戶可以自定信號, 下面是自定義信號的例子:</p><p><b> signals:</b></p><p> void created () ;</p><p&g
112、t; 自定義的signal 可以在需要的時候發(fā)送,要發(fā)送上面的signal, 可以用下面的語句:</p><p> emit created () ;</p><p> Linux下開發(fā)Qt應(yīng)用程序比較好的IDE是KDevelop。KDevelop是X系統(tǒng)中的一個快速開發(fā)工具。它集成了很多其他實用工具, 如make 和GNU C+ + Compilers, 它還可以為工程的每個類自動
113、生成HTML 格式的A P I 文檔,同時有著很好的項目管理、編輯環(huán)境和調(diào)試環(huán)境。[12]</p><p> 另外它還有一個所見即所得的對話框編輯器。</p><p> 4.3 信號監(jiān)測UI 設(shè)計</p><p> 圖4-2 Qt/Embedded的實現(xiàn)UI結(jié)構(gòu)設(shè)計</p><p> 在QT下進行界面設(shè)計,可以使用水平、垂直和Gri
114、d布局管理器來進行。水平布局管理器可以把它所管理的部件以水平的順序依次排開, Grid布局管理器可以以網(wǎng)格的形式,將它所管理的部件以一定的矩陣形式排列。比如上圖中,所有的部件一起看,其實就是一種矩陣的形式來排列的。 在QT下做界面設(shè)計的時候,其實無非就是利用上面三種布局管理器來將部件進行分類和排列。</p><p> 第一部分為二個PushButton。</p><p> 第
115、二部分是三個水平排列的LCDNumber,progressbar可以使用水平布局管理器將其放到一起;</p><p> 4.4信號監(jiān)測UI和驅(qū)動連接</p><p> 由于編譯內(nèi)核時直接把ADC驅(qū)動加入到內(nèi)核里面,對我們來說需要了解的只是下面的一個文件結(jié)構(gòu)。在用戶程序里只需要用到open、read、write、release 等內(nèi)核函數(shù)即可。</p><p>
116、 static struct file_operations s3c2410_fops = {</p><p> owner: THIS_MODULE,</p><p> open: s3c2410_adc_open,</p><p> read: s3c2410_adc_read,</p><p> write:s3c2410_ad
117、c_write,</p><p> release: s3c2410_adc_release,</p><p><b> };</b></p><p> 在頭文件包含#include "s3c2410-adc.h",添加對驅(qū)動的引用!</p><p> 定義驅(qū)動安裝路徑以確定程序能連接到驅(qū)動#
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于ARM的燃氣熱值自動測試系統(tǒng).pdf
- 基于arm空調(diào)綜合課程設(shè)計報告
- 計算機畢業(yè)設(shè)計--基于arm和qt的多路信號檢測系統(tǒng)設(shè)計
- 計算機畢業(yè)設(shè)計--基于arm和qt的多路信號檢測系統(tǒng)設(shè)計
- 基于單片機的血沉自動測試儀的設(shè)計_課程設(shè)計論文
- 基于虛擬儀器的自動測試系統(tǒng)設(shè)計和信號模擬器的實現(xiàn).pdf
- 面向信號的自動測試系統(tǒng)軟件設(shè)計.pdf
- 無人機自動測試系統(tǒng)的綜合設(shè)計.pdf
- 基于ARM的接地網(wǎng)自動測試切換裝置.pdf
- API自動測試系統(tǒng)的設(shè)計.pdf
- 基于LabVIEW的多功能自動測試系統(tǒng)設(shè)計.pdf
- 基于USB接口的自動測試系統(tǒng)的設(shè)計.pdf
- 基于ARM的鈣離子自動測試儀的研究.pdf
- 寬帶112自動測試系統(tǒng)的設(shè)計和實現(xiàn).pdf
- 水泵綜合參數(shù)自動測試系統(tǒng)的研究.pdf
- 基于Lab windows-CVI的自動測試系統(tǒng)的設(shè)計和實現(xiàn).pdf
- LED芯片自動測試和分選系統(tǒng)設(shè)計.pdf
- 基于Labview的全息存儲性能自動測試系統(tǒng)設(shè)計.pdf
- 基于ARM的壁掛爐燃燒室氣密性自動測試系統(tǒng).pdf
- 基于綜合通信導航識別設(shè)備的自動測試系統(tǒng)的設(shè)計與實現(xiàn).pdf
評論
0/150
提交評論