(1.上海航天控制技術(shù)研究所,上海 200233; 2.上海師范大學(xué),上海 200233)
自新中國(guó)建立以來(lái),在黨和政府的大力支持下,經(jīng)過(guò)大批科學(xué)工作者多年的不懈努力,我國(guó)飛機(jī)制造技術(shù)取得了長(zhǎng)足的發(fā)展和進(jìn)步。2017年,具有自主知識(shí)產(chǎn)權(quán)的干線民用飛機(jī)C919成功首飛,意味著國(guó)產(chǎn)大飛機(jī)終于實(shí)現(xiàn)了跨越式發(fā)展,也是我國(guó)從工業(yè)大國(guó)邁入工業(yè)強(qiáng)國(guó)的標(biāo)志之一。但也必須清醒的認(rèn)識(shí)到,對(duì)航空發(fā)動(dòng)機(jī)的研究還處于起步階段,這一航空領(lǐng)域的核心部件長(zhǎng)期以來(lái)被國(guó)外少數(shù)公司壟斷[1-2]。近二十年來(lái),隨著國(guó)力的不斷增強(qiáng),我國(guó)在航空發(fā)動(dòng)機(jī)的研發(fā)方面投入了大量的人力、物力,突破多項(xiàng)設(shè)計(jì)和制造瓶頸,實(shí)現(xiàn)了部分型號(hào)的國(guó)產(chǎn)化,多個(gè)系列的戰(zhàn)斗機(jī)、直升機(jī)、無(wú)人機(jī)等都裝備了國(guó)產(chǎn)發(fā)動(dòng)機(jī)。
航空發(fā)動(dòng)機(jī)在設(shè)計(jì)和制造階段,因其結(jié)構(gòu)極其復(fù)雜,需要做大量的計(jì)算機(jī)仿真實(shí)驗(yàn)[3],如前期的數(shù)學(xué)模型仿真、中期的半物理仿真和實(shí)時(shí)仿真以及后期的總裝總測(cè)。為適應(yīng)大數(shù)據(jù)時(shí)代航空發(fā)動(dòng)機(jī)地面實(shí)驗(yàn)的要求,本文總結(jié)了傳統(tǒng)設(shè)備的優(yōu)缺點(diǎn),開發(fā)出一種基于Zynq的傳感器仿真系統(tǒng),可接入綜合實(shí)驗(yàn)網(wǎng)絡(luò),為用戶提供靈活、便捷的操作平臺(tái)。將孤立的設(shè)備組網(wǎng)運(yùn)行,是實(shí)現(xiàn)大數(shù)據(jù)分析的基礎(chǔ),也是建立智能實(shí)驗(yàn)室的重要環(huán)節(jié)。
傳感器仿真系統(tǒng)、采集控制系統(tǒng)和執(zhí)行機(jī)構(gòu)是航空發(fā)動(dòng)機(jī)綜合實(shí)驗(yàn)網(wǎng)絡(luò)的重要組成部分,實(shí)現(xiàn)對(duì)整個(gè)航空發(fā)動(dòng)機(jī)控制系統(tǒng)的硬件在環(huán)仿真[4]。綜合試驗(yàn)網(wǎng)的拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 綜合試驗(yàn)網(wǎng)絡(luò)拓?fù)鋱D
由圖1可知,綜合實(shí)驗(yàn)網(wǎng)絡(luò)主要分為內(nèi)部網(wǎng)與試驗(yàn)網(wǎng)兩大部分,基于網(wǎng)絡(luò)安全方面的考慮[5],在兩者之間設(shè)有防火墻。連接在內(nèi)部網(wǎng)和試驗(yàn)網(wǎng)中的電腦都可通過(guò)服務(wù)器的實(shí)驗(yàn)數(shù)據(jù)管理軟件,遠(yuǎn)程控制仿真系統(tǒng)的工作狀態(tài)、修改數(shù)學(xué)模型、加載程序和查看實(shí)驗(yàn)結(jié)果,所有的實(shí)驗(yàn)數(shù)據(jù)都將存儲(chǔ)在服務(wù)器的數(shù)據(jù)庫(kù)中,便于用戶查詢和回放,從而高效快速定位和排除異常情況。
圖2 傳感器仿真設(shè)備內(nèi)部架構(gòu)圖
接入綜合實(shí)驗(yàn)網(wǎng)絡(luò)的傳感器仿真系統(tǒng),其每一臺(tái)子設(shè)備都會(huì)被分配固定的IP地址。服務(wù)器的實(shí)驗(yàn)數(shù)據(jù)管理軟件啟動(dòng)后,自動(dòng)通過(guò)網(wǎng)絡(luò)與各設(shè)備通信握手,以確定每臺(tái)設(shè)備是否處于正常工作狀態(tài),如果發(fā)現(xiàn)異常,軟件產(chǎn)生警告信息。當(dāng)握手成功后,軟件按照通信協(xié)議組包發(fā)送控制指令,設(shè)備接收完成后解包,計(jì)算校驗(yàn)信息是否正確。在未發(fā)生錯(cuò)誤的情況下,執(zhí)行提取出的指令和數(shù)據(jù),匹配指令集的操作內(nèi)容,根據(jù)算法轉(zhuǎn)換數(shù)據(jù)格式。最后通過(guò)內(nèi)部總線SPI,控制傳感器仿真板卡輸出的相應(yīng)的信號(hào)。
不同型號(hào)的航空發(fā)動(dòng)機(jī)對(duì)于傳感器仿真的數(shù)量各不相同,因此要求仿真系統(tǒng)具有極強(qiáng)的可擴(kuò)展性。系統(tǒng)采用基于以太網(wǎng)的架構(gòu),每增加一臺(tái)子設(shè)備對(duì)應(yīng)到網(wǎng)絡(luò)上僅僅是增加一個(gè)IP地址,不會(huì)影響到系統(tǒng)內(nèi)其他設(shè)備的正常運(yùn)行。子設(shè)備主要包括四個(gè)部分:核心處理單元、數(shù)字仿真板卡、模擬仿真板卡和背板。機(jī)械結(jié)構(gòu)卡槽式設(shè)計(jì),可任意增加或減少仿真板卡的數(shù)量,以適應(yīng)不同型號(hào)航空發(fā)動(dòng)機(jī)的試驗(yàn)需求。傳感器仿真設(shè)備內(nèi)部架構(gòu)如圖2所示。
由圖2可知,仿真系統(tǒng)以背板連接的方式替代了傳統(tǒng)的散線連接方式。核心處理單元與各類型的仿真板卡都與背板相連,背板實(shí)現(xiàn)電源電壓轉(zhuǎn)換、內(nèi)總線分配和信號(hào)輸出的功能。
在整個(gè)架構(gòu)中,對(duì)于電源、接地和模數(shù)區(qū)域的合理劃分是一大難點(diǎn)[6]。傳統(tǒng)設(shè)備一般將模擬和數(shù)字信號(hào)混接,在運(yùn)行時(shí)容易產(chǎn)生較大干擾,影響信號(hào)質(zhì)量。由于技術(shù)的升級(jí),本系統(tǒng)中所涉及的模擬仿真信號(hào)更為精密,而數(shù)字信號(hào)的邊沿速度更快,尤其是扭矩與轉(zhuǎn)速信號(hào)的上升沿時(shí)間小于20納秒。下面以扭矩與轉(zhuǎn)速信號(hào)為例,分析說(shuō)明干擾源的產(chǎn)生與解決措施。
根據(jù)數(shù)學(xué)模型可得扭矩與轉(zhuǎn)速信號(hào)的表達(dá)式如下:
(1)
將式(1)信號(hào)f(t)按傅里葉級(jí)數(shù)展開:
(2)
由式(2)可知,扭矩與轉(zhuǎn)速信號(hào)可以等效為無(wú)窮多個(gè)正弦波的疊加。其上升沿時(shí)間越短,其包含高次諧波的數(shù)量就越多。信號(hào)等效諧波如圖3所示[7]。
圖3 等效諧波圖
當(dāng)方波在導(dǎo)線上傳輸時(shí),高次諧波會(huì)產(chǎn)生天線效應(yīng),向外發(fā)射電磁波。如果將精密模擬信號(hào)與高速數(shù)字信號(hào)混接,數(shù)字信號(hào)的諧波分量會(huì)以串?dāng)_或耦合的方式進(jìn)入模擬回路,成為嚴(yán)重的干擾源。為避免模擬信號(hào)與數(shù)字信號(hào)的耦合與串?dāng)_,本系統(tǒng)將模擬和數(shù)字通道進(jìn)行了劃分,在系統(tǒng)供電設(shè)計(jì)方面做了改進(jìn)。系統(tǒng)供電設(shè)計(jì)如圖4所示。
圖4 系統(tǒng)供電設(shè)計(jì)
圖5 以太網(wǎng)物理收發(fā)器電路圖
由圖4可知,模擬電源與數(shù)字電源隔離供電,模擬地與數(shù)字地之間采用0Ω電阻和磁珠相連,保證地平面的完整性,從而有效的消除了數(shù)模之間的信號(hào)干擾現(xiàn)象,從而保證了信號(hào)質(zhì)量,為下級(jí)信號(hào)處理的正確性提供了保障。
3.1.1 片上系統(tǒng)
核心處理單元基于賽靈思公司高性能Zynq-7000系列FPGA芯片XC7z020,這是一款集成了雙核可編程處理器ARM-Cortex-A9(PS)和可編程邏輯(PL)的芯片,同時(shí)具備軟件可編程、硬件可編程和IO可編程的特性,擁有強(qiáng)大的信號(hào)處理與運(yùn)算能力。通過(guò)模塊的互聯(lián)設(shè)計(jì),為用戶提供自定義的任意邏輯功能,從而擴(kuò)展了處理系統(tǒng)的性能與功能。
3.1.2 片上高速總線AXI4
傳統(tǒng)的CPU+FPGA板級(jí)互聯(lián)方案,主要瓶頸在于總線位數(shù)與數(shù)據(jù)傳輸速率之間的矛盾。并行總線如XINTF、ISA傳輸速率較快,但需要占用較多的IO管腳;串行總線SPI、IIC、Uart等雖然占用較少的IO管腳,然而在通信速率方面難以提高,一般只能通過(guò)降低性能指標(biāo)來(lái)實(shí)現(xiàn)平衡[8]。此外,傳統(tǒng)類型總線還都會(huì)受到PCB布局和布線的限制,容易受到外部電源或其他高頻信號(hào)源的干擾,往往只能應(yīng)用在數(shù)據(jù)吞吐量小、通信速率低的場(chǎng)合。
相比之下,Zynq完全打破了上述制約,并且在面積、功耗和通信速率等方面表現(xiàn)出強(qiáng)大優(yōu)勢(shì)。依托賽靈思高性能AXI4并行總線,可輕松實(shí)現(xiàn)片上高速數(shù)據(jù)傳輸。AXI4總線是可編程處理器(PS)與可編程邏輯(PL)之間的橋梁,只消耗少量的邏輯資源。
由于系統(tǒng)選用的XC7z020芯片內(nèi)部OCM僅256 Kb,不足以滿足程序空間需求,因此外擴(kuò)了DDR用于程序運(yùn)行和數(shù)據(jù)存儲(chǔ)。Zynq內(nèi)部集成了DDR3控制器,方便用戶擴(kuò)展存儲(chǔ)空間[9]。需要注意DDR3的PCB布局布線規(guī)范,主要涉及數(shù)據(jù)總線DQ[31:0]、地址總線A[14:0]、控制信號(hào)DQS和DQM和時(shí)鐘線,重點(diǎn)關(guān)注以下三點(diǎn):
1)數(shù)據(jù)總線DQ[31:0]可平均分為四組,每組對(duì)應(yīng)一個(gè)DQS和DQM信號(hào),組內(nèi)信號(hào)走線必須等長(zhǎng),且保持同層和換層一致。
2)地址總線A[14:0]、時(shí)鐘線和控制線分為一組,走線長(zhǎng)度誤差控制在±15 mil以內(nèi)。
3)時(shí)鐘線的差分對(duì)內(nèi)部走線長(zhǎng)度差小于5 mil,即 |CLKP-CLKN| < 5 mil。
物理收發(fā)器PHY是網(wǎng)絡(luò)物理層的重要部分,采用Maxwell公司的88E1518。XC7z020的內(nèi)部集成有以太網(wǎng)控制器,可自適應(yīng)十兆、百兆和千兆通信速率,PHY芯片通過(guò)RGMII接口對(duì)應(yīng)連接到XC7z020的MIO[27:16]和[53:52]。RGMII在時(shí)鐘上升沿和下降沿同時(shí)傳輸數(shù)據(jù),包括14根信號(hào)線,傳輸速率可達(dá)1000Mbps[10]。具體功能為:
1)發(fā)送:數(shù)據(jù)線ETH_TXD[3:0],控制線ETH_RXCRL,時(shí)鐘ETH_TXCK
2)接收:數(shù)據(jù)線ETH_RXD[3:0],控制線ETH_RXCRL,時(shí)鐘ETH_RXCK
3)控制和狀態(tài)配置:配置接口時(shí)鐘MDC,配置接口數(shù)據(jù)MDIO
物理收發(fā)器PHY的另一端連接帶有網(wǎng)絡(luò)變壓器的RJ-45接口,總共4組差分線:ETH-TD[0:3]_P和ETH-TD[0:3]_N,這四組線在PCB走線時(shí)需要控制阻抗為100歐姆。以太網(wǎng)物理收發(fā)器電路如圖5所示。
XC7z020的內(nèi)部沒有FLASH空間,必須外擴(kuò)存儲(chǔ)器來(lái)保存程序。本系統(tǒng)采用TF卡存儲(chǔ)的方案。系統(tǒng)上電以后,XC7z020自動(dòng)拷貝TF卡上的Boot.bin文件到OCM上運(yùn)行,隨后初始化PS,最后完成PL的配置[11]。
由于TF卡工作電壓為3.3 V,PS的MIO供電為1.8 V,需要使用了TXS02612作為電平橋接芯片。其中主要信號(hào)有:數(shù)據(jù)總線MMC0_DATA[3:0]、時(shí)鐘MMC0_CLK和控制MMC0_CMD。WP是寫保護(hù)(Write protect),當(dāng)WP為低電平時(shí),寫保護(hù)使能,指示告知讀卡器或者SDIO控制器用戶設(shè)置了WP開關(guān),但是并沒有任何電路的設(shè)置,可以忽略之直接進(jìn)行寫操作。CD是檢測(cè)信號(hào)(Card Detect),當(dāng)CD為低電平時(shí)候,表示有卡插入讀卡器。
傳統(tǒng)設(shè)備之間大多采用RS485總線,存在通信速率較慢、不易擴(kuò)展、靈活性差等缺陷。隨著航空發(fā)動(dòng)機(jī)的技術(shù)進(jìn)步,對(duì)于仿真實(shí)驗(yàn)的實(shí)時(shí)性要求越來(lái)越高。在數(shù)據(jù)傳輸方面,不僅數(shù)據(jù)量大,還要確保無(wú)誤碼。因此仿真采用基于網(wǎng)絡(luò)通信的方案替代RS485總線。
LwIP是一種小型開源的TCP/IP協(xié)議棧,能夠在保持TCP/IP協(xié)議主要功能的基礎(chǔ)上,減少對(duì)RAM 的占用。正常運(yùn)行僅占用不超過(guò)20Kb的RAM和40Kb的ROM,這使得LwIP非常適合在不含操作系統(tǒng)的嵌入式設(shè)備中使用。同時(shí)支持多網(wǎng)絡(luò)接口下的IP轉(zhuǎn)發(fā)和ICMP協(xié)議、動(dòng)態(tài)IP地址分配、提供專門的內(nèi)部回調(diào)接口等多種特性[12]。
賽靈思的SDK軟件提供基于LwIP的以太網(wǎng)通信程序,方便用戶做二次開發(fā),本系統(tǒng)采用IPV4版的TCP/IP協(xié)議。在SDK新建工程時(shí)選擇LwIP Echo Server,新建工程的方法如圖6所示。
圖6 新建LwIP Echo Server工程圖
本系統(tǒng)與服務(wù)器通信協(xié)議采用固定數(shù)據(jù)長(zhǎng)度的模式,每楨數(shù)據(jù)為8個(gè)字節(jié),每個(gè)字節(jié)對(duì)應(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ù)校驗(yàn)
當(dāng)所有數(shù)據(jù)都接收成功并且完成相應(yīng)模塊的參數(shù)設(shè)定后,設(shè)備通過(guò)網(wǎng)絡(luò)向服務(wù)器返回設(shè)置成功,如果發(fā)生異常情況,則返回錯(cuò)誤代碼。
4.3.1 網(wǎng)絡(luò)基本參數(shù)
在SDK新建工程LwIP Echo Server的main函數(shù)中,mac_ethernet_address數(shù)組用于設(shè)置MAC地址,由于設(shè)備連接在局域網(wǎng)中,因此只要保證與電腦、移動(dò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ù)存儲(chǔ)結(jié)構(gòu)體
在pbuf.h文件中,定義了數(shù)據(jù)結(jié)構(gòu)體pbuf用于緩存和管理數(shù)據(jù)包。在接收完數(shù)據(jù)后,pbuf會(huì)形成數(shù)據(jù)鏈表,表現(xiàn)形式為pbuf結(jié)構(gòu)體中包含一個(gè)pbuf類型結(jié)構(gòu)體指針,這個(gè)指針指向第二個(gè)pbuf結(jié)構(gòu)體,以此類推,直到最后一個(gè)。pbuf的具體內(nèi)容如下:
structpbuf {
structpbuf *next; 指向下一個(gè)pbuf結(jié)構(gòu)體
void *payload; 指向存儲(chǔ)數(shù)據(jù)的起始地址,32位數(shù)據(jù)格式
u16_t tot_len; 當(dāng)前數(shù)據(jù)與之后所有數(shù)據(jù)的長(zhǎng)度和
u16_t len; 當(dāng)前pbuf的數(shù)據(jù)長(zhǎng)度
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)主要實(shí)現(xiàn)接收服務(wù)器數(shù)據(jù),并且返回運(yùn)行狀態(tài)的功能。具體流程如圖7所示。
圖7 以太網(wǎng)數(shù)據(jù)傳輸函數(shù)流程圖
在進(jìn)入函數(shù)后,首先判斷pbuf的狀態(tài),如果狀態(tài)為空則返回錯(cuò)誤信息,調(diào)用tcp_close()函數(shù)關(guān)閉接收,等待恢復(fù)正常后重啟接收。當(dāng)pbuf狀態(tài)為非空時(shí),讀取結(jié)構(gòu)體幀長(zhǎng)度(pbuf_len)和數(shù)據(jù),根據(jù)報(bào)文格式作數(shù)據(jù)解包,執(zhí)行相應(yīng)的操作,調(diào)用tcp_write()函數(shù)向服務(wù)器返回操作信息。在退出傳輸函數(shù)前,需使用pbuf_free()函數(shù)釋放數(shù)據(jù)包。
仿真系統(tǒng)中的設(shè)備上電以后,連接網(wǎng)線到局域網(wǎng),連接成功后通過(guò)串口打印出網(wǎng)絡(luò)連接信息,測(cè)試機(jī)采用固定IP模式,未使用DHCP動(dòng)態(tài)IP功能。打印信息如圖8所示。
圖8 串口信息
使用網(wǎng)絡(luò)調(diào)試助手新建TCP Client,設(shè)置連接IP地址:192.168.1.10,端口號(hào):7,點(diǎn)擊連接按鈕,連接成功后在數(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)完成對(duì)板卡的設(shè)置后,再次發(fā)送數(shù)據(jù)包:55 AA 00 01,通知服務(wù)器可進(jìn)行下一步操作。航空發(fā)動(dòng)機(jī)傳感器仿真系統(tǒng)實(shí)物如圖9所示。
圖9 傳感器仿真系統(tǒng)實(shí)物圖
本文介紹了一種基于Zynq的航空發(fā)動(dòng)機(jī)傳感器仿真系統(tǒng),具有可擴(kuò)展性強(qiáng)、易于集成、抗干擾性強(qiáng)等特點(diǎn)。實(shí)驗(yàn)結(jié)果表明,系統(tǒng)運(yùn)行穩(wěn)定,可以滿足多種航空發(fā)動(dòng)機(jī)地面仿真測(cè)試的需求。不僅保證了實(shí)驗(yàn)的準(zhǔn)確性和實(shí)時(shí)性,還可提高工作效率,縮短研制周期。
此外,仿真系統(tǒng)中的各設(shè)備,還能在現(xiàn)有的硬件平臺(tái)上靈活配置和升級(jí)。例如,核心控制單元預(yù)留了USB和VGA接口,在Zynq上移植Linux操作系統(tǒng),接上顯示器、鼠標(biāo)和鍵盤,就成為了一臺(tái)便攜式的移動(dòng)設(shè)備。對(duì)于不同程序的切換,用戶僅需更換TF卡即可,無(wú)需連接JTAG燒寫程序,最大程度避免了操作錯(cuò)誤引起的設(shè)備故障。
仿真系統(tǒng)的應(yīng)用領(lǐng)域可推廣到船舶、汽車、機(jī)器人等多個(gè)行業(yè),為用戶提供即插即用和低成本的解決方案。推動(dòng)我國(guó)早日邁入制造業(yè)強(qiáng)國(guó)行列,助力中國(guó)制造2025產(chǎn)業(yè)升級(jí)。