基于LAN的高集成度數(shù)據(jù)采集設(shè)備研制
FPGA 內(nèi)部邏輯控制功能切換、實(shí)現(xiàn)MAX134內(nèi)部寄存器的讀寫,進(jìn)而實(shí)現(xiàn)數(shù)字多用表功能。
3 軟件設(shè)計(jì)
3.1 網(wǎng)絡(luò)通訊功能實(shí)現(xiàn)方法
本設(shè)計(jì)利用DSP/BIOS 結(jié)合NDK 實(shí)現(xiàn)網(wǎng)絡(luò)通訊功能。DSP/BIOS 是TI 公司為C28x,C5000 和C6000 系列DSP開發(fā)的可剪裁實(shí)時(shí)多任務(wù)操作系統(tǒng),同時(shí)也是CCS提供的一套多任務(wù)開發(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)開發(fā)工具。NDK是TI專門為網(wǎng)絡(luò)應(yīng)用開發(fā)提供的網(wǎng)絡(luò)開發(fā)工具包,利用其TCP/IP協(xié)議棧開發(fā)網(wǎng)絡(luò)應(yīng)用具有成本低、開發(fā)周期短的特點(diǎn)。網(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對(duì)象
配置程序、數(shù)據(jù)存儲(chǔ)區(qū)域及堆棧大小;
(3)設(shè)置HOOK對(duì)象
設(shè)置NDK的TCP/IP協(xié)議棧保存空間;
(4)設(shè)置PRD對(duì)象
設(shè)置NDK HAL庫中的定時(shí)驅(qū)動(dòng)事件;
(5)設(shè)置線程TSK
靜態(tài)創(chuàng)建2個(gè)線程:TSK_idle線程,優(yōu)先級(jí)最低,當(dāng)系統(tǒng)沒有其他任務(wù)執(zhí)行時(shí)運(yùn)行;TSK_main主線程,優(yōu)先級(jí)最高,用于配置服務(wù)器信息及啟動(dòng)HTTP服務(wù)。
配置文件生成之后,在DSP/BIOS 中編寫網(wǎng)絡(luò)主線程TSK_main,用于啟動(dòng)運(yùn)行TCP/IP 協(xié)議棧,啟動(dòng)HTTP服務(wù),同時(shí)不斷監(jiān)測(cè)和響應(yīng)網(wǎng)絡(luò)底層事件。在主線程中可以動(dòng)態(tài)創(chuàng)建任務(wù),用于實(shí)現(xiàn)與其他網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)通訊功能。3.2 多任務(wù)線程管理機(jī)制
為了優(yōu)化CPU資源,實(shí)現(xiàn)各功能的協(xié)調(diào)運(yùn)作,需要合理劃分功能、規(guī)劃任務(wù)。本設(shè)計(jì)構(gòu)建了按優(yōu)先級(jí)從高到低創(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)聽,然后等待客戶端連接請(qǐng)求,一旦客戶端連接上,便調(diào)用fdSelect()函數(shù)檢測(cè)客戶端是否發(fā)送數(shù)據(jù),如果有數(shù)據(jù)則接收,否則繼續(xù)檢測(cè),除非客戶端斷開連接。在這種設(shè)計(jì)模式下,允許客戶端重復(fù)的執(zhí)行斷開、連接操作,保證了系統(tǒng)工作的穩(wěn)定性。
DSP/BIOS 支持硬件中斷(HWI)、軟件中斷(SWI)、任務(wù)(TSK)和空閑線程(IDL)4種類型的線程,它們的線程優(yōu)先級(jí)從高到低。硬件中斷線程主要用來處理響應(yīng)時(shí)間要求嚴(yán)格的請(qǐng)求,同時(shí)它的優(yōu)先級(jí)最高,能搶占當(dāng)前運(yùn)行的其他線程及時(shí)運(yùn)行,本設(shè)計(jì)各線程運(yùn)行調(diào)度狀態(tài)如圖6所示。
圖中黑色陰影部分表示線程運(yùn)行,白色不封表象線程掛起。高速A/D處理的數(shù)據(jù)量最大,對(duì)處理響應(yīng)的時(shí)間要求嚴(yán)格,故將它的優(yōu)先級(jí)設(shè)為最高,能搶占當(dāng)前運(yùn)行的其他線程及時(shí)運(yùn)行,保證數(shù)據(jù)實(shí)時(shí)上傳,低速A/D線程和數(shù)字多用表線程的優(yōu)先級(jí)根據(jù)其對(duì)時(shí)間的要求逐次降低。
4 測(cè)試
為了測(cè)試接口板的網(wǎng)絡(luò)通訊功能,使用PC 機(jī)作為客戶端,與設(shè)備通過路由器連在局域網(wǎng)內(nèi)。設(shè)備作為服務(wù)器端,在PC機(jī)端采用VS2005編寫上位機(jī)網(wǎng)絡(luò)通訊程序,每次傳輸46 720 B數(shù)據(jù),在開始和結(jié)束數(shù)據(jù)傳輸時(shí)刻讀取系統(tǒng)時(shí)間,并計(jì)算出網(wǎng)絡(luò)傳輸?shù)乃俾?,如圖7所示。
DM642中L2的Cache大小會(huì)影響網(wǎng)絡(luò)傳輸速度,實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)Cache大小在128 KB是,傳輸速率達(dá)到了最佳,為89.2 Mb/s,由于在局域網(wǎng)中網(wǎng)絡(luò)環(huán)境相對(duì)復(fù)雜等原因,沒有達(dá)到理想的100 Mb/s的傳輸速率。A/D數(shù)據(jù)采集
評(píng)論