楊蕊姣,李志宇,陳 喆
(1.南京航空航天大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210016;2.南京航空航天大學(xué) 無人機(jī)研究院,江蘇 南京 210016)
飛控計(jì)算機(jī)是整個(gè)飛行控制系統(tǒng)的核心部件,它的可靠運(yùn)行是無人機(jī)安全的保障,它的微小故障都有可能引發(fā)災(zāi)難性的后果。為了尋求提高飛控計(jì)算機(jī)可靠性的有效途徑,在國內(nèi)外已進(jìn)行了大量的研究工作,并且表明:除了選擇高質(zhì)量的元部件之外,提高飛控計(jì)算機(jī)可靠性的根本途徑是采用余度技術(shù)[1]。采用余度技術(shù)的設(shè)計(jì)方法容易實(shí)現(xiàn)且高效,能有效抑制系統(tǒng)的隨機(jī)故障,使系統(tǒng)的可靠性大幅度提高。本設(shè)計(jì)即是基于三余度飛控計(jì)算機(jī)。
在三余度飛控計(jì)算機(jī)中,飛控計(jì)算機(jī)內(nèi)核之間進(jìn)行數(shù)據(jù)交換是系統(tǒng)工作的基礎(chǔ),只有進(jìn)行實(shí)時(shí)、高質(zhì)量的數(shù)據(jù)傳輸,才能及時(shí)地交流信息、分析數(shù)據(jù)、發(fā)現(xiàn)故障、解除故障,從而保證整個(gè)系統(tǒng)可靠穩(wěn)定地運(yùn)行。鑒于飛控計(jì)算機(jī)工作過程中需要交換的數(shù)據(jù)量大,對(duì)傳輸?shù)膶?shí)時(shí)性要求高[2],本文提出了一種采用共享內(nèi)存技術(shù)進(jìn)行三余度飛控計(jì)算機(jī)數(shù)據(jù)交叉?zhèn)鬏數(shù)姆椒ā?/p>
本文中設(shè)計(jì)的飛控計(jì)算機(jī)內(nèi)核部分采用混合余度的設(shè)計(jì)方案,可以有效彌補(bǔ)相似余度和非相似余度兩種結(jié)構(gòu)存在的不足,其三個(gè)通道分別是PowerPC工作通道、x86工作通道和PowerPC監(jiān)控通道。其中PowerPC工作通道作為主通道,x86通道作為備用通道。正常情況下,由PowerPC工作通道的輸出信號(hào)控制執(zhí)行機(jī)構(gòu)動(dòng)作;當(dāng)PowerPC工作通道出現(xiàn)故障時(shí),PowerPC監(jiān)控通道將PowerPC工作通道切斷,使x86工作通道接入系統(tǒng);若是PowerPC監(jiān)控通道判斷出PowerPC工作通道、x86工作通道都出現(xiàn)故障,則由PowerPC監(jiān)控通道輸出控制信號(hào)控制執(zhí)行機(jī)構(gòu)動(dòng)作。
飛控計(jì)算機(jī)的3個(gè)通道互相獨(dú)立,通道之間的數(shù)據(jù)交叉?zhèn)鬏斖ㄟ^三片雙口RAM來實(shí)現(xiàn),每?jī)蓚€(gè)通道間使用一片雙口RAM,從而實(shí)現(xiàn)飛控計(jì)算機(jī)3個(gè)通道間兩兩通信。三片雙口RAM的片選信號(hào)及讀寫控制邏輯由三片CPLD完成,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig.1 Overall structure of the system
正常工作時(shí),PowerPC工作通道、x86工作通道和PowerPC監(jiān)控通道共同進(jìn)行任務(wù)周期同步,同步完成后,三通道同時(shí)采集傳感器數(shù)據(jù),進(jìn)行控制律解算,并把重要數(shù)據(jù)寫進(jìn)對(duì)應(yīng)的雙口RAM里,各個(gè)通道讀取其它兩個(gè)通道的數(shù)據(jù),和自身數(shù)據(jù)進(jìn)行比較,運(yùn)用特定的算法判定自身和其它兩通道是否工作正常。雙口RAM的應(yīng)用,為飛控計(jì)算機(jī)內(nèi)核直接的數(shù)據(jù)交換提供了一種簡(jiǎn)單可靠的手段,其集成度高且數(shù)據(jù)交換更為快速、穩(wěn)定,雙端口RAM可以作為系統(tǒng)RAM的一部分進(jìn)行訪問,占用系統(tǒng)資源比較少[3]。
3.1.1 雙口RAM簡(jiǎn)介
雙端口RAM選用美國IDT公司研發(fā)的IDT7006,其存儲(chǔ)容量為16K*8b,存儲(chǔ)速度最高可達(dá)15ns,地址總線允許訪問內(nèi)部所有地址空間。IDT7006的內(nèi)部邏輯如圖2所示。其主要性能特點(diǎn)有:具有兩套完全獨(dú)立的數(shù)據(jù)總線、地址總線以及控制總線,能夠?qū)崿F(xiàn)異步雙尋址訪問;雙片選,允許不需要外部邏輯的深度擴(kuò)展;具有兩套獨(dú)立的BUSY信號(hào),用來避免雙機(jī)讀寫同一地址空間時(shí)發(fā)生爭(zhēng)用,保證雙機(jī)有序訪問RAM存儲(chǔ)空間[4]。
圖2 IDT7006的內(nèi)部邏輯圖Fig.2 Internal logic diagram of IDT7006
3.1.2 雙口RAM連接及地址分配
雙口RAM的地址線A13~A0,連接到PC104總線的低14位地址線上;數(shù)據(jù)線D7~D0,連接到PC104總線的低8位數(shù)據(jù)線上;是雙口RAM的片選信號(hào),由PC104總線的高六位地址線A19~A14經(jīng)過CPLD譯碼得到;是雙口RAM的讀寫控制信號(hào),由PC104總線讀寫控制信號(hào)smemw和smemr經(jīng)過CPLD進(jìn)行邏輯運(yùn)算得到。
PowerPC板卡 PC104總線空間為 0X3000000~0X30FFFFF,x86板卡 RAM空間可用地址為 0XD0000~0XEFFFF,綜合PowerPC板卡及x86板卡的內(nèi)存空間,設(shè)定本系統(tǒng)外擴(kuò)雙口RAM的地址空間為0XD0000~0XDBFFF,3片雙口RAM的內(nèi)存地址分別為0XD0000~0XD3FFF,0XD4000~0XD7FFF,0XD8000~0XDBFFF。
3.1.3 雙口RAM讀寫仲裁方式
對(duì)于雙口RAM的讀寫操作,選用合適的仲裁方式極為重要。數(shù)據(jù)交換的仲裁如果處理不當(dāng),通信雙方便會(huì)發(fā)生沖突。比如當(dāng)PowerPC工作通道對(duì)雙口RAM的一個(gè)存儲(chǔ)單元進(jìn)行寫操作時(shí),x86工作通道也對(duì)這個(gè)單元寫入數(shù)據(jù),就必然導(dǎo)致寫操作的錯(cuò)誤[5]。
為了有效協(xié)調(diào)通信雙方的讀寫操作,雙口RAM IDT7006自身提供了BUSY信號(hào)仲裁的方法,因PC104總線具有等待輸入信號(hào),可以很方便地應(yīng)用這種方法。雙口RAM兩端信號(hào)分別接到PC104總線的IOCHRDY信號(hào)上,當(dāng)左端PC104總線對(duì)雙口RAM進(jìn)行讀寫操作時(shí),雙口RAM的右忙信號(hào)會(huì)通知右端PC104總線RAM正在被訪問,則右端總線的IOCHRDY自動(dòng)插入等待狀態(tài);同理,右端PC104總線對(duì)雙口RAM進(jìn)行讀寫操作時(shí),左端PC104總線插入等待狀態(tài)。
由于本設(shè)計(jì)需要完成雙口RAM的選通及讀寫控制,而CPLD在組合邏輯方面具有優(yōu)勢(shì)[6],故本設(shè)計(jì)選用可編程邏輯器件EPM7128S來實(shí)現(xiàn)PC104總線和雙口RAM的接口電路。EPM7128S是美國Altera公司開發(fā)的是第二代高性能CMOS EEPROM器件,具有128個(gè)宏單元,2500個(gè)可用編程門電路,計(jì)數(shù)器工作頻率可達(dá)147 MHZ,并且可以通過JTAG接口實(shí)現(xiàn)在線編程。本設(shè)計(jì)PC104總線最大頻率只有8MHZ,并且一個(gè)任務(wù)周期的時(shí)間為20ms,EPM7128S可以滿足系統(tǒng)需求。
下面以A片CPLD為例說明PC104總線、CPLD及雙口RAM的連接關(guān)系,A片CPLD跨接在PowerPC工作通道和x86工作通道之間,用來控制兩邊總線對(duì)雙口RAM A的讀寫。根據(jù)功能需求,對(duì)CPLD A的IO管腳進(jìn)行輸入輸出設(shè)置。其中輸入信號(hào)包括:兩通道PC104總線的高6位地址線PC1_A[19:14]、x86_A[19:14], 讀 寫 信 號(hào) 線 PC1_smemw、x86_smemw、PC1_smemr、x86_smemr, 地 址 使 能 信 號(hào) 線PC1_aen、x86_aen,IO 通 道 就 緒 信 號(hào) 線 PC1_IOCHRDY、x86_IOCHRDY,以及雙口RAM的忙信號(hào)線BUSY。CPLD的輸出信號(hào)包括:雙口RAM A的片選信號(hào)線oe、ce及讀寫控制線r/w。各個(gè)部件的連接關(guān)系如圖3所示。
圖3 CPLD A接口電路Fig.3 Interface circuit of CPLD A
CPLD正確的邏輯控制是本系統(tǒng)可正常工作的前提,下面以CPLD A為例說明CPLD內(nèi)部的邏輯關(guān)系,CPLD A內(nèi)部邏輯圖如圖4所示。工作原理為:PC104總線地址信號(hào)A19~A14與雙口RAM基地址在CPLD中進(jìn)行比較,當(dāng)與某片雙口RAM基地址相等并且此時(shí)RAM空閑,地址信號(hào)使能,相應(yīng)的片選信號(hào)ce置為低電平,進(jìn)行該雙口RAM的讀寫訪問;總線的讀寫控制信號(hào)smemr和smemw經(jīng)過CPLD,產(chǎn)生讀寫信號(hào),控制雙口RAM的r/w信號(hào)。
圖4 CPLD A內(nèi)部邏輯圖Fig.4 Internal logic diagram of CPLD A
利用QuartusⅡ軟件對(duì)CPLD A芯片進(jìn)行時(shí)序仿真,得出仿真結(jié)果如圖5所示。
圖5 CPLD A時(shí)序仿真圖Fig.5 Timing simulation diagram of CPLD A
由圖5可見,當(dāng)PC104總線的地址信號(hào) A19~A13為110100時(shí),與第1片雙口RAM的基地址0XD0000的高六位相等,該雙口RAM的片選信號(hào)ce變?yōu)榈?,選中該片雙口RAM;PC104總線讀信號(hào)smemr為低時(shí),讀有效,oe信號(hào)變?yōu)榈停瑀/w變?yōu)楦?,雙口RAM可進(jìn)行讀操作;PC104總線寫信號(hào)smemw為低時(shí),寫有效,r/w變?yōu)榈?,雙口RAM可進(jìn)行寫操作。同理,當(dāng)A19~A13取相應(yīng)值時(shí),可實(shí)現(xiàn)對(duì)其它兩片雙口RAM的控制。
文中提出了一種基于雙口RAM[7]的內(nèi)存共享技術(shù)進(jìn)行混合三余度飛控計(jì)算機(jī)數(shù)據(jù)交換的方法,有效地解決了多機(jī)數(shù)據(jù)傳輸中的速度瓶頸問題。經(jīng)過仿真驗(yàn)證,得出的波形符合預(yù)期效果。后序?qū)⒔Y(jié)合實(shí)際的硬件電路設(shè)計(jì)對(duì)該方法進(jìn)一步驗(yàn)證。此外,系統(tǒng)中所設(shè)計(jì)的PC104總線與雙口RAM的接口電路,簡(jiǎn)單實(shí)用且邏輯控制可編程實(shí)現(xiàn),具有較好的可移植性。
[1]張錦.三余度飛控計(jì)算機(jī)系統(tǒng)軟件的研究與設(shè)計(jì)[D].西安:西北工業(yè)大學(xué),2006.
[2]楊林芳.無人機(jī)容錯(cuò)飛行控制系統(tǒng)研究[D].南京:南京航空航天大學(xué),2007.
[3]鄒向陽,李鋒,劉戎.基于雙口RAM的雙CPU之間的實(shí)時(shí)雙向通信[J].微計(jì)算機(jī)信息,2008(32):99-100,168.ZOU Xiang-yang,LI Feng,LIU Rong.Real-time and double direction communication between double CPU based on dual-port RAM[J].Microcomputer Information,2008(32):99-100,168.
[4]韓鈞,康怡.雙口RAM在DSP與單片機(jī)數(shù)據(jù)通信中的應(yīng)用[J].電力系統(tǒng)通信,2006(8):56-58.HAN Jun,KANG Yi.Application of Dual-port RAM in data communication of DSP and MCU[J].Telecommunications for Electric Power System,2006(8):56-58.
[5]姜平,周根榮,肖紅升,等.基于雙口RAM的多機(jī)數(shù)據(jù)通信技術(shù)[J].儀表技術(shù)與傳感器,2010(11):105-107.JIANG Ping,ZHOU Gen-rong,XIAO Hong-sheng,etal.Multi-computer Data Communication Technology Based on Dual-port RAM[J].Instrument Technique and Sensor,2010(11):105-107.
[6]王琴,全書海.基于CPLD的雙口RAM設(shè)計(jì)與應(yīng)用[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2005(4):66-70.WANG Qin,QUAN Shu-hai.Design and application of dualport RAM-based on CPLD[J].Journal of WUT:Information&Management Engineering,2005(4):66-70.
[7]馬旭.基于MPC8313E和FPGA的雙口RAM驅(qū)動(dòng)開發(fā)[J].電子科技,2013(1):110-111.MA Xu.Development of dual port RAM drive based on MPC8313E and FPGA[J].Electronic Science and Technology,2013(1):110-111.