航天通信科技論文(2)
航天通信科技論文
航天通信科技論文篇二
某航天產(chǎn)品FPGA通信電路故障的解決方法
摘 要 某航天產(chǎn)品內(nèi)部脈沖發(fā)生器部套主要實(shí)現(xiàn)根據(jù)主機(jī)發(fā)送的脈沖參數(shù)指令產(chǎn)生相應(yīng)脈沖波形的功能。原脈沖發(fā)生器的工作原理是內(nèi)部單片機(jī)電路接收主機(jī)的脈沖參數(shù)指令,并發(fā)送給內(nèi)部FPGA電路,F(xiàn)PGA電路解析出脈沖參數(shù),產(chǎn)生相應(yīng)的脈沖波形。在某次試驗(yàn)過(guò)程中,該產(chǎn)品出現(xiàn)了脈沖時(shí)序不穩(wěn)定的現(xiàn)象。本文從設(shè)計(jì)原理入手,剖析了故障原因,并詳細(xì)介紹了一種提高脈沖發(fā)生器可靠性的設(shè)計(jì)方法。
【關(guān)鍵詞】FPGA 可靠性設(shè)計(jì)
脈沖發(fā)生器是某航天產(chǎn)品的核心部件,脈沖發(fā)生器能否穩(wěn)定產(chǎn)生正確的脈沖,直接影響產(chǎn)品性能。
在某次試驗(yàn)過(guò)程中,該產(chǎn)品出現(xiàn)了脈沖時(shí)序不穩(wěn)定的現(xiàn)象。經(jīng)過(guò)分析、研究、試驗(yàn)最終發(fā)現(xiàn)了問(wèn)題的原因,確定了有效的解決方案,提出了一種提高脈沖發(fā)生器可靠性的設(shè)計(jì)方法。
本文從脈沖發(fā)生器設(shè)計(jì)原理進(jìn)行剖析,說(shuō)明原設(shè)計(jì)存在的問(wèn)題,詳細(xì)介紹優(yōu)化后的設(shè)計(jì)原理和設(shè)計(jì)實(shí)現(xiàn),可作為同類型設(shè)計(jì)的參考。
1 脈沖發(fā)生器工作原理
脈沖發(fā)生器接收主機(jī)發(fā)送的RS-232串口通信指令數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)解析得到脈沖參數(shù),并產(chǎn)生相應(yīng)的脈沖波形。脈沖發(fā)生器功能框圖如圖1所示。
2 原脈沖發(fā)生器設(shè)計(jì)原理
原脈沖發(fā)生器設(shè)計(jì)原理如圖2所示。
2.1 主機(jī)向單片機(jī)發(fā)送脈沖參數(shù)數(shù)據(jù)幀
主機(jī)以RS232串口通信方式將脈沖參數(shù)數(shù)據(jù)幀發(fā)送給脈沖發(fā)生器中的單片機(jī)(MCU),單片機(jī)將接收到的數(shù)據(jù)保存在內(nèi)部RAM存儲(chǔ)器中。
2.2 單片機(jī)向FPGA發(fā)送脈沖參數(shù)數(shù)據(jù)幀
當(dāng)接收完一幀數(shù)據(jù)后,單片機(jī)將數(shù)據(jù)原樣寫入FPGA內(nèi)部雙端口RAM。單片機(jī)工作頻率為11.0592MHz,單片機(jī)以11.0592MHz的刷新速率對(duì)FPGA內(nèi)部雙端口RAM地址總線和數(shù)據(jù)總線進(jìn)行數(shù)據(jù)更新;FPGA工作頻率為100MHz,F(xiàn)PGA內(nèi)部雙端口RAM以100MHz的采樣速率讀取地址總線和數(shù)據(jù)總線上的數(shù)據(jù),并將采樣數(shù)據(jù)寫入RAM相應(yīng)存儲(chǔ)單元內(nèi)。
2.3 FPGA解析脈沖參數(shù),生成脈沖波形
單片機(jī)向FPGA發(fā)送完一幀數(shù)據(jù)后,向FPGA發(fā)送“寫完成”信號(hào),F(xiàn)PGA收到“寫完成”信號(hào)后,讀取內(nèi)部雙端口RAM中的數(shù)據(jù),進(jìn)行數(shù)據(jù)解析得到脈沖參數(shù),生成相應(yīng)的脈沖波形。
3 原設(shè)計(jì)存在的問(wèn)題
單片機(jī)對(duì)FPGA內(nèi)部雙端口RAM地址總線和數(shù)據(jù)總線刷新速率為11.0592MHz,雙端口RAM對(duì)地址總線和數(shù)據(jù)總線的采樣速率為100MHz,F(xiàn)PGA內(nèi)部雙端口RAM的寫操作頻率和讀操作頻率為異步頻率,存在跨時(shí)鐘域問(wèn)題,如圖3所示。
EDA設(shè)計(jì)中,穩(wěn)定可靠的數(shù)據(jù)采樣必須遵從以下兩個(gè)基本原則:
(1)在有效時(shí)鐘沿到達(dá)前,數(shù)據(jù)輸入至少已經(jīng)穩(wěn)定了采樣寄存器的Setup時(shí)間之久,這條原則簡(jiǎn)稱滿足Setup時(shí)間原則;
(2)在有效時(shí)鐘沿到達(dá)后,數(shù)據(jù)輸入至少還將穩(wěn)定保持采樣寄存器的Hold時(shí)間之久,這條原則簡(jiǎn)稱滿足Hold時(shí)間原則。
當(dāng)觸發(fā)器的Setup時(shí)間或者Hold時(shí)間不滿足,比如觸發(fā)器時(shí)鐘沿在數(shù)據(jù)變化沿口時(shí),就可能產(chǎn)生亞穩(wěn)態(tài),此時(shí)觸發(fā)器輸出端Q在有效時(shí)鐘沿之后比較長(zhǎng)的一段時(shí)間內(nèi)處于不確定的狀態(tài),在這段時(shí)間內(nèi)Q端產(chǎn)生毛刺并不斷振蕩,最終固定在某一電壓值,此電壓值并不一定等于原來(lái)數(shù)據(jù)輸入端D的數(shù)值,這段時(shí)間稱為決斷時(shí)間(Resolution time)。經(jīng)過(guò)Resolution time之后Q端將穩(wěn)定到0或1上,但究竟是0還是1,這是隨機(jī)的,與輸入沒有必然的關(guān)系。亞穩(wěn)態(tài)有可能會(huì)導(dǎo)致邏輯誤判,如圖4所示。
根據(jù)上述分析,由于FPGA內(nèi)部雙端口RAM數(shù)據(jù)輸入時(shí)鐘和數(shù)據(jù)采樣時(shí)鐘異步,當(dāng)采樣時(shí)鐘偏離到數(shù)據(jù)的沿口時(shí),最終可能對(duì)數(shù)據(jù)進(jìn)行誤判,造成FPGA內(nèi)部雙端口RAM存儲(chǔ)數(shù)據(jù)出錯(cuò),從而導(dǎo)致最終產(chǎn)生的脈沖波形時(shí)序錯(cuò)誤。
同時(shí),原設(shè)計(jì)中將單片機(jī)作為中間橋梁實(shí)現(xiàn)主機(jī)與FPGA之間RS232通信的設(shè)計(jì)方法不是常規(guī)的、成熟的、定型的設(shè)計(jì)方法,沒有充分發(fā)揮FPGA的功能,浪費(fèi)了資源,使得RS232通信設(shè)計(jì)復(fù)雜化,降低了通信的可靠性。
4 脈沖發(fā)生器優(yōu)化設(shè)計(jì)
針對(duì)原設(shè)計(jì)存在的不足,對(duì)脈沖發(fā)生器原設(shè)計(jì)方案進(jìn)行優(yōu)化。優(yōu)化后的設(shè)計(jì)原理如圖5所示。
如圖5所示,優(yōu)化后的脈沖發(fā)生器取消了單片機(jī)的使用,通過(guò)FPGA實(shí)現(xiàn)RS232通信功能、脈沖參數(shù)解析功能和脈沖波形發(fā)生功能,達(dá)到了以下目的:
(1)取消單片機(jī)與FPGA的通信,規(guī)避了異步時(shí)鐘域?qū)е碌倪壿嬚`判的技術(shù)風(fēng)險(xiǎn)。
(2)取消單片機(jī)后,脈沖發(fā)生器硬件電路得到簡(jiǎn)化,元器件種類數(shù)量減少,提高了脈沖發(fā)生器的基本可靠性,降低了維修工作量和成本。
(3)取消單片機(jī)后,單片機(jī)嵌入式軟件也隨即取消,精簡(jiǎn)了脈沖發(fā)生器配套軟件數(shù)量,減少了軟件配置項(xiàng)維護(hù)的工作量,有利于軟件研制過(guò)程中對(duì)技術(shù)狀態(tài)的控制與管理。
4.1 基于FPGA的RS232通信接口電路設(shè)計(jì)
基于FPGA的RS232通信接口電路原理圖如圖6所示。
圖6中MAX3232是RS232通信電平轉(zhuǎn)換芯片,其工作電壓為3V~5.5V,外部?jī)H需4個(gè)0.1μF的電容就能實(shí)現(xiàn)RS232標(biāo)準(zhǔn)電平和FPGA TTL電平之間的雙向轉(zhuǎn)換,在數(shù)據(jù)傳輸速率方面,MAX3232能夠保證120kbps的波特率。TTL_IN為FPGA RS232通信發(fā)送信號(hào),信號(hào)電平為3.3V;TTL_OUT為FPGA的RS232通信接收信號(hào),信號(hào)電平為3.3V信號(hào)。
4.2 基于FPGA的RS232通信軟件設(shè)計(jì)
4.2.1 RS232通信數(shù)據(jù)格式
RS232通信屬于異步通信,異步通信數(shù)據(jù)傳送的特點(diǎn)是同一字符內(nèi)是同步的,而字符間是異步的,因此收發(fā)雙方取得同步的方法,是字符格式中設(shè)置起始位(低電平)和停止位(高電平)。脈沖發(fā)生器RS232通信數(shù)據(jù)格式如圖7所示。 脈沖發(fā)生器RS232通信每個(gè)字符包含10位數(shù)據(jù),波特率為9.6kbps。起始位為邏輯“0”,表示一個(gè)字符傳輸開始。數(shù)據(jù)位緊接著起始位之后,共有8位,低位在前。停止位為邏輯“1”,表示一個(gè)字符傳輸結(jié)束。空閑位始終處于邏輯“1”狀態(tài),表示當(dāng)前線路上無(wú)數(shù)據(jù)傳輸。
一組完整的脈沖參數(shù)數(shù)據(jù)幀包含38個(gè)字符,第1個(gè)字符為幀頭,表示一幀數(shù)據(jù)傳輸開始,第38個(gè)字符為幀尾,表示一幀數(shù)據(jù)傳輸結(jié)束,中間36個(gè)字符為有效數(shù)據(jù),解析后得到脈沖參數(shù)。
4.2.2 FPGA實(shí)現(xiàn)RS232通信數(shù)據(jù)接收
FPGA接收RS232數(shù)據(jù)的大致過(guò)程為:空閑狀態(tài),線路處于高電平;當(dāng)檢測(cè)到線路的下降沿時(shí)表示接收到字符起始位,按照9.6kbps的速率從低位到高位接收8位數(shù)據(jù)位。當(dāng)接收到的字符為幀頭時(shí),開始接收36字符有效數(shù)據(jù),當(dāng)接收到的第38個(gè)字符是幀尾時(shí),完成1組脈沖參數(shù)數(shù)據(jù)幀的接收。
(1)RS232接收數(shù)據(jù)采樣時(shí)鐘。為了提高數(shù)據(jù)采樣的分辨能力和抗干擾能力,F(xiàn)PGA對(duì)接收數(shù)據(jù)的采樣頻率設(shè)置為波特率的16倍(可以更高),即1個(gè)字符的每1位采樣16次,并且取每1位第8個(gè)采樣點(diǎn)作為該位邏輯值的判決點(diǎn)。每個(gè)字符從檢測(cè)到起始位下降沿開始,共采樣160次。
FPGA采樣頻率與16倍波特率可以存在一定的偏差,工程上常要求滿足1%以下,能夠保證不會(huì)因采樣頻率偏差的累計(jì)導(dǎo)致錯(cuò)位,并且字符每1位的判決點(diǎn)都能落在數(shù)據(jù)判決的有效位置。
由于FPGA的工作主時(shí)鐘頻率為100MHz,按照上述原則,對(duì)主時(shí)鐘進(jìn)行651分頻,作為RS232接收數(shù)據(jù)的采樣時(shí)鐘。
(2)單個(gè)字符接收。按照接收數(shù)據(jù)采樣時(shí)鐘頻率對(duì)傳輸線上的數(shù)據(jù)進(jìn)行采樣,當(dāng)檢測(cè)到邏輯值由“1”變?yōu)?ldquo;0”時(shí),表明接收到字符起始位,計(jì)數(shù)器cnt1和字符接收標(biāo)志置為“1”,之后每隔1個(gè)采樣周期cnt1加1。字符接收標(biāo)志為“1”時(shí),說(shuō)明正在接收字符,此時(shí)如果檢測(cè)到邏輯值由“1”變?yōu)?ldquo;0”時(shí),不作響應(yīng)。當(dāng)cnt1的值為24時(shí),采樣值為D0;當(dāng)cnt1的值為40時(shí),采樣值為D1;以此類推,當(dāng)cnt1的值為136時(shí),采樣值為D7。當(dāng)cnt1為152時(shí),采樣到停止位,此時(shí)將字符接收標(biāo)志置為“0”,等待下一個(gè)字符出現(xiàn)。
(3)一幀數(shù)據(jù)接收。當(dāng)單個(gè)字符接收完畢后,判斷該字符是否為幀頭,若為幀頭,將計(jì)數(shù)器cnt2和幀接收標(biāo)志置為“1”,之后不再判斷幀頭,每接收完一個(gè)字符,cnt2加1。當(dāng)cnt2的值為38時(shí),判斷該字符是否為幀尾,若為幀尾,將幀接收標(biāo)志置為“0”,等待下一幀數(shù)據(jù),同時(shí)將接收到的有效數(shù)據(jù)字符送給后級(jí)脈沖參數(shù)解析功能模塊。若不為幀尾,則該幀數(shù)據(jù)無(wú)效,將幀接收標(biāo)志置為“0”后等待下一幀數(shù)據(jù)。
5 脈沖發(fā)生器優(yōu)化設(shè)計(jì)驗(yàn)證
5.1 FPGA軟件驗(yàn)證
對(duì)優(yōu)化后的FPGA軟件進(jìn)行了以下驗(yàn)證工作:
(1)對(duì)軟件RS232串口通信功能模塊進(jìn)行人工走查,通過(guò)人工走讀的方式對(duì)軟件編碼規(guī)則和軟件邏輯功能進(jìn)行檢查;
(2)對(duì)FPGA軟件進(jìn)行仿真測(cè)試,通過(guò)ModelSim仿真工具對(duì)軟件RS232串口通信功能、性能以及串口通信功能模塊與后級(jí)脈沖參數(shù)解析功能模塊之間接口關(guān)系正確性進(jìn)行測(cè)試;
(3)對(duì)FPGA軟件進(jìn)行硬件確認(rèn)測(cè)試,將軟件固化在FPGA中,在常溫及高低溫條件下,對(duì)脈沖發(fā)生器提供測(cè)試激勵(lì),通過(guò)示波器觀察輸出波形。
經(jīng)測(cè)試,F(xiàn)PGA軟件RS232串口通信功能模塊功能、性能符合設(shè)計(jì)要求;與脈沖參數(shù)解析功能模塊之間接口關(guān)系正確;軟件固化后,脈沖發(fā)生器功能正確,性能穩(wěn)定;同時(shí)FPGA資源使用率和時(shí)序關(guān)系滿足相關(guān)余量要求。
5.2 脈沖發(fā)生器試驗(yàn)驗(yàn)證
優(yōu)化后的脈沖發(fā)生器已跟隨多個(gè)型號(hào)通過(guò)了高溫、低溫、振動(dòng)等環(huán)境試驗(yàn)以及系統(tǒng)試驗(yàn)的考核,結(jié)果表明脈沖發(fā)生器功能正確、性能穩(wěn)定,各項(xiàng)指標(biāo)滿足設(shè)計(jì)要求。
6 結(jié)論
本文通過(guò)對(duì)脈沖發(fā)生器設(shè)計(jì)原理進(jìn)行分析,指出原設(shè)計(jì)存在的問(wèn)題:跨時(shí)鐘域采樣可能導(dǎo)致的邏輯錯(cuò)誤。針對(duì)問(wèn)題,提出了一種提高脈沖發(fā)生器可靠性的設(shè)計(jì)并詳細(xì)介紹了優(yōu)化設(shè)計(jì)的硬件和軟件實(shí)現(xiàn)方法。通過(guò)對(duì)FPGA軟件仿真測(cè)試、脈沖發(fā)生器單板確認(rèn)測(cè)試以及整機(jī)試驗(yàn)的驗(yàn)證,證明該優(yōu)化設(shè)計(jì)方法正確、有效,解決了原設(shè)計(jì)存在的技術(shù)風(fēng)險(xiǎn),提高了脈沖發(fā)生器脈沖波形的正確性和穩(wěn)定性。該優(yōu)化設(shè)計(jì)可作為同類型設(shè)計(jì)的參考
參考文獻(xiàn)
[1]吳繼華,王誠(chéng).Altera FPGA/CPLD設(shè)計(jì)(高級(jí)篇)[M].人民郵電出版社,2008.
[2]GJB 451A-2005可靠性維修性保障性術(shù)語(yǔ),2005.
[3]GJB/Z 299C-2006電子設(shè)備可靠性預(yù)計(jì)手冊(cè),2006.
[4]航天軟件工程實(shí)施技術(shù)指南及范例[Z].中國(guó)航天科技集團(tuán)公司軟件專家組,2005.
[5]徐煜明,韓雁.單片機(jī)原理及接口技術(shù)[M].電子工業(yè)出版社,2005.
[6]何賓.Xilinx FPGA設(shè)計(jì)權(quán)威指南[M].清華大學(xué)出版社,2012.
作者單位
上海航天電子技術(shù)研究所 上海市 201109
看了“航天通信科技論文”的人還看: