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