李智勇等
摘 要: 數(shù)字信號(hào)控制器具有數(shù)字信號(hào)處理器和微控制器的優(yōu)點(diǎn),在現(xiàn)代自動(dòng)控制、數(shù)據(jù)采集系統(tǒng)中占據(jù)著重要的地位,TMS320F28335作為目前最主流的數(shù)字信號(hào)控制器,在實(shí)際工程中被廣泛的使用。目前該處理器存在著程序設(shè)計(jì)周期長(zhǎng),程序設(shè)計(jì)過(guò)程復(fù)雜等問(wèn)題。采用模型化設(shè)計(jì)的DSP嵌入式系統(tǒng)程序開發(fā)方法能很好地解決這個(gè)問(wèn)題。以設(shè)計(jì)一個(gè)基于DSP的音頻數(shù)據(jù)采集系統(tǒng)為例,通過(guò)將CCS軟件和Matlab/Simulink進(jìn)行有機(jī)的結(jié)合,對(duì)模型進(jìn)行圖形化界面配置,最終實(shí)現(xiàn)目標(biāo)處理器程序代碼的自動(dòng)生成、下載、調(diào)試和運(yùn)行,從而快速地實(shí)現(xiàn)音頻信號(hào)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)。
關(guān)鍵詞: TMS320F28335; 數(shù)據(jù)采集系統(tǒng); Matlab/Simulink; 模型化設(shè)計(jì)
中圖分類號(hào): TN912?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)21?0011?03
Fast design of audio signal acquisition system based on DSP modeling design
LI Zhiyong, WANG Fei, ZHU Qiang
(Chongqing Key Laboratory of Signal and Information Processing, Chongqing University of Posts and Telecommunications, Chongqing 400065, China)
Abstract: The digital signal controller has the advantages from digital signal processor and microcontroller, which has played the important role in modern automatic control and data acquisition system. TMS320F28335 as the mainstream digital signal controller is widely used in practical engineering. Currently, this processor has the problems of long period program design and complicated program design process. The program development method of DSP embedded system with modeling design can solve these problems better. Taking design a DSP?based audio signal acquisition system as an instance, the graphic interface of the model is configured by combining CCS software with Matlab/Simulink greatly. The automatic generation, downloading, debugging and operation of the program codes in the target processor are realized, and the design of this audio signal acquisition system can be implemented fast.
Keywords: TMS320F28335; data acquisition system; Matlab/Simulink; modeling design
0 引 言
數(shù)字信號(hào)處理器(Digital Signal Processor)作為一種專用的高性能處理器,在通信、電力、自動(dòng)控制等領(lǐng)域發(fā)揮著舉足輕重的作用。工程師進(jìn)行DSP程序設(shè)計(jì)時(shí)通常使用兩種方法:一種是通過(guò)建立常規(guī)的系統(tǒng)工程,編寫程序代碼的方式;另外一種是使用半圖形化的DSP/BIOS或SYS/BIOS對(duì)DSP進(jìn)行程序設(shè)計(jì)。第一種方法的設(shè)計(jì)過(guò)程太過(guò)復(fù)雜,工程師通常都需要查閱大量技術(shù)文檔才能完成相關(guān)控制寄存器的配置。此外,在進(jìn)行多任務(wù)設(shè)計(jì)時(shí),工程師還要考慮程序的結(jié)構(gòu)問(wèn)題。第二種方法針對(duì)前一種方法的缺點(diǎn)進(jìn)行了一定改進(jìn),減少了一定的程序設(shè)計(jì)量,工程師也不需要再去組織程序的結(jié)構(gòu),但還是要大量的編寫程序代碼,這些現(xiàn)象導(dǎo)致在實(shí)際工程應(yīng)用中,工程設(shè)計(jì)進(jìn)度緩慢,設(shè)計(jì)方法復(fù)雜。基于模型化快速DSP程序開發(fā)方法的出現(xiàn)使得這類問(wèn)題得到了解決。
基于模型設(shè)計(jì)方法是通過(guò)將Matlab/Simulink和DSP編程軟件有機(jī)地結(jié)合起來(lái)使用。這樣,工程師能夠在Matlab中的Simulink工具中進(jìn)行系統(tǒng)原型設(shè)計(jì)、自動(dòng)代碼生成和嵌入式系統(tǒng)開發(fā)。利用這樣一種簡(jiǎn)單快捷的設(shè)計(jì)方法,工程師不僅可以對(duì)系統(tǒng)設(shè)計(jì)方案進(jìn)行快速驗(yàn)證,分析方案的可行性,也可以快速對(duì)數(shù)字信號(hào)處理算法進(jìn)行評(píng)估,從而在短時(shí)間里完成系統(tǒng)設(shè)計(jì)、算法構(gòu)思到代碼的實(shí)現(xiàn)。這樣,工程師就可以將主要精力放在算法的研究,而不是瑣碎的程序代碼設(shè)計(jì)上。這就加快了系統(tǒng)軟硬件的開發(fā)速度,降低了工程師的入門門檻;解決了DSP嵌入式工程師既要有深厚的理論知識(shí)積累,又要有熟練的嵌入式編程經(jīng)驗(yàn)的難題。因此,這樣一種基于模型化的設(shè)計(jì)可以在實(shí)際工程設(shè)計(jì)中被廣泛使用。
1 建立音頻數(shù)據(jù)采集系統(tǒng)模型
為了驗(yàn)證這樣一種方法,建立了一個(gè)音頻數(shù)據(jù)采集系統(tǒng)的模型,以這種快速簡(jiǎn)單的模型化設(shè)計(jì)方法來(lái)實(shí)現(xiàn)這個(gè)系統(tǒng)的功能。在開始設(shè)計(jì)之前需要設(shè)置一些環(huán)境變量,將CCS軟件和Matlab軟件有機(jī)結(jié)合起來(lái),配置的主要工作就是在系統(tǒng)中指定相應(yīng)軟件的工作路徑,并設(shè)置好仿真器配置文件。
完成了相關(guān)的配置之后,打開Matlab的Simulink工具。新建一個(gè)名為SAMPLE_SYSTEM的模型文件,選擇器件庫(kù)中的“Embedded Coder”→“Embedded Targets” →“Processors” →“Texas Instruments C2000”,然后選擇C28x3x模塊,從這個(gè)庫(kù)中添加異步通信接口(SCI)發(fā)送模塊和模擬/數(shù)字信號(hào)轉(zhuǎn)換模塊(ADC)到模型設(shè)計(jì)文件中。由于此次設(shè)計(jì)的系統(tǒng)是一個(gè)多點(diǎn)數(shù)據(jù)采集系統(tǒng),各個(gè)數(shù)據(jù)采集模塊會(huì)分開工作,最后共用一個(gè)SCI串口將數(shù)據(jù)上傳到上位機(jī),選中“Simulink”→“Signal Routing”,將其中的復(fù)用器MUX拖入模型中,通過(guò)這個(gè)復(fù)用器,多個(gè)ADC的模塊就可以共用一個(gè)通信接口于上位機(jī)完成通信。
由于F28335的片內(nèi)ADC采用的數(shù)據(jù)格式是12位的無(wú)符號(hào)整型,而SCI接口通常采用的是8位的字符型數(shù)據(jù),這兩者的數(shù)據(jù)并不匹配,因此需要對(duì)ADC采集到的數(shù)據(jù)進(jìn)行一定的處理之后才能交給串口發(fā)送出去,而Simulink中并沒(méi)有現(xiàn)成的模塊,但是提供了自定義模塊的功能,可以選中“Simulink” →“User?Define Functions”將用戶自定義模塊添加到系統(tǒng)模型中。通過(guò)對(duì)這個(gè)自定義模塊的編輯,實(shí)現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,使數(shù)據(jù)可以被SCI接口正常的接收和發(fā)送。
添加所需要的模塊之后,將各個(gè)模塊接口按功能需求連接起來(lái),ADC的三個(gè)通道分別連接到了各自的數(shù)據(jù)類型轉(zhuǎn)換模塊的輸入口,這些模塊的輸出口和SCI模塊通過(guò)復(fù)用器MUX進(jìn)行連接,實(shí)際的連接情況如圖1所示。
2 系統(tǒng)模型配置
為了實(shí)現(xiàn)各個(gè)模塊的正常工作,需要對(duì)各個(gè)模塊的參數(shù)進(jìn)行配置。這一步的實(shí)質(zhì)其實(shí)就是通過(guò)圖形化的界面完成對(duì)DSP相應(yīng)的控制寄存器的配置;因此,工程師不必再查閱技術(shù)文檔即可完成相關(guān)的寄存器配置。
首先對(duì)ADC模塊進(jìn)行設(shè)置,將使用的ADC模塊設(shè)置為ADC_B,并且開啟ADC_B的3個(gè)轉(zhuǎn)換通道。在這里還可以配置ADC的采樣頻率和觸發(fā)方式。在本設(shè)計(jì)中將ADC采樣頻率設(shè)置為0.000 1 s,將觸發(fā)方式設(shè)置為軟件觸發(fā)。SCI接口的配置和ADC的配置基本類似,這里不再贅述。ADC的配置界面如圖2所示。
值得一提的是,在配置ADC時(shí)可以選擇是否啟用DMA(Direct Memory Access)傳輸ADC采集到的數(shù)據(jù)。DMA的使用可以使CPU不再管理ADC的運(yùn)行,也就不需要花費(fèi)大量的時(shí)間等待模/數(shù)轉(zhuǎn)換的完成,CPU只在需要使用數(shù)據(jù)時(shí),才到指定的地址中獲得相關(guān)數(shù)據(jù),這使得處理器有更多的時(shí)間去執(zhí)行其他任務(wù),這種方法在DSP程序設(shè)計(jì)中被廣泛使用。但是,DMA控制器的配置非常繁瑣,很多工程師對(duì)此只能望而卻步,放棄這一對(duì)系統(tǒng)性能改善有明顯提升的方法。而在基于模型化的設(shè)計(jì)中,工程師只需選擇使用DMA就可以完成DMA的配置,這對(duì)提升系統(tǒng)性能和縮短程序的開發(fā)周期而言,有著重要的作用。
用戶自定義模塊的功能是實(shí)現(xiàn)數(shù)據(jù)類型的轉(zhuǎn)換,將ADC采集到的16位無(wú)符號(hào)整形數(shù)據(jù)轉(zhuǎn)換成8位的字符型數(shù)據(jù),通過(guò)編寫這個(gè)模塊的C語(yǔ)言控制程序就可以實(shí)現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換的功能。用鼠標(biāo)雙擊這個(gè)自定義模塊就可以進(jìn)入這個(gè)模塊的設(shè)置窗口(如圖3所示),在這里,工程師可以完成模塊功能的設(shè)計(jì)。該模塊將轉(zhuǎn)換完成的數(shù)據(jù)封裝到一個(gè)包含了相關(guān)信息的數(shù)據(jù)幀中,從模塊的輸出口送出。
在實(shí)際中,工程師也完全可以根據(jù)自己的實(shí)際情況,將一些更有效的算法設(shè)計(jì)成模塊,在移植這種模塊化的程序時(shí),不做任何修改就可以使用。
最后就是對(duì)目標(biāo)平臺(tái)進(jìn)行設(shè)置,這里將目標(biāo)平臺(tái)設(shè)置為TMS320F28335,時(shí)鐘頻率設(shè)置為150 MHz,這樣就完成了對(duì)整個(gè)系統(tǒng)的設(shè)計(jì)。整個(gè)過(guò)程中,沒(méi)有對(duì)TMS320F28335的任何一個(gè)寄存器進(jìn)行設(shè)置,也沒(méi)有查閱任何參考文檔。這樣的設(shè)計(jì)方式無(wú)疑是非常實(shí)用的。
3 系統(tǒng)實(shí)際測(cè)試
配置好模型設(shè)計(jì)文件之后,點(diǎn)擊模型設(shè)計(jì)窗口右上角的建立模型按鈕,此時(shí),Matlab就開始編譯文件,并將編譯過(guò)程的相關(guān)信息在Matlab的控制臺(tái)上顯示出來(lái),編譯結(jié)束之后生成一個(gè).OUT可執(zhí)行文件,將這個(gè)可執(zhí)行文件通過(guò)計(jì)算機(jī)系統(tǒng)的控制臺(tái)自動(dòng)下載到DSP芯片中。程序文件下載過(guò)程中計(jì)算機(jī)系統(tǒng)的控制臺(tái)提示信息如圖4所示。
程序下載完成之后,首先將音頻信號(hào)接到一個(gè)音頻信號(hào)預(yù)處理的硬件上,該硬件電路將輸入的音頻信號(hào)限制在0~3.3 V之間,并對(duì)輸入信號(hào)做了抗混淆濾波處理,處理之后的信號(hào)就輸入到DSP的信號(hào)采集接口。然后,將硬件電路的串口和計(jì)算機(jī)串口連接起來(lái),并打開計(jì)算機(jī)上的串口監(jiān)視軟件,按照相應(yīng)的通信協(xié)議完成串口的設(shè)置。確認(rèn)設(shè)置之后,串口就顯示出了接收到的數(shù)據(jù),串口監(jiān)控軟件接收到的數(shù)據(jù)如圖5所示。通過(guò)數(shù)據(jù)顯示,監(jiān)控軟件不斷地接收到采集系統(tǒng)發(fā)送來(lái)的數(shù)據(jù),數(shù)據(jù)被成功采集到計(jì)算機(jī)中。
為了更為直觀地查看采集到的數(shù)據(jù)波形,將串口數(shù)據(jù)監(jiān)視軟件關(guān)閉,打開一個(gè)串口數(shù)據(jù)的波形顯示軟件,就可以顯示出采集到音頻信號(hào)的時(shí)域波形。該軟件顯示采集到的音頻信號(hào)時(shí)域波形如圖6所示。由于在測(cè)試時(shí)只對(duì)ADC的A路輸入了信號(hào),而其余兩路都沒(méi)有信號(hào)輸入,所以該軟件只顯示出了A路信號(hào)的時(shí)域波形,這與串口數(shù)據(jù)監(jiān)視軟件接收到的數(shù)據(jù)是匹配的。這就說(shuō)明了這種基于模型化的DSP程序快速設(shè)計(jì)方法是易用可行的。
4 結(jié) 論
設(shè)計(jì)一個(gè)基于DSP的音頻信號(hào)數(shù)據(jù)采集系統(tǒng),通常需要編寫大量的控制寄存器,而工程師無(wú)法記憶這么多寄存器的配置方式,只能查閱數(shù)據(jù)手冊(cè),一旦配置錯(cuò)誤,很難再找出問(wèn)題,這就導(dǎo)致了開發(fā)方式效率低下,開發(fā)周期長(zhǎng)。而使用基于模型化的設(shè)計(jì)方法,工程師只需要在圖形化的對(duì)話框中就可以完成相應(yīng)的配置。這樣就可以提高程序的開發(fā)速度,降低程序設(shè)計(jì)的難度。工程師甚至不用編寫一行代碼就可以實(shí)現(xiàn)DSP程序的設(shè)計(jì)。這種模型化的DSP系統(tǒng)快速設(shè)計(jì)方法非常適合在實(shí)際工作中使用,有著極大的實(shí)際意義和推廣價(jià)值。
參考文獻(xiàn)
[1] 陳志英,劉虹,陳飄萍.基于模型的數(shù)字濾波器設(shè)計(jì)及DSP實(shí)現(xiàn)[J].廈門理工學(xué)院學(xué)報(bào),2015,23(1):39?44.
[2] 鄧盼,侯志敏.基于DSP模型的快速代碼的生成[J].現(xiàn)代電子技術(shù),2015,38(6):142?144.
[3] 王偉,李育挺,馬松輝.基于模型的驗(yàn)證與測(cè)試技術(shù)[J].計(jì)算機(jī)測(cè)量與控制,2013,21(4):987?989.
[4] 侯瑩,洪征,潘璠,等.基于模型的Fuzzing測(cè)試腳本自動(dòng)化生成[J].計(jì)算機(jī)科學(xué),2013,40(3):206?209.
[5] 劉洋,周宇博.基于模型的設(shè)計(jì)[M].北京:國(guó)防工業(yè)出版社,2011.
[6] 冷斌,李學(xué)勇,劉建華.一種基于Matlab的DSP調(diào)試及直接代碼生成方法[J].現(xiàn)代電子技術(shù),2008,31(20):68?70.
[7] 梁志強(qiáng).基于模型的DSP程序設(shè)計(jì)[J].微計(jì)算機(jī)應(yīng)用,2008,29(3):93?97.
[8] Texas Instruments. TMS320x2833x,2823x serial communications interface (SCI) [EB/OL]. [2009?09?15]. http://www.ti.com/lit/ug/sprufz5a/sprufz5a.pdf.
[9] Texas Instruments. TMS320x2833x, 2823x system control and interrupts [EB/OL]. [2010?03?21]. http://www.ti.com/lit/ug/sprufb0d/sprufb0d.pdf.
[10] Texas Instruments. TMS320x2833x, 2823x direct memory access (DMA) module [EB/OL]. [2011?04?11]. http://www.ti.com/lit/ug/sprufb8d/sprufb8d.pdf.