李 莉
(南京交通職業技術學院 電子信息工程學院,江蘇 南京 211188)
數字信號處理(Digital Signal Processing,DSP)是一種用來實現某種數字信號處理任務的專用處理器。該型處理器能夠進行模擬信號的高速采樣和模電信號轉換,并進行快速時頻處理。DSP在自動控制、信號處理等領域發揮了至關重要的作用。近年來,隨著機器人技術的飛速發展和市場需求不斷擴大,人們對機器人控制功能、精度和時效性方面的要求也越來越高。在機器人控制系統中大量采樣DSP處理器進行環境感知和機器人自身工作狀態控制正在變得越來越普遍。因此,在機器人系統中大量采用DSP處理平臺對各種信號進行高速處理和分析也變得非常迫切。為了提高DSP處理器的工作效率,有必要采用實時操作系統對DSP資源進行有效管理。DSP操作系統有專用和通用兩大類。專用操作系統性能穩定,但可移植性差。通用操作可移植性好,但一般都由商業公司開發維護,因此使用成本較高[1]。因此,本文設計了一種基于開源uC/OS II系統的DSP處理器接口驅動程序,在此基礎上能夠實現DSP的高效管理。
μC/OS-II是一款開源、實時性好、移植性好的多任務操作系統。μC/OS-II提供了完善的接口驅動框架,如圖1所示。

圖1 μC/OS-II接口驅動框架
其中,上層訪問抽象接口層對設備訪問操作進行了封裝,為上層應用提供了5個訪問接口,分別包括打開設備、讀和寫設備、設備控制和關閉設備。設備管理核心數據結構層通過為硬件設備分配設備名,從而確定相應設備的核心管理數據結構,最終定位到相應的設備驅動模塊。硬件設備驅動模塊層負責實際訪問硬件設備,實現了打開設備、讀和寫設備、設備控制和關閉設備接口的具體功能。DSP接口驅動程序的設計必須遵循μC/OS-II的驅動程序框架[2-3]。
DSP處理器的接口取決于處理器的類型,本文選擇為DSP處理器型號為TMS320LF2407A。該型處理器采用SPI接口。SPI是一種同步串行接口,能工作于主動和從動方式[4]。其接口電路示意如圖2所示。

圖2 SPI接口電路示意
DSP接口驅動的基本任務就是實現對SPI接口的訪問接口,然后基于SPI訪問接口和DSP核心控制器進行交互,完成相應的數字信號處理任務[5]。其基本思路框架如圖3所示。

圖3 DSP接口驅動設計思路示意
DSP接口驅動的代碼模塊如下。
2.2.1 UDFOpen
該接口負責打開DSP設備,具體包括DSP處理器初始化,存儲空間設置等。
2.2.2 UDFRead
該接口負責讀取DSP設備中指定存儲空間內的數據,具體包括DSP存儲器尋址和數據讀取。
2.2.3 UDFWrite
該接口負責將數據寫入DSP設備中指定存儲空間內,具體包括DSP存儲器尋址和寫數據。
2.2.4 UDFIoctrl
該接口負責控制DSP設備的運行狀態,具體包括DSP設備激活、掛起、可讀寫狀態控制等。
2.2.5 UDFClose
該接口負責控制DSP設備的關閉,具體包括DSP設備注銷流程實現。
為了驗證本文DSP驅動設計方法的有效性,將其運行于TMS320LF2407A處理器上,進行汽油機轉速信號(電磁感應模擬信號)采樣和FFT實驗。并將其結果和Matlab環境下的實驗結果進行比對[6]。
實驗環境搭建:對編寫的DSP驅動程序文件dsp.c和dsp.h文件進行編譯,并鏈接到uC/OS II內核的鏡像文件中。然后將其燒寫入TMS320LF2407A的固化存儲器中。汽油機轉速信號通過車載OBD信號采樣裝置來獲取。本文所用實驗車輛為長安福特2011款福克斯汽車。圖4所示為某一樣本集合。

圖4 某采樣樣本
對于DSP而言,信號處理速度是非常重要的指標[7]。圖5所示的是200次FFT轉換實驗的時間(對隨機選取的汽油機轉速信號)。

圖5 FFT實驗時間
整個DSP信號處理精度如表1所示。

表1 DSP信號處理精度結果
由表1可知,本文所提算法的平均正確率達到了98.4%,取得了較好的結果。
本文在uC/OS II系統上設計了一種型號為TMS320 LF2407A的DSP處理器驅動程序。該程序能夠實現數字信號的采樣和各種數字計算,實驗結果表明該驅動程序具有有效性。
[1]王保華,楊正才.基于ARM及CAN總線的汽車行駛記錄儀的開發[J].儀表技術與傳感器,2008(2):27-29.
[2]陳華銳,徐林杰.Linux下基于PCI接口的DSP驅動程序設計[J].計算機光盤軟件與應用,2012(4):172.
[3]張紹游,張貽雄.石江宏.基于μC/OS-Ⅲ的CC1120驅動程序設計[J].單片機與嵌入式系統應用,2013(1):42-45.
[4]徐海龍,邱建,王曉娜,等.μC/OS-Ⅱ的優化移植和設備驅動框架[J].計算機測量與控制,2012(9):2501-2503.
[5]何岸,林水生,李廣軍.μC/OS-Ⅱ的設備驅動程序管理模塊設計[J].電腦知識與技術(學術交流),2007(6):179-180.
[6]楊懷德,樸希南.基于SPI的SD卡驅動軟件設計[J].現代計算機(專業版),2012(4):76-80.
[7]范縝煜,董福慶,廖明棟.基于DSP的直流伺服電機驅動電路研究與分析[J].國外電子測量技術,2013(8):77-80.