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