李 莉
(南京交通職業(yè)技術(shù)學(xué)院 電子信息工程學(xué)院,江蘇 南京 211188)
數(shù)字信號處理(Digital Signal Processing,DSP)是一種用來實現(xiàn)某種數(shù)字信號處理任務(wù)的專用處理器。該型處理器能夠進行模擬信號的高速采樣和模電信號轉(zhuǎn)換,并進行快速時頻處理。DSP在自動控制、信號處理等領(lǐng)域發(fā)揮了至關(guān)重要的作用。近年來,隨著機器人技術(shù)的飛速發(fā)展和市場需求不斷擴大,人們對機器人控制功能、精度和時效性方面的要求也越來越高。在機器人控制系統(tǒng)中大量采樣DSP處理器進行環(huán)境感知和機器人自身工作狀態(tài)控制正在變得越來越普遍。因此,在機器人系統(tǒng)中大量采用DSP處理平臺對各種信號進行高速處理和分析也變得非常迫切。為了提高DSP處理器的工作效率,有必要采用實時操作系統(tǒng)對DSP資源進行有效管理。DSP操作系統(tǒng)有專用和通用兩大類。專用操作系統(tǒng)性能穩(wěn)定,但可移植性差。通用操作可移植性好,但一般都由商業(yè)公司開發(fā)維護,因此使用成本較高[1]。因此,本文設(shè)計了一種基于開源uC/OS II系統(tǒng)的DSP處理器接口驅(qū)動程序,在此基礎(chǔ)上能夠?qū)崿F(xiàn)DSP的高效管理。
μC/OS-II是一款開源、實時性好、移植性好的多任務(wù)操作系統(tǒng)。μC/OS-II提供了完善的接口驅(qū)動框架,如圖1所示。
圖1 μC/OS-II接口驅(qū)動框架
其中,上層訪問抽象接口層對設(shè)備訪問操作進行了封裝,為上層應(yīng)用提供了5個訪問接口,分別包括打開設(shè)備、讀和寫設(shè)備、設(shè)備控制和關(guān)閉設(shè)備。設(shè)備管理核心數(shù)據(jù)結(jié)構(gòu)層通過為硬件設(shè)備分配設(shè)備名,從而確定相應(yīng)設(shè)備的核心管理數(shù)據(jù)結(jié)構(gòu),最終定位到相應(yīng)的設(shè)備驅(qū)動模塊。硬件設(shè)備驅(qū)動模塊層負(fù)責(zé)實際訪問硬件設(shè)備,實現(xiàn)了打開設(shè)備、讀和寫設(shè)備、設(shè)備控制和關(guān)閉設(shè)備接口的具體功能。DSP接口驅(qū)動程序的設(shè)計必須遵循μC/OS-II的驅(qū)動程序框架[2-3]。
DSP處理器的接口取決于處理器的類型,本文選擇為DSP處理器型號為TMS320LF2407A。該型處理器采用SPI接口。SPI是一種同步串行接口,能工作于主動和從動方式[4]。其接口電路示意如圖2所示。
圖2 SPI接口電路示意
DSP接口驅(qū)動的基本任務(wù)就是實現(xiàn)對SPI接口的訪問接口,然后基于SPI訪問接口和DSP核心控制器進行交互,完成相應(yīng)的數(shù)字信號處理任務(wù)[5]。其基本思路框架如圖3所示。
圖3 DSP接口驅(qū)動設(shè)計思路示意
DSP接口驅(qū)動的代碼模塊如下。
2.2.1 UDFOpen
該接口負(fù)責(zé)打開DSP設(shè)備,具體包括DSP處理器初始化,存儲空間設(shè)置等。
2.2.2 UDFRead
該接口負(fù)責(zé)讀取DSP設(shè)備中指定存儲空間內(nèi)的數(shù)據(jù),具體包括DSP存儲器尋址和數(shù)據(jù)讀取。
2.2.3 UDFWrite
該接口負(fù)責(zé)將數(shù)據(jù)寫入DSP設(shè)備中指定存儲空間內(nèi),具體包括DSP存儲器尋址和寫數(shù)據(jù)。
2.2.4 UDFIoctrl
該接口負(fù)責(zé)控制DSP設(shè)備的運行狀態(tài),具體包括DSP設(shè)備激活、掛起、可讀寫狀態(tài)控制等。
2.2.5 UDFClose
該接口負(fù)責(zé)控制DSP設(shè)備的關(guān)閉,具體包括DSP設(shè)備注銷流程實現(xiàn)。
為了驗證本文DSP驅(qū)動設(shè)計方法的有效性,將其運行于TMS320LF2407A處理器上,進行汽油機轉(zhuǎn)速信號(電磁感應(yīng)模擬信號)采樣和FFT實驗。并將其結(jié)果和Matlab環(huán)境下的實驗結(jié)果進行比對[6]。
實驗環(huán)境搭建:對編寫的DSP驅(qū)動程序文件dsp.c和dsp.h文件進行編譯,并鏈接到uC/OS II內(nèi)核的鏡像文件中。然后將其燒寫入TMS320LF2407A的固化存儲器中。汽油機轉(zhuǎn)速信號通過車載OBD信號采樣裝置來獲取。本文所用實驗車輛為長安福特2011款??怂蛊?。圖4所示為某一樣本集合。
圖4 某采樣樣本
對于DSP而言,信號處理速度是非常重要的指標(biāo)[7]。圖5所示的是200次FFT轉(zhuǎn)換實驗的時間(對隨機選取的汽油機轉(zhuǎn)速信號)。
圖5 FFT實驗時間
整個DSP信號處理精度如表1所示。
表1 DSP信號處理精度結(jié)果
由表1可知,本文所提算法的平均正確率達(dá)到了98.4%,取得了較好的結(jié)果。
本文在uC/OS II系統(tǒng)上設(shè)計了一種型號為TMS320 LF2407A的DSP處理器驅(qū)動程序。該程序能夠?qū)崿F(xiàn)數(shù)字信號的采樣和各種數(shù)字計算,實驗結(jié)果表明該驅(qū)動程序具有有效性。
[1]王保華,楊正才.基于ARM及CAN總線的汽車行駛記錄儀的開發(fā)[J].儀表技術(shù)與傳感器,2008(2):27-29.
[2]陳華銳,徐林杰.Linux下基于PCI接口的DSP驅(qū)動程序設(shè)計[J].計算機光盤軟件與應(yīng)用,2012(4):172.
[3]張紹游,張貽雄.石江宏.基于μC/OS-Ⅲ的CC1120驅(qū)動程序設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,2013(1):42-45.
[4]徐海龍,邱建,王曉娜,等.μC/OS-Ⅱ的優(yōu)化移植和設(shè)備驅(qū)動框架[J].計算機測量與控制,2012(9):2501-2503.
[5]何岸,林水生,李廣軍.μC/OS-Ⅱ的設(shè)備驅(qū)動程序管理模塊設(shè)計[J].電腦知識與技術(shù)(學(xué)術(shù)交流),2007(6):179-180.
[6]楊懷德,樸希南.基于SPI的SD卡驅(qū)動軟件設(shè)計[J].現(xiàn)代計算機(專業(yè)版),2012(4):76-80.
[7]范縝煜,董福慶,廖明棟.基于DSP的直流伺服電機驅(qū)動電路研究與分析[J].國外電子測量技術(shù),2013(8):77-80.