張 帥,丁立平,王志德,唐曉峰,范文晶
(上海機(jī)電工程研究所,上海 201109)
發(fā)控設(shè)備是執(zhí)行導(dǎo)彈發(fā)射任務(wù)的重要設(shè)備,隨著導(dǎo)彈發(fā)射任務(wù)越來越繁重,對發(fā)控設(shè)備各組部件之間通信的可靠性提出了更高的要求。發(fā)控設(shè)備通信接口板卡較多,在實現(xiàn)通用化的同時需保證較高的設(shè)備維修性,所有板卡疊加的形式已經(jīng)無法滿足使用要求。為此,必須在發(fā)控設(shè)備的執(zhí)控組合PC104計算機(jī)系統(tǒng)中使用多接口模塊平鋪設(shè)計技術(shù),各接口模塊通過PC104總線實現(xiàn)電氣連接。但是,這種平鋪架構(gòu)會導(dǎo)致偶發(fā)性的執(zhí)控組合CSD串口板卡上電復(fù)位異常,從而導(dǎo)致發(fā)控設(shè)備串口通信異常。
基于上述原因,開展對發(fā)控設(shè)備CSD串口板卡上電復(fù)位異常的研究。針對引起串口通信異常的機(jī)理進(jìn)行分析,設(shè)計了硬件上電復(fù)位信號檢測電路和一種提高串口通信可靠性的CSD板卡復(fù)位濾波算法[1],保證發(fā)控設(shè)備的串口通信安全可靠。
發(fā)控設(shè)備主要由顯控組合、執(zhí)控組合、電源組合組成,可以實現(xiàn)對導(dǎo)彈的加電控制、參數(shù)裝訂及發(fā)射控制。其中,顯控組合與執(zhí)控組合之間采用RS-422串口通信,發(fā)控設(shè)備的各組部件連接關(guān)系如圖1所示。
圖1 發(fā)控設(shè)備各組部件連接關(guān)系Fig.1 Launch Control Equipment connection relation
圖1中,執(zhí)控組合內(nèi)部PC104計算機(jī)系統(tǒng)主要由PC104主板板卡、CSD串口板卡、接口模塊板卡、數(shù)字輸入輸出DIO板卡、PC104總線連接電路板組成。PC104計算機(jī)系統(tǒng)中使用多接口模塊平鋪設(shè)計技術(shù),接口模塊平鋪有利于設(shè)備維修排查以及解決板卡壘接供電問題,執(zhí)控組合內(nèi)部板卡堆疊關(guān)系如圖2所示。
圖2 板卡堆疊關(guān)系示意圖Fig.2 Boards stack relation diagram
執(zhí)控組合內(nèi)部串口通信方式為PC104主板板卡工業(yè)標(biāo)準(zhǔn)架構(gòu)(Industrial standard architecture,ISA)總線經(jīng)PC104總線連接電路板,對CSD串口板卡進(jìn)行上電復(fù)位時序以及串口通信控制,具體的執(zhí)控組合內(nèi)部串口硬件關(guān)系如圖3所示。
圖3 執(zhí)控組合串口內(nèi)部硬件關(guān)系Fig.3 Executive Control Device serial port internal hardware relation
在與顯控組合進(jìn)行串口通信時,會偶發(fā)性地出現(xiàn)串口通信故障,直觀現(xiàn)象為執(zhí)控組合不在線或執(zhí)控組合接收確認(rèn)異常。通過采用CSD串口板卡寄存器值回讀技術(shù)進(jìn)行監(jiān)測,顯示CSD串口板卡上電復(fù)位不正常。
執(zhí)控組合內(nèi)部CSD串口板卡與PC104主板之間通過標(biāo)準(zhǔn)的ISA總線[2]接口進(jìn)行連接,CSD串口板卡內(nèi)部邏輯如圖4所示。
圖4 CSD串口板卡內(nèi)部邏輯框圖Fig.4 CSD serial port board internal logic block diagram
圖4中,PC104主板ISA總線的8位數(shù)據(jù)總線、20位地址總線和5位控制信號線連到CSD串口板卡的現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)。板卡的通用異步收發(fā)器[3](universal asynchronous receiver/transmitter,UART)控制器占用的空間資源和中斷資源可以由PC104主板軟件設(shè)置,并通過FPGA保存在CSD板卡的電可擦可編程只讀存儲器(electrically erasable programmable memory,EEPROM)內(nèi)。板卡上電復(fù)位后,F(xiàn)PGA自動讀取EEPROM的配置數(shù)據(jù),獲取各個功能單元的基地址和中斷號資源。
對顯控組合進(jìn)行了多次串口通信測試,如圖5所示。執(zhí)控組合上電復(fù)位時,F(xiàn)PGA加載EEPROM配置數(shù)據(jù)[4]的過程中,加載了錯誤數(shù)據(jù),導(dǎo)致CSD串口的基地址或者中斷號與軟件設(shè)置不符,從而導(dǎo)致CSD串口板卡復(fù)位不正常。
圖5 串口通信監(jiān)測圖Fig.5 Serial port communication monitoring diagram
執(zhí)控組合CSD串口板卡在PC104主板完成復(fù)位后會給FPGA提供一個ISA_RST信號,F(xiàn)PGA通過I2C總線從EEPROM加載地址I2C_ADR為00~17的18個數(shù)據(jù),完成對CAN、串口、DIO等外設(shè)的復(fù)位。
在FPGA內(nèi)部邏輯[5]中,上述配置數(shù)據(jù)加載過程是通過有限狀態(tài)機(jī)結(jié)構(gòu)來實現(xiàn)的。該狀態(tài)機(jī)的配置加載流程如圖6所示。PC104主板復(fù)位完成后,加載地址I2C_ADR由FF跳到00,在系統(tǒng)時鐘CLK信號的驅(qū)動下,加載地址I2C_ADR從00累加到17,循環(huán)讀取18個EEPROM數(shù)據(jù)。期間如果發(fā)生任何異常,會使加載地址I2C_ADR跳轉(zhuǎn)到其他非法值,則狀態(tài)機(jī)陷入死循環(huán),導(dǎo)致執(zhí)控組合串口通信讀寫寄存器錯誤。
圖6 配置加載流程圖Fig.6 Configuration loading flow diagram
串口通信試驗顯示串口板卡對于PC104主板傳輸過來的104根ISA總線中的ISA_RST信號(即上文中提到的串口板卡復(fù)位信號)的毛刺信號進(jìn)行了復(fù)位響應(yīng),但毛刺的脈寬太窄,導(dǎo)致FPGA內(nèi)部邏輯的建立時間和保持時間不能滿足時序要求,狀態(tài)機(jī)工作在亞穩(wěn)態(tài)狀態(tài),從而導(dǎo)致執(zhí)控組合偶發(fā)串口通信故障。
根據(jù)以上執(zhí)控組合內(nèi)部串口通信機(jī)理以及對CSD串口板卡上電復(fù)位異常的分析,設(shè)計了硬件復(fù)位信號檢測電路以及軟件復(fù)位信號濾波算法。
對ISA_RST信號進(jìn)行了復(fù)位信號檢測,發(fā)現(xiàn)信號中的毛刺會對復(fù)位電路產(chǎn)生干擾。采用復(fù)位信號檢測電路來檢測PC104主板的復(fù)位信號波動情況,避免串口板卡在毛刺干擾狀態(tài)下工作。選擇PC104主板供電電源作為復(fù)位信號檢測信號的參考信號。復(fù)位檢測電路安排在電源附近,可以保證毛刺干擾在源頭就能被復(fù)位信號檢測電路屏蔽掉[6]。復(fù)位信號檢測電路設(shè)計時要求能對主板復(fù)位信號的尖鋒變化進(jìn)行屏蔽,本文所采用的復(fù)位信號檢測電路如圖7所示。
圖7 復(fù)位信號檢測電路Fig.7 Reset signal detection circuit
在復(fù)位信號ISA_RST無效(低電平)的情況下,當(dāng)電源信號上有毛刺干擾時,復(fù)位信號毛刺干擾大于1.5VDD。干擾信號持續(xù)1 ns 以上級別時,復(fù)位信號檢測信號將被拉低,直至復(fù)位信號ISA_RST有效(高電平),復(fù)位信號檢測信號再恢復(fù)高電平。復(fù)位信號輸出信號RST_OUT能在無毛刺干擾狀態(tài)下不斷刷新復(fù)位信號檢測電路輸出的信號,并輸出正確的RST_OUT信號。有毛刺干擾的情況下,復(fù)位信號檢測電路能使串口板卡截止輸出復(fù)位信號,等待毛刺干擾濾除后再恢復(fù)正常復(fù)位信號輸出。復(fù)位信號檢測電路停止工作表現(xiàn)為計數(shù)器停止計數(shù)[7],狀態(tài)機(jī)進(jìn)入空操作狀態(tài)。綜上所述,此復(fù)位信號檢測與狀態(tài)機(jī)響應(yīng)流程如圖8所示。
圖8 復(fù)位信號檢測及狀態(tài)機(jī)響應(yīng)流程Fig.8 Reset signal detection and State Machine response process
除了增加硬件復(fù)位信號檢測外,本文還提出了一種串口通信濾波算法,旨在提高CSD串口板卡對于總線中毛刺的處理能力。對執(zhí)控組合CSD串口板卡FPGA進(jìn)行了以下兩方面的驅(qū)動軟件升級:
1) 在原驅(qū)動[8]的基礎(chǔ)上加入了10 ms的ISA_RST復(fù)位信號濾波處理。當(dāng)采集到ISA_RST復(fù)位信號高電平時,計數(shù)器開始對芯片時鐘CLK信號連續(xù)計數(shù),芯片主頻為40 MHz。FPGA在10 ms時間內(nèi)連續(xù)采集400 000個CLK信號后,串口板卡才能確認(rèn)收到一個準(zhǔn)確的串口板卡復(fù)位信號,CSD串口板卡進(jìn)行正確復(fù)位。
2) 在原驅(qū)動的基礎(chǔ)上加入了復(fù)位信號非正常掉電保持功能,即采集到ISA_RST復(fù)位信號高電平受到ISA線路毛刺的干擾而出現(xiàn)短時非正常掉電時,當(dāng)?shù)綦姵鲩撝挡怀^3個CLK時鐘信號脈寬,計數(shù)器不進(jìn)行清零操作;反之,如果掉電超過3個CLK時鐘信號脈寬,則計數(shù)器清零,本次ISA_RST復(fù)位信號無效。這樣就確保了復(fù)位信號電平在受到干擾時也能保持,從而提高了復(fù)位電路的抗干擾能力。
經(jīng)過上述升級后的執(zhí)控組合CSD串口板卡FPGA驅(qū)動程序復(fù)位信號濾波算法工作流程如圖9所示。
圖9 復(fù)位信號濾波算法工作流程Fig.9 Reset signal filtering algorithm flow diagram
圖9即為本文提出的復(fù)位信號濾波核心算法,升級后的CSD串口板卡上電復(fù)位經(jīng)過10ms濾波能夠?qū)SA總線上的毛刺進(jìn)行過濾,對于復(fù)位信號ISA_RST上的毛刺不響應(yīng),避免板卡復(fù)位異常。另外,對于復(fù)位信號異常掉電不超過3個CLK時鐘周期[9]的情況,該算法可對復(fù)位信號持續(xù)計數(shù),確保復(fù)位正常進(jìn)行。下面用Quartus Ⅱ軟件對升級后的濾波算法進(jìn)行仿真驗證。
1) 對升級的FPGA驅(qū)動程序進(jìn)行時序仿真
用Quartus Ⅱ?qū)ι壓蟮某绦蜻M(jìn)行時序仿真,如圖10所示。由圖10可知,當(dāng)計數(shù)器對時鐘CLK信號計數(shù)達(dá)到40 000之后,脈寬為10 ms,CSD串口板卡確認(rèn)接收到一個準(zhǔn)確的上電復(fù)位信號。
圖10 時序仿真Fig.10 Timing simulation
2) 對升級的FPGA驅(qū)動程序進(jìn)行邊界條件的測試仿真
用Quartus Ⅱ?qū)ι壓蟮某绦蜻M(jìn)行邊界條件的測試仿真,如圖11所示。由圖11可知,當(dāng)PC104主板復(fù)位信號掉電時間不超過連續(xù)的3個CLK信號周期時,計數(shù)器會持續(xù)計數(shù);而當(dāng)PC104主板復(fù)位信號掉電時間超過連續(xù)的3個CLK信號周期時,計數(shù)器會重新計數(shù)。
圖11 邊界測試仿真Fig.11 Boundary test simulation
上述對驅(qū)動程序時序測試以及邊界測試的仿真驗證表明,執(zhí)控組合CSD串口板卡上電復(fù)位驅(qū)動程序能夠?qū)C104主板的ISA_RST毛刺進(jìn)行濾波處理,并能對信號的異常掉電進(jìn)行保持處理,確保CSD串口板卡的正確復(fù)位。
圖12為更新硬件電路后的CSD串口板卡實物。
圖12 更新硬件電路后的CSD串口板卡Fig.12 CSD serial port board after updating hardware circuit
為了驗證上述硬件復(fù)位信號檢測電路,保持執(zhí)控組合硬件架構(gòu)不變,其它硬件架構(gòu)、軟件程序、連接關(guān)系保持與圖1、圖3一致,在實驗室對板卡的硬件環(huán)境串口通信進(jìn)行了各種狀態(tài)下的實物驗證試驗,對比試驗結(jié)果可以發(fā)現(xiàn):
1) 硬件電路更新前,進(jìn)行100次如圖5所示的串口通信試驗,在第2次和第14次試驗中串口通信故障復(fù)現(xiàn),第2次試驗為執(zhí)控組合串口接收功能異常,第14次試驗為執(zhí)控組合串口發(fā)送功能異常。
2) 添加硬件復(fù)位信號檢測電路,進(jìn)行100次如圖5 所示的串口通信試驗,串口通信故障未復(fù)現(xiàn)。
上述結(jié)果表明,增加硬件復(fù)位信號檢測電路的CSD串口板卡可靠性得到提高,故障未復(fù)現(xiàn)。
本文針對發(fā)控設(shè)備串口通信偶發(fā)性故障,設(shè)計并實現(xiàn)了復(fù)位信號檢測電路對PC104主板復(fù)位信號的檢測,同時設(shè)計了一種基于CSD串口板卡FPGA軟件驅(qū)動的上電復(fù)位濾波算法。升級后的驅(qū)動算法能夠?qū)SA總線中的毛刺起到濾波效果,可防止板卡異常復(fù)位導(dǎo)致通信故障。仿真和硬件電路實物試驗驗證表明,該復(fù)位檢測電路和濾波算法可明顯提升串口通信的可靠性和抗干擾能力。該成果對同類型的通信電路具有較好的工程借鑒意義。