基于嵌入式ARM+Linux平臺的直流電機調速控制系統(tǒng)的設計.docx_第1頁
基于嵌入式ARM+Linux平臺的直流電機調速控制系統(tǒng)的設計.docx_第2頁
基于嵌入式ARM+Linux平臺的直流電機調速控制系統(tǒng)的設計.docx_第3頁
基于嵌入式ARM+Linux平臺的直流電機調速控制系統(tǒng)的設計.docx_第4頁
基于嵌入式ARM+Linux平臺的直流電機調速控制系統(tǒng)的設計.docx_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

題 目 基于嵌入式arm+linux平臺的直流電機調速控制系統(tǒng) 基于嵌入式arm+linux平臺的直流電機調速控制系統(tǒng)的設計摘 要本設計基于北京博創(chuàng)興業(yè)科技有限公司開發(fā)的up-netarm2410-s嵌入式實驗平臺,它采用arm7tdmi 內核的三星s3c44b0x01 芯片,且采用redhatlinux9.0作為它的操作系統(tǒng)。設計了調速控制系統(tǒng),并實現(xiàn)驅動程序對直流電機的控制,電機的轉動情況會通過實驗箱上的ad模塊中電位器的旋轉不同而變化。在up-netarm2410-s嵌入式實驗平臺上的實驗結果表明系統(tǒng)運行正常、穩(wěn)定。關鍵詞:arm;linux;直流電機;驅動一、設計要求采用實驗箱上的電位器作為信號輸入器件,控制直流電機的運轉方向和運轉速度。電位器處于中間值時,電機停止不轉,電位器順時針調大時電機順時針旋轉,且速度隨著電位器的旋轉而增加。電位器向逆時針轉動調小時,電機逆時針旋轉,且速度隨著電位器旋轉的角度增加。電位器轉到最大或最小值時,電機的速度應該達到最高速度。電位器在中間位置時,電機不應該出現(xiàn)抖動情況。二、linux開發(fā)環(huán)境設置 1、建立工作目錄roothome# mkdir zgcroothome# cd zgc2、編寫程序源代碼在linux 下的文本編輯器有許多,常用的是vim 和xwindow 界面下的gedit 等,在本次開發(fā)過程中使用vim,我們可以是用下面的命令來編寫dcm_main.c 的源代碼,進入10_dcmotor目錄使用vi 命令來編輯代碼:root 10_dcmotor# vi dcm_main.c按“i”或者“a”進入編輯模式,將上面的代碼錄入進去,完成后按esc 鍵進入命令狀態(tài),再用命令“:wq”保存并退出。這樣我們便在當前目錄下建立了一個名為dcm_main.c 的文件。3、編寫makefile要使上面的dcm_main.c 程序能夠運行,我們必須要編寫一個makefile 文件,makefile 文件定義了一系列的規(guī)則,它指明了哪些文件需要編譯,哪些文件需要先編譯,哪些文件需要重新編譯等等更為復雜的命令。使用它帶來的好處就是自動編譯,你只需要敲一個“make”命令整個工程就可以實現(xiàn)自動編譯,當然我們本次實驗只有一個文件,它還不能體現(xiàn)出使用makefile 的優(yōu)越性,但當工程比較大文件比較多時,不使用makefile 幾乎是不可能的。下面是本次實驗用到的makefile 文件。cc = armv4l-unknown-linux-gcc#cc = gccldflags = -staticexec = nihaoobjs = hello.oall: $(exec)$(exec): $(objs)$(cc) $(ldflags) -o $ $(objs)clean:-rm -f $(exec) *.elf *.gdb *.o4、編譯應用程序在上面的步驟完成后,我們就可以在hello 目錄下運行“make”來編譯我們的程序了。如果進行了修改,重新編譯則運行:root10_dcmotor# make cleanroot10_dcmotor# make三、系統(tǒng)設計1、設計思路 根據設計要求,先分別對實驗箱上ad程序和電機程序進行調試并熟練,然后在電機主程序中加入ad模塊及線程,將ad模塊的電位器轉動角度轉換成的電壓幅度的1024倍作為電機轉動的pwm值。這樣即可以滿足設計要求。2、硬件流程框圖對直流電機進行調速和控制,需經過ad模塊,在linux操作系統(tǒng)中,在電機中加載ad程序后,掛載到實驗箱程序。電腦通過串口把執(zhí)行的程序命令發(fā)給s3c44b0x01處理器,在處理器中通過分析數(shù)據。手動調節(jié)ad模塊中電位器后,處理器收到相應信號,并發(fā)命令給電機,使電機的轉動做出相應的調整。硬件流程框圖如圖1所示。圖1硬件流程框圖3、軟件設計及調試 雖然實驗室的arm s3c2410開發(fā)箱已經搭建好開發(fā)環(huán)境,可是這一部還是必須得熟悉的,首先是bootloader的移植,然后再進行l(wèi)inux 內核移植。在宿主機的linux下需要搭建linux交叉編譯環(huán)境,用于應用程序的開發(fā)和編譯。將硬件系統(tǒng)設計好之后,必須開發(fā)、加載直流電機的驅動程序,驅動設備開發(fā)商都已經提供,只需要insmod到目標機上,即可編程操作這些設備。dcm_main.c程序中主要實現(xiàn)代碼:/*/int main(int argc, char *argv) float d; pthread_t th_com; void *retval; int i = 0;int status = 1;int setpwm = 0;int factor = dcm_tcntb0/1024; if(init_addevice()0) return -1; pthread_create(&th_com, null, commonitor, 0);/ad模塊線程if(dcm_fd=open(dcm_dev, o_wronly)0)printf(error opening %s devicen, dcm_dev);return 1;for(;) d=(float)getadresult(1)*3.3)/1024.0;printf(a%d=%8.4ft,i,d); if (d=1.8) d=d*1024.0-1.8*1024.0; setpwm =-d; else setpwm=0;/在中間范圍內電機靜止 ioctl(dcm_fd, dcm_ioctrl_setpwm, (setpwm * factor); delay(500); printf(setpwm = %d n, setpwm);pthread_join(th_com, &retval);close(dcm_fd);return 0;軟件流程框圖如圖2所示圖2 軟件流程框圖四、測試結果將程序掛載后運行dcm_main.c,手動轉動實驗箱上ad模塊的電位器k1,直流電機會做出相應的變動,處理器將電位器轉動對應的電壓值和直流電機轉動對應的pwm值通過實驗箱的串口發(fā)回到電腦的linux的minicom運行環(huán)境中。1、電位器調到其對應的電壓值大于1.8v時,直流電機順時針轉動,且電位器順時針調大時,電機速度隨著電位器的旋轉而增加。電位器轉到最大時,電機的速度達到最高速度。圖3 實驗箱上電機正轉時電位器轉動對應的電壓值和電機轉動對應的pwm值2、電位器調到其對應的電壓值小于0.5v時,直流電機逆時針轉動,電位器向逆時針轉動調小時,電機速度隨著電位器的旋轉而增加。電位器轉到最小值時,電機的速度達到最高速度。圖4 實驗箱上電機逆轉時電位器轉動對應的電壓值和電機轉動對應的pwm值3、電位器調到其對應的電壓值處于中間值時,電機停止不轉。圖5 實驗箱上電機靜止時電位器轉動對應的電壓值和電機轉動對應的pwm值參考文獻1 劉寶廷,程樹康,等步進電機及其驅動控制系統(tǒng)m哈爾濱:哈爾濱工業(yè)大學出版社1997 2 華清遠見嵌入式培訓中心嵌入式linux c語言應用程序設計m北京:人民郵電出版社20073 北京博創(chuàng)科技estc 培訓中心.2

溫馨提示

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

評論

0/150

提交評論