嵌入式大作業(yè)基于s3c2410的ad轉換與電機控制系統(tǒng)_第1頁
嵌入式大作業(yè)基于s3c2410的ad轉換與電機控制系統(tǒng)_第2頁
嵌入式大作業(yè)基于s3c2410的ad轉換與電機控制系統(tǒng)_第3頁
嵌入式大作業(yè)基于s3c2410的ad轉換與電機控制系統(tǒng)_第4頁
嵌入式大作業(yè)基于s3c2410的ad轉換與電機控制系統(tǒng)_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式大作業(yè) _基于 s3c2410 的 ad 轉換與電機控制系統(tǒng)嵌入式實驗報告基于S3C2410的AD轉換與電機控制系統(tǒng)院 (系) 計算機與信息工程學院 專 業(yè) 控制工程 學生姓名 成 績 指導教師 2015年 5 月摘要:本設計是基于嵌入式技術作為主處理器的 AD采集與電機控制系統(tǒng),利用S3C2410 ARM微處理器作為主控CPU輔以LINUX操作系統(tǒng)和Qt界面系統(tǒng),實現了 智能化的將AD采集的數據通過Qt界面形式展現出來,同時根據 AD值的不同改變 PW啲參數值,從而控制電機的方向和轉速等功能,并討論了如何提高系統(tǒng)的速 度、可靠性和可擴展性。并解決了傳統(tǒng)的數據采集系統(tǒng)由于存在響應慢、精度

2、低、 可靠性差、效率低、操作繁瑣等弊端,能夠完全適應現代化工業(yè)的高速發(fā)展。關鍵詞:嵌入式系統(tǒng)ARM S3C2410 Qt AD采集PWM直流電機目錄一(設計背景 41.1 設計目的 41.2 設計要求 41.3 設計意義 4 二、系統(tǒng)開發(fā)環(huán)境 62.1 Qt/Embedded 簡介 62.2 ARM-Linux 簡介62.3 Qt/Embedded 進行應用開發(fā)的流程 62.4 交叉編譯環(huán)境的介紹與構建 7三、系統(tǒng)設計 73.1 設計思路 73.2 系統(tǒng)硬件電路設計 83.3 系統(tǒng)軟件設計 . 10 四、測試結果 1 1五、總結 1 2參考文獻 13一(設計背景1.1 設計目的1、注重培養(yǎng)綜合

3、運用所學知識、獨立分析和解決實際問題的能力,培養(yǎng)創(chuàng)新 意識和創(chuàng)新能力,并獲得科學研究的基礎訓練。2、了解所選擇的ARM芯片各個引腳功能,工作方式,計數/定時,I/O 口, AD, PWM等的相關原理,并鞏固學習嵌入式的相關內容知識。3、 通過軟硬件設計實現利用 ARM芯片對AD信號的采集與PWMfe機控制及QT 界面顯示。1.2 設計要求以UP-NetARM2410-S實驗箱及Linux操作系統(tǒng)為平臺,設計一個基于 Qt的圖 形化應用程序,實現AD轉換和轉換結果的圖形顯示以及控制直流電機的正反轉和 轉速的圖形化顯示。1、在桌面Linux系統(tǒng)(虛擬機)中建立Qt開發(fā)環(huán)境和虛擬運行平臺。2、將Qt

4、 移植到目標Linux系統(tǒng)(實驗箱)中,建立實際運行環(huán)境。3、設計一個基于Qt的 圖形化應用程序 :(1)實現對AD進行轉換,并將轉換結果使用文本框控件、進度條控件、轉速表 控件等圖形化方式進行顯示。(2) 使用按鈕控件控制直流電機的旋轉方向,使用滑塊控件控制直流電機的轉 速。4、在桌面 Linux 中編寫和編譯程序,然后下載到實驗箱上運行。 1.3 設計意 義嵌入式系統(tǒng)是以應用為中心,以計算機技術為基礎,且軟硬件可裁剪,適應應 用系統(tǒng)對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng)。它一般 由以下幾部分組成 : 嵌入式微處理器、外圍硬件設備、嵌入式操作系統(tǒng)。嵌入式系 統(tǒng)是面向用戶、

5、面向產品、面向應用的,它必須與具體應用相結合才會具有生命 力、才更具有優(yōu)勢。因此嵌入式系統(tǒng)是與應用緊密結合的,它具有很強的專用性, 必須結合實際系統(tǒng)需求進行合理的裁減利用。嵌入式系統(tǒng)是將先進的計算機技術、 半導體技術和電子技術和各個行業(yè)的具體應用相結合后的產物,這一點就決定了它必然是一個技術密 集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。嵌入式系統(tǒng)必須根據應用需 求對軟硬件進行裁剪,滿足應用系統(tǒng)的功能、可靠性、成本、體積等要求。所以, 如果能建立相對通用的軟硬件基礎,然后在其上開發(fā)出適應各種需要的系統(tǒng),是一 個比較好的發(fā)展模式。目前的嵌入式系統(tǒng)的核心往往是一個只有幾K 到幾十 K 微內核,

6、需要根據實際的使用進行功能擴展或者裁減,但是由于微內核的存在,使得這 種擴展能夠非常順利的進行。嵌入式系統(tǒng)是面向應用的專用計算機系統(tǒng)。嵌入式系統(tǒng)最典型的特點是與人們 的日常生活緊密相關,現在每一個人都擁有形形色色運用了嵌入式技術的電子產 品,小到MP3 PDA等衛(wèi)星數字化設備,達到信息家電、智能電器、車載GIS等,各種新型嵌入式設備在數量上已經遠遠超過了通用計算機。 1. 嵌入式系統(tǒng)通常是 面向特定應用的軟硬件結合體。嵌入式系統(tǒng)一般用于特定的場合,其硬件和軟件都務須高效,量體裁衣,去除冗余; 而計算機則是一個通用的計算機平臺。系統(tǒng)精簡,關注成本。 2.嵌入式系統(tǒng)一般沒有系統(tǒng)軟件和應用軟件的明顯

7、區(qū)分,不要求其功能設計及實 現上過于復雜,這樣一方面有利于控制系統(tǒng)成本,同時也有利于實現系統(tǒng)安全。 3. 嵌入式系統(tǒng)有實時性和可靠性的要求。高實時性的操作系統(tǒng)軟件是嵌入式區(qū)按鍵的基本要求,而且軟件要求固態(tài)存 儲,以提高速度。軟件代碼要求高可靠性和實時性。在多任務嵌入式系統(tǒng)中,對重 要性各不相同的任務進行統(tǒng)籌兼顧的合理調度是保證每個任務及時執(zhí)行的關鍵,單 純通過提高處理器速度是無法完成和沒有效率的,因此系統(tǒng)漸漸地高實時性是基本 要求。4. 產品升級換代和具體產品同步,具有較長的生命周期。 嵌入式系統(tǒng)和具體應用有機地結合在一起,他的升級換代也和具體產品同步進 行,因此嵌入式系統(tǒng)產品一點進入市場,便

8、具有較長的生命周期。 5. 嵌入式軟件 開發(fā)走向標準化,必須使用多任務的操作系統(tǒng)。嵌入式系統(tǒng)的應用程序可以在沒有操作系統(tǒng)的情況下,直接在芯片上運行。 單位了合理的調度多任務,利用系統(tǒng)資源、系統(tǒng)函數以及和專家?guī)旌瘮到涌冢?必須使用 RTOS(Real-Time Operating System) 系統(tǒng)平臺,這樣才能保證程序執(zhí)行 的實時性、可靠性,并減少開發(fā)時間,保障軟件質量。二、系統(tǒng)開發(fā)環(huán)境2.1 Qt/Embedded 簡介Qt是一個1991年由奇趣科技開發(fā)的跨平臺 C+圖形用戶界面應用程序開發(fā)框 架。它既可以開發(fā)GUI程序,也可用于開發(fā)非 GUI程序,比如控制臺工具和服務 器。Qt是面向對象

9、的框架,使用特殊的代碼生成擴展 (稱為元對象編譯器(MetaObject Compiler, moc) 以及一些宏,易于擴展,允許組件編程。 2008 年,奇趣 科技被諾基亞公司收購,QT也因此成為諾基亞旗下的編程語言工具Qt優(yōu)良的跨平臺特性。Qt/Embedded是一個為嵌入式設備上的圖形用戶接口和應用開發(fā)而定制的如果有嵌入式linux操作系統(tǒng)支持,它可以運行在多種不同的處理C+工具開發(fā) 包,器體系上,例如:IntelX86、ARM MIPS PowerPC等。它為在嵌入式設備上開發(fā) 應用程序提供了標準的 API 函數, 而且這些 API 函數都是單一的 , 在不同平臺下都是 用相同API函

10、數,方便在不同體系結構下進行代碼移植。Qt/Embedded通常為小型化, 低功耗, 便攜式的設備開發(fā)帶有圖形化界面的應用程序。 2.2 ARM-Linux 簡介Linux 原本被設計為桌面系統(tǒng) , 現在廣泛應用于服務器領域 , 而更大的影響在于 它正逐漸應用于嵌入式設備。最大的優(yōu)勢在于開發(fā)源代碼 , 任何人都可以對源碼進 行修改和剪裁以適應自己特定的應用 , 所以出現了很多種面向嵌入式應用的 Linux, 有RTLinux,UCLinux,還有目前可以支持面向 ARM核的Linux操作系統(tǒng) ARM Linux。 ARM Linux支持多種ARM芯片,帶有大部分通用設備的驅動,比如鍵盤、鼠標、

11、USB 接口等 , 開發(fā)者只需專注于開發(fā)自己系統(tǒng)特定驅動 , 即可使整個系統(tǒng)正常運行 , 大大 縮短了開發(fā)周期 , 降低了開發(fā)的復雜度。2.3 Qt/Embedded 進行應用開發(fā)的流程在一個嵌入式系統(tǒng)上發(fā)布一個 Qt/Embedded應用一般要經過在主機上調試應用 程序,編譯Qt/Embedded庫文件以適應硬件平臺,直到Qt/Embedded應用發(fā)布到設備上并且可靠運行后才算開發(fā)完成。2.4 交叉編譯環(huán)境的介紹與構建 交叉編譯就是在主機平臺上生成目標機器的可執(zhí)行代碼 , 在這里主機就是裝有Linux 操作系統(tǒng)的機器 , 上面安裝有交叉編譯環(huán)境 , 我們在主機上進行應用軟件的開發(fā)和編譯。目標

12、機是經過剪裁了的計算機系統(tǒng)(這里特指ARM平臺),上面具有引導程序(bootloader)、操作系統(tǒng)內核、根文件系統(tǒng),它們都被燒寫進ARM平臺的 flash 中。目標板與主機通過網線和串口線相連 , 最終在主機上把應用程序編譯成 ARM格式的二進制文件通過網線或串口傳輸到目標板上運行。主機與目標板的連接 圖如圖2所示。開發(fā)環(huán)境構建所需軟件開發(fā)包有:linux內核,linux-2.4.21-crus -1 -4 -3.tar;ARM 交叉編譯器 ,3.3.2.tar;Qt 系列軟件包 ,Qt-embedded -2.3.7.tar,Qt-x11 -2.3.2.tar,Qt-x11 -free -

13、3.1.2.tar;編譯鏈接工具 ,tmake-1.13.tar 等。這些工具均可從網上下載。把這些軟件包解壓安裝 ,在安裝時,應配 置兩套開發(fā)環(huán)境,一種是ARM體系的,另一種是X86體系的,這通過設置con figure 后的參數完成。注意在安裝時要設定環(huán)境變量 , 可通過在 /usr/local/etc 中將環(huán)境 變量寫入文件,這里建立Qte.sh(ARM體系)和Qtx86.sh(X86體系),在/root/bashrc 文件中設定別名 , 用 source 命令應用這些環(huán)境變量即可。以后直接在終端輸入別名 加載這些環(huán)境變量。在搭建開發(fā)環(huán)境時,為了方便使用,采用寫腳本文件的方式,創(chuàng)建了三個

14、腳本文件,tmake.sh,qt1.sh,qt2.sh這樣就能夠保證,一次寫入的命令多次使用,在使用腳本文件時要使用 source 命令。三、系統(tǒng)設計3.1 設計思路應用跨平臺的Qt圖形用戶界面應用程序開發(fā)框架設計圖形界面,將實驗箱上 的電位器作為信號輸入器件,電位器的值可以通過AD模塊轉換成數字值,將采集來的電位器值經算法濾波處理后用于電機調速,控制直流電機的運轉方向和運轉速 度,這樣就實現了通過電位器控制電機轉速和方向。電位器處于中間值時,電機停 止不轉,電位器順時針調大時電機順時針旋轉,且速度隨著電位器的旋轉而增加。 電位器向逆時針轉動調小時,電機逆時針旋轉,且速度隨著電位器旋轉的角度增

15、加。電位器轉到最大或最小值時,電機的速度應該達到最高速度。電 位器在中間位置時,電機不應該出現抖動情況。LINUX 操作系統(tǒng)AD轉換圖形顯示電位器S3C2410Qt界面PWM直流電機圖 3.1 系統(tǒng)整體結構圖3.2 系統(tǒng)硬件電路設計對直流電機進行調速和控制,需經過 AD模塊,在linux操作系統(tǒng)中,在電機 中加載AD程序后,掛載到實驗箱程序。電腦通過串口把執(zhí)行的程序命令發(fā)給 S3C44B0X 0處理器,在處理器中通過分析數據。手動調節(jié)AD模塊中電位器后,處理器收到相應信號,并發(fā)命令給電機,使電機的轉動做出相應的調整。復位電路:在系統(tǒng)中,復位電路主要完成系統(tǒng)的上電復位和系統(tǒng)在運行時用戶的按鍵復位

16、 功能。復位電路可由簡單的RC電路構成,也可以使用其他的相對較復雜但功能更 完善的電路。經使用證明RC復位電路復位邏輯是可靠的。工作原理如下:在系統(tǒng)上 電時,通過電阻R1向電容C1充電,當C1兩端的電壓未達到高電平的門限電壓 時,RESETS輸出為高電平,系統(tǒng)處于復位狀態(tài);當C1兩端的電壓未達到高電平的 門限電壓時,RESET端輸出為低電平,系統(tǒng)進入正常工作狀態(tài)。如圖7所示。圖3.2系統(tǒng)的復位電路時鐘電路:在S3C2410中的時鐘控制邏輯能夠產生 CPC所需的FCLK時鐘信號、AHB總線外圍設備所需的HCLK寸鐘信號,以及APB總線外圍設備所需的PCLK寸鐘信號。Locked Loops, P

17、LL),一個用于 FCLK HCLK和 S3C2410有兩個鎖相環(huán)(PhasePCLK另一個專門用于USB模塊(48MHz)。時鐘控制邏輯可以再不需要 PLL的 情況下產生慢速時鐘,并且可以通過軟件來控制時鐘與每個外圍模塊是連接還是斷開,從而降低功耗圖3.3 (a)RTC外部時鐘電路(b)RLL外部時鐘電路5)電機驅動電路:電機驅動電路采用L9110來對電機進行驅動,只要在 L9110的端口 6、7(IA、IB)輸入PWM&號,則在L9110的端口 1、4(0A、0B輸出較大的驅動電流對電機進行驅動。本次設計中采用 TOUT0俞入PWM波, GPB1輸入低電平,兩個輸出引腳構成PWM波,如果需

18、要進行電機的反轉,則使 TOUT(反相,然后是GPB1 俞出高3.3系統(tǒng)軟件設計圖形界面的設計主要應用到 QWidget類、QDial類,QPushButton類、QLabel、QTimer類等。前面幾個類都是圖形設計用到的類,QTimer類是一個與硬 件相關的類,在本設計中沒有采用多另加一個線程的方法,而是通過QTimer類實現對AD值的實時讀取和電機控制,這樣程序設計更簡潔,同時不影響數據的讀取 和PWM的控制。圖形界面和硬件同時工作時應用到定時器類QTimer,它提供當定時器觸發(fā)的時候發(fā)射一個信號的定時器,他提供只觸發(fā)一次的超時事件,QTimer類提供了定時器信號和單觸發(fā)定時器。它在內部

19、使用定時器事件來提供更通用的定時器。QTimer很容易使用:創(chuàng)建一個QTimer,使用start()來開始并且把它的timeout()連接到 適當的槽。當這段時間過去了,它將會發(fā)射timeout()信號。注意當QTimer的父對象被銷毀時,它也會被自動銷毀你也可以使用靜態(tài)的sin gleShot()函數來創(chuàng)建單觸發(fā)定時器。作為一個特殊情況,一旦窗口系統(tǒng)事件隊列中的所有事件都已經被處理完,一 個定時為0的QTimer就會到時間了。這也可以用來當提供迅速的用戶界面時來做 比較繁重的工作。將會被重復調用并且應該很快返回(通常在處理一個數據項之后) ,這樣 Qt 可以把事件傳送給窗口部件并且一旦它完成

20、這個工作就停止 這個定時器。這是在圖形用戶界面應用程序中實現繁重的工作的一個典型方法,現 在多線程可以在越來越多的平臺上使用,并且我們希望無效事件最終被線程替代。QTimer的精確度依賴于底下的操作系統(tǒng)和硬件。絕大多數平臺支持20毫秒的精確度,一些平臺可以提供更高的。如果 Qt 不能傳送定時器觸發(fā)所要求的數量, 它將會默默地拋棄一些。另一個使用QTimer的方法是為你的對象調用QObject:startTimer() 和在你的類中 (當然必須繼承 QObject) 重新實現 QObject:timerEvent() 事件處理器。缺點是 timerEvent() 不支持像單觸發(fā)定時器 或信號那樣

21、的高級水平。一些操作系統(tǒng)限制可能用到的定時器的數量, Qt 會盡力 在限制范圍內工作。啟動電開始機 ,電機加載成電機未加載功啟動界面AD值轉換為NPW參數啟動AD,Y控制電機AD加載成功AD未加載界面顯示圖 3.5 系統(tǒng)軟件流程圖四、測試結果將程序掛載后運行dcm_main.c,手動轉動實驗箱上AD莫塊的電位器k1, 直流電機會做出相應的變動,處理器將電位器轉動對應的電壓值和直流電機轉 動對應的pwm值通過實驗箱的串口發(fā)回到電腦的linux的minicom運行環(huán)境中。 電位器調到其對應的AD值為512時,直流電機停止轉動,當電位器順時針調動時 AD值大于電機正傳且調動越多電機轉速越快,當電位器順時針調動時AD值小于電機反傳且調動越多電機轉速越快,電機速度隨著電位器的旋轉而增加。電位器轉到 最大時,電機的速度達到最高速度。圖4.1系統(tǒng)測試圖五、總結一個學期嵌入式的嵌入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論