基于嵌入式ARM Linux步進(jìn)電機驅動(dòng)程序的設計
要用操作所用到的IO口,就要設置他們所用到的寄存器,我們需要調用一些現成的函數或者宏,比如:
/*每個(gè)port有16個(gè)引腳,而每個(gè)引腳由兩位來(lái)配置,所以你看到32×N。 32表示一個(gè)port的配置寄存器,而N代表是第幾個(gè)端口。而這里的offset表示的是第幾個(gè)引腳。*/本文引用地址:http://dyxdggzs.com/article/151484.htm
S3C2440開(kāi)發(fā)板中GPIO的許多引腳是和地址線(xiàn)、數據線(xiàn)、串口線(xiàn)等引腳復用的。所以我們必須對GPIO進(jìn)行重新定義和配置。一般來(lái)說(shuō),寫(xiě)驅動(dòng)可以在內核中找相近的驅動(dòng)程序,以它為模板進(jìn)行開(kāi)發(fā),有時(shí)也要從零開(kāi)始,這次作者在內核Linux-2.6.13-qq2440\kernel2.6.13\drivers\char中的qq2440 led.c進(jìn)行修改。
最后定義了file_operations和各種API函數,配置了init和exit函數以及module_exit和module_init。
驅動(dòng)開(kāi)發(fā)完后,要進(jìn)行測試。把編寫(xiě)好的驅動(dòng)程序在PC機上進(jìn)行交叉編譯。然后用命令#insmod stepper.ko加載模塊到內核中,通過(guò)命令#rmmod stepper.ko可以卸載模塊。用mknod/dev/stepper 1000 0建立與驅動(dòng)程序相應的設備節點(diǎn)。編寫(xiě)相應的應用程序。在應用程序中打開(kāi)步進(jìn)電機的設備文件,通過(guò)調用ioctl(fd,1dir,O),運行應用程序,查看步進(jìn)電機的轉向。
3 結論
本文在S3C2440開(kāi)發(fā)板下實(shí)現了步進(jìn)電機的控制。給出了簡(jiǎn)單的驅動(dòng)程序,實(shí)驗結果表明驅動(dòng)運行正常、穩定。但對于實(shí)現傳能激光雕刻的圖形及灰度雕刻,還有待于進(jìn)一步的完善。
評論