



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 基于Linux的C02激光雕刻系統(tǒng)步進(jìn)電機(jī)驅(qū)動(dòng)程序隨著嵌入式技術(shù)的不斷成熟,基于嵌入式系統(tǒng)編寫特制電路下的設(shè)備驅(qū)動(dòng)程序也越來(lái)越受到人們的青睞。在各種嵌入式操作系統(tǒng)中,嵌入式Linux是免費(fèi)的源代碼開(kāi)放軟件,可根據(jù)需要任意進(jìn)行剪裁。在嵌入式Linux開(kāi)發(fā)過(guò)程中需要為指定設(shè)備編寫和編譯驅(qū)動(dòng)程序,這與以往在PC機(jī)上的Linux驅(qū)動(dòng)開(kāi)發(fā)明顯不同,本文設(shè)計(jì)了基于S3C2440嵌入式Linux下激光雕刻系統(tǒng)的步進(jìn)電機(jī)驅(qū)動(dòng)程序。1 硬件系統(tǒng)的設(shè)計(jì) 步進(jìn)電機(jī)開(kāi)環(huán)控制系統(tǒng)主要由中央控制器、步進(jìn) 隨著嵌入式技術(shù)的不斷成熟,基于嵌入
2、式系統(tǒng)編寫特制電路下的設(shè)備驅(qū)動(dòng)程序也越來(lái)越受到人們的青睞。在各種嵌入式操作系統(tǒng)中,嵌入式Linux是免費(fèi)的源代碼開(kāi)放軟件,可根據(jù)需要任意進(jìn)行剪裁。在嵌入式Linux開(kāi)發(fā)過(guò)程中需要為指定設(shè)備編寫和編譯驅(qū)動(dòng)程序,這與以往在PC機(jī)上的Linux驅(qū)動(dòng)開(kāi)發(fā)明顯不同,本文設(shè)計(jì)了基于S3C2440嵌入式Linux下激光雕刻系統(tǒng)的步進(jìn)電機(jī)驅(qū)動(dòng)程序。1 硬件系統(tǒng)的設(shè)計(jì) 步進(jìn)電機(jī)開(kāi)環(huán)控制系統(tǒng)主要由中央控制器、步進(jìn)電機(jī)驅(qū)動(dòng)器、傳感器以及步進(jìn)電機(jī)四大部分組成。本系統(tǒng)采用基于ARM920t內(nèi)核的S3C244 0A微處理器作為控制系統(tǒng)的中央控制器,該芯片主頻400MHz,最高可達(dá)到53
3、3MHz,內(nèi)含多種設(shè)備接口,存儲(chǔ)器使用64MB的Nand Flash和64MB的SDRAM。圖l所示為控制系統(tǒng)框圖。2 系統(tǒng)的工作原理 本系統(tǒng)主要控制兩個(gè)兩相混合式步進(jìn)電機(jī),分別代表X軸和Y軸帶動(dòng)傳能光纖進(jìn)行激光雕刻。系統(tǒng)采用8路IO口進(jìn)行脈沖輸出,每4路接一個(gè)步進(jìn)電機(jī)驅(qū)動(dòng)器,通過(guò)功率放大后,進(jìn)入步進(jìn)電機(jī)的各項(xiàng)繞組。電機(jī)有半步、整步兩種工作模式,整步模式的步距角為18°,半步模式的步距角為09°,整步一周共200步。如:半步模式的兩步進(jìn)電機(jī)正轉(zhuǎn)脈沖為0x11,0x33,0x22,0x66,0x44,Oxcc,0x88,0x99;整步模式為
4、0x11,0x22,0x44,0x88,0x11,0x22,0x44,0x88,一個(gè)步進(jìn)電機(jī)運(yùn)作時(shí),只對(duì)脈沖時(shí)序的高或低4位操作,另外4位為0。而改變脈沖的順序,即可改變轉(zhuǎn)動(dòng)方向。在整個(gè)控制系統(tǒng)中,數(shù)據(jù)處理在Linux應(yīng)用程序中完成,步進(jìn)量傳遞給Linux驅(qū)動(dòng)程序后,由驅(qū)動(dòng)程序完成脈沖輸出。通過(guò)軟件來(lái)完成脈沖分配,可根據(jù)應(yīng)用系統(tǒng)的需要,隨時(shí)改變對(duì)步進(jìn)電機(jī)的控制。3 嵌入式Linux步進(jìn)電機(jī)驅(qū)動(dòng)程序的設(shè)計(jì) Linux操作系統(tǒng)將所有的設(shè)備(而不僅是存儲(chǔ)器里的文件)都看成文件,以操作文件的方式訪問(wèn)設(shè)備。應(yīng)用程序不能直接操作硬件,而是使用統(tǒng)一的接口函數(shù)調(diào)用硬件驅(qū)動(dòng)程
5、序。設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和硬件之間的接口。Linux設(shè)備驅(qū)動(dòng)與內(nèi)核接口可分為三大方面:a與系統(tǒng)啟動(dòng)代碼的接口對(duì)設(shè)備進(jìn)行初始化;b與內(nèi)核接口通過(guò)數(shù)據(jù)結(jié)構(gòu)fileoperrations來(lái)完成;c與設(shè)備的接口對(duì)設(shè)備進(jìn)行讀寫操作。 步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件。而脈沖信號(hào)的頻率和脈沖數(shù)是控制電機(jī)的兩個(gè)重要方面。本系統(tǒng)步進(jìn)電機(jī)4路脈沖輸出由硬件地址0x28000006的bit0bit3控制,bit0對(duì)應(yīng)MOTOR A+,bit1對(duì)應(yīng)MOTOR B+,bit2對(duì)應(yīng)MOTOR_A-,bit3對(duì)應(yīng)MOTOR_B-。這里針對(duì)整步模式下的步進(jìn)電
6、機(jī)進(jìn)行脈沖分配信號(hào),半步模式的步進(jìn)電機(jī)正轉(zhuǎn)導(dǎo)電狀態(tài)時(shí)的控制順序?yàn)锳+_A+B+_B+_B+A-_A-_一A-B-_B-,整步模式的步進(jìn)電機(jī)正轉(zhuǎn)導(dǎo)電狀態(tài)時(shí)的控制順序?yàn)锳+_B+_A-_B-。 因此在程序中需要通過(guò)編制脈沖分配信號(hào)來(lái)控制步進(jìn)電機(jī),并通過(guò)修改脈沖分配信號(hào)來(lái)實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)方向的控制。圖2是用軟件形成環(huán)形脈沖的流程圖。 系統(tǒng)中的步進(jìn)電機(jī)只響應(yīng)應(yīng)用程序傳送給驅(qū)動(dòng)的步進(jìn)量和部分參數(shù),只能順序地進(jìn)行控制操作,因此它可作為字符設(shè)備來(lái)進(jìn)行驅(qū)動(dòng)。在驅(qū)動(dòng)程序中,需要提供幾個(gè)操作函數(shù)的入口點(diǎn),分別為open、read、write、i
7、oet1等。而ioct1函數(shù)尤為重要,系統(tǒng)通過(guò)調(diào)用這個(gè)函數(shù)可以控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)。 在初始化函數(shù)中,會(huì)將驅(qū)動(dòng)程序的file operations結(jié)構(gòu)連同其主設(shè)備號(hào)一起向內(nèi)核進(jìn)行注冊(cè)。對(duì)于字符設(shè)備使用以下函數(shù)進(jìn)行注冊(cè):int register_chrdev(unsigned int major,const char*name,struct file_operations*fops);其中,unsigned int major為定義的主設(shè)備號(hào),const char*name為定義的設(shè)備名稱,這里把設(shè)備名宏定義為stepper。file_operations*fo
8、ps為定義的指針變量。申請(qǐng)控制步進(jìn)電機(jī)的端口用以下函數(shù)進(jìn)行調(diào)用:request_region(0x28000006, 1, const char*name);因?yàn)椴竭M(jìn)電機(jī)用到了IO端口,而在S3C2440中操作端口要用虛擬地址而非實(shí)際的物理地址,因此要修改內(nèi)核代碼。修改文件內(nèi)核源代碼中間的smdkc,該文件在linuxarcharmmach-s3c2440中,在結(jié)構(gòu)體static struct map_descsmdk_io_desc中添加一行數(shù)組元素0xd3000000,0x28000000,Ox01000000,DOMAIN_IO,0,1,0,0,則步進(jìn)電機(jī)的物理地址0x28000006對(duì)
9、應(yīng)的虛擬地址為0xd3000006,在驅(qū)動(dòng)程序中應(yīng)對(duì)這個(gè)地址進(jìn)行操作。 根據(jù)上面提到的步進(jìn)電機(jī)的脈沖分配信號(hào),定義它半步模式正轉(zhuǎn)脈沖為: unsigned char pulse_table= 0x11,0x33,0x22,0x66,0x44,Oxcc,0x88,0x99; 利用應(yīng)用程序傳遞給stepper ioct1的參數(shù)arg來(lái)判斷轉(zhuǎn)動(dòng)方向。編寫ioctl函數(shù)用來(lái)接收應(yīng)用程序?qū)τ诓竭M(jìn)電機(jī)的控制。以下是部分驅(qū)動(dòng)程序代碼:
10、0; 設(shè)備卸載與前面提到的設(shè)備注冊(cè)是相反的過(guò)程。當(dāng)從系統(tǒng)中卸載一個(gè)模塊時(shí),主設(shè)備號(hào)要得到釋放。這一操作可以調(diào)用以下函數(shù)進(jìn)行模塊清除: int unregister_chrdev(unsigned int major,const char*name); 首先,編譯步進(jìn)電機(jī)模塊,打開(kāi)內(nèi)核中driverscharKonfig文件,添加如下語(yǔ)句: Config STEPPER_MODULE、tristate"stepper module"、depends on ARCH_S3
11、C2440、help、stepper driver module。 在終端中運(yùn)行命令make menuconfig,進(jìn)入內(nèi)核配置主菜單,在DeviceDriverCharacter device菜單中看到剛才所添加的選項(xiàng)了,之后編譯為模塊方式。 其次,打開(kāi)內(nèi)核中driverscharMakefile文件,添加如下語(yǔ)句: 最后,回到內(nèi)核源代碼根目錄位置,執(zhí)行make modules,就可生成系統(tǒng)所需要的內(nèi)核模塊文件stepper moduleko了。至此,完成了步進(jìn)電機(jī)模塊驅(qū)動(dòng)的編譯。之后,便可使用insmod、rmmod命令分別對(duì)模塊進(jìn)行加載、卸載了。4 結(jié)論
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 蘇州大學(xué)附屬中學(xué)2024-2025學(xué)年第二學(xué)期普通高中半期考試高三物理試題含解析
- 山東菏澤市曹縣重點(diǎn)中學(xué)2025屆初三下學(xué)期入學(xué)考試化學(xué)試題試卷含解析
- 南陽(yáng)理工學(xué)院《景觀設(shè)計(jì)(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 宜賓學(xué)院《英語(yǔ)測(cè)試》2023-2024學(xué)年第一學(xué)期期末試卷
- 江蘇省江陰市澄西中學(xué)2024-2025學(xué)年初三下學(xué)期期末調(diào)研測(cè)試數(shù)學(xué)試題文試題含解析
- 遼寧省營(yíng)口市大石橋市水源九一貫制校2024-2025學(xué)年全國(guó)中考統(tǒng)一考試模擬試題(二)生物試題含解析
- 上海浦東新區(qū)2024-2025學(xué)年高三英語(yǔ)試題2月調(diào)研試題含解析
- 內(nèi)蒙古師范大學(xué)《廣播電視新聞采訪與報(bào)道》2023-2024學(xué)年第二學(xué)期期末試卷
- 湘潭醫(yī)衛(wèi)職業(yè)技術(shù)學(xué)院《中醫(yī)內(nèi)科護(hù)理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版農(nóng)資買賣合同書范文
- 2024年TWI培訓(xùn)課件(共50張)pptx
- 小學(xué)數(shù)學(xué)統(tǒng)計(jì)與概率課標(biāo)解讀及教學(xué)思考
- 桃園桃紅頸天牛綠色防控技術(shù)規(guī)程
- 職場(chǎng)健身知識(shí)講座
- 臥床病人床單整理與更換法-龔婕
- PCI患者的術(shù)后護(hù)理課件
- 2024年供應(yīng)鏈可持續(xù)性培訓(xùn)資料
- WS-T 10001-2023 疾病預(yù)防控制機(jī)構(gòu)實(shí)驗(yàn)室儀器設(shè)備配置和管理
- 成人住院患者跌倒評(píng)估與預(yù)防(團(tuán)體標(biāo)準(zhǔn))解讀
- 2024屆山西省重點(diǎn)中學(xué)中考適應(yīng)性考試化學(xué)試題含解析
- 通止規(guī)設(shè)計(jì)公差自動(dòng)計(jì)算表
評(píng)論
0/150
提交評(píng)論