一旦定義了目標(biāo)接口,HDL Workflow Advisor的第2步和第3步便可保持默認(rèn)狀態(tài),然后通過運(yùn)行步驟4.1(創(chuàng)建項(xiàng)目)來啟動(dòng)項(xiàng)目生成過程。此步驟的結(jié)果是產(chǎn)生一個(gè)Vivado項(xiàng)目,其ADS-B IP內(nèi)核已集成到ADI公司的HDL參考設(shè)計(jì)中。圖10顯示了ADS-B IP內(nèi)核與設(shè)計(jì)中其余模塊的連接。
圖10. HDL參考設(shè)計(jì)中的ADS-B IP連接
從Vivado項(xiàng)目生成位流便可結(jié)束HDL集成過程,但最終目標(biāo)是讓Linux在系統(tǒng)上運(yùn)行。 為此,在生成位流之后,可按照標(biāo)準(zhǔn)Xilinx SDK第一階段引導(dǎo)加載程序(fsbl)和Linux引導(dǎo)文件創(chuàng)建過程創(chuàng)建一個(gè)Linux引導(dǎo)文件。與新創(chuàng)建HDL設(shè)計(jì)對(duì)應(yīng)的Linux設(shè)備樹和映像文件隨同AD-FMCOMMS3-EBZ BSP發(fā)布。所有文件都必須與SD卡引導(dǎo)分區(qū)上的Linux引導(dǎo)文件一同復(fù)制;引導(dǎo)分區(qū)用于存儲(chǔ)在Xilinx ZC706板上運(yùn)行ADI公司Linux發(fā)行版所需的全部文件。
C語(yǔ)言代碼平臺(tái)部署
將ADS-B HDL IP集成到SDR平臺(tái)的HDL設(shè)計(jì)并創(chuàng)建Linux SD卡之后,便需要實(shí)現(xiàn)用來解碼ADS-B數(shù)據(jù)的軟件應(yīng)用程序。此應(yīng)用程序基于第5部分生成的C代碼,執(zhí)行如下任務(wù):
配置AD9361以接收ADS-B信號(hào)。
從ADS-B IP內(nèi)核讀取數(shù)據(jù)。
在讀取的數(shù)據(jù)中檢測(cè)有效ADS-B幀。
解碼并顯示ADS-B信息。
實(shí)現(xiàn)任務(wù)1和任務(wù)2的最簡(jiǎn)單方法是使用libiio庫(kù)15提供的功能。此庫(kù)提供了接口函數(shù),允許用戶輕松配置AD9361以及接收和發(fā)送數(shù)據(jù)。 配置過程設(shè)置如下系統(tǒng)參數(shù):
LO頻率—1.09 GHz
采樣速率—12.5 MHz
模擬帶寬—4.0 MHz
AGC—快速啟動(dòng)模式
除上述參數(shù)外,一個(gè)數(shù)據(jù)速率為12.5 MSPS、通帶頻率為3.25 MHz、阻帶頻率為4 MHz的數(shù)字FIR濾波器也被加載到AD9361中,確保收到的數(shù)據(jù)僅包含目標(biāo)頻段。該FIR濾波器的系統(tǒng)參數(shù)和設(shè)計(jì)方法詳見本系列文章第三部分3所述。
ADS-B IP的輸出數(shù)據(jù)通過DMA模塊傳輸?shù)较到y(tǒng)的DDR存儲(chǔ)器。libiio庫(kù)提供如下功能: 將從ADS-B IP獲取的數(shù)據(jù)放置到指定大小的存儲(chǔ)緩沖器中;等待緩沖器填滿;通過指針訪問該緩沖器。 一旦緩沖器填滿,ADS-B解碼算法便可處理數(shù)據(jù)。ADS-B IP內(nèi)核有兩個(gè)輸出通道:一個(gè)通道對(duì)應(yīng)于ADS-B位流,另一個(gè)通道指示一個(gè)有效數(shù)據(jù)幀在位流中的何處結(jié)束。兩個(gè)通道均包含相同的數(shù)據(jù)速率,彼此同步。 有效通道中一個(gè)等于1的樣本表示數(shù)據(jù)通道中一個(gè)有效幀的最后一位。 通過解析這兩個(gè)通道,軟件可以從位流中提取有效的ADS-B數(shù)據(jù)幀,并將數(shù)據(jù)傳送到MATLAB編碼器生成的解碼函數(shù)。當(dāng)計(jì)算航空器坐標(biāo)時(shí),解碼函數(shù)利用ADS-B數(shù)據(jù)幀和當(dāng)前位置的經(jīng)緯度作為輸入。當(dāng)前經(jīng)緯度被指定為應(yīng)用程序的參數(shù)。ADS-B解碼數(shù)據(jù)的顯示與Simulink模型相似。
ADS-B數(shù)據(jù)解碼程序是在Linux下利用makefile構(gòu)建。該應(yīng)用程序的源代碼和makefile可在Analog Devices github庫(kù)中下載16。
這樣就完成了利用HDL編碼器從ADS-B模型生成的HDL代碼和利用MathWorks MATLAB編碼器生成的C代碼的平臺(tái)部署步驟。下一步是驗(yàn)證系統(tǒng)功能并評(píng)估結(jié)果。
系統(tǒng)驗(yàn)證
為了驗(yàn)證系統(tǒng)功能,首先要在AD-FMCOMMS3-EBZ板的一個(gè)接收端口與一個(gè)發(fā)送端口之間建立一個(gè)回送連接,并發(fā)送仿真期間使用的相同ADS-B信號(hào)。通過接收和解碼此數(shù)據(jù),可以驗(yàn)證SDR平臺(tái)上運(yùn)行的算法輸出是否與仿真結(jié)果一致。圖11顯示了ADS-B數(shù)據(jù)解碼程序的輸出,結(jié)果與本系列文章第三部分中利用預(yù)先捕捉的數(shù)據(jù)進(jìn)行HDL仿真所獲得的結(jié)果完全相同。 這說明系統(tǒng)運(yùn)行符合預(yù)期,可以利用實(shí)際數(shù)據(jù)進(jìn)行測(cè)試。
圖11. 回送結(jié)果
現(xiàn)場(chǎng)實(shí)際測(cè)試時(shí),SDR接收機(jī)放在MathWorks位于美國(guó)馬薩諸塞州納蒂克的總部外面,系統(tǒng)解碼的ADS-B信息與飛機(jī)實(shí)時(shí)跟蹤網(wǎng)站(如flightradar24.com)提供的數(shù)據(jù)進(jìn)行對(duì)比。結(jié)果證實(shí):在天線的視線范圍內(nèi),系統(tǒng)能夠解碼從飛機(jī)收到的數(shù)據(jù)。圖12顯示了系統(tǒng)檢測(cè)到的航空器信息與在線飛機(jī)跟蹤數(shù)據(jù)的對(duì)比情況。可以看到,解碼算法給出了正確的航空器ID、高度、速度和經(jīng)緯度坐標(biāo)。
圖12. 實(shí)時(shí)數(shù)據(jù)結(jié)果
結(jié)論
本系列文章展示了如何利用基于模型的設(shè)計(jì)來實(shí)現(xiàn)SDR平臺(tái)從仿真到生產(chǎn)的全過程,這是其中的最后一篇。本系列說明了開發(fā)一個(gè)"硬件準(zhǔn)備就緒"的ADS-B Simulink模型的所有階段。 我們?cè)O(shè)計(jì)了一個(gè)仿真模型來證明我們能夠解碼記錄到的ADS-B消息,然后利用從SDR硬件平臺(tái)獲取的實(shí)時(shí)數(shù)據(jù)驗(yàn)證該模型。這不僅驗(yàn)證了該模型,而且驗(yàn)證了SDR平臺(tái)的模擬前端和數(shù)字接收機(jī)信號(hào)鏈的設(shè)置。同時(shí),它令我們確信該平臺(tái)已調(diào)整好,可用于接收ADS-B信號(hào)。然后,我們將該模型劃分為不同的功能,以便在Zynq處理系統(tǒng)和可編程邏輯上運(yùn)行,并優(yōu)化了該模型以自動(dòng)生成C和HDL代碼。最后,我們將C和HDL代碼集成到SDR設(shè)計(jì)中,并利用實(shí)時(shí)商業(yè)空中交通數(shù)據(jù)驗(yàn)證了系統(tǒng)的功能。最終成果是一個(gè)設(shè)計(jì)流程——使用MathWorks建模和代碼生成工具,并結(jié)合Zynq SDR平臺(tái)來創(chuàng)建全面有效的SDR系統(tǒng)。
示例系統(tǒng)說明:相比于傳統(tǒng)設(shè)計(jì)方法,基于模型的設(shè)計(jì)工作流程與ADI公司的集成RF捷變收發(fā)器可編程無線電硬件AD9361/AD9364 相結(jié)合,可以幫助設(shè)計(jì)團(tuán)隊(duì)更快開發(fā)出有效的無線電原型,成本也更低。文中的原型是由筆者在相對(duì)較短的時(shí)間內(nèi)制作出來的,遇到的障礙極少,使用了如下資源:
在MATLAB和Simulink中能夠創(chuàng)建ADS-B接收機(jī)模型,并生成可用的C和HDL源代碼。
HDL Workflow Advisor中的功能,它們使很多軟硬件集成步驟自動(dòng)完成。
libiio等庫(kù),幫助完成其余集成步驟以便部署SDR原型。
MathWorks和ADI公司提供的產(chǎn)品幫助和技術(shù)支持。
ADS-B是一個(gè)相對(duì)簡(jiǎn)單的標(biāo)準(zhǔn),為通過這種方法構(gòu)建SDR原型提供了一個(gè)很好的測(cè)試案例。采用基于模型的設(shè)計(jì)和Zynq SDR平臺(tái)的工程師應(yīng)當(dāng)能夠按照本系列文章所提出的工作流程,開發(fā)出更復(fù)雜、更強(qiáng)大的QPSK、QAM和LTE SDR系統(tǒng)。
參考文獻(xiàn)?
1Di Pu, Andrei Cozma, 和 Tom Hill. "快速通往量產(chǎn)的四個(gè)步驟:利用基于模型的設(shè)計(jì)開發(fā)軟件無線電,第一部分——ADI/Xilinx SDR快速原型開發(fā)平臺(tái)及其能力、優(yōu)勢(shì)和工具",模擬對(duì)話第49卷第3期。
2Mike Donovan, Andrei Cozma, 和 Di Pu. "快速通往量產(chǎn)的四個(gè)步驟:利用基于模型的設(shè)計(jì)開發(fā)軟件無線電,第二部分——利用MATLAB和Simulink進(jìn)行S模式檢測(cè)和解碼",模擬對(duì)話第49卷第4期。
3Di Pu, Andrei Cozma. "快速通往量產(chǎn)的四個(gè)步驟:利用基于模型的設(shè)計(jì)開發(fā)軟件無線電,第三部分——利用硬件在環(huán)驗(yàn)證S模式信號(hào)解碼算法",模擬對(duì)話第49卷第4期。
4Analog Devices GitHub庫(kù)。
5HDL編碼器。
6HDL編碼器模塊支持。
7MATLAB編碼器。
8MATLAB工具箱。
9MATLAB代碼生成就緒工具。
10AD-FMCOMMS3-EBZ用戶指南。
11Xilinx Zynq-7000 All Programmable SoC ZC706評(píng)估套件。
12AD-FMCOMMS2-EBZ/AD-FMCOMMS3-EBZ/AD-FMCOMMS4-EBZ HDL/AD-FMCOMMS5-EBZ HDL參考設(shè)計(jì)。
13Analog Devices BSP for MathWorks HDL Workflow Advisor。
14電路板和參考設(shè)計(jì)注冊(cè)系統(tǒng)。
15什么是Libiio?
16MathWorks目標(biāo)模型—ADSB。
作者
Mike Donovan是MathWorks公司應(yīng)用工程部門經(jīng)理。他擁有巴克內(nèi)爾大學(xué)電氣工程學(xué)士學(xué)位和康涅狄克大學(xué)電氣工程碩士學(xué)位。加入MathWorks之前,Mike開發(fā)過雷達(dá)和衛(wèi)星通信系統(tǒng),并在寬帶電信行業(yè)工作過。
Andrei Cozma? 是ADI公司工程設(shè)計(jì)經(jīng)理,負(fù)責(zé)支持系統(tǒng)級(jí)參考設(shè)計(jì)的設(shè)計(jì)與開發(fā)。 他擁有工業(yè)自動(dòng)化與信息技術(shù)學(xué)士學(xué)位及電子與電信博士學(xué)位。他參與過電機(jī)控制、工業(yè)自動(dòng)化、軟件定義無線電和電信等不同行業(yè)領(lǐng)域的項(xiàng)目設(shè)計(jì)與開發(fā)。
Di Pu是ADI公司系統(tǒng)建模應(yīng)用工程師,負(fù)責(zé)支持軟件定義無線電平臺(tái)和系統(tǒng)的設(shè)計(jì)與開發(fā)。她與MathWorks密切合作解決雙方共同客戶的難題。加入ADI公司之前,她于2007年獲得南京理工大學(xué)(NJUST)電氣工程學(xué)士學(xué)位,于2009年和2013年分別獲得伍斯特理工學(xué)院(WPI)電氣工程碩士學(xué)位和博士學(xué)位。她是WPI 2013年博士論文Sigma Xi研究獎(jiǎng)獲得者。
評(píng)論
查看更多