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