基于DSP/BIOS的數(shù)據(jù)采集系統(tǒng)研制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)多模式、高速、大數(shù)量采集及網(wǎng)絡(luò)實(shí)時(shí)上傳的要求,設(shè)計(jì)專用數(shù)據(jù)采集系統(tǒng)。硬件上以DM642作為主控CPU,軟件上利用其內(nèi)嵌的DSP/BIOS操作系統(tǒng)調(diào)度網(wǎng)絡(luò)控制任務(wù)、數(shù)據(jù)采集任務(wù)、周期觸發(fā)線程以及硬件中斷,并利用網(wǎng)絡(luò)開(kāi)發(fā)工具包NDK實(shí)現(xiàn)TCP/IP協(xié)議,完成網(wǎng)絡(luò)控制和通信。構(gòu)建可靠的數(shù)據(jù)傳輸機(jī)制,保證底層高速采集的大數(shù)據(jù)量快速可靠的上傳。最后,用VC開(kāi)發(fā)上位機(jī)程序,實(shí)現(xiàn)數(shù)據(jù)處理、顯示和故障診斷。實(shí)際應(yīng)用表明該系統(tǒng)運(yùn)行穩(wěn)定,滿足實(shí)時(shí)采集的要求。
關(guān)鍵詞:DSP/BIOS;DM642;多線程;NDK;數(shù)據(jù)采集
隨著嵌入式系統(tǒng)復(fù)雜性、實(shí)時(shí)性的不斷提高,采用單任務(wù)順序和循環(huán)結(jié)構(gòu)的傳統(tǒng)軟件構(gòu)架已經(jīng)不能滿足要求,基于操作系統(tǒng)的多線程設(shè)計(jì)得到越來(lái)越多的應(yīng)用。課題中,為了實(shí)時(shí)監(jiān)測(cè)某型號(hào)導(dǎo)彈的整個(gè)測(cè)試過(guò)程,記錄偶爾出現(xiàn)的故障信息并判斷問(wèn)題原因,設(shè)計(jì)以數(shù)據(jù)采集系統(tǒng)為核心的在線監(jiān)測(cè)設(shè)備。傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)軟件結(jié)構(gòu)實(shí)時(shí)性差、資源利用率低,很難滿足高速、大數(shù)據(jù)量采集并需要實(shí)時(shí)上傳的應(yīng)用場(chǎng)合。而課題中的數(shù)據(jù)采集系統(tǒng)需要采集現(xiàn)場(chǎng)多個(gè)類型、多個(gè)通道的數(shù)據(jù),采集數(shù)據(jù)需通過(guò)網(wǎng)絡(luò)實(shí)時(shí)傳輸給上位機(jī),因此,采用DSP/BIOS實(shí)時(shí)操作系統(tǒng)提供的多任務(wù)機(jī)制并結(jié)合TI提供的NDK網(wǎng)絡(luò)開(kāi)發(fā)工具包來(lái)設(shè)計(jì)研制數(shù)據(jù)采集系統(tǒng)。
1 DSP/BIOS及NDK簡(jiǎn)介
DSP/BIOS是TI公司為C28x,C5000和C6000系列DSP開(kāi)發(fā)的可裁剪實(shí)時(shí)多任務(wù)操作系統(tǒng),同時(shí)也是CCS提供的一套多任務(wù)開(kāi)發(fā)、硬件抽象、實(shí)時(shí)分析和系統(tǒng)配置的專用工具。DSP/BIOS以其功能豐富的APIs綜合管理系統(tǒng)內(nèi)存,實(shí)現(xiàn)任務(wù)分配和調(diào)度,實(shí)時(shí)監(jiān)測(cè)分析系統(tǒng)運(yùn)行,并提供方便的數(shù)據(jù)通信接口和外設(shè)驅(qū)動(dòng)開(kāi)發(fā)工具。DSP/BIOS的運(yùn)用大大降低了DSP軟件開(kāi)發(fā)難度,提高了調(diào)試效率,非常適合結(jié)構(gòu)復(fù)雜、實(shí)時(shí)性強(qiáng)和運(yùn)行效率高的應(yīng)用開(kāi)發(fā)。NDK是TI專門(mén)為網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā)提供的網(wǎng)絡(luò)開(kāi)發(fā)工具包,利用其TCP/IP協(xié)議棧開(kāi)發(fā)網(wǎng)絡(luò)應(yīng)用具有成本低、開(kāi)發(fā)周期短的特點(diǎn)。網(wǎng)絡(luò)性能由套接字類型、套接字緩沖區(qū)、CPU速度和CPU緩沖等幾方面決定。
2 數(shù)據(jù)采集系統(tǒng)總體設(shè)計(jì)
數(shù)據(jù)采集系統(tǒng)可工作在兩種模式下:模式一,采集數(shù)據(jù)通過(guò)網(wǎng)絡(luò)實(shí)時(shí)上傳;模式二,采集數(shù)據(jù)先存入CF卡,監(jiān)測(cè)結(jié)束后一并上傳。硬件上采用DM642+FPGA的主控方案,在DSP中運(yùn)行DSP/BIOS操作系統(tǒng)來(lái)綜合管理外設(shè)資源,分配調(diào)度硬件中斷HWI、周期性觸發(fā)線程PRD、數(shù)據(jù)采集任務(wù)和網(wǎng)絡(luò)控制傳輸任務(wù),從而實(shí)現(xiàn)對(duì)A/D采集、串口通信、數(shù)據(jù)存儲(chǔ)和網(wǎng)絡(luò)收發(fā)的控制。根據(jù)功能劃分,數(shù)據(jù)采集系統(tǒng)可以分為A/D采集單元、RS 422通信單元、CF卡存儲(chǔ)單元和網(wǎng)絡(luò)控制收發(fā)單元。硬件總體框圖如圖1所示。
2.1 A/D采集單元設(shè)計(jì)
A/D采集單元分為高速采集和低速采集2個(gè)通道。高速采集通道選用12位的AD7356,單片并行雙通道,最高采樣率5 MSa/s,串行輸出,通過(guò)5片AD7356的組合可并行或循環(huán)采集10路差分輸入信號(hào)。低速采集通道選用12位的AD7658,單片并行6通道,最高采樣率250KSa/s,2片AD7658采用菊花鏈的級(jí)聯(lián)方式可同時(shí)采集12路差分或單端輸入信號(hào)。A/D控制信號(hào)和轉(zhuǎn)換數(shù)據(jù)通過(guò)磁耦隔離芯片IL716實(shí)現(xiàn)后端隔離。
2.2 其他功能單元設(shè)計(jì)
RS 422串口通信單元采用MAX485實(shí)現(xiàn),1路發(fā)送5路接收,發(fā)送通道用于產(chǎn)生設(shè)備自檢信號(hào)。數(shù)據(jù)存儲(chǔ)單元選用大容量、掉電不丟失的CF卡,并開(kāi)發(fā)支持IDE模式下UDMA傳輸?shù)闹骺豂P核,由FPGA獨(dú)立控制。網(wǎng)路控制收發(fā)單元采用DM642自帶的以太網(wǎng)接口并結(jié)合TI提供的TCP/IP協(xié)議棧實(shí)現(xiàn)。
[!--empirenews.page--]
3 多線程機(jī)制設(shè)計(jì)
3.1 DSP/BIOS提供的多線程機(jī)制
DSP/BIOS支持的線程按優(yōu)先級(jí)從高到低可以分為硬件中斷HWI、軟件中斷SWI、任務(wù)TSK和后臺(tái)線程IDL。HWI就是ISR,優(yōu)先級(jí)最高,適合200 kHz觸發(fā)的任務(wù);SWI適合100 ms或者更大周期的觸發(fā)任務(wù);Task不同SWI之處在于它在執(zhí)行過(guò)程中能被掛起直到必需資源有效,任務(wù)之間可以通過(guò)queue,semaphore,mailbox進(jìn)行信息共享;其他線程不運(yùn)行時(shí)才運(yùn)行IDL;HWI和SWI不能掛起和等待。
3.2 功能劃分及任務(wù)規(guī)劃
為了優(yōu)化CPU資源,實(shí)現(xiàn)各功能的協(xié)調(diào)運(yùn)作,需要合理劃分功能、規(guī)劃任務(wù)。本設(shè)計(jì)中構(gòu)建了2個(gè)硬件中斷線程HWI、一個(gè)周期觸發(fā)線程PRD以及網(wǎng)絡(luò)配置任務(wù)線程和網(wǎng)絡(luò)傳輸任務(wù)線程共5個(gè)線程。各線程運(yùn)行調(diào)度狀態(tài)如圖2所示。
3.2.1 硬件中斷線程
硬件中斷線程主要用來(lái)處理響應(yīng)時(shí)間要求嚴(yán)格的請(qǐng)求,同時(shí)它的優(yōu)先級(jí)最高,能搶占當(dāng)前運(yùn)行的其他線程及時(shí)運(yùn)行。方案中的RS 422通信共5個(gè)接收通道,波特率高達(dá)614.4 Kb/s,且每個(gè)通道的緩沖FIFO只設(shè)計(jì)了256 B,連續(xù)通信時(shí)半滿觸發(fā)的時(shí)間為2 ms左右。因此,采用HWI處理RS 422通信數(shù)據(jù),5個(gè)通道共用一個(gè)DSP中斷源。另外,設(shè)計(jì)要求被測(cè)28 V信號(hào)作為AD采集的開(kāi)關(guān),即28 V有效時(shí)啟動(dòng)采集,28 V無(wú)效就得中斷當(dāng)前采集任務(wù)。因此,通過(guò)比較電路將28 V轉(zhuǎn)換為控制信號(hào)觸發(fā)DSP中斷。
[!--empirenews.page--]
3.2.2 網(wǎng)絡(luò)任務(wù)線程
網(wǎng)絡(luò)服務(wù)啟動(dòng)流程通常是先運(yùn)行NETCTRL任務(wù)線程,完成協(xié)議棧的配置、初始化和事件調(diào)度,然后開(kāi)辟新線程執(zhí)行FTP服務(wù)或者HTTP服務(wù)。本設(shè)計(jì)中,網(wǎng)絡(luò)配置任務(wù)線程即NETCTRL任務(wù)線程,是DSP/BIOS靜態(tài)創(chuàng)建的主線程mainTSK,并動(dòng)態(tài)創(chuàng)建網(wǎng)絡(luò)傳輸任務(wù)線程。網(wǎng)絡(luò)傳輸任務(wù)是最核心的任務(wù)線程,主要完成網(wǎng)絡(luò)命令解析、通道查詢和數(shù)據(jù)上傳的功能,其流程圖如圖3所示。網(wǎng)絡(luò)命令分為自檢、監(jiān)測(cè)和切斷通信下監(jiān)測(cè)3種。自檢時(shí)不需要被測(cè)28 V信號(hào)作為AD采集開(kāi)關(guān),但需要設(shè)備本身提供模擬真實(shí)信號(hào)的以5 ms為周期發(fā)送的RS 422信號(hào),采用PRD來(lái)實(shí)現(xiàn)。通信切斷的功能的為了防止設(shè)備對(duì)原有測(cè)試環(huán)境的影響。
4 數(shù)據(jù)可靠性傳輸機(jī)制設(shè)計(jì)
實(shí)時(shí)采集上傳的數(shù)據(jù)量大,為了保證數(shù)據(jù)傳輸?shù)目煽啃裕C合考慮網(wǎng)絡(luò)帶寬、AD采樣率和緩沖數(shù)組等因素。底層數(shù)據(jù)分為AD采集數(shù)據(jù)和RS 422通信數(shù)據(jù)2類,AD采集又分成高速采集和低速采集2個(gè)通道。高速采集通道的平均數(shù)據(jù)量為4 MB/s,低速采集通道的平均數(shù)據(jù)量為50 KB/s,F(xiàn)PGA中為每個(gè)通道配置一個(gè)FIFO,DSP通過(guò)循環(huán)查詢判斷FIFO標(biāo)志位,有效即從FIFO讀取數(shù)據(jù)再通過(guò)網(wǎng)絡(luò)上傳。RS 422通信數(shù)據(jù)采用中斷方式寫(xiě)到網(wǎng)絡(luò)發(fā)送的緩沖數(shù)組中,為了避免由于中斷搶占導(dǎo)致的數(shù)據(jù)沖突,設(shè)計(jì)2個(gè)緩沖數(shù)組通過(guò)乒乓操作交替寫(xiě)入和上傳通信數(shù)據(jù)。
各環(huán)節(jié)時(shí)間估計(jì)如下:通過(guò)配置寄存器,DSP訪問(wèn)1次外部存儲(chǔ)器需要40個(gè)100 MHz的時(shí)鐘周期。DM642運(yùn)行TI提供的TCP/IP協(xié)議棧,底層通過(guò)網(wǎng)絡(luò)循環(huán)發(fā)送常數(shù)給上位機(jī),經(jīng)測(cè)試,網(wǎng)絡(luò)平均帶寬為80 Mb/s。因此,DSP從FIFO中讀取4 KWord(雙字節(jié))數(shù)據(jù)并上傳需要的時(shí)間至少為2.46 ms,這段時(shí)間里4.MB/s采樣率下積累的數(shù)據(jù)量近10 KB。為了防止一個(gè)通道數(shù)據(jù)有效時(shí)由于CPU正處理另一個(gè)通道的數(shù)據(jù)而導(dǎo)致第一個(gè)通道FIFO溢出的情況,設(shè)計(jì)每個(gè)FIFO的深度為16 KWord,容量達(dá)1/4時(shí)產(chǎn)生滿標(biāo)志位。數(shù)據(jù)傳輸機(jī)制如圖4所示。
5 結(jié)果分析
上位機(jī)軟件采用VC 6.0結(jié)合SQL 2005數(shù)據(jù)庫(kù)開(kāi)發(fā),實(shí)現(xiàn)網(wǎng)絡(luò)控制、數(shù)據(jù)接收和存儲(chǔ)、數(shù)據(jù)處理和故障診斷以及動(dòng)態(tài)顯示信號(hào)波形的功能。每一次監(jiān)測(cè)的數(shù)據(jù)都自動(dòng)保存到數(shù)據(jù)庫(kù)中以便之后的進(jìn)一步分析和處理。
采樣數(shù)據(jù)波形顯示界面如圖5所示。
6 結(jié)語(yǔ)
本設(shè)計(jì)利用DSP/BIOS的多任務(wù)機(jī)制,實(shí)現(xiàn)網(wǎng)絡(luò)控制、數(shù)據(jù)采集以及網(wǎng)絡(luò)通信的有效配合,保證底層高速采集的大數(shù)據(jù)量快速可靠得上傳給上位機(jī)。同時(shí),以DM642的硬件資源為基礎(chǔ),通過(guò)調(diào)用NDK提供的APIs,實(shí)現(xiàn)了百兆以太網(wǎng)的傳輸。上位機(jī)軟件利用數(shù)據(jù)庫(kù)作為數(shù)據(jù)存儲(chǔ)平臺(tái),可以方便得處理、顯示、對(duì)比多次采集結(jié)果。實(shí)際應(yīng)用表明,該系統(tǒng)穩(wěn)定可靠、實(shí)時(shí)性強(qiáng),在高速實(shí)時(shí)數(shù)據(jù)采集領(lǐng)域中有一定的應(yīng)用價(jià)值。