基于網(wǎng)絡(luò )化技術(shù)的電機控制系統設計
3)I/O端口 作為通用數字I/O使用時(shí),所有AVRI/O端口都具有真正的讀-修改-寫(xiě)功能。輸出緩沖器具有對稱(chēng)的驅動(dòng)能力,可以輸出或吸收大電流,直接驅動(dòng)LED。
4)SPI串行外設接口 串行外設接口SPI允許ATmegal28和外設之間進(jìn)行高速的同步數據傳輸。主機和從機之間的SPI連接如圖6所示。本文引用地址:http://dyxdggzs.com/article/173145.htm
5)16位定時(shí)器/計時(shí)器 16位的T/C可以實(shí)現精確的程序定時(shí)、波形產(chǎn)生和信號測量。T/Cl、T/C3的普通模式、CTC模式、快速PWM模式、相位修正PWM模式與T/C0、T/C2相同。
2 系統軟件設計
嵌入式電機控制系統在軟件設計上分為主機軟件設計與從機軟件設計。主機軟件設計主要分為主機的SPI驅動(dòng)程序和主機通信程序。
從程序結構角度而言,設備驅動(dòng)程序是一組由內核中的相關(guān)子例程和數據組成的I/O設備軟件接口,它的任務(wù)就是向系統提供接口函數。因此每種文件系統或設備都有自己的接口函數,這個(gè)函數就是一個(gè)fileoperations數據結構,結構中的成份幾乎全是函數指針。當內核需要對某個(gè)設備進(jìn)行特殊的操作時(shí),它就調用相應的接口函數即驅動(dòng)例程。這就使得控制從用戶(hù)進(jìn)程轉移到了驅動(dòng)例程,當驅動(dòng)例程完成控制又返回至用戶(hù)進(jìn)程。用戶(hù)態(tài)的程序使用內核提供的標準系統調用來(lái)與內核通訊,當每個(gè)系統調用被使用時(shí),內核就轉到相應的設備驅動(dòng)例程來(lái)操縱。
調用基本接口函數都需要驅動(dòng)程序的fileoperations結構成員指向open(),read(),write(),release()等函數,實(shí)現了xxx_fops結構體內的各個(gè)入口點(diǎn)函數后,編寫(xiě)設備驅動(dòng)程序初始化函數,并在內核啟動(dòng)時(shí)注冊此函數,完成硬件設備的初始化設置。初始化程序片斷如下:
voidinitexxxdevice(viod){
/檢查硬件設備是否存在,如果存在進(jìn)行硬件設備內部寄存器初始化
if(result=registerchrdev(254,xxxdevice,xxxefops))
printk(Error:%dinitxxx_device()can'tgetMajorln,result);
}
設備初始化函數中調用函數registerchrdev()來(lái)完成注冊字符,函數形式如下:
intregisterchrdev(unsignedintmajor,constchar*name,structfileoperations*fop);
fops是指向實(shí)現的fileoperations結構體的操作指針。根據這些參數,采用如下命令,在/dev下創(chuàng )建該設備文件名。
mknod/dev/xxxdevicec2540。
主機通信程序流程如圖7所示。MEGAl28從機程序的流程圖如圖8所示。
3 結束語(yǔ)
該系統設計是對嵌入式技術(shù)與理論的拓展和應用,是對NETCON網(wǎng)絡(luò )化控制系統的升級與改進(jìn),實(shí)現了對電機控制系統實(shí)時(shí)監控多路電機的狀態(tài),并且可以控制任一路電機的轉速與相位。實(shí)現了單片機與ARM系列處理器之間的通信,解決了利用ARM處理器實(shí)現電機控制CPU工作效率低的問(wèn)題。該方案經(jīng)過(guò)測試應用效果良好,大大提高了CPU的工作效率。但電機的測速精度還有待進(jìn)一步提高,PWM調速范圍有待進(jìn)一步加大,還需進(jìn)一步優(yōu)化程序,提高整個(gè)系統的實(shí)時(shí)性。
評論