




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
年4月北京交通大學(xué)畢業(yè)設(shè)計(jì)(論文)中文摘要中文摘要摘要:隨著MathWorks公司的產(chǎn)品Matlab/Simulink的不斷升級(jí),基于Matlab/Simulink的DSP系統(tǒng)開(kāi)發(fā)方式愈來(lái)愈成熟,功能愈發(fā)強(qiáng)大。EmbeddedTargetforTIC6000工具箱可以完成從概念方案設(shè)計(jì)到軟件代碼仿真甚至是在硬件DSP板生進(jìn)行測(cè)試的全過(guò)程,使用Matlab/Simulink可以將仿真通過(guò)的函數(shù)模型直接轉(zhuǎn)換成在DSP系統(tǒng)上能夠執(zhí)行的C/C++代碼,生成的代碼可用于實(shí)時(shí)應(yīng)用和硬件在線測(cè)試,對(duì)于Simulink工具箱EmbeddedTargetforTIC6000中已有的函數(shù)圖形進(jìn)行簡(jiǎn)單程序的代碼生成,比如EVMDM642案例DSP系統(tǒng),確實(shí)可以方便地仿真以及實(shí)現(xiàn)快速的從算法概念到目標(biāo)代碼的自動(dòng)生成,幾乎不需要用戶參與代碼編寫(xiě),對(duì)于簡(jiǎn)單的應(yīng)用,用戶只需要?jiǎng)右粍?dòng)手指,按一按鼠標(biāo),就能夠讓Matlab生成全套的代碼,毫不費(fèi)力。可以得出結(jié)論:基于Matlab/Simulink的DSP代碼生成的方法,在人力和物力的損耗上,要優(yōu)于傳統(tǒng)的基于CCS的DSP開(kāi)發(fā)方式,能夠加快DSP系統(tǒng)開(kāi)發(fā)的速度,降低開(kāi)發(fā)的難度,并且,基于Matlab/Simulink的DSP代碼生成的方法適用于初學(xué)者,非高深資歷的開(kāi)發(fā)人員同樣能夠通過(guò)這個(gè)方式來(lái)完成DSP開(kāi)發(fā)的科研任務(wù)。關(guān)鍵詞:Matlab;Simulink;DM642;自動(dòng)代碼生成北京交通大學(xué)畢業(yè)設(shè)計(jì)(論文)英文摘要ABSTRACTABSTRACT:WiththecontinuousupgradingofWorksMathMatlab/Simulinkproducts,/SimulinkDSPbasedMatlabsystemdevelopmentisincreasinglymature,morepowerful.EmbeddedTargetforTIC6000toolboxcanbecompletedfromconceptualdesigntosoftwaresimulationcodeeveninthewholeprocessofDSPinhardwaretesting,usingtheMatlab/SimulinkfunctioncanbeconverteddirectlyintothemodelthroughsimulationcanbeperformedontheDSP/C++Ccode,thegeneratedcodecanbeusedforreal-timeapplicationsandhardwaretheonlinetest,forSimulinkTargetforTIC6000Embeddedtoolboxhasthefunctionofsimplegraphicsprogramcodegeneration,suchastheEVMDM642caseoftheDSPsystem,automaticgenerationcaneasilyachievefastalgorithmsimulationandfromconcepttoobjectcode,almostdonotneeduserstoparticipateinthepreparationofthecode,forsimpleapplications,usersonlyneedtomoveyourfinger,pressthemouse,canletMatlabgenerateafullsetofcode,easy.Wecandrawtheconclusion:themethodbasedonMATLAB/SimulinkDSPcodegeneration,inthelossofhumanandmaterialresources,issuperiortothetraditionalbasedonCCSofDSPdevelopmentway,canacceleratethespeedofDSPsystemdevelopment,reducedevelopmentdifficultyandbasedonMATLAB/SimulinkDSPcodegenerationmethodissuitableforbeginners,nondevelopersofadvancedqualificationscanalsothroughthiswaytoaccomplishresearchtasksinthedevelopmentofDSP.KEYWORDS:Matlab;Simulink;DM642;AutomaticCodeGeneration北京交通大學(xué)畢業(yè)設(shè)計(jì)(論文)目錄目錄中文摘要 iABSTRACT ii目錄 iii1 引言:畢業(yè)設(shè)計(jì)的背景與意義 11.1 研究背景 11.2 研究意義 11.3 研究問(wèn)題簡(jiǎn)述 21.4 課題提出的要求 31.5 畢業(yè)論文的結(jié)構(gòu) 32 Matlab和Simulnk簡(jiǎn)介 42.1 Matlab軟件現(xiàn)狀簡(jiǎn)述 42.2 Simulink現(xiàn)狀簡(jiǎn)述 62.3 Matlab/simulink配置與指令 73 CCStudio介紹及傳統(tǒng)DSP代碼生成流程 93.1 CCStudio配置與指令 93.2 傳統(tǒng)DSP軟件開(kāi)發(fā)流程 94 基于Matlab/Simulink的DSP目標(biāo)代碼生成方法 104.1 生成流程 104.2 基于Matlab對(duì)TMS320DM642為核心的目標(biāo)DSP開(kāi)發(fā)板進(jìn)行仿真和代碼生成的函數(shù)模型設(shè)計(jì) 114.3 基于Matlab對(duì)EVMDM642DSP系統(tǒng)板進(jìn)行仿真和代碼生成 154.4 基于Matlab對(duì)合眾達(dá)公司SEED-VPM642DSP系統(tǒng)生成代碼進(jìn)行移植的方法和分析 265 基于Matlab的DSP代碼生成方法總結(jié) 30參考文獻(xiàn) 32致謝 34附錄 35北京交通大學(xué)畢業(yè)設(shè)計(jì)(論文)正文引言:畢業(yè)設(shè)計(jì)的背景與意義研究背景近年來(lái),多種音頻、視頻技術(shù)迅猛發(fā)展,并已比較成熟,其中依托的數(shù)學(xué)信號(hào)處理的技術(shù)DSP處理器憑借獨(dú)特的哈佛結(jié)構(gòu)、流水線技術(shù),能快速實(shí)現(xiàn)各種數(shù)字信號(hào)處理,滿足了圖像處理的諸多高水準(zhǔn)要求,還包括運(yùn)算量大,較高的信息傳輸速率,較高的處理精度和較強(qiáng)的實(shí)時(shí)性等。現(xiàn)在,DSP與許多通信產(chǎn)品有著千絲萬(wàn)縷的聯(lián)系,在信息與通信科學(xué)方面是一門(mén)十分重要的學(xué)科。對(duì)于現(xiàn)在的軟件開(kāi)發(fā)商來(lái)說(shuō),DSP開(kāi)發(fā)是其主要工作的內(nèi)容還有業(yè)務(wù)。所以提高開(kāi)發(fā)速度,降低開(kāi)發(fā)難度對(duì)于他們是至關(guān)重要的問(wèn)題。而傳統(tǒng)的DSP系統(tǒng)設(shè)計(jì)分為2個(gè)部分:算法開(kāi)發(fā)和產(chǎn)品實(shí)現(xiàn)。在算法開(kāi)發(fā)設(shè)計(jì)階段里,一般使用Matlab進(jìn)行仿真,完成方案和算法的設(shè)計(jì),當(dāng)仿真結(jié)果達(dá)到要求時(shí),再進(jìn)入產(chǎn)品的代碼編寫(xiě)階段。再一次用C/C++語(yǔ)言或者匯編語(yǔ)言將算法開(kāi)發(fā)過(guò)程里通過(guò)的目的算法進(jìn)行編寫(xiě)調(diào)試,最終在硬件DSP開(kāi)發(fā)板上調(diào)試通過(guò)并且固化。對(duì)于傳統(tǒng)的DSP開(kāi)發(fā)方式,由于現(xiàn)在的開(kāi)發(fā)軟件數(shù)量種類很多,開(kāi)發(fā)者在不同的崗位上需要了解和學(xué)習(xí)的軟件或者語(yǔ)言很多,因此對(duì)開(kāi)發(fā)者的能力提出了不小的挑戰(zhàn),造成了不小的壓力,能否方便的使用一個(gè)開(kāi)發(fā)環(huán)境編寫(xiě)出心怡的目標(biāo)代碼是開(kāi)發(fā)者的小小夢(mèng)想,除此之外,如今的研發(fā)部門(mén)里,硬件大多都是使用美國(guó)TexasInstruments(德州器件)公司的芯片,相配套的軟件一般也以CCStudio開(kāi)發(fā)環(huán)境居多,如若按照傳統(tǒng)的DSP開(kāi)發(fā)流程,不同層次的開(kāi)發(fā)人員還需要編寫(xiě)龐大數(shù)據(jù)量的語(yǔ)言代碼,大量的時(shí)間和精力又將會(huì)消耗在代碼的反復(fù)測(cè)試驗(yàn)證中,無(wú)疑將會(huì)推遲目標(biāo)系統(tǒng)的完成時(shí)間,增加工作的負(fù)擔(dān),平添了開(kāi)發(fā)的風(fēng)險(xiǎn)。對(duì)于這種繁瑣的工作方式來(lái)說(shuō),如果有一個(gè)新的,可靠的方法,將會(huì)是開(kāi)發(fā)者的福音!研究意義隨著MathWorks公司的產(chǎn)品Matlab/Simulink的不斷升級(jí),基于SimulinkDSP工具箱的DSP開(kāi)發(fā)方法愈發(fā)成熟,功能愈發(fā)強(qiáng)大。工具箱可以完成從概念方案設(shè)計(jì)到軟件代碼仿真甚至是在硬件DSP板生進(jìn)行測(cè)試的全過(guò)程,使用Matlab/Simulink可以將仿真通過(guò)的函數(shù)模型直接轉(zhuǎn)換成在DSP系統(tǒng)上能夠執(zhí)行的C/C++代碼,更重要的是,Matlab簡(jiǎn)學(xué)易懂,不需要開(kāi)發(fā)者扎實(shí)的數(shù)學(xué)基礎(chǔ)的扎實(shí)和熟練巧妙編程能力,而且Matlab現(xiàn)在正式大學(xué)教學(xué)和科研中最常使用的道具。于是基于Matlab/Simulink的設(shè)計(jì)方法將簡(jiǎn)化了DSP應(yīng)用系統(tǒng)的設(shè)計(jì)過(guò)程。并且,多年以來(lái),TI公司的多種高性能DSP器件在學(xué)習(xí)工作中得到了廣泛的應(yīng)用,可以實(shí)現(xiàn)大數(shù)據(jù)量以及復(fù)雜運(yùn)算的媒體處理,成為了數(shù)學(xué)信號(hào)處理技術(shù)開(kāi)發(fā)中的主流器件之一,同時(shí)TI公司還與MathWorkss公司合作,開(kāi)發(fā)了對(duì)開(kāi)發(fā)嵌入式目標(biāo)系統(tǒng)有很多方便的工具箱:EmbeddedTargetforTIC6000,可以更加方便用戶仿真以及實(shí)現(xiàn)快速的從算法概念到目標(biāo)代碼的自動(dòng)生成,生成的代碼可用于實(shí)時(shí)應(yīng)用和硬件在線測(cè)試,幾乎不需要用戶參與代碼編寫(xiě),對(duì)于簡(jiǎn)單的應(yīng)用,用戶只需要?jiǎng)右粍?dòng)手指,按一按鼠標(biāo),就能夠讓Matlab生成全套的代碼,毫不費(fèi)力。對(duì)于科研部門(mén)來(lái)說(shuō),如果能夠在同一個(gè)平臺(tái)上對(duì)DSP進(jìn)行開(kāi)發(fā),將系統(tǒng)模型的建立,系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)過(guò)程一氣呵成,完美過(guò)渡,對(duì)于DSP的應(yīng)用開(kāi)發(fā)將會(huì)提供一條十分便利的道路。前輩們?cè)诤芏辔恼沦Y料中有介紹過(guò)使用Matlab對(duì)DSP進(jìn)行直接的代碼生成方法:李真芳、蘇濤和黃小宇的基于Matlab6.0版本的對(duì)TexasInstruments公司TMS320C5000/C6000系列DSP和AD公司的SHARCDSP的代碼生成方法以及調(diào)試運(yùn)行的過(guò)程[1];薛定宇、陳陽(yáng)泉研究了基于MATLAB/Simulink的仿真技術(shù)[2];劉浩對(duì)Matlab2014a的操作和使用做了介紹[3]等;郭小強(qiáng)等對(duì)C2000系列DSP系統(tǒng)開(kāi)發(fā)做了研究[4];還有王成[5]、齊星剛[6]在MATLAB/Simulink平臺(tái)上研究DSP代碼的自動(dòng)生成。可以認(rèn)為,這項(xiàng)技術(shù)正在走向成熟。因此,基于Matlab/Simulink的DSP開(kāi)發(fā)方式十分值得推廣!研究問(wèn)題簡(jiǎn)述隨著時(shí)間的演進(jìn),MathWorkss公司不斷地升級(jí)著Matlab的版本,TI公司的DSP的開(kāi)發(fā)軟件CCStudio也有一定的變化,許多指令被整合,雖然Matlab/Simulink的功能越來(lái)越強(qiáng)大,但是參考的資料適用的軟件版本相較現(xiàn)在比較久遠(yuǎn),許多指令已經(jīng)開(kāi)始失效,包括在我學(xué)習(xí)的過(guò)程中發(fā)現(xiàn)許多指令在Matlab中以及沒(méi)有效果了。于是,本文基于新版Matlab2014/Matlab2015、CCStudio3.3及以上版本4以及5針對(duì)Matlab的實(shí)時(shí)信號(hào)處理系統(tǒng)的方法進(jìn)行研究。課題提出的要求這個(gè)課題提出的主要任務(wù)包括:1.CCS下DSP代碼開(kāi)發(fā)的過(guò)程介紹。2.MatlabSimulink的功能和使用介紹。3.使用Matlab完成DSP設(shè)計(jì)開(kāi)發(fā)的流程,包括從概念設(shè)計(jì)、軟件仿真、硬件測(cè)試的全過(guò)程。4.使用Matlab/SimulinkCoder完成C6000DSP開(kāi)發(fā)板算法的Matlab仿真和程序設(shè)計(jì)。5.基于Matlab/Simulink的DSP生成代碼的實(shí)時(shí)性分析。畢業(yè)論文的結(jié)構(gòu)在第二章節(jié)中,簡(jiǎn)單介紹下Matlab/Simulink的功能和使用情況,這里會(huì)列舉針對(duì)畢設(shè)課題基于Matlab/Simulink的DSP系統(tǒng)代碼生成方法中Matlab工作環(huán)境的相關(guān)調(diào)試方法。在第三章節(jié)中將簡(jiǎn)單介紹CCStudio的情況,并且介紹傳統(tǒng)DSP開(kāi)發(fā)的流程。以CCStudio3.3為例簡(jiǎn)單介紹DSP工程的結(jié)構(gòu)。在第四章節(jié)中將詳細(xì)介紹基于Matlab/Simulink的DSP系統(tǒng)的代碼生成方法,是本畢業(yè)設(shè)計(jì)最重要的研究?jī)?nèi)容,其中:在4.1中敘述在基于Matlab/Simulink的DSP代碼生成過(guò)程中,Simulink函數(shù)模型的設(shè)計(jì)方式還有流程,以基于TMS320DM642[7]芯片的DSP系統(tǒng)人臉識(shí)別疲勞度算法[8]為例進(jìn)行敘述。在4.2和4.3中用畫(huà)中畫(huà)程序模型,還有視頻與音頻的采集與回放程序模型,在TexasInstruments公司的DM642案例DSP系統(tǒng)evmdm642系統(tǒng)目標(biāo)板上生成DSP代碼[9],敘述Build指令生成的生成過(guò)程,并列舉生成代碼頭文件進(jìn)行簡(jiǎn)單的分析。在4.4中以我學(xué)校實(shí)驗(yàn)室中配置的合眾達(dá)公司出品的SEED-VPM642DSP系統(tǒng)為目標(biāo)板[10],測(cè)試基于Matlab/Simulink生成代碼過(guò)程的實(shí)用性和Simulink函數(shù)模型移植方法的可行性。在第五章節(jié)中對(duì)我進(jìn)行過(guò)的Matlab/Simulink代碼生成的仿真和測(cè)試進(jìn)行總結(jié),對(duì)這種方法的可行性進(jìn)行分析和闡述。北京交通大學(xué)畢業(yè)設(shè)計(jì)(論文)正文Matlab和Simulnk簡(jiǎn)介Matlab軟件現(xiàn)狀簡(jiǎn)述MATrixLABoratory是Matlab這個(gè)詞的全拼,意思是矩陣實(shí)驗(yàn)室。這款軟件是美國(guó)MathWorks公司的代表產(chǎn)品,是科學(xué)界最有影響力的軟件。Matlab是一種高級(jí)的科學(xué)技術(shù)計(jì)算語(yǔ)言,也是一種高級(jí)的交互式開(kāi)發(fā)環(huán)境,可以用來(lái)進(jìn)行科學(xué)算法的開(kāi)發(fā)、數(shù)據(jù)信息的可視化、數(shù)據(jù)信息的分析還有數(shù)值信息計(jì)算。Matlab的常用功能主要是矩陣的運(yùn)算、函數(shù)/數(shù)據(jù)圖像的繪制,而除此之外,還可以對(duì)用戶界面進(jìn)行創(chuàng)建及,使用其它科學(xué)語(yǔ)言(C,C++和FORTRAN)編寫(xiě)程序。雖然Matlab的主要功能是用來(lái)對(duì)數(shù)值進(jìn)行運(yùn)算,但是如果能夠利用上數(shù)量眾多的軟件包和工具箱(Toolbox),Matlab也能對(duì)不同領(lǐng)域的科學(xué)工程應(yīng)用進(jìn)行仿真、計(jì)算,比如圖像的處理、信號(hào)的處理與通訊、金融行業(yè)的建模和分析、控制系統(tǒng)的設(shè)計(jì)與分析等等。另外還有一個(gè)配套軟件包Simulink,提供了一個(gè)可視化開(kāi)發(fā)環(huán)境,常用于系統(tǒng)模擬、動(dòng)態(tài)/嵌入式系統(tǒng)開(kāi)發(fā)等方面。這樣一來(lái),Matlab幾乎涉及所有科研領(lǐng)域,源于其友好易學(xué)的操作方式還有其強(qiáng)大的仿真計(jì)算能力。MATLAB的優(yōu)勢(shì):友好的工作平臺(tái)和編程環(huán)境這些工具方便用戶使用MATLAB函數(shù)和文件,其中的許多工具用于圖形用戶界面。包括MATLAB桌面和命令窗口,歷史命令窗口,編輯器和調(diào)試器,路徑搜索和用戶瀏覽幫助,工作區(qū),文件瀏覽器。用MATLAB軟件的不斷升級(jí)和商業(yè)化,MATLAB的用戶界面也越來(lái)越復(fù)雜,越接近標(biāo)準(zhǔn)的Windows界面,人機(jī)交互性更強(qiáng),操作更簡(jiǎn)單。與新版本的MATLAB提供了一個(gè)完整的在線查詢,幫助系統(tǒng),大大方便了用戶的使用。簡(jiǎn)單的編程環(huán)境提供了一個(gè)完整的調(diào)試系統(tǒng),程序可以直接運(yùn)行無(wú)需編譯的編譯器,它可以報(bào)告錯(cuò)誤和時(shí)間錯(cuò)誤的原因。簡(jiǎn)單易用的程序語(yǔ)言MATLAB高級(jí)矩陣語(yǔ)言,其中包含控制語(yǔ)句,函數(shù),數(shù)據(jù)結(jié)構(gòu),輸入輸出和面向?qū)ο缶幊痰奶攸c(diǎn)。用戶可以同步執(zhí)行命令在命令窗口輸入語(yǔ)句,或?qū)懸粋€(gè)大的,復(fù)雜的應(yīng)用程序(M文件),運(yùn)行起來(lái)..新版本的MATLAB語(yǔ)言是基于最流行的C++語(yǔ)言基礎(chǔ)。因此,語(yǔ)法特點(diǎn)和C++語(yǔ)言是非常相似的,更簡(jiǎn)單,在符合科技人員更多的寫(xiě)作格式的數(shù)學(xué)表達(dá)式。為了使它更利于計(jì)算機(jī)科技人才的使用。此外,這種語(yǔ)言的可移植性和可擴(kuò)展性很強(qiáng),這也是MATLAB去科學(xué)研究和工程計(jì)算的重要原因強(qiáng)大的科學(xué)計(jì)算機(jī)數(shù)據(jù)處理能力MATLAB是一家集大型計(jì)算算法。它擁有超過(guò)600的數(shù)學(xué)運(yùn)算功能,可以為用戶實(shí)現(xiàn)各種計(jì)算功能很容易實(shí)現(xiàn)。在用于算法的功能是在科學(xué)研究和工程計(jì)算的最新研究成果,和前后的各種優(yōu)化和容錯(cuò)性。在一般情況下,它可以代替底層編程語(yǔ)言,如C和C++。在相同的情況下,MATLAB編程的工作量將大大減少。這些函數(shù)的MATLAB包括最簡(jiǎn)單、最基本的功能,從基本的功能如矩陣,特征向量,快速傅里葉變換的復(fù)雜功能。函數(shù)能解決的問(wèn)題一般由矩陣運(yùn)算和求解線性方程,微分方程和偏微分方程的求解,符號(hào)計(jì)算,傅里葉變換和數(shù)據(jù)的統(tǒng)計(jì)分析,工程優(yōu)化問(wèn)題,稀疏矩陣的運(yùn)算,多個(gè)運(yùn)輸,三角函數(shù)等基本數(shù)學(xué)運(yùn)算,多維數(shù)組操作建模和動(dòng)態(tài)仿真等。出色的圖形處理功能圖形處理函數(shù)MATLAB自生產(chǎn)之日起具有方便的數(shù)據(jù)可視化,以向量和矩陣的圖形性能,可以標(biāo)記和打印圖形。高層次的映射包括二維和三維可視化,圖像處理,動(dòng)畫(huà)和表情映射..可用于科學(xué)計(jì)算和工程制圖。在圖形處理函數(shù)MATLAB的新版本有了大的改進(jìn)和完善,使它不僅在一般的數(shù)據(jù)可視化軟件的功能(在二維和三維曲面的繪制和處理,例如曲線等)更加完善和其他一些軟件(例如光圖形處理,色彩處理,四維數(shù)據(jù)的性能,功能等),也表現(xiàn)出良好的加工能力,MATLAB。同時(shí),一些特殊的視覺(jué)要求,如圖形對(duì)話框,MATLAB,也有功能,可以保證不同層次的用戶。MATLAB中的另一個(gè)新版本也集中在圖形用戶界面(GUI)的生產(chǎn)取得了很大的進(jìn)步,這也能滿足用戶的特殊要求。應(yīng)用廣泛的模塊集合工具箱MATLAB開(kāi)發(fā)的功能強(qiáng)大的模塊集和許多特殊領(lǐng)域的工具箱..總的來(lái)說(shuō),他們是通過(guò)在一個(gè)特定領(lǐng)域的專家開(kāi)發(fā)的,用戶可以直接使用該工具包的學(xué)習(xí),應(yīng)用和評(píng)估不同的方法,而無(wú)需編寫(xiě)代碼本身。目前,MATLAB工具箱擴(kuò)展到科學(xué)研究和工程應(yīng)用中的許多領(lǐng)域,如數(shù)據(jù)采集,數(shù)據(jù)庫(kù)接口,概率和統(tǒng)計(jì),樣條擬合,優(yōu)化算法,偏微分方程,神經(jīng)網(wǎng)絡(luò),小波分析,信號(hào)處理,圖像處理,系統(tǒng)辨識(shí),控制系統(tǒng)設(shè)計(jì),控制的LMI,魯棒控制,預(yù)測(cè)模型,模糊邏輯,財(cái)務(wù)分析,地圖工具,非線性控制設(shè)計(jì),實(shí)時(shí)快速原型和半物理仿真,嵌入式系統(tǒng)的發(fā)展,定點(diǎn)仿真,DSP和通信,電力系統(tǒng)仿真等,在工具箱(toolbox)家庭有他們自己的地方。實(shí)用的程序接口和發(fā)布平臺(tái)新版本的MATLAB可以使用MATLAB編譯器和C/C++數(shù)學(xué)庫(kù)和圖形庫(kù),將自己的MATLAB程序自動(dòng)轉(zhuǎn)換為C++和C代碼獨(dú)立于MATLAB運(yùn)行。允許用戶編寫(xiě)的C或C++語(yǔ)言程序與MATLAB結(jié)合。此外,MATLABWeb服務(wù)程序還允許自己的MATLAB數(shù)學(xué)和圖形程序在Web應(yīng)用程序中使用。一個(gè)MATLAB的重要特征是它有一個(gè)程序的擴(kuò)展系統(tǒng)和特殊應(yīng)用子程序調(diào)用工具箱..工具箱是一個(gè)MATLAB函數(shù)子程序庫(kù),每一個(gè)工具箱是一種學(xué)科和應(yīng)用而定制的,主要包括信號(hào)處理,控制系統(tǒng),神經(jīng)網(wǎng)絡(luò),模糊邏輯的應(yīng)用,小波分析和系統(tǒng)仿真等。應(yīng)用軟件開(kāi)發(fā)(包括用戶界面)在開(kāi)發(fā)環(huán)境中,用戶控制多個(gè)文件和圖形窗口更加方便;在嵌套函數(shù),編程支持條件中斷;在圖形,更強(qiáng)大的圖形標(biāo)注和處理功能,包括性連接的音符;在輸入輸出方面可以直接到Excel和HDF5連接。MATLAB包括數(shù)百個(gè)內(nèi)部函數(shù),工具包有三十集中套。該工具包可以分為功能性工具和學(xué)科工具包。功能工具包是用于擴(kuò)大MATLAB的符號(hào)計(jì)算,和可視化建模功能,字處理和實(shí)時(shí)控制。學(xué)科工具包是一個(gè)專業(yè)的,更強(qiáng)大的工具,控制工具包,信號(hào)處理工具包,通信工具,等等。打開(kāi)MATLAB廣受用戶歡迎。除了內(nèi)部功能,所有主要的matlab程序包文件和各種工具都是可讀可修改的文件,用戶通過(guò)對(duì)源程序的修改或添加自己寫(xiě)的程序構(gòu)建新的專用工具。Matlab自20世紀(jì)70年代,由美國(guó)新墨西哥大學(xué)CleveMoler推出,1984年推出第一代商業(yè)產(chǎn)品,之后不斷推陳出新,不斷地加入了新的工具箱和軟件包,添加更加強(qiáng)大的功能,展現(xiàn)出來(lái)Matlab軟件和MathWorks公司旺盛的活力?,F(xiàn)在的最新版本為2015a,離現(xiàn)在最近的一次大型版本更新是2012b,發(fā)布于2012年9月11日,在這次更新中,整合了許多舊指令,對(duì)77種其他產(chǎn)品進(jìn)行了更新和補(bǔ)丁,這樣部分舊指令以及不被Matlab所辨認(rèn),對(duì)于較新新版本的Matlab,開(kāi)發(fā)者需要再稍作學(xué)習(xí)和了解。這也是畢業(yè)設(shè)計(jì)研究的內(nèi)容之一,即使用較新版本的Matlab/Simulink軟件完成對(duì)DSP系統(tǒng)的代碼生成。Simulink現(xiàn)狀簡(jiǎn)述Simulink是一個(gè)軟件包,是Matlab的重要組件,是動(dòng)態(tài)系統(tǒng)數(shù)學(xué)建模的工作環(huán)境,它是一種可視化的仿真工具,只需要使用鼠標(biāo)點(diǎn)一點(diǎn),就能夠創(chuàng)建直觀的函數(shù)模型進(jìn)行仿真,完成綜合分析。在Matlab中,Simulink的地位舉足輕重,對(duì)于初學(xué)者來(lái)說(shuō),在工作窗口中一眼就能看到Simulink按鈕,經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí)和了解,初學(xué)者也能夠使用Simulink搭建簡(jiǎn)單的函數(shù)模型完成仿真。構(gòu)架在Simulink基礎(chǔ)之上的其他產(chǎn)品擴(kuò)展了Simulink多領(lǐng)域建模功能,也提供了用于設(shè)計(jì)、執(zhí)行、驗(yàn)證和確認(rèn)任務(wù)的相應(yīng)工具。Simulink與MATLAB緊密集成,可以直接訪問(wèn)MATLAB大量的工具來(lái)進(jìn)行算法研發(fā)、仿真的分析和可視化、批處理腳本的創(chuàng)建、建模環(huán)境的定制以及信號(hào)參數(shù)和測(cè)試數(shù)據(jù)的定義。如今的Simulink軟件包中內(nèi)容豐富,種類繁多,隨著時(shí)間的演進(jìn),Simulink的功能愈發(fā)強(qiáng)大,在本次畢業(yè)設(shè)計(jì)中利用的,正是其強(qiáng)大的仿真能力背后具有的強(qiáng)大的軟件支持力,今天的Simulink不僅僅能完成仿真分析工作,還能夠編譯調(diào)試代碼,驅(qū)動(dòng)DSP系統(tǒng)。Matlab/simulink配置與指令本次畢業(yè)設(shè)計(jì)采用Matlab2014a/2015a版本,CCStudio選用3.3或以上版本4或5。Matlab的較新版本部分整合了之前版本的命令和工具箱,新版本工具箱能支持更多版本的TexasInstrumentsC2000/C5000/C6000系列DSP開(kāi)發(fā)板,且支持CCStudio3.3/4/5的編譯器,會(huì)方便DSP的開(kāi)發(fā)流程。針對(duì)TexasInstruments公司C6000系列DSP板的開(kāi)發(fā),Matlab中需要安裝TICCS工具箱“EmbeddedCoderSupportPackageforTexasInstrumentsC6000DSPs”,安裝方法:選擇點(diǎn)擊Matlab工作窗口主面板的“附加功能”中的“GetHardwareSupportPackages”選項(xiàng),選擇安裝“TexasInstrumentsC6000”工具箱,安裝工具箱需要MathWorks賬號(hào),該賬號(hào)可以在MathWorks官網(wǎng)上免費(fèi)注冊(cè),請(qǐng)初學(xué)者周知。另外為了順利地發(fā)揮功能,此工具箱需要CCStudio版本的匹配,需要CCS的編譯器版本高于TexasInstrumentsCCSv3.3withC6000CodeGenerationTools6.1.10+,在工具箱安裝過(guò)程中會(huì)出現(xiàn)提示,建議安裝編譯器版本匹配的CCStudio軟件。為了完成使用Matlab對(duì)C6000系列DSP進(jìn)行開(kāi)發(fā)的工作,我們需要構(gòu)建Matlab/Simulink與CCStudio的“聯(lián)合開(kāi)發(fā)環(huán)境”。這里在Matlab2014a上對(duì)畢設(shè)內(nèi)容的環(huán)境配置進(jìn)行簡(jiǎn)單的描述:在2012a和之前的版本中,我們可以使用helpccslink或者h(yuǎn)elpIDElink指令來(lái)檢查編譯器的情況,在較新的版本中已經(jīng)不再支持。這里可以使用一個(gè)更加強(qiáng)大的指令。在Matlab工作窗口中輸入checkEnvSetup('ccs','C64xx','check')指令用來(lái)查看與CCStudio軟件對(duì)DSP系統(tǒng)進(jìn)行編譯的最重要的4個(gè)工具的信息,指令中的C64xx可以替換為其他系列的型號(hào),如C62xx。>>checkEnvSetup('ccs','C64xx','check')1.CCS(CodeComposerStudio)Yourversion:0Requiredversion:3Requiredfor:AutomationandCodeGeneration2.CGT(CodeGenerationTools)Yourversion:6.1.10Requiredversion:6.1.10Requiredfor:Codegeneration3.DSP/BIOS(RealTimeOperatingSystem)Yourversion:5.33.05Requiredversion:5.33.05Requiredfor:Codegeneration4.TexasInstrumentsIMGLIB(TMS320C64xImageLibrary)Yourversion:Requiredversion:1.04Requiredfor:CRLblockreplacementC64X_IMGLIB_INSTALLDIR=""上述指令的結(jié)果中,我們看到的是CCS版本、編譯器版本、接口版本和TexasInstruments函數(shù)模型庫(kù)的情況,如果報(bào)錯(cuò),那需要檢查CCStudio的版本,重新安裝匹配版本CCStudio軟件。我們輸入指令“ccsboardinfo”,可以看到:BoardNumBoardNameProcNumProcNameProcType0DM642DeviceCycleAccurateSi...0DM642TMS320C6000上述信息是CodeComposerStudioSetup中設(shè)置的DSP目標(biāo)板型號(hào)。輸入指令cc=ticcs,我們會(huì)收到:TICCSObject:Processortype:TMS320C642xProcessorname:DM642Running?:NoBoardnumber:0Processornumber:0Defaulttimeout:10.00secs上述信息反映的是Matlab連接并啟動(dòng)CCStudio程序,CCStudio在后臺(tái)啟動(dòng),我們通常看不到其工作窗口,在基于Matlab/Simulink的DSP代碼生成方法中,并不需要對(duì)CCStudio編譯環(huán)境進(jìn)行操作,這個(gè)過(guò)程主要的是Matlab按照Simulink中的函數(shù)模型內(nèi)容,通過(guò)調(diào)用CCS庫(kù)文件,使用CCS進(jìn)行的代碼編譯過(guò)程。另外,“cc=ticcs”指令是新指令,在2012a和之前的版本中,使用“cc=ccsdsp”指令來(lái)啟動(dòng)CCStudio軟件。用Matlab啟動(dòng)CCStudio的過(guò)程如果報(bào)錯(cuò),那需要修改CodeComposerStudioSetup中的配置,或者檢查DSP系統(tǒng)接口驅(qū)動(dòng)的安裝情況。這之后,我們可以啟動(dòng)Simulink或者輸入“c6000lib”來(lái)開(kāi)始后面的DSP系統(tǒng)開(kāi)發(fā)過(guò)程。北京交通大學(xué)畢業(yè)設(shè)計(jì)(論文)正文CCStudio介紹及傳統(tǒng)DSP代碼生成流程CCStudio配置與指令首先要說(shuō)的是,針對(duì)實(shí)際DSP系統(tǒng),計(jì)算機(jī)與之硬件連接需要接口驅(qū)動(dòng),接口驅(qū)動(dòng)可以在硬件廠商的官網(wǎng)上找到,需要注意的是,很多接口驅(qū)動(dòng)有許多諸如只能支持32位的一些要求,并不是所有的計(jì)算機(jī)都能順利安裝驅(qū)動(dòng)與目標(biāo)DSP系統(tǒng)相連,比如我的64位筆記本電腦無(wú)法使用我學(xué)校實(shí)驗(yàn)室中配置的合眾達(dá)SEED-VPM642DSP系統(tǒng),就因?yàn)樵撓到y(tǒng)的計(jì)算機(jī)接口驅(qū)動(dòng)是支持32位的。另外,有了接口驅(qū)動(dòng)并不一定能用CCStudio對(duì)已連接的目標(biāo)DSP系統(tǒng)進(jìn)行編譯,在CCStudio軟件的配置程序CodeComposerStudioSetup中,除了設(shè)置DSP板的型號(hào),還需要設(shè)置GEL文件。具體的需要在DSP選項(xiàng)上右鍵找到Properties選項(xiàng),修改GELFile路徑。GEL文件時(shí)用來(lái)初始化DSP目標(biāo)板的數(shù)據(jù)空間,I/O空間以及程序空間的,還會(huì)配置CCS開(kāi)發(fā)環(huán)境。剛剛安裝好的CCStudio軟件中并不直接支持許多DSP系統(tǒng),如我學(xué)校實(shí)驗(yàn)室中的合眾達(dá)SEED-VPM642DSP系統(tǒng),需要專門(mén)去實(shí)驗(yàn)室老師那里獲?。ú⒉慌懦軌驈幕ヂ?lián)網(wǎng)上獲取的途徑)。在基于Matlab/Simulink的DSP系統(tǒng)代碼生成方法中,我們只關(guān)心CCS的版本,CodeComposerStudioSetup中DSP目標(biāo)板的配置即可。而傳統(tǒng)的基于CCS的DSP軟件開(kāi)發(fā)過(guò)程中,要掌握的CCS知識(shí)要多得多。傳統(tǒng)DSP軟件開(kāi)發(fā)流程傳統(tǒng)DSP軟件開(kāi)發(fā)流程:第一步:根據(jù)功能目的設(shè)計(jì)方案和核心算法,一般需要對(duì)算法進(jìn)行原理上的設(shè)計(jì),在達(dá)到性能要求后,評(píng)估算法在系統(tǒng)上的可行性、還要預(yù)估系統(tǒng)的成本。第二步:依據(jù)算法原理和實(shí)現(xiàn)的方式,選擇合適的硬件來(lái)實(shí)現(xiàn),具體來(lái)說(shuō)就是選擇合適的DSP處理器還有其配套器件和外圍接口。開(kāi)發(fā)人員需要對(duì)目標(biāo)DSP開(kāi)發(fā)板的硬件配置參數(shù)、工作特點(diǎn)等方面進(jìn)行算法上的模擬,評(píng)估在這種指定的目標(biāo)DSP開(kāi)發(fā)板上,設(shè)計(jì)的方案算法是否滿足處理速度還有性能的要求。第三步:設(shè)計(jì)DSP硬件電路板;另一方面編寫(xiě)DSP代碼第四步:在目標(biāo)DSP上調(diào)試編寫(xiě)的程序第五步:將生成代碼固化到目標(biāo)DSP板上北京交通大學(xué)畢業(yè)設(shè)計(jì)(論文)正文基于Matlab/Simulink的DSP目標(biāo)代碼生成方法基于Matlab的DSP代碼生成方法使用的是MathWorkss公司提供的Real-timeWorkshop代碼生成工具,用simulink模塊來(lái)仿真生成需要的DSP代碼。一般生成的代碼清晰、高效和緊湊,能滿足實(shí)時(shí)仿真中的嵌入式系統(tǒng)、面向目標(biāo)的快速控制原型板還有微型處理器的需要,并且能提供集成一流應(yīng)用軟件、數(shù)據(jù)還有函數(shù)的全方面支持。Matlab基于這個(gè)模塊功能,衍生出了新的DSP代碼生成方法。生成流程圖4.1.1Matlab與TIDSP目標(biāo)板建立實(shí)時(shí)連接上圖4.1.1是由Matlab生成DSP代碼的鏈接示意圖,由Matlab/Simulink仿真模塊中的LinkforCCSDevelopmentTools與CodeComposerStudio建立聯(lián)合開(kāi)發(fā)環(huán)境,Matlab通過(guò)CCStudio鏈接至DSP目標(biāo)板,建立實(shí)施數(shù)據(jù)交換。在Matlab控制下調(diào)用編譯庫(kù)文件進(jìn)行仿真和調(diào)試,用CCStudio進(jìn)行編譯,最后下載至DSP目標(biāo)板。用戶在這個(gè)過(guò)程中需要做的的只是設(shè)置庫(kù)文件和調(diào)整DSP參數(shù)?;诂F(xiàn)實(shí)情況以及當(dāng)前Matlab/Simulink中C6000工具箱的版本,在這次畢業(yè)設(shè)計(jì)中,我選擇以DM642為核心來(lái)研究代碼生成過(guò)程。在視頻處理領(lǐng)域,DM642芯片是用來(lái)進(jìn)行數(shù)字多媒體處理的極好選擇,是目前構(gòu)造數(shù)字多媒體應(yīng)用的理想平臺(tái)。DM642的硬件平臺(tái)可以劃分為視頻的采集、存儲(chǔ)。圖像的處理、結(jié)果的顯示還有電源的管理幾個(gè)部分。A/D采樣是由SAA7115解碼器與視頻端口相接,D/A有SAA7105解碼器與端口相連。具體連接方式如下圖4.1.2:圖4.1.2DM642的連接示意框圖基于Matlab對(duì)TMS320DM642為核心的目標(biāo)DSP開(kāi)發(fā)板進(jìn)行仿真和代碼生成的函數(shù)模型設(shè)計(jì)我用一個(gè)簡(jiǎn)單的人臉疲勞識(shí)別[7]模塊作為例子來(lái)分析基于TMS320DM642的代碼生成的設(shè)計(jì)仿真方法。下圖4.2.1是模塊設(shè)計(jì)流程:圖4.2.1人臉疲勞識(shí)別流程圖根據(jù)流程圖,在Simulink工作窗中搭建仿真系統(tǒng),模型圖如下圖4.2.2:圖4.2.2人臉疲勞識(shí)別仿真函數(shù)模型圖中的第一個(gè)模塊是圖源輸入(ImageFromFile),用來(lái)導(dǎo)入被檢測(cè)圖片;第二個(gè)模塊是預(yù)處理模塊(Pretreatment),用來(lái)對(duì)人臉進(jìn)行補(bǔ)償,其中混有噪聲,所以模塊中加入了人臉補(bǔ)償圖4.2.3,用來(lái)增強(qiáng)圖像效果。這里由于實(shí)際操作中有難以實(shí)現(xiàn)或者搭建的Simulink模塊,需要使用Matlab提供的S函數(shù)語(yǔ)句。通過(guò)嵌入函數(shù)模塊,即在組建模型是加入自己的代碼,才能夠達(dá)到預(yù)期效果。因此在下圖如圖4.2.3中藍(lán)色的模塊(EmbeddedMatlabFunction)中,加入了人臉補(bǔ)償[11]。圖4.2.3人臉補(bǔ)償函數(shù)模型第三個(gè)模塊是人臉識(shí)別模塊(facedetection),可以分為人臉定位和人臉?lè)指顑刹糠?,由于人類膚色有獨(dú)特的統(tǒng)計(jì)特征[12],考慮各方面因素后,利用H、S、V個(gè)分量[13]參與提取人臉,得到二值圖。在初步的分割處理后,一定程度上去除了背景,但是會(huì)有一些噪聲對(duì)人臉定位造成影響,這里使用形態(tài)學(xué)知識(shí)[14]來(lái)消除噪聲,如圖4.2.4。如圖4.2.4形態(tài)學(xué)除噪聲框圖在人臉定位模塊里,主要采用的是圖像的像素點(diǎn)投影方法。對(duì)二值圖里白像素點(diǎn)數(shù)做垂直方向和水平方向的求和,用事先設(shè)定的值與結(jié)果進(jìn)行對(duì)比,人臉區(qū)域是其中高于閾值的,這樣就可以粗略地得到面部的坐標(biāo)區(qū)域,根據(jù)人臉尺度的約束條件,長(zhǎng)寬比0.8<h/w<1.59,最終判定人臉?lè)秶D4.2.5人臉膚色識(shí)別上面的框圖4.2.5用來(lái)對(duì)人臉進(jìn)行識(shí)別,其中的藍(lán)色模塊是自主編寫(xiě)S-Function模塊,采用色彩空間判定的方法,分別用H、S、V三個(gè)分量對(duì)膚色點(diǎn)進(jìn)行判斷以及將像素點(diǎn)進(jìn)行投影,它的標(biāo)準(zhǔn)為:“0<=H<=1;0<=S<=0.5;A<+V<=255”(參數(shù)A是圖像區(qū)域中參數(shù)V的平均值),則可以判斷該點(diǎn)位于膚色區(qū)內(nèi)。MatrixConcatenation和DrawShapes兩個(gè)小模塊,用來(lái)確定人臉區(qū)域,會(huì)使用矩形框畫(huà)出來(lái),如圖4.2.6:圖4.2.6,人臉定位模塊第四個(gè)模塊是人臉?lè)指?,將嘴巴和眼睛分區(qū)處理(eyeandmouthdetection),子模塊如上圖。其中包含了一個(gè)計(jì)算寬高比的函數(shù);第五個(gè)模塊用來(lái)判斷疲憊程度(judge),函數(shù)圖形中添加了switch開(kāi)關(guān)模塊,用來(lái)判斷檢測(cè)對(duì)象的個(gè)數(shù),開(kāi)關(guān)模型如下圖4.2.7:圖4.2.7疲憊程度判定建立模型后,要對(duì)系統(tǒng)的許多參數(shù)進(jìn)行設(shè)置,Simulink中的調(diào)試器可以給用戶提供糾錯(cuò)功能,方便了調(diào)試工作。下圖是仿真效果圖4.2.8:圖4.2.8仿真結(jié)果圖模型設(shè)計(jì)完成后,在Simulink的Real-timeWorkshop工作頁(yè)面中點(diǎn)擊Build按鈕,就能生成目標(biāo)DSP系統(tǒng)開(kāi)發(fā)板可以使用的C語(yǔ)言代碼。當(dāng)DSP目標(biāo)板與計(jì)算機(jī)連接,且計(jì)算機(jī)的DSP目標(biāo)板驅(qū)動(dòng)正確,CCS設(shè)置正確,Matlab將通過(guò)CCS編譯,將代碼下載至DSP目標(biāo)開(kāi)發(fā)板運(yùn)行?;贛atlab對(duì)EVMDM642DSP系統(tǒng)板進(jìn)行仿真和代碼生成EVMDM642DSP系統(tǒng)是Simulink里針對(duì)TexasInstrumentsDM642芯片的案例系統(tǒng),工具箱“EmbeddedCoderSupportPacageforTexasInstrumentsC6000DSPs”是TexasInstruments與MathWorks公司一起開(kāi)發(fā),在畢業(yè)設(shè)計(jì)中我針對(duì)這個(gè)系統(tǒng)的Matlab/Simulink仿真設(shè)計(jì)實(shí)驗(yàn)簡(jiǎn)單的分析下產(chǎn)生代碼的過(guò)程。首先是Simulink的模型設(shè)計(jì),以畫(huà)中畫(huà)顯示與回放(Picture-in-PictureDisplay)為例[16],在這個(gè)例子中,用Simulink來(lái)設(shè)計(jì)顯示如何用錄影ADC和DAC模塊來(lái)從二個(gè)不同視頻設(shè)備中收集NTSC錄影,在視頻的輸出設(shè)備里,將2個(gè)視頻源結(jié)合,產(chǎn)生畫(huà)中畫(huà)的效果。下圖是模型設(shè)計(jì)圖4.3.1:圖4.3.1畫(huà)中畫(huà)Simulink模型Task模塊(DSP/BIOS)被用來(lái)創(chuàng)建一個(gè)任務(wù)函數(shù),作為一個(gè)單獨(dú)的DSP/BIOS任務(wù)。DSP/BIOS是一個(gè)簡(jiǎn)單的實(shí)時(shí)嵌入式操作系統(tǒng),可以用于實(shí)時(shí)調(diào)度和同步,實(shí)現(xiàn)主機(jī)與目標(biāo)系統(tǒng)的通信,實(shí)時(shí)地監(jiān)測(cè)運(yùn)行中的應(yīng)用,有實(shí)時(shí)操作系統(tǒng)所具有多種功能,比如任務(wù)的調(diào)度,任務(wù)間的同步和通信,內(nèi)存的管理,實(shí)時(shí)時(shí)鐘的管理,中斷管理的服務(wù),外設(shè)驅(qū)動(dòng)程序的管理等等。任務(wù)功能運(yùn)行下游的函數(shù)調(diào)用子系統(tǒng)的代碼。當(dāng)運(yùn)行此模塊時(shí),信號(hào)量可以用于啟用執(zhí)行任務(wù)。PIPPositionControl模塊用來(lái)控制輸出設(shè)備畫(huà)中畫(huà)(PIP)窗口的位置。Picture–in-PictureAlgorithm模塊中記錄了處理函數(shù)的模型,模型參照下圖4.3.2所示:圖4.3.2畫(huà)中畫(huà)程序Function模型細(xì)節(jié)Function模型中將兩個(gè)視頻輸入(VideoADC)鏈接進(jìn)系統(tǒng),交給視頻輸出(VideoDisplay),其中的YCbCr是色彩空間模型,YCbCr的模型如下圖4.3.3所示:圖4.3.3TCbCr空間模型3個(gè)Compositing模塊將輸入進(jìn)來(lái)的信號(hào)處理成色彩空間信號(hào),根據(jù)YCbCr標(biāo)準(zhǔn)輸出,同時(shí)完成了將兩個(gè)視頻合成為一個(gè)畫(huà)中畫(huà)視頻的工作。在參數(shù)設(shè)定(ModelConfigurationParameter)中的CodeGeneration標(biāo)簽下的CoderTarget中能夠看到DSP代碼輸出的詳細(xì)設(shè)置,如下圖4.3.4所示:圖4.3.4ModelConfigurationRarameter設(shè)置另外,模塊中的DM642EVMVideoADC以及DAC也需要進(jìn)行相應(yīng)的設(shè)置,主要是輸解碼器的設(shè)置,比如TVP5146/TVP5150/SAA7115等。完成這些設(shè)置之后,我們可以點(diǎn)擊仿真按鈕查看仿真結(jié)果,也可以點(diǎn)擊Build按鈕來(lái)執(zhí)行代碼的編譯輸出。此模型如果沒(méi)有硬件支持,仿真按鈕Run在點(diǎn)擊后有指令的編譯和運(yùn)行過(guò)程,而應(yīng)當(dāng)是看不到實(shí)際效果的。點(diǎn)擊Build指令后,Matlab會(huì)連接CCS開(kāi)始編譯過(guò)程,這個(gè)過(guò)程中會(huì)調(diào)用許多庫(kù)文件。使用者需要在這個(gè)過(guò)程中給出庫(kù)文件的路徑信息,以此程序?yàn)槔?,用戶需要的?kù)文件evmdm642的庫(kù)文件包一般的CCS軟件自帶的庫(kù)文件中是沒(méi)有的,我們可以在TexasInstruments官網(wǎng)的軟件技術(shù)支持中找到,耐心的用戶會(huì)在官網(wǎng)上找到詳細(xì)的資料,并且好到evmdm642的庫(kù)文件包。Matlab/Simulink通過(guò)調(diào)用這些庫(kù)文件,將Real-timeWorkshop中設(shè)計(jì)的函數(shù)模型編寫(xiě)成C語(yǔ)言代碼,在Build的過(guò)程里,CCStudio的工作窗口將會(huì)在計(jì)算機(jī)桌面上執(zhí)行編寫(xiě)的過(guò)程,在庫(kù)文件選擇完成后,Matlab/Simulink會(huì)控制CCStudio編譯運(yùn)行代碼程序,我們能夠看到CCS產(chǎn)生的新工程文件中一個(gè)個(gè)子文件的出現(xiàn),由程序生成的代碼文件依次出現(xiàn),組成了完整的工程文件后,CCS開(kāi)始了糾錯(cuò),在狀態(tài)欄里執(zhí)行糾錯(cuò)編譯指令的過(guò)程,只要庫(kù)文件路徑設(shè)置正確,目標(biāo)DSP開(kāi)發(fā)板型號(hào)正確,編譯的結(jié)果將是0Error,0Warning,0Remarks。圖4.3.5CCS中建立的工程文件我再以一個(gè)更加簡(jiǎn)單的程序來(lái)詳細(xì)描述一下使用Matlab/simulink對(duì)目標(biāo)DSP開(kāi)發(fā)板代碼生成的過(guò)程。假設(shè)我們將要編寫(xiě)一個(gè)有視頻和音頻的采集以及回放的DSP系統(tǒng)代碼。首先確定我們的任務(wù),假設(shè)我們已經(jīng)確定要使用evmDM642DSP開(kāi)發(fā)板。我們打開(kāi)程序SetupCCStudiov3.3,在工作窗口中,我們選擇“DM642DeviceCycleAccurateSimulator”——“DM642”,點(diǎn)擊“Save&Quit”按鈕,注意,我們沒(méi)有必要進(jìn)入CCStudio程序,這個(gè)過(guò)程只是用來(lái)設(shè)置目標(biāo)DSP開(kāi)發(fā)板型號(hào)的。我們打開(kāi)Matlab,進(jìn)入Matlab工作窗后,我們輸入指令“ccsboardinfo”,可以看到:BoardNumBoardNameProcNumProcNameProcType0DM642DeviceCycleAccurateSi...0DM642TMS320C6000輸入指令cc=ticcs,我們們會(huì)收到:TICCSObject:Processortype:TMS320C642xProcessorname:DM642Running?:NoBoardnumber:0Processornumber:0Defaulttimeout:10.00secs這些信息寫(xiě)的就是剛剛設(shè)置的DSP目標(biāo)開(kāi)發(fā)板型號(hào),同時(shí)cc=ticcs打開(kāi)了CCStudio,而此狀態(tài)下的CCStudio是在后臺(tái)運(yùn)行,我們并不能看到它的工作界面,也不需要看到他的工作界面。接下來(lái),我們需要打開(kāi)Simulink的“EmbeddedCoderSupportPacageforTexasInstrumentsC6000DSPs”工具箱,我們可以點(diǎn)擊打開(kāi)Simulink的Library列表,列表中可以找到并啟動(dòng)工具箱,更可以直接在Matlab工作窗中輸入“C6000lib”指令。這樣我們將會(huì)打開(kāi)“EmbeddedCoderSupportPacageforTexasInstrumentsC6000DSPs”工具箱。這樣,我們打開(kāi)了工具箱,其窗口如下圖4.3.6:圖4.3.6C6000lib模型列表在這里再一次提一下C6000工具箱的安裝方法:在Matlab工作窗口的“附加功能”里,選擇“GetHardwareSupportPackages”,彈出的窗口中找到并選擇安裝“TexasInstrumentsC6000”工具箱,下載Simulink工具箱需要連接因特網(wǎng)并且注冊(cè)有MathWorks公司的賬號(hào),賬號(hào)可以在MathWorks的官網(wǎng)上免費(fèi)注冊(cè),只要有賬號(hào)便可以下載工具箱。另外注意此工具箱需要CCStudio版本的匹配,需要CCS的編譯器版本高于TexasInstrumentsCCSv3.3withC6000CodeGenerationTools6.1.10+。如果不希望出錯(cuò),而且希望CCStudio代碼書(shū)寫(xiě),編譯順利并且可以使用的話,還是需要強(qiáng)行安裝的,版本匹配的編譯器可以寫(xiě)出正確的代碼,才可以組件正確的工程文件。這個(gè)工具箱提供的是DSP板的核心芯片的仿真模塊,比如DM642的模塊如下圖4.3.7所示:圖4.3.7evmdm642模型列表我們編寫(xiě)的函數(shù)模型中會(huì)用到他們,但是函數(shù)模型的重點(diǎn)卻不是他們,我們?cè)贑6000lib的函數(shù)模型中需要使用眾多的需要設(shè)置的模型,如TargetCommunication模塊、DSP/BIOS模塊、MemoryOperations模塊等等。我們選擇“NewModel”來(lái)建立新的模型。以視頻和音頻的采集和回放程序?yàn)槔?jīng)過(guò)設(shè)計(jì)之后,繪制如下的函數(shù)仿真模型,如圖4.3.8:圖4.3.8視頻/音頻采集與回放模型此框圖演示如何使用DM642EVM異步調(diào)度器和音頻/視頻的ADC和DAC塊生成的音頻-視頻通過(guò)TIC6000DSP平臺(tái)上的系統(tǒng)。左半部分是視頻的采集與回放,右部分是音頻的采集與回放。兩部分的function()函數(shù)模型鏈接非常簡(jiǎn)單,如下圖4.3.9所示:圖4.3.9視頻/音頻采集Function模型細(xì)節(jié)我們?cè)赗eal-Timeworkshop工作窗中點(diǎn)擊參數(shù)設(shè)定按鈕(ModelConfigurationParameter),在CodeGeneration標(biāo)簽中首先修改“TargetSelection”,在“Systemtargetfile”里選擇文件”idelink_ert.tle“,經(jīng)過(guò)短暫的卡頓之后,CodeGeneration標(biāo)簽的列表發(fā)生了翻天覆地的變化,出現(xiàn)了用來(lái)修改DSP開(kāi)發(fā)板信息的“CoderTarget”,在這個(gè)窗口中,進(jìn)行參數(shù)的設(shè)置,包括DSP板型號(hào),內(nèi)存空間等等的設(shè)置,點(diǎn)擊OK之后,我們還需要修改DM642輸入設(shè)備和輸出設(shè)備的參數(shù),主要是解碼器的選擇。點(diǎn)擊上圖中的函數(shù)模型,會(huì)出現(xiàn)很多參數(shù),需要根據(jù)現(xiàn)實(shí)硬件進(jìn)行選擇。在這些參數(shù)都設(shè)置好后,我們可以點(diǎn)擊按鈕“Run”(仿真功能,經(jīng)過(guò)編譯應(yīng)該是沒(méi)有效果的,由于只是軟件仿真,沒(méi)有硬件的話,這個(gè)需要視頻輸入的程序是沒(méi)有效果的),然后我們點(diǎn)擊“Build”來(lái)讓Matlab/Simulink產(chǎn)生可執(zhí)行C語(yǔ)言代碼。在Matlab/Simulink組建工程文件時(shí),根據(jù)程序要求,依次給出EVMDM642庫(kù)文件的路徑:Evmdm642/includeEvmdm642/drivers/includeEvmdm642/drivers/lib/vort.l64Evmdm642/drivers/lib/audio.l64上述庫(kù)文件來(lái)源于TexasInstruments公司網(wǎng)站,可以去上尋找,具體的EVMDM642庫(kù)文件網(wǎng)可以在“/evmdm642/”頁(yè)面中找到,頁(yè)面中還有很多參考資料可以使用。在Matlab/Simulink編譯代碼過(guò)程中找到evmdm642庫(kù)文件之后,Matlab/Simulink會(huì)用CCStudio編寫(xiě)工程文件,對(duì)代碼進(jìn)行編譯糾錯(cuò)并且會(huì)自動(dòng)下載至目標(biāo)板執(zhí)行。這是工程文件中代碼,這個(gè)文件中的代碼可以看到Matlab/Simulink在調(diào)用庫(kù)文件進(jìn)行編譯的過(guò)程中調(diào)用情況的一些細(xì)節(jié):;CodeComposerProjectFile,Version2.0(donotmodifyorremovethisline)[ProjectSettings]ProjectDir="D:\Documents\MATLAB\dm642evmAVpassthrough_ticcs\"ProjectType=ExecutableCPUFamily=TMS320C64XXTool="Compiler"Tool="CustomBuilder"Tool="DspBiosBuilder"Tool="Linker"Config="CustomMW"Config="Debug"Config="Release"[SourceFiles]Source="C:\Users\Administrator\Desktop\evmdm642\evmdm642\drivers\lib\audio.l64"Source="C:\Users\Administrator\Desktop\evmdm642\evmdm642\drivers\lib\vport.l64"Source="C:\Users\Administrator\Desktop\evmdm642\evmdm642\lib\evmdm642bsl.lib"Source="dm642_audio_globals.c"Source="dm642_video_globals.c"Source="dm642evmAVpassthrough.c"Source="dm642evmAVpassthrough.tcf"Source="dm642evmAVpassthrough_main.c"Source="MW_c6xxx_csl.c"Source="MW_c6xxx_csl.h"Source="dm642evmAVpassthrough.cmd"[GeneratedFiles]Source="dm642evmAVpassthroughcfg.s62"Source="dm642evmAVpassthroughcfg_c.c"["Compiler"Settings:"CustomMW"]Options=-o2-fr"D:\Documents\MATLAB\dm642evmAVpassthrough_ticcs\CustomMW"-i"D:\MATLAB\R2014a\toolbox\idelink\extensions\ticcs\inc"-i"C:\Users\Administrator\Desktop\evmdm642\evmdm642\include"-i"C:\Users\Administrator\Desktop\evmdm642\evmdm642\drivers\include"-i"D:\Documents\MATLAB\dm642evmAVpassthrough_ticcs"-i"D:\Documents\MATLAB"-i"C:\MATLAB\SupportPackages\R2014a\tic6000\tic6000examples"-i"D:\MATLAB\R2014a\extern\include"-i"D:\MATLAB\R2014a\simulink\include"-i"D:\MATLAB\R2014a\rtw\c\src"-i"D:\MATLAB\R2014a\rtw\c\src\ext_mode\common"-i"D:\MATLAB\R2014a\rtw\c\ert"-i"D:\MATLAB\R2014a\toolbox\target\extensions\processor\tic6000\include"-d"CHIP_DM642"-d"__TICCSC__"-d"RT"-d"USE_RTMODEL"-d"MODEL=dm642evmAVpassthrough"-d"NUMST=1"-d"NCSTATES=0"-d"HAVESTDIO="-d"ONESTEPFCN=1"-d"TERMFCN=1"-d"MAT_FILE=0"-d"MULTI_INSTANCE_CODE=0"-d"INTEGER_CODE=0"-d"MT=0"-d"CLASSIC_INTERFACE=0"-d"ALLOCATIONFCN=0"-d"TID01EQ=0"-mv6400--mem_model:data=far["Compiler"Settings:"Debug"]Options=-g-pdsw225-fr"$(Proj_dir)\Debug"-d"_DEBUG"-mv6400["Compiler"Settings:"Release"]Options=-pdsw225-o3-fr"$(Proj_dir)\Release"-mv6400["Linker"Settings:"CustomMW"]Options=-c-m"dm642evmAVpassthrough.map"-o"dm642evmAVpassthrough.out"-stack0x2000-x-l"cslDM642.lib"["Linker"Settings:"Debug"]Options=-c-m".\Debug\dm642evmAVpassthrough.map"-o".\Debug\dm642evmAVpassthrough.out"-w-x["Linker"Settings:"Release"]Options=-c-m".\Release\dm642evmAVpassthrough.map"-o".\Release\dm642evmAVpassthrough.out"-w-x["MW_c6xxx_csl.h"Settings:"CustomMW"]ExcludeFromBuild=true["MW_c6xxx_csl.h"Settings:"Debug"]ExcludeFromBuild=true["MW_c6xxx_csl.h"Settings:"Release"]ExcludeFromBuild=true["dm642evmAVpassthrough.cmd"Settings:"CustomMW"]LinkOrder=1["dm642evmAVpassthrough.cmd"Settings:"Debug"]LinkOrder=1["dm642evmAVpassthrough.cmd"Settings:"Release"]LinkOrder=1能夠看出,Matlab/Simulink通過(guò)”CustomMW”、”Debug”、“Release”方式,使用工具(tool):”Compiler"、"CustomBuilder"、"DspBiosBuilder"、"Linker",調(diào)用我導(dǎo)入的evmdm642庫(kù)文件:“audio.l64"、”vport.l64"、”evmdm642bsl.lib"來(lái)建立的這個(gè)新工程文件。這個(gè)文件的寫(xiě)法與我在實(shí)驗(yàn)室中見(jiàn)到的SEED-VPM642DSP系統(tǒng)的代碼如出一轍!這里列出SEED-VPM642DSP系統(tǒng)中,視頻的采集與回放的工程文件內(nèi)容:;CodeComposerProjectFile,Version2.0(donotmodifyorremovethisline)[ProjectSettings]ProjectDir="D:\SEED-DTK_VPM642v1.2\SEED101_VideoReverse\"ProjectType=ExecutableCPUFamily=TMS320C64XXTool="Compiler"Tool="CustomBuilder"Tool="DspBiosBuilder"Tool="Linker"Config="Debug"Config="Release"[SourceFiles]Source="src\_sa7121h.c"Source="src\_tvp51xx.c"Source="src\dm642main.c"Source="src\iic.c"Source="src\seed_cpld.c"Source="src\ves_dm642.asm"Source="src\vportcap.c"Source="src\vportdis.c"Source="seeddm642vedio.cmd"["Compiler"Settings:"Debug"]Options=-g-q-fr"D:\SEED-DTK_VPM642v1.2\SEED101_VideoReverse\Debug"-i"D:\SEED-DTK_VPM642v1.2\SEED101_VideoReverse\include"-d"_DEBUG"-d"CHIP_DM642"-mv6400["Compiler"Settings:"Release"]Options=-q-o3-fr"D:\SEED-DTK_VPM642v1.2\SEED101_VideoReverse\Release"-mv6400["DspBiosBuilder"Settings:"Debug"]Options=-v6x["DspBiosBuilder"Settings:"Release"]Options=-v6x["Linker"Settings:"Debug"]Options=-q-c-m".\Debug\VideoReverseloop2.map"-o".\Debug\VideoReverseloop2.out"-stack0x400-w-x["Linker"Settings:"Release"]Options=-q-c-m".\Release\SEEDVPM642loop2.map"-o".\Release\SEEDVPM642loop2.out"-w–x能夠看出,這個(gè)文件是通過(guò)”Debug”、“Release”兩種方式,使用工具(tool):”Compiler"、"CustomBuilder"、"DspBiosBuilder"、"Linker",調(diào)用“SEED101_VideoReverse”中的庫(kù)文件來(lái)驅(qū)動(dòng)的。所以可以推斷,Matlab/Simulink產(chǎn)生的代碼與傳統(tǒng)DSP編程產(chǎn)生的代碼區(qū)別較小,實(shí)用性較高。在Main文件中,我們可以查看一下頭文件:#include"dm642evmAVpassthrough_main.h"#include"dm642evmAVpassthrough.h"#include"dm642evmAVpassthrough_private.h"#include"dm642evmAVpassthroughcfg.h"#include"rtwtypes.h"#include"MW_c6xxx_csl.h"#include"c6000_main.h"#include<stdlib.h>#include<stdio.h>上述頭文件與我在實(shí)驗(yàn)室中參加SEED-VPM642DSP系統(tǒng)開(kāi)發(fā)使用的代碼的頭文件有一定的區(qū)別:#include<csl.h>#include<csl_emifa.h>#include<csl_i2c.h>#include<csl_gpio.h>#include<csl_irq.h>#include<csl_chip.h>#include<csl_dat.h>#include"iic.h"#include"vportcap.h"#include"vportdis.h"#include"sa7121h.h"#include"TVP51xx.h"#include"TVP51xx.h"#include"seeddm642.h"這是因?yàn)楹芏囹?qū)動(dòng)代碼頭文件(.h)已經(jīng)被整合進(jìn)Simulink工具箱“EmbeddedCoderSupportPacageforTexasInstrumentsC6000DSPs”的DM642函數(shù)模型文件里了基于Matlab對(duì)合眾達(dá)公司SEED-VPM642DSP系統(tǒng)生成代碼進(jìn)行移植的方法和分析上面是對(duì)以TMS320DM642芯片為核心的evmdm642系統(tǒng)進(jìn)行的simulink模型設(shè)計(jì)、仿真和代碼的生成介紹,下面是我對(duì)學(xué)校實(shí)驗(yàn)室中配置的SEED-VPM642系統(tǒng)進(jìn)行代碼生成的研究。這里對(duì)我學(xué)校實(shí)驗(yàn)室里配置的由合眾達(dá)公司出品的SEED-VPM642DSP系統(tǒng)做一下簡(jiǎn)述:合眾達(dá)公司的SEED-VPM642DSP系統(tǒng)是一款專門(mén)為各種視頻應(yīng)用而開(kāi)發(fā)的DSP系統(tǒng),核心芯片是TMS320DM642,在SEED-VPM642中主要集成了DSP、SDRAM、FLASH、VIDEO、AUDIO、UART、IO、RTC、ESAM、ATA與網(wǎng)絡(luò)接口等外設(shè)。與EVMDM642DSP系統(tǒng)相比,外圍設(shè)備中的解碼器使用的是TVP5150和SAA7121H芯片,而EVMDM642DSP系統(tǒng)中主要使用的是TVP5146和SAA7115芯片。這里簡(jiǎn)述介紹下TVP5150視頻解碼器,因?yàn)樯纱a模型的移植的過(guò)程主要就是調(diào)整外圍設(shè)備參數(shù)的過(guò)程,為此需要利用S–Function模塊,即S函數(shù)來(lái)封裝模型。解碼器TVP5150芯片是系統(tǒng)中位于IIC總線上的從設(shè)備[17],擁有2個(gè)不同的從設(shè)備地址可以配置,一條IIC總線只能訪問(wèn)2個(gè)TVP5150配置口,而SEED-VPM642模板上有4個(gè)TVP5150,用總線切換的方法,如下圖4.4.1所示可以將IIC分成二組:圖4.4.1IIC總線與TVP5150配置關(guān)系由上圖可見(jiàn),核心DM642芯片通過(guò)通用I/O口,即通過(guò)GP0[0]來(lái)控制IIC總線的切換,當(dāng)GP0[0]為“0”時(shí),選通第1通道和第2通道TVP5150,而當(dāng)GP0[0]為“1”時(shí),則選通第3通道和第4通道TVP5150。由于輸入格式BT.656格式是TMS320DM642芯片支持的格式只有,所以解碼器TVP5150能與核心芯片建立無(wú)縫連接,進(jìn)行視頻數(shù)據(jù)流通信。TMS320DM642的VP端口有三個(gè),VP端口具體的配置如下圖4.4.2:圖4.4.2TMS320DM642VP端口配置由于合眾達(dá)公司的以TMS320DM642芯片為核心的SEED-VPM642DSP系統(tǒng)的外圍器件使用的是解碼器TVP5150和SAA7121H芯片作為解碼器而非EVMDM642中的TVP5146以及SAA7115。因此,將程序模型移植給我學(xué)校實(shí)驗(yàn)室中的SEED-VPM642系統(tǒng)所需要修改的參數(shù)主要是以解碼芯片為主的修改。這里就需要使用Simulink中的S函數(shù)來(lái)自定義函數(shù)模型,需要設(shè)計(jì)TVP5150以及SAA7121H芯片的封裝模型。SEED-VPM642調(diào)用的視頻解碼頭文件是“TVP51xx.h”。這個(gè)文件的驅(qū)動(dòng)是:#ifndef_TVP51XX_H#define_TVP51XX_H#include<csl_i2c.h>#include<std.h>#include<csl_stdinc.h>typedefenumTVP51XX_AnalogFormat{TVP51XX_AFMT_COMPOSITE,TVP51XX_AFMT_SVIDEO,TVP51XX_AFMT_RGB,TVP51XX_AFMT_YPBPR}TVP51XX_AnalogFormat;typedefenumTVP51XX_Mode{TVP51XX_MODE_NTSC601,TVP51XX_MODE_NTSCSqp,TVP51XX_MODE_PAL601,TVP51XX_MODE_PALSqp,TVP51XX_MODE_USER}TVP51XX_Mode;typedefunsignedintTVP51XX_Cmd;#defineTVP51XX_POWERDOWNEDC_USER+1#defineTVP51XX_POWERUPEDC_USER+2#defineTVP51XX_SET_AMUXMODEEDC_USER+3#defineTVP51XX_NTSCM 0x81#defineTVP51XX_PALBGHIN 0x83#defineTVP51XX_PALM 0x85#defineTVP51XX_COMBINATION-N 0x87#defineTVP51XX_NTSC443 0x89typedefstruct{TVP51XX_ModevideoMode;TVP51XX_AnalogFormataFmt;BoolenableBT656Sync;intinputPort;I2C_HandlehI2C;}TVP51XX_ConfParams;#endif我們可以根據(jù)這個(gè)驅(qū)動(dòng),在S-function中封裝出TVP5150的函數(shù)模型[18][19],如下圖4.4.3是一種封裝的形式:圖4.4.3TVP5150的A/D封裝方式模型同樣的方法可以根據(jù)SAA7121H的驅(qū)動(dòng)函數(shù)模型,封裝成一個(gè)SAA7121的函數(shù)模型,在DM642仿真的模型圖中對(duì)這兩個(gè)解碼芯片加以調(diào)用,就能使Matlab/Simulink產(chǎn)生能在SEED-VPM642DSP系統(tǒng)上運(yùn)行的代碼。我們使用DM642函數(shù)模型來(lái)搭建簡(jiǎn)單的視頻采集系統(tǒng),如圖4.4.4:圖4.4.4DM642視頻采集模型點(diǎn)擊VideoADC,在設(shè)置窗口中更改參數(shù),比如如更改Decodertype參數(shù)為T(mén)VP5150或者SAA7121,如下圖4.4.5所示:圖4.4.5編寫(xiě)SAA7121和TVP5150模型之后的調(diào)用情況由于已經(jīng)編寫(xiě)了SAA7121H和TVP5150的封裝函數(shù)模型,并設(shè)置了調(diào)用,所以在上圖中的Decodertype處已經(jīng)出現(xiàn)了調(diào)用的選項(xiàng),這樣,通過(guò)修改仿真模型設(shè)備參數(shù),針對(duì)我學(xué)校實(shí)驗(yàn)室里的SEED-VPM642系統(tǒng),Matlab/Simulink可以通過(guò)CCStudio調(diào)用庫(kù)文件來(lái)產(chǎn)生C語(yǔ)言代碼,可以在SEED-VPM642系統(tǒng)上運(yùn)行。基于Matlab的DSP代碼生成方法總結(jié)我的畢業(yè)論文中主要闡述
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年齒輪傳動(dòng)測(cè)試題民及答案
- 2025年5歲智商測(cè)試題及答案
- 2025年教資面試試題及答案
- 2025年數(shù)字視覺(jué)設(shè)計(jì)考試題及答案
- 2025年初級(jí)社工章節(jié)試題及答案
- 2025年專注力視聽(tīng)測(cè)試題及答案
- 2025年水利單招面試試題及答案
- 2025年4單元數(shù)學(xué)測(cè)試題及答案
- 保育師中級(jí)練習(xí)試題
- 急救物品制度?復(fù)習(xí)試題含答案
- 2024年高中語(yǔ)文課內(nèi)文言文《齊桓晉文之事》探究性閱讀練習(xí)含答案解析翻譯
- 2019-2023歷年高考真題分類專題06 立體幾何(解答題)(原卷版)
- 感冒(2023年遼寧本溪中考語(yǔ)文試卷非連續(xù)性文本閱讀題及答案)
- 2024新版英語(yǔ)英語(yǔ)3500個(gè)單詞分類大全
- 2024年新高考英語(yǔ)最后一卷(新高考專用)(含答案解析)
- 《新模式英語(yǔ)3(第三版)》 課件 Unit 3 Campus Life
- 領(lǐng)域特定代碼優(yōu)化與生成技術(shù)
- 上海市社區(qū)工作者管理辦法
- 信息技術(shù)咨詢服務(wù)合同協(xié)議2024年
- 小學(xué)語(yǔ)文閱讀素養(yǎng)大賽檢測(cè)卷
- 《網(wǎng)絡(luò)營(yíng)銷實(shí)務(wù)》 課程標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論