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