利用多線程思想實(shí)現(xiàn)單片機(jī)系統(tǒng)的偽并行處理
如果選用20兆的DSP來實(shí)現(xiàn)控制功能,步進(jìn)電機(jī)最快的打拍速度為40us---60us,則有下面的計(jì)算結(jié)果,,取1/4,即10us產(chǎn)生一中斷,在中斷里查詢61個(gè)對(duì)象。20兆DSP單條指令的執(zhí)行時(shí)間大約為50ns在一次中斷內(nèi)可執(zhí)行的語句數(shù)=10us/50ns=200條,如果在分給61個(gè)對(duì)象,每個(gè)對(duì)象所分得的指令數(shù)僅為3條,已經(jīng)不夠用了,即使選擇60兆的DSP,說分指令也只是9條,若以犧牲打拍的靈活性為代價(jià),以60us為已中斷。則每個(gè)對(duì)象所分得的指令數(shù)僅為36條勉強(qiáng)夠用,如果所控制的對(duì)象再多的話,軟件編程的靈活性將進(jìn)一步被壓縮,
下面提出了一種擴(kuò)展的多線程模擬方法,如圖3
圖3
s1,s2為系統(tǒng)運(yùn)行的基準(zhǔn)時(shí)間,M1.1 為第一對(duì)象組中第一對(duì)象。M1.2 為第一對(duì)象組中第二對(duì)象。
這種擴(kuò)展的多線程模擬方法仍將系統(tǒng)時(shí)間化成多個(gè)時(shí)間片,與上面不同的是有幾個(gè)線程(對(duì)象)組成一個(gè)線程組,共享同一個(gè)時(shí)間片,例如:當(dāng)系統(tǒng)運(yùn)行到第一次基準(zhǔn)時(shí)間的第一個(gè)時(shí)間片時(shí),由共享時(shí)間片的第一個(gè)線程占用,當(dāng)系統(tǒng)運(yùn)行到第2次基準(zhǔn)時(shí)間的第1個(gè)時(shí)間片時(shí),由共享時(shí)間片的第2個(gè)線程占用,如此類推,這種擴(kuò)展模式可以靈活的掌控線程與所用時(shí)間的比例,但是這是以犧牲運(yùn)行時(shí)間為代價(jià)的。
結(jié)論:本文對(duì)單片機(jī)控制系統(tǒng)的編程思想作出了擴(kuò)展,將本屬于計(jì)算機(jī)高級(jí)語言編程思想的多線程編程移植到單片機(jī)控制系統(tǒng)中。這種方法使單片機(jī)控制系統(tǒng)可工作于對(duì)系統(tǒng)運(yùn)行速度要求很高的系統(tǒng)中,并且對(duì)其他的高級(jí)語言編程思想,如對(duì)事件句柄的處理等向單片機(jī)控制系統(tǒng)移植起了示范作用。
參考文獻(xiàn)
[1]柳永新主編。Windows c 程序設(shè)計(jì)入門與提高。清華大學(xué)出版社,1999,6。
[2]李朝青主編。單片機(jī)原理及接口技術(shù),1994。
評(píng)論