基于DSP技與+FPGA器件實現(xiàn)數(shù)據(jù)采集設(shè)備的小型化
引言
數(shù)據(jù)采集設(shè)備是測試系統(tǒng)中不可缺少的一部分,數(shù)據(jù)采集需要針對不同類型的需求,需要有高速A/D、低速A/D、數(shù)字多用表等功能,傳統(tǒng)數(shù)據(jù)采集設(shè)備是用一種儀器進行一類測試,通過多種儀器組合實現(xiàn)一組完整測試,這種由多種儀器堆疊起來的數(shù)據(jù)采集系統(tǒng)具有體積和重量較大、成本較高、維護困難等諸多問題。針對這些問題,為完成某系列型號裝備自動測試任務(wù),設(shè)計實現(xiàn)了一種高集成度數(shù)據(jù)采集設(shè)備。該設(shè)備需實現(xiàn)100 M高速A/D、雙通道隔離A/D、6通道低速A/D和數(shù)字多用表功能,采集數(shù)據(jù)通過LAN傳輸給上位機。輸入前端調(diào)理電路支持寬范圍多種信號輸入,并采用超寬輸入范圍的保護電路,實現(xiàn)設(shè)備通用性的同時保證其安全可靠。本設(shè)計采用DSP+FPGA架構(gòu),利用DSP/BIOS實時操作系統(tǒng),結(jié)合TI提供的NDK 網(wǎng)絡(luò)開發(fā)工具包,選用高集成度芯片,在10 cm×18 cm面積上設(shè)計實現(xiàn)該數(shù)據(jù)采集系統(tǒng)。
1 總體設(shè)計
設(shè)備的總體結(jié)構(gòu)如圖1所示。設(shè)備能夠接入到以太網(wǎng)中,并能夠被計算機遠程訪問。
計算機中網(wǎng)絡(luò)通訊程序控制設(shè)備進行數(shù)據(jù)采集并讀取數(shù)據(jù)。整個設(shè)備以DSP+FPGA核心,包含高速A/D、低速隔離A/D、低速非隔離A/D和數(shù)字多用表。DSP選用TI公司主頻720 MHz、32 b定點高性能的TMS320DM642,DM642完成了網(wǎng)絡(luò)、主控功能。利用DM642的自帶的網(wǎng)絡(luò)功能接口,結(jié)合TI提供的網(wǎng)絡(luò)功能開發(fā)包(NDK)實現(xiàn)網(wǎng)絡(luò)通訊功能。采用DSP/BIOS實現(xiàn)分配調(diào)度線程、數(shù)據(jù)采集任務(wù)和網(wǎng)絡(luò)控制傳輸任務(wù),實現(xiàn)對數(shù)據(jù)采集、存儲和網(wǎng)絡(luò)通訊的控制。FPGA選用Altera公司的CycloneⅢ系列低成本工業(yè)級的EP3C55F484I8,編寫接口邏輯實現(xiàn)與DM642的數(shù)據(jù)交互,編寫譯碼邏輯、高速A/D控制邏輯、低速A/D控制邏輯、數(shù)字多用表控制邏輯實現(xiàn)數(shù)據(jù)采集功能。
2 硬件設(shè)計
2.1 網(wǎng)絡(luò)接口設(shè)計
TMS320DM642 自帶一個網(wǎng)絡(luò)功能接口,由EMAC控制模塊、EMAC 模塊和MDIO 模塊組成[4],符合IEEE802.3協(xié)議,在設(shè)計網(wǎng)絡(luò)通訊接口時只需要外接一片網(wǎng)絡(luò)收發(fā)芯片即可,DM642的網(wǎng)絡(luò)功能模塊如圖2所示。
網(wǎng)絡(luò)收發(fā)芯片選用美國國家半導體公司推出的DP83640,其MII接口與DM642 的EMAC 接口直連,MII接口包括接收總線和發(fā)送總線,接收部分包括接收數(shù)據(jù)線RXD[30],接收錯誤標志RX_ER,接收數(shù)據(jù)有效標志RX_DV 和數(shù)據(jù)同步接收時鐘信號RX_CLK,當工作在10 Mb/s 時,RX_CLK 為2.5 MHz,工作在100 Mb/s 時,RX_CLK 為25 MHz.發(fā)送部分包含發(fā)送數(shù)據(jù)線TXD[30],發(fā)送使能位TX_EN,和發(fā)送時鐘TX_CLK,同樣,時鐘可以為2.5 MHz或者25 MHz.另外,MII接口帶有沖突檢測信號COL,用于檢測在半雙工模式下發(fā)送和接收同時發(fā)生的情況。該芯片具有的IEEE1588功能方便日后設(shè)備升級時鐘同步功能。
2.2 A/D采集模塊設(shè)計
A/D 采集單元分為1 路高速采集和8 路低速采集兩部分,其中低速采集部分,分為2路隔離通道和6路非隔離通道,總圖框圖如圖3 所示。高速采集通道選用14 位的A/D6645,最高采樣率105 MSPS,并行輸出。低速采集通道選用24位的A/DS1278,單片并行8通道,最高采樣率144 KSPS,采用8 路串行輸出,同時采集8 路輸入信號。兩路隔離通道選用A/D215隔離運放。
兩路隔離通道輸入電壓范圍±380 V,輸入阻抗為10 MΩ,1 路高速通道和6 路非隔離通道前端均采用運放衰減,分別實現(xiàn)±5 V 和±40 V 電壓輸入范圍,高輸入阻抗和寬范圍電壓輸入范圍使該設(shè)備能夠適應(yīng)大部分被測系統(tǒng),實現(xiàn)了設(shè)備的通用化。每通道前端采用壓敏電阻和自恢復保險絲設(shè)計寬范圍高可靠保護電路,保證設(shè)備的穩(wěn)定性和安全性。
2.3 數(shù)字多用表模塊設(shè)計
該設(shè)備對數(shù)字多用表測量速度、精度要求不是很高,但要求電路板的體積盡可能的小,因此在數(shù)字多用表電路設(shè)計上,選用了MAXIM 公司生產(chǎn)的MAX134 作為測量的核心芯片。MAX134 是單片智能數(shù)字多用表專用芯片,在其外圍配置少量元器件,設(shè)計簡單的電路即可實現(xiàn)精度達到3位半的數(shù)字多用表。該設(shè)備的數(shù)字多用表功能框圖如圖4所示。采用繼電器實現(xiàn)功能切換;電阻分壓器實現(xiàn)0~400 V交、直流電壓輸入;0.1 Ω和1 Ω采樣電阻實現(xiàn)0~4 A交、直流電流轉(zhuǎn)換為電壓信號輸入;AC/DC轉(zhuǎn)換模塊采用有效值轉(zhuǎn)換芯片A/D637,實現(xiàn)交流信號轉(zhuǎn)直流;參考穩(wěn)壓源提供電阻測試的參考電壓,實現(xiàn)0~40 MΩ 電阻測量;外圍元器件實現(xiàn)MAX134 正常工作所需的晶振、電源、濾波等功能。
FPGA 內(nèi)部邏輯控制功能切換、實現(xiàn)MAX134內(nèi)部寄存器的讀寫,進而實現(xiàn)數(shù)字多用表功能。
3 軟件設(shè)計
3.1 網(wǎng)絡(luò)通訊功能實現(xiàn)方法
本設(shè)計利用DSP/BIOS 結(jié)合NDK 實現(xiàn)網(wǎng)絡(luò)通訊功能。DSP/BIOS 是TI 公司為C28x,C5000 和C6000 系列DSP開發(fā)的可剪裁實時多任務(wù)操作系統(tǒng),同時也是CCS提供的一套多任務(wù)開發(fā)、硬件抽象、實時分析和系統(tǒng)配置的專用工具。DSP/BIOS以其功能豐富的APIs綜合管理系統(tǒng)內(nèi)存,實現(xiàn)任務(wù)分配和調(diào)度,實時監(jiān)測分析系統(tǒng)運行,并提供方便的數(shù)據(jù)通信接口和外設(shè)驅(qū)動開發(fā)工具。NDK是TI專門為網(wǎng)絡(luò)應(yīng)用開發(fā)提供的網(wǎng)絡(luò)開發(fā)工具包,利用其TCP/IP協(xié)議棧開發(fā)網(wǎng)絡(luò)應(yīng)用具有成本低、開發(fā)周期短的特點。網(wǎng)絡(luò)性能由套接字類型、套接字緩沖區(qū)、CPU速度和CPU緩沖等幾方面決定。要使用NDK 必須在DSP/BIOS 中配置TCP/IP 協(xié)議棧,主要在DSP/BIOS的。cdb文件中做以下配置:
(1)全局設(shè)置GBL
設(shè)置系統(tǒng)初始化函數(shù)dm642_init,用于設(shè)置L2 模式,分配MAC地址;
(2)設(shè)置MEM對象
配置程序、數(shù)據(jù)存儲區(qū)域及堆棧大小;
(3)設(shè)置HOOK對象
設(shè)置NDK的TCP/IP協(xié)議棧保存空間;
(4)設(shè)置PRD對象
設(shè)置NDK HAL庫中的定時驅(qū)動事件;
(5)設(shè)置線程TSK
靜態(tài)創(chuàng)建2個線程:TSK_idle線程,優(yōu)先級最低,當系統(tǒng)沒有其他任務(wù)執(zhí)行時運行;TSK_main主線程,優(yōu)先級最高,用于配置服務(wù)器信息及啟動HTTP服務(wù)。
配置文件生成之后,在DSP/BIOS 中編寫網(wǎng)絡(luò)主線程TSK_main,用于啟動運行TCP/IP 協(xié)議棧,啟動HTTP服務(wù),同時不斷監(jiān)測和響應(yīng)網(wǎng)絡(luò)底層事件。在主線程中可以動態(tài)創(chuàng)建任務(wù),用于實現(xiàn)與其他網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)通訊功能。
3.2 多任務(wù)線程管理機制
為了優(yōu)化CPU資源,實現(xiàn)各功能的協(xié)調(diào)運作,需要合理劃分功能、規(guī)劃任務(wù)。本設(shè)計構(gòu)建了按優(yōu)先級從高到低創(chuàng)建了高速A/D 線程、低速A/D 線程、數(shù)字多用表線程、網(wǎng)絡(luò)傳輸線程和網(wǎng)絡(luò)配置線程。其中,網(wǎng)絡(luò)傳輸任務(wù)是最核心的任務(wù)線程,主要完成創(chuàng)建線程、網(wǎng)絡(luò)命令解析、通道查詢和數(shù)據(jù)上傳的功能,流程圖如5所示。
網(wǎng)絡(luò)傳輸任務(wù)使用套接字編程,工作在服務(wù)器模式,通訊方式采用TCP.首先調(diào)用fdOpenSession()函數(shù)建立文件描述表,調(diào)用socket()創(chuàng)建套接字,然后綁定IP信息、監(jiān)聽,然后等待客戶端連接請求,一旦客戶端連接上,便調(diào)用fdSelect()函數(shù)檢測客戶端是否發(fā)送數(shù)據(jù),如果有數(shù)據(jù)則接收,否則繼續(xù)檢測,除非客戶端斷開連接。在這種設(shè)計模式下,允許客戶端重復的執(zhí)行斷開、連接操作,保證了系統(tǒng)工作的穩(wěn)定性。
DSP/BIOS 支持硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)(TSK)和空閑線程(IDL)4種類型的線程,它們的線程優(yōu)先級從高到低。硬件中斷線程主要用來處理響應(yīng)時間要求嚴格的請求,同時它的優(yōu)先級最高,能搶占當前運行的其他線程及時運行,本設(shè)計各線程運行調(diào)度狀態(tài)如圖6所示。
圖中黑色陰影部分表示線程運行,白色不封表象線程掛起。高速A/D處理的數(shù)據(jù)量最大,對處理響應(yīng)的時間要求嚴格,故將它的優(yōu)先級設(shè)為最高,能搶占當前運行的其他線程及時運行,保證數(shù)據(jù)實時上傳,低速A/D線程和數(shù)字多用表線程的優(yōu)先級根據(jù)其對時間的要求逐次降低。
4 測試
為了測試接口板的網(wǎng)絡(luò)通訊功能,使用PC 機作為客戶端,與設(shè)備通過路由器連在局域網(wǎng)內(nèi)。設(shè)備作為服務(wù)器端,在PC機端采用VS2005編寫上位機網(wǎng)絡(luò)通訊程序,每次傳輸46 720 B數(shù)據(jù),在開始和結(jié)束數(shù)據(jù)傳輸時刻讀取系統(tǒng)時間,并計算出網(wǎng)絡(luò)傳輸?shù)乃俾剩鐖D7所示。
DM642中L2的Cache大小會影響網(wǎng)絡(luò)傳輸速度,實驗發(fā)現(xiàn),當Cache大小在128 KB是,傳輸速率達到了最佳,為89.2 Mb/s,由于在局域網(wǎng)中網(wǎng)絡(luò)環(huán)境相對復雜等原因,沒有達到理想的100 Mb/s的傳輸速率。A/D數(shù)據(jù)采集和數(shù)字多用表功能的測試,利用Agilent E3631A直流電源、Agilent 34110A6位半數(shù)字多用表和正泰TDGC2-0.2電源模塊等儀器,測試結(jié)果如表1和表2所示。
5 結(jié)語
本設(shè)備選用高性能高集成芯片,采用DSP+FPGA的主控方案,實現(xiàn)了數(shù)據(jù)采集設(shè)備的小型化。前端調(diào)理電路支持多種信號的寬動態(tài)范圍測量,并具有可靠的過壓保護,保證了設(shè)備的通用性與安全性。以DM642 的硬件資源為基礎(chǔ),通過調(diào)用NDK提供的APIs,實現(xiàn)了百兆以太網(wǎng)的傳輸。同時,利用DSP/BIOS的多任務(wù)機制,實現(xiàn)網(wǎng)絡(luò)控制、數(shù)據(jù)采集以及網(wǎng)絡(luò)通訊的有效配合,保證底層高速采集的大數(shù)據(jù)量快速可靠得上傳給上位機。
實際應(yīng)用表明,該設(shè)備穩(wěn)定可靠、實時性強、兼容多種被測系統(tǒng),在數(shù)據(jù)采集領(lǐng)域中有一定的應(yīng)用價值。