技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > DSP/BIOS在嵌入式數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

DSP/BIOS在嵌入式數(shù)據(jù)采集系統(tǒng)中的應(yīng)用

時間:2008-10-28 11:06:00來源:zhangting

導(dǎo)語:?數(shù)據(jù)采集系統(tǒng)在工業(yè)測控以及試驗室研究方面的應(yīng)用非常廣泛。
1 引言 數(shù)據(jù)采集系統(tǒng)在工業(yè)測控以及試驗室研究方面的應(yīng)用非常廣泛。隨著科學(xué)技術(shù)的發(fā)展,數(shù)據(jù)采集技術(shù)被普遍認為是現(xiàn)代科學(xué)研究和技術(shù)發(fā)展的一個重要方面:一方面,數(shù)據(jù)采集系統(tǒng)正向著高精度、高速度、穩(wěn)定可靠和集成化的方向發(fā)展;另一方面,數(shù)據(jù)采集系統(tǒng)也向著實時系統(tǒng)方向發(fā)展,特別是邏輯和時序要求比較高的系統(tǒng)。 本文介紹的嵌入式數(shù)據(jù)采集系統(tǒng)采用dsp/bios實現(xiàn)系統(tǒng)的實時響應(yīng)和調(diào)度。系統(tǒng)介紹了硬件系統(tǒng)設(shè)計結(jié)構(gòu),并說明了dsp/bios在系統(tǒng)中的應(yīng)用,最后闡述了系統(tǒng)的自啟動實現(xiàn)。 2 系統(tǒng)的硬件結(jié)構(gòu) 在本系統(tǒng)中,采用ti的高端dsp芯片—tms320c6205作為系統(tǒng)的cpu,外圍擴展同步動態(tài)ram和異步靜態(tài)rom(flash),并帶有數(shù)據(jù)采集緩沖系統(tǒng)fifo,cpu通過自身的外圍接口直接連接到pci總線上,實現(xiàn)系統(tǒng)與主機的實時通訊。系統(tǒng)結(jié)構(gòu)圖如圖1。 在系統(tǒng)運行過程中,視頻輸入信號由fifo緩沖后送入dsp的外圍擴展sdram,經(jīng)dsp處理后輸出到pci接口及總線與上位機通訊。sdram主要保存系統(tǒng)實時運行的程序和臨時數(shù)據(jù),flash保存系統(tǒng)的啟動及處理程序和一些配置參數(shù)。外圍jtag接口不僅可以對系統(tǒng)進行調(diào)試,還可以實現(xiàn)實時輸出信號處理的結(jié)果。 3 dsp/bios實時系統(tǒng) dsp/bios可以看作一個準(zhǔn)實時操作系統(tǒng),主要是為需要實時調(diào)度和同步以及主機/目標(biāo)機系統(tǒng)通信和實時監(jiān)測的應(yīng)用而設(shè)計的。dsp/bios支持的ti dsp芯片的各種實時操作系統(tǒng)都是以dsp/bios作為底層軟件,為嵌入式應(yīng)用提供基本的運行服務(wù)。此外,它還能通過系統(tǒng)中的jtag接口實時獲取目標(biāo)機的信息,并傳送到上位機對應(yīng)用程序進行實時分析。
dsp/bios提供的運行服務(wù)包括基于優(yōu)先級的任務(wù)調(diào)度、中斷處理和io服務(wù)。在軟件開發(fā)階段,它為實時應(yīng)用提供底層軟件,節(jié)約實驗室開發(fā)時間。dsp/bios的數(shù)據(jù)獲取、統(tǒng)計和事件記錄功能在軟件調(diào)試階段和主機的ccs(code composer studio,ti發(fā)布的集成開發(fā)環(huán)境)內(nèi)的分析工具配合,可以完成對應(yīng)用程序的實時探測、跟蹤和監(jiān)控,與rtdx技術(shù)和ccs的可視化工具相配合,除了可以直接實時顯示原始數(shù)據(jù)外,還可以對原始數(shù)據(jù)進行處理,如實時fft頻譜分析等。 dsp/bios由3部分組成:(1)dsp/bios實時多任務(wù)內(nèi)核;(2)api、dsp/bios實時分析工具;(3)dsp/bios配置工具。 3.1 dsp/bios實時內(nèi)核和api dsp/bios api被分為多個模塊,根據(jù)應(yīng)用程序模塊的配置和使用情況的不同,dsp/bios的代碼為500字到6500字不等。應(yīng)用程序通過調(diào)用api來使用dsp/bios,所有dsp/bios的api都是以c可調(diào)用的形式提供的。只要遵從c的調(diào)用約定,匯編代碼也可以調(diào)用dsp/bios的api。 本系統(tǒng)中要用到dsp/bios實時內(nèi)核中的csl(chip support library)調(diào)用板級支持包,調(diào)用gbl(global setting manager)對系統(tǒng)的環(huán)境進行加載,調(diào)用hwi(hardware interrupt manager)對系統(tǒng)需要用到的硬件中斷進行設(shè)置,調(diào)用swi(software interrupt manager)對系統(tǒng)的軟件中斷進行設(shè)置。對用到實時數(shù)據(jù)交換的地方還需要調(diào)用rtdx(real-time data exchange setting)對交換模塊進行設(shè)置。 3.2 dsp/bios配置工具 dsp/bios配置工具有一個類似windows資源管理器的界面,它具有兩個功能:一個是在運行時設(shè)置dsp/bios庫使用的一系列參數(shù);一個是作為一個可視編輯器,創(chuàng)建被dsp應(yīng)用程序調(diào)用的dsp/bios api函數(shù)時所使用的運行對象,這些對象包括軟件中斷、任務(wù)、io流及是件日志等。 本系統(tǒng)中在調(diào)試時需要用到軟件仿真環(huán)境,這些環(huán)境的參數(shù)需要在配置工具中設(shè)定具體的參數(shù),比如sdram的大小、類型,dsp的外部設(shè)備硬件中斷號設(shè)定,信息處理程序的軟件中斷設(shè)定等。使用配置工具,dsp/bios的對象可以事先配置好并和應(yīng)用程序綁定在一起,比運行是動態(tài)建立這些對象有更高的響應(yīng)速度。 3.3 dsp/bios實時分析工具 dsp/bios分析工具可以輔助ccs環(huán)境實現(xiàn)程序的實時調(diào)試,以可視化的方式觀察程序的性能,并且不影響應(yīng)用程序的運行。dsp/bios分析工具可以通過選擇ccs菜單dsp/bios打開。 與傳統(tǒng)的調(diào)試方法不同的是,程序的實時分析要求在目標(biāo)處理器上運行監(jiān)測代碼。使用dsp/bios的api和對象,可以自動監(jiān)測目標(biāo)處理器,采集實時信息并通過ccs分析工具上傳到主機。實時分析包括:程序跟蹤、性能監(jiān)測和文件服務(wù)等。 4 基于dsp/bios的程序開發(fā) dsp/bios支持交互式的程序開發(fā)模式,可以先為應(yīng)用程序生成一個框架,在使用實際算法之前給程序加上一個仿真的運行負荷來測試程序。在dsp/bios環(huán)境下可以方便的修改線程的優(yōu)先級和類型。 4.1 dsp/bios下一個程序的開發(fā)過程 在dsp/bios下一個程序的開發(fā)過程如下: (1) 用配置工具建立應(yīng)用程序要用到的對象; (2) 保存配置文件,保存的同時會生成在編譯和鏈接應(yīng)用程序時所包括的文件; (3) 為應(yīng)用程序編寫一個框架,可以使用c、c++、匯編語言或這些語言的任意組合; (4) 在ccs環(huán)境下編譯并鏈接程序; (5) 使用仿真器(或者使用硬件平臺原型)和dsp/bios分析工具來測試應(yīng)用程序; (6) 重復(fù)上述步驟直至程序運行正確; (7) 當(dāng)正式產(chǎn)品硬件開發(fā)好后,修改配置文件來支持產(chǎn)品硬件并測試。 4.2 dsp/bios對象的動態(tài)建立、引用和刪除 在程序開發(fā)過程中,經(jīng)常會動態(tài)建立新的dsp/bios對象、動態(tài)引用dsp/bios對象或者刪除dsp/bios對象。通過xxx_create函數(shù)可以建立大部分dsp/bios對象,但不是全部對象,有些對象只能在配置工具中創(chuàng)建。每個xxx_create函數(shù)都可以為對象的內(nèi)部狀態(tài)信息分配存儲空間,并返回一個指向新建對象的句柄,這樣xxx模塊的其他函數(shù)就可以使用這個句柄引用這個新建的對象。下面的一段代碼是建立并初始化pro對象的過程: #include pro_attrs attrs; pro_handle process; attrs=pro_attrs; attrs.name-"reader"; attrs.priority=pro_minpri; process=pro_create((fxn)foo,&attrs); xxx_create函數(shù)所返回的指向某個對象的句柄可以作為引用該對象的參數(shù)傳遞給其他函數(shù),例如傳遞給xxx_delete函數(shù)來刪除對象,代碼如下: pro_delete(process); 5 系統(tǒng)啟動的實現(xiàn) 系統(tǒng)啟動包括兩部分:系統(tǒng)上電引導(dǎo)和dsp/bios啟動。上電完成后dsp運行部分由dsp/bios來控制。 5.1 系統(tǒng)上電引導(dǎo) ti c6000系列dsp可以有3種上電引導(dǎo)方式,包括不加載、rom加載和主機加載等。其中不加載是cpu直接從地址0處開始執(zhí)行代碼。主機加載是在引導(dǎo)過程中,外部主機通過主機接口初始化cpu的存儲空間,主機完成所有的初始化工作后,向接口控制寄存器的dspint位寫1,結(jié)束引導(dǎo)過程,cpu退出復(fù)位狀態(tài),開始執(zhí)行地址0處的指令。主機加載有三種方式,即hpi接口加載、擴展總線加載和pci總線加載。 在本系統(tǒng)中,為了保持系統(tǒng)的獨立性,把加載系統(tǒng)放在外部rom中,實現(xiàn)rom加載。rom加載過程為:位于外部ce1空間的rom中的代碼(從首地址開始的64kb數(shù)據(jù))首先通過dma(或者edma)被搬入地址0處。加載過程在復(fù)位信號撤銷之后完成,此時cpu內(nèi)部保持復(fù)位狀態(tài),由dma(或者edma)執(zhí)行1個單幀的數(shù)據(jù)塊傳輸。傳輸完成后,cpu退出復(fù)位狀態(tài),開始執(zhí)行地址0處的指令。對tms320c6205來說,用戶可以指定外部加載rom的存儲寬度,emif(外部存儲器接口)會自動將相鄰的6bit/16bit數(shù)據(jù)打包成32bit的指令,并且rom中的程序必須按little-endian的模式存儲。 5.2 dsp/bios啟動 autoinit.c和boot.snn文件決定了dsp/bios應(yīng)用程序的啟動序列,這些文件是由庫bios.ann和bioss.ann提供的。啟動過程包括一下幾步: (1) 初始化dsp:dsp/bios程序從入口點c_int00開始運行,復(fù)位中斷向量指向c_int00地址。對于tms320c6205來說,堆棧指針(b15)和全局指針(b14)被初始化指向.stack段的末尾和.bss段的開始。控制寄存器amr、ier和csr也被初始化。 (2) 用.cinit段中的記錄來初始化.bss段:堆棧建立好后,初始化例程用.cinit段中的記錄初始化全局變量。 (3) 調(diào)用bios_init初始化dsp/bios模塊:bios_init執(zhí)行基本的模塊初始化,然后調(diào)用mod_init宏分別初始化每個用到的模塊。如hwi_init初始化有關(guān)中斷的寄存器。 (4) 處理.pinit表:.pinit表包含了初始化函數(shù)的指針 (5) 調(diào)用應(yīng)用程序主程序main函數(shù):在所有dsp/bios模塊初始化之后,調(diào)用main函數(shù)。此時硬件中斷和軟件中斷都是禁止的,應(yīng)用程序可以在此添加自己的初始化代碼。 (6) 調(diào)用bios_start啟動dsp/bios:bios_start函數(shù)是由配置工具產(chǎn)生的,包含在programcfg.snn文件中,它負責(zé)使能dsp/bios模塊并為每個用到的模塊調(diào)用mod_startup宏使其開始工作。 在這些工作完成之后,dsp/bios調(diào)用idl_loop引導(dǎo)程序進入dsp/bios空閑循環(huán),此時硬件和軟件中斷可以搶先空閑循環(huán)的執(zhí)行,主機也可以和目標(biāo)機之間開始數(shù)據(jù)傳輸。 6 結(jié)束語 dsp/bios在整個目標(biāo)模板上主要起到兩方面的作用:其一是實現(xiàn)主機調(diào)試環(huán)境對目標(biāo)模板上運行的應(yīng)用程序的實時監(jiān)察和控制,其二是實現(xiàn)各線程之間的調(diào)度和線程間的通信。將dsp/bios應(yīng)用于數(shù)據(jù)采集板上dsp應(yīng)用程序的設(shè)計不但能夠縮短開發(fā)周期,而且因為dsp/bios的多線程機制使得應(yīng)用程序的功能得到了徹底的分化,所以在這種情況下,當(dāng)原程序增加新的功能時也不會影響到程序的實時響應(yīng)特性,增強了程序的可維護性。

標(biāo)簽:

點贊

分享到:

上一篇:CAN總線及其在UPS網(wǎng)絡(luò)監(jiān)控系...

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.treenowplaneincome.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

中國傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號