(1.上海航天控制技術(shù)研究所,上海 200233; 2.上海師范大學(xué),上海 200233)
自新中國建立以來,在黨和政府的大力支持下,經(jīng)過大批科學(xué)工作者多年的不懈努力,我國飛機(jī)制造技術(shù)取得了長足的發(fā)展和進(jìn)步。2017年,具有自主知識產(chǎn)權(quán)的干線民用飛機(jī)C919成功首飛,意味著國產(chǎn)大飛機(jī)終于實現(xiàn)了跨越式發(fā)展,也是我國從工業(yè)大國邁入工業(yè)強(qiáng)國的標(biāo)志之一。但也必須清醒的認(rèn)識到,對航空發(fā)動機(jī)的研究還處于起步階段,這一航空領(lǐng)域的核心部件長期以來被國外少數(shù)公司壟斷[1-2]。近二十年來,隨著國力的不斷增強(qiáng),我國在航空發(fā)動機(jī)的研發(fā)方面投入了大量的人力、物力,突破多項設(shè)計和制造瓶頸,實現(xiàn)了部分型號的國產(chǎn)化,多個系列的戰(zhàn)斗機(jī)、直升機(jī)、無人機(jī)等都裝備了國產(chǎn)發(fā)動機(jī)。
航空發(fā)動機(jī)在設(shè)計和制造階段,因其結(jié)構(gòu)極其復(fù)雜,需要做大量的計算機(jī)仿真實驗[3],如前期的數(shù)學(xué)模型仿真、中期的半物理仿真和實時仿真以及后期的總裝總測。為適應(yīng)大數(shù)據(jù)時代航空發(fā)動機(jī)地面實驗的要求,本文總結(jié)了傳統(tǒng)設(shè)備的優(yōu)缺點,開發(fā)出一種基于Zynq的傳感器仿真系統(tǒng),可接入綜合實驗網(wǎng)絡(luò),為用戶提供靈活、便捷的操作平臺。將孤立的設(shè)備組網(wǎng)運(yùn)行,是實現(xiàn)大數(shù)據(jù)分析的基礎(chǔ),也是建立智能實驗室的重要環(huán)節(jié)。
傳感器仿真系統(tǒng)、采集控制系統(tǒng)和執(zhí)行機(jī)構(gòu)是航空發(fā)動機(jī)綜合實驗網(wǎng)絡(luò)的重要組成部分,實現(xiàn)對整個航空發(fā)動機(jī)控制系統(tǒng)的硬件在環(huán)仿真[4]。綜合試驗網(wǎng)的拓?fù)浣Y(jié)構(gòu)如圖1所示。

圖1 綜合試驗網(wǎng)絡(luò)拓?fù)鋱D
由圖1可知,綜合實驗網(wǎng)絡(luò)主要分為內(nèi)部網(wǎng)與試驗網(wǎng)兩大部分,基于網(wǎng)絡(luò)安全方面的考慮[5],在兩者之間設(shè)有防火墻。連接在內(nèi)部網(wǎng)和試驗網(wǎng)中的電腦都可通過服務(wù)器的實驗數(shù)據(jù)管理軟件,遠(yuǎn)程控制仿真系統(tǒng)的工作狀態(tài)、修改數(shù)學(xué)模型、加載程序和查看實驗結(jié)果,所有的實驗數(shù)據(jù)都將存儲在服務(wù)器的數(shù)據(jù)庫中,便于用戶查詢和回放,從而高效快速定位和排除異常情況。

圖2 傳感器仿真設(shè)備內(nèi)部架構(gòu)圖
接入綜合實驗網(wǎng)絡(luò)的傳感器仿真系統(tǒng),其每一臺子設(shè)備都會被分配固定的IP地址。服務(wù)器的實驗數(shù)據(jù)管理軟件啟動后,自動通過網(wǎng)絡(luò)與各設(shè)備通信握手,以確定每臺設(shè)備是否處于正常工作狀態(tài),如果發(fā)現(xiàn)異常,軟件產(chǎn)生警告信息。當(dāng)握手成功后,軟件按照通信協(xié)議組包發(fā)送控制指令,設(shè)備接收完成后解包,計算校驗信息是否正確。在未發(fā)生錯誤的情況下,執(zhí)行提取出的指令和數(shù)據(jù),匹配指令集的操作內(nèi)容,根據(jù)算法轉(zhuǎn)換數(shù)據(jù)格式。最后通過內(nèi)部總線SPI,控制傳感器仿真板卡輸出的相應(yīng)的信號。
不同型號的航空發(fā)動機(jī)對于傳感器仿真的數(shù)量各不相同,因此要求仿真系統(tǒng)具有極強(qiáng)的可擴(kuò)展性。系統(tǒng)采用基于以太網(wǎng)的架構(gòu),每增加一臺子設(shè)備對應(yīng)到網(wǎng)絡(luò)上僅僅是增加一個IP地址,不會影響到系統(tǒng)內(nèi)其他設(shè)備的正常運(yùn)行。子設(shè)備主要包括四個部分:核心處理單元、數(shù)字仿真板卡、模擬仿真板卡和背板。機(jī)械結(jié)構(gòu)卡槽式設(shè)計,可任意增加或減少仿真板卡的數(shù)量,以適應(yīng)不同型號航空發(fā)動機(jī)的試驗需求。傳感器仿真設(shè)備內(nèi)部架構(gòu)如圖2所示。
由圖2可知,仿真系統(tǒng)以背板連接的方式替代了傳統(tǒng)的散線連接方式。核心處理單元與各類型的仿真板卡都與背板相連,背板實現(xiàn)電源電壓轉(zhuǎn)換、內(nèi)總線分配和信號輸出的功能。
在整個架構(gòu)中,對于電源、接地和模數(shù)區(qū)域的合理劃分是一大難點[6]。傳統(tǒng)設(shè)備一般將模擬和數(shù)字信號混接,在運(yùn)行時容易產(chǎn)生較大干擾,影響信號質(zhì)量。由于技術(shù)的升級,本系統(tǒng)中所涉及的模擬仿真信號更為精密,而數(shù)字信號的邊沿速度更快,尤其是扭矩與轉(zhuǎn)速信號的上升沿時間小于20納秒。下面以扭矩與轉(zhuǎn)速信號為例,分析說明干擾源的產(chǎn)生與解決措施。
根據(jù)數(shù)學(xué)模型可得扭矩與轉(zhuǎn)速信號的表達(dá)式如下:
(1)
將式(1)信號f(t)按傅里葉級數(shù)展開:
(2)
由式(2)可知,扭矩與轉(zhuǎn)速信號可以等效為無窮多個正弦波的疊加。其上升沿時間越短,其包含高次諧波的數(shù)量就越多。信號等效諧波如圖3所示[7]。

圖3 等效諧波圖
當(dāng)方波在導(dǎo)線上傳輸時,高次諧波會產(chǎn)生天線效應(yīng),向外發(fā)射電磁波。如果將精密模擬信號與高速數(shù)字信號混接,數(shù)字信號的諧波分量會以串?dāng)_或耦合的方式進(jìn)入模擬回路,成為嚴(yán)重的干擾源。為避免模擬信號與數(shù)字信號的耦合與串?dāng)_,本系統(tǒng)將模擬和數(shù)字通道進(jìn)行了劃分,在系統(tǒng)供電設(shè)計方面做了改進(jìn)。系統(tǒng)供電設(shè)計如圖4所示。

圖4 系統(tǒng)供電設(shè)計

圖5 以太網(wǎng)物理收發(fā)器電路圖
由圖4可知,模擬電源與數(shù)字電源隔離供電,模擬地與數(shù)字地之間采用0Ω電阻和磁珠相連,保證地平面的完整性,從而有效的消除了數(shù)模之間的信號干擾現(xiàn)象,從而保證了信號質(zhì)量,為下級信號處理的正確性提供了保障。
3.1.1 片上系統(tǒng)
核心處理單元基于賽靈思公司高性能Zynq-7000系列FPGA芯片XC7z020,這是一款集成了雙核可編程處理器ARM-Cortex-A9(PS)和可編程邏輯(PL)的芯片,同時具備軟件可編程、硬件可編程和IO可編程的特性,擁有強(qiáng)大的信號處理與運(yùn)算能力。通過模塊的互聯(lián)設(shè)計,為用戶提供自定義的任意邏輯功能,從而擴(kuò)展了處理系統(tǒng)的性能與功能。
3.1.2 片上高速總線AXI4
傳統(tǒng)的CPU+FPGA板級互聯(lián)方案,主要瓶頸在于總線位數(shù)與數(shù)據(jù)傳輸速率之間的矛盾。并行總線如XINTF、ISA傳輸速率較快,但需要占用較多的IO管腳;串行總線SPI、IIC、Uart等雖然占用較少的IO管腳,然而在通信速率方面難以提高,一般只能通過降低性能指標(biāo)來實現(xiàn)平衡[8]。此外,傳統(tǒng)類型總線還都會受到PCB布局和布線的限制,容易受到外部電源或其他高頻信號源的干擾,往往只能應(yīng)用在數(shù)據(jù)吞吐量小、通信速率低的場合。
相比之下,Zynq完全打破了上述制約,并且在面積、功耗和通信速率等方面表現(xiàn)出強(qiáng)大優(yōu)勢。依托賽靈思高性能AXI4并行總線,可輕松實現(xiàn)片上高速數(shù)據(jù)傳輸。AXI4總線是可編程處理器(PS)與可編程邏輯(PL)之間的橋梁,只消耗少量的邏輯資源。
由于系統(tǒng)選用的XC7z020芯片內(nèi)部OCM僅256 Kb,不足以滿足程序空間需求,因此外擴(kuò)了DDR用于程序運(yùn)行和數(shù)據(jù)存儲。Zynq內(nèi)部集成了DDR3控制器,方便用戶擴(kuò)展存儲空間[9]。需要注意DDR3的PCB布局布線規(guī)范,主要涉及數(shù)據(jù)總線DQ[31:0]、地址總線A[14:0]、控制信號DQS和DQM和時鐘線,重點關(guān)注以下三點:
1)數(shù)據(jù)總線DQ[31:0]可平均分為四組,每組對應(yīng)一個DQS和DQM信號,組內(nèi)信號走線必須等長,且保持同層和換層一致。
2)地址總線A[14:0]、時鐘線和控制線分為一組,走線長度誤差控制在±15 mil以內(nèi)。
3)時鐘線的差分對內(nèi)部走線長度差小于5 mil,即 |CLKP-CLKN| < 5 mil。
物理收發(fā)器PHY是網(wǎng)絡(luò)物理層的重要部分,采用Maxwell公司的88E1518。XC7z020的內(nèi)部集成有以太網(wǎng)控制器,可自適應(yīng)十兆、百兆和千兆通信速率,PHY芯片通過RGMII接口對應(yīng)連接到XC7z020的MIO[27:16]和[53:52]。RGMII在時鐘上升沿和下降沿同時傳輸數(shù)據(jù),包括14根信號線,傳輸速率可達(dá)1000Mbps[10]。具體功能為:
1)發(fā)送:數(shù)據(jù)線ETH_TXD[3:0],控制線ETH_RXCRL,時鐘ETH_TXCK
2)接收:數(shù)據(jù)線ETH_RXD[3:0],控制線ETH_RXCRL,時鐘ETH_RXCK
3)控制和狀態(tài)配置:配置接口時鐘MDC,配置接口數(shù)據(jù)MDIO
物理收發(fā)器PHY的另一端連接帶有網(wǎng)絡(luò)變壓器的RJ-45接口,總共4組差分線:ETH-TD[0:3]_P和ETH-TD[0:3]_N,這四組線在PCB走線時需要控制阻抗為100歐姆。以太網(wǎng)物理收發(fā)器電路如圖5所示。
XC7z020的內(nèi)部沒有FLASH空間,必須外擴(kuò)存儲器來保存程序。本系統(tǒng)采用TF卡存儲的方案。系統(tǒng)上電以后,XC7z020自動拷貝TF卡上的Boot.bin文件到OCM上運(yùn)行,隨后初始化PS,最后完成PL的配置[11]。
由于TF卡工作電壓為3.3 V,PS的MIO供電為1.8 V,需要使用了TXS02612作為電平橋接芯片。其中主要信號有:數(shù)據(jù)總線MMC0_DATA[3:0]、時鐘MMC0_CLK和控制MMC0_CMD。WP是寫保護(hù)(Write protect),當(dāng)WP為低電平時,寫保護(hù)使能,指示告知讀卡器或者SDIO控制器用戶設(shè)置了WP開關(guān),但是并沒有任何電路的設(shè)置,可以忽略之直接進(jìn)行寫操作。CD是檢測信號(Card Detect),當(dāng)CD為低電平時候,表示有卡插入讀卡器。
傳統(tǒng)設(shè)備之間大多采用RS485總線,存在通信速率較慢、不易擴(kuò)展、靈活性差等缺陷。隨著航空發(fā)動機(jī)的技術(shù)進(jìn)步,對于仿真實驗的實時性要求越來越高。在數(shù)據(jù)傳輸方面,不僅數(shù)據(jù)量大,還要確保無誤碼。因此仿真采用基于網(wǎng)絡(luò)通信的方案替代RS485總線。
LwIP是一種小型開源的TCP/IP協(xié)議棧,能夠在保持TCP/IP協(xié)議主要功能的基礎(chǔ)上,減少對RAM 的占用。正常運(yùn)行僅占用不超過20Kb的RAM和40Kb的ROM,這使得LwIP非常適合在不含操作系統(tǒng)的嵌入式設(shè)備中使用。同時支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā)和ICMP協(xié)議、動態(tài)IP地址分配、提供專門的內(nèi)部回調(diào)接口等多種特性[12]。
賽靈思的SDK軟件提供基于LwIP的以太網(wǎng)通信程序,方便用戶做二次開發(fā),本系統(tǒng)采用IPV4版的TCP/IP協(xié)議。在SDK新建工程時選擇LwIP Echo Server,新建工程的方法如圖6所示。

圖6 新建LwIP Echo Server工程圖
本系統(tǒng)與服務(wù)器通信協(xié)議采用固定數(shù)據(jù)長度的模式,每楨數(shù)據(jù)為8個字節(jié),每個字節(jié)對應(yīng)不同的功能,如表1所示。

表1 通信協(xié)議表
1)字節(jié)1和字節(jié)2:通信索引,固定設(shè)置0xAA和0x55
2)字節(jié)3:選擇設(shè)備內(nèi)部的需要設(shè)置參數(shù)的板卡
3)字節(jié)4:選擇板卡的子模塊
4)字節(jié)5:控制板卡的輸出模式,如頻率、電壓等
5)字節(jié)6和字節(jié)7:設(shè)置需要寫入模塊的參數(shù)
6)字節(jié)8:數(shù)據(jù)校驗
當(dāng)所有數(shù)據(jù)都接收成功并且完成相應(yīng)模塊的參數(shù)設(shè)定后,設(shè)備通過網(wǎng)絡(luò)向服務(wù)器返回設(shè)置成功,如果發(fā)生異常情況,則返回錯誤代碼。
4.3.1 網(wǎng)絡(luò)基本參數(shù)
在SDK新建工程LwIP Echo Server的main函數(shù)中,mac_ethernet_address數(shù)組用于設(shè)置MAC地址,由于設(shè)備連接在局域網(wǎng)中,因此只要保證與電腦、移動終端、服務(wù)器和其他設(shè)備的MAC地址不沖突即可[13]。
函數(shù)IP4_ADDR和print_ip_settings用于IP地址和子網(wǎng)掩碼,具體操作如下:
IP4_ADDR(&ipaddr,192,168,1,10); 設(shè)置本機(jī)IP地址
IP4_ADDR(&netmask,255,255,255,0); 設(shè)置子網(wǎng)掩碼
IP4_ADDR(&gw,192,168,1,1); 設(shè)置網(wǎng)關(guān)地址
print_ip_settings(&ipaddr,&netmask,&gw); 將配置信息寫入以太網(wǎng)控制器
4.3.2 數(shù)據(jù)存儲結(jié)構(gòu)體
在pbuf.h文件中,定義了數(shù)據(jù)結(jié)構(gòu)體pbuf用于緩存和管理數(shù)據(jù)包。在接收完數(shù)據(jù)后,pbuf會形成數(shù)據(jù)鏈表,表現(xiàn)形式為pbuf結(jié)構(gòu)體中包含一個pbuf類型結(jié)構(gòu)體指針,這個指針指向第二個pbuf結(jié)構(gòu)體,以此類推,直到最后一個。pbuf的具體內(nèi)容如下:
structpbuf {
structpbuf *next; 指向下一個pbuf結(jié)構(gòu)體
void *payload; 指向存儲數(shù)據(jù)的起始地址,32位數(shù)據(jù)格式
u16_t tot_len; 當(dāng)前數(shù)據(jù)與之后所有數(shù)據(jù)的長度和
u16_t len; 當(dāng)前pbuf的數(shù)據(jù)長度
u8_t type; pbuf可定義為四種類型:RAM,ROM,REF和POOL
u8_t flags; 數(shù)據(jù)標(biāo)志位
u16_t ref; 當(dāng)前pbuf的被引用次數(shù)
};
4.3.3 數(shù)據(jù)發(fā)送和接收
本系統(tǒng)主要實現(xiàn)接收服務(wù)器數(shù)據(jù),并且返回運(yùn)行狀態(tài)的功能。具體流程如圖7所示。

圖7 以太網(wǎng)數(shù)據(jù)傳輸函數(shù)流程圖
在進(jìn)入函數(shù)后,首先判斷pbuf的狀態(tài),如果狀態(tài)為空則返回錯誤信息,調(diào)用tcp_close()函數(shù)關(guān)閉接收,等待恢復(fù)正常后重啟接收。當(dāng)pbuf狀態(tài)為非空時,讀取結(jié)構(gòu)體幀長度(pbuf_len)和數(shù)據(jù),根據(jù)報文格式作數(shù)據(jù)解包,執(zhí)行相應(yīng)的操作,調(diào)用tcp_write()函數(shù)向服務(wù)器返回操作信息。在退出傳輸函數(shù)前,需使用pbuf_free()函數(shù)釋放數(shù)據(jù)包。
仿真系統(tǒng)中的設(shè)備上電以后,連接網(wǎng)線到局域網(wǎng),連接成功后通過串口打印出網(wǎng)絡(luò)連接信息,測試機(jī)采用固定IP模式,未使用DHCP動態(tài)IP功能。打印信息如圖8所示。

圖8 串口信息
使用網(wǎng)絡(luò)調(diào)試助手新建TCP Client,設(shè)置連接IP地址:192.168.1.10,端口號:7,點擊連接按鈕,連接成功后在數(shù)據(jù)接收區(qū)顯示:已連接。發(fā)送數(shù)據(jù)包:AA 55 81 80 01 FF FF 59,設(shè)置設(shè)備中第一塊扭矩與轉(zhuǎn)速板卡的第一通道轉(zhuǎn)速為2 kHz,再次發(fā)送數(shù)據(jù)包:AA 55 81 80 02 FF FF 59,設(shè)置轉(zhuǎn)速板卡的第一通道扭矩為25°。設(shè)備在數(shù)據(jù)接收完成后,返回接收到的所有數(shù)據(jù)內(nèi)容,當(dāng)完成對板卡的設(shè)置后,再次發(fā)送數(shù)據(jù)包:55 AA 00 01,通知服務(wù)器可進(jìn)行下一步操作。航空發(fā)動機(jī)傳感器仿真系統(tǒng)實物如圖9所示。

圖9 傳感器仿真系統(tǒng)實物圖
本文介紹了一種基于Zynq的航空發(fā)動機(jī)傳感器仿真系統(tǒng),具有可擴(kuò)展性強(qiáng)、易于集成、抗干擾性強(qiáng)等特點。實驗結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)定,可以滿足多種航空發(fā)動機(jī)地面仿真測試的需求。不僅保證了實驗的準(zhǔn)確性和實時性,還可提高工作效率,縮短研制周期。
此外,仿真系統(tǒng)中的各設(shè)備,還能在現(xiàn)有的硬件平臺上靈活配置和升級。例如,核心控制單元預(yù)留了USB和VGA接口,在Zynq上移植Linux操作系統(tǒng),接上顯示器、鼠標(biāo)和鍵盤,就成為了一臺便攜式的移動設(shè)備。對于不同程序的切換,用戶僅需更換TF卡即可,無需連接JTAG燒寫程序,最大程度避免了操作錯誤引起的設(shè)備故障。
仿真系統(tǒng)的應(yīng)用領(lǐng)域可推廣到船舶、汽車、機(jī)器人等多個行業(yè),為用戶提供即插即用和低成本的解決方案。推動我國早日邁入制造業(yè)強(qiáng)國行列,助力中國制造2025產(chǎn)業(yè)升級。