楊志新,王 勇
(南京郵電大學(xué)自動(dòng)化學(xué)院,江蘇南京210003)
嵌入式技術(shù)是目前電子行業(yè)研究的熱點(diǎn),然而嵌入式技術(shù)在網(wǎng)路通信上的應(yīng)用更成為了一種必然的趨勢[1]。本文針對網(wǎng)路通信系統(tǒng)的維修保障,給出了基于DSP和VC及網(wǎng)絡(luò)通信的對網(wǎng)路通信系統(tǒng)性能進(jìn)行檢測的精簡、高效的設(shè)計(jì)方案,能夠在短時(shí)間內(nèi)對網(wǎng)路通信系統(tǒng)進(jìn)行快速檢測。
系統(tǒng)的硬件結(jié)構(gòu)主要包括基于TMS320VC5510 DSP處理芯片和CS8900A的網(wǎng)卡芯片電路的設(shè)計(jì),如圖1所示。DSP芯片是本系統(tǒng)設(shè)計(jì)的核心,它完成了對設(shè)備測量數(shù)據(jù)的解析及處理,已經(jīng)按照既定的通信協(xié)議與VC程序完成了數(shù)據(jù)的傳輸和測試控制。本系統(tǒng)采用的是美國TI公司開發(fā)的TMS320VC5510微處理芯片,它具有更高的代碼執(zhí)行效率和更低的功耗,其最高指令執(zhí)行速度可達(dá)800MIPS,它主要由CPU、外設(shè)總線控制器、DMA控制器、片上外設(shè)和片上存儲(chǔ)單元等幾大部分組成。網(wǎng)卡芯片采用的是Cirrus Logic公司生產(chǎn)的cs8900a局域網(wǎng)處理芯片,它采用的是100 pin TQFP封裝,內(nèi)部集成了在片RAM、10BASE-T收發(fā)濾波器,并且提供8位和16位兩種接口。
圖1 系統(tǒng)的硬件設(shè)計(jì)結(jié)構(gòu)
首先由VC通過串口向DSP發(fā)送各個(gè)模塊的測試命令[2],DSP收到這些命令后,根據(jù)命令解析函數(shù)解析命令,調(diào)用不同處理函數(shù)去完成相應(yīng)的操作,并把最終的測試結(jié)果返回給VC,并在VC界面中顯示測量結(jié)果。在DSP中主要遵循層層調(diào)用的原則[3],即:VC程序發(fā)送命令給 DSP,進(jìn)入DSP中斷函數(shù),中斷函數(shù)調(diào)用dsp55x.c中的命令解析函數(shù),對收到的不同命令,dsp55x.c通過調(diào)用cs8900a.c中不同的處理函數(shù)來完成不同的測試功能,然后通過寫串口函數(shù)把測試結(jié)果回送給VC程序,這樣的設(shè)計(jì)與調(diào)用順序清晰明了,程序規(guī)范而易懂。
我們把測試命令分為三類:DSP模擬總線通信命令;各個(gè)接口發(fā)功能測試;各個(gè)接口收功能測試。
如果DSP收到總線連接命令,則調(diào)用cs8900a函數(shù)Send_Data(),利用以太網(wǎng)發(fā)送函數(shù)ethernet_driver_send(),模擬總線發(fā)確認(rèn)幀。
如果DSP收到的是各接口發(fā)功能測試命令,則調(diào)用cs8900a函數(shù)Send_Data(),利用以太網(wǎng)發(fā)送函數(shù)ethernet_driver_send(),模擬各接口發(fā)不同的音頻數(shù)據(jù)包,這里不同的數(shù)據(jù)包是根據(jù)不同的測試接口調(diào)用expand_packet_change()函數(shù)而改變的,主要更改的是目標(biāo)MAC地址、源MAC地址、命令字等關(guān)鍵信息,音頻數(shù)據(jù)部分可以采用同樣的數(shù)據(jù)。
如果DSP收到的是各接口收功能測試命令,則調(diào)用cs8900a函數(shù)Send_Data(),利用音頻測試函數(shù)YinPinV(int flag),根據(jù)A律轉(zhuǎn)線性函數(shù)alaw2linear()解碼出來的存放在expand_packet[]數(shù)組中的數(shù)據(jù)計(jì)算電壓幅值、調(diào)制速率等參數(shù),這里,expand_packet[]是在 arp_broadcast()函數(shù)中不斷更新的。
具體的DSP程序測試流程示意圖如圖2所示:
主要對 VC、dsp55x.c、cs8900a.c 三個(gè)源文件中包含的測試函數(shù)進(jìn)行相關(guān)的描述[4],及主要函數(shù)的流程說明。
主要包括相關(guān)的連接命令發(fā)送函數(shù)、測試命令發(fā)送函數(shù)、測試結(jié)果接受函數(shù)。通過發(fā)送連接測試命令建立與被測接口的正常通信,然后通過發(fā)送相關(guān)的測試命令控制DSP完成相應(yīng)的操作,最終顯示由DSP測試顯示的結(jié)果。
圖2 軟件設(shè)計(jì)測試流程
本模塊主要通過讀串口信息,獲取由VC發(fā)送的測試命令,然后調(diào)用cs8900a.c中的相關(guān)測試函數(shù),通過cs8900a與被測設(shè)備建立通信方式,然后把相關(guān)的測試結(jié)果經(jīng)過DSP中的算法處理,然后通過串口發(fā)送給VC程序。
cs8900a.c主要完成與網(wǎng)口操作有關(guān)的工作,如DSP模擬發(fā)功能時(shí),通過網(wǎng)口向外發(fā)送數(shù)據(jù)包,DSP模擬收功能時(shí),通過網(wǎng)口接收數(shù)據(jù)包,還有廣播函數(shù)arp_broadcast()一直在讀以太網(wǎng)上傳來的數(shù)據(jù),并把符合條件的音頻數(shù)據(jù)通過A律轉(zhuǎn)線性函數(shù)alaw2linear()解碼,保存在特定數(shù)組中,這些數(shù)組一直在更新,在我們測試的時(shí)候可以隨時(shí)調(diào)用這些數(shù)組進(jìn)行各參數(shù)計(jì)算,并且完成了精簡協(xié)議棧在DSP中的移植,使得網(wǎng)口可以進(jìn)行數(shù)據(jù)傳輸。
在測試程序中,最關(guān)鍵的函數(shù)就是各接口收/發(fā)音頻測試函數(shù),即為dsp55x.c中的 YinPinTest()和 cs8900a.c中的YinPinV(int flag),這兩個(gè)關(guān)鍵函數(shù)的流程圖分別如圖3、圖4所示。
(1)void YinPinTest():發(fā)音頻測試函數(shù)
(2)void YinPinV(int flag):收音頻測試函數(shù)
圖3 發(fā)音頻測試函數(shù)流程圖
圖4 收音頻測試函數(shù)流程圖
在本課題中提出了基于DSP和VC的對網(wǎng)絡(luò)通信系統(tǒng)性能進(jìn)行測試的方案,以及其實(shí)現(xiàn)方法,TMS320VC5510微處理芯片高效率的代碼執(zhí)行和cs8900a穩(wěn)定的網(wǎng)卡芯片可以確保最終可實(shí)現(xiàn)在短時(shí)間內(nèi)對網(wǎng)絡(luò)通信系統(tǒng)的現(xiàn)場保障和維修檢測。接下來的研究中還需要解決的問題是,如何解決不同測試命令之間的交互、測試方法的穩(wěn)定性以及VC測試流程和被測設(shè)備之間的時(shí)序調(diào)整,設(shè)置可以通過網(wǎng)絡(luò)來傳輸檢測的結(jié)果,實(shí)現(xiàn)對設(shè)備的遠(yuǎn)程檢測及分析。
[1]王田苗.嵌入式系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例[M].北京:清華大學(xué)出版社,2002.
[2]杜廣微,張軍國,韓寧.基于TCP/IP協(xié)議棧的嵌入式以太網(wǎng)終端設(shè)計(jì)[J].航空計(jì)算機(jī)技術(shù),2007,(4):131 -134.
[3]申敏.DSP原理及其在移動(dòng)通信中的應(yīng)用[M].北京:人民郵電出版社,2001.
[4]李師賢,蔣愛軍,梅曉勇,等.C++Primer中文版[M].北京:人民郵電出版社,2006.