王婳懿 陳 威 劉玉來
(上海航天設備制造總廠,上海 200245)
某設備正常工作需給其提供64路指令信號和兩路同步時鐘信號,采用人工手動操作按鈕提供指令信號的方式效率低下[1]。為此,筆者設計了一種全自動故障診斷裝置,采用FPGA產生兩路同步信號并同時產生隨機序列給設備提供64路指令信號。在同步時鐘的作用下,對經過設備轉換后輸出的8組8位串行數據進行采集,并將其發送給上位機,上位機對接收到的數據進行分析,從而對設備的64路信號進行診斷,給出診斷結果。本裝置自動化程度高,避免了工人進行繁瑣的操作浪費時間,極大地提高了生產效率。
基于FPGA的故障信號診斷系統的總體設計框圖如圖1所示。 設備所需的兩路同步信號和64位隨機指令信號由FPGA產生,為減少FPGA IO口的占用量,將64位指令信號進行六位編碼后輸出,在FPGA外部先進行譯碼再提高信號的驅動能力后,將得到64位信號傳輸給設備。上位機通過串口給FPGA發送握手信號,FPGA接收到握手信號后將64位隨機指令信號的六位編碼信號發送給上位機,上位機記錄下FPGA產生的編碼信號。設備接收到FPGA產生的同步時鐘信號后,將64位指令信號經過隔離輸入給設備中心處理單元,將其轉換為8組8位串行數據后傳輸至FPGA。FPGA接收到串行數據后,將串行數據轉換為異步信號通過串口發送給上位機,上位機將接收到的信號與此前接收到的編碼信號進行比對,并判斷設備64路每路性能的好壞[2]。

圖1 診斷系統總體框圖
FPGA產生A、B兩路同步時鐘信號,如圖2所示。為確保設備在出現同步錯誤的情況下能夠自動恢復正確的同步,將A同步時鐘信號作為設備的計數器的異步清零信號。A信號的周期25ms,脈寬16.000μs,用來表示前一次通信的結束和下一次通信的開始;B同步時鐘信號把設備輸出的串行信號取至測試設備,在B信號的作用下,設備中輸入的指令信號被轉換為串行數據輸出。每個A同步信號一周期內傳輸等間隔的64組B同步信號,B信號每組8位,脈寬8.138μs。

圖2 同步信號和串行輸出信號
如圖3所示,clock1為61 440Hz的時鐘信號,一個周期為16μs,設置一個計數器,當計數器個數低于1 535時輸出為低電平,當計數器個數為1 536時輸出高電平。計數器清零,得到A同步信號side。
為得到B同步信號,先設置一個閘門信號change,當閘門信號為高電平時clock1進入閘門,當閘門信號為低電平時clock1不能通過閘門,最終得到B同步信號character,如圖4所示。閘門信號的產生流程如圖5所示,其中clk即為時鐘clock1信號。

圖4 B同步信號仿真

圖5 閘門信號形成流程
同步信號B延遲20ns后作為8位串行轉并行的移位寄存器的時鐘,外部串行信號經移位寄存器后得到8位并行數據,加上1位起始位和1位停止位后得到10位數據,輸入給10位并行轉串行移位寄存器。10位并轉串移位寄存器的時鐘信號clock的頻率為 115 200Hz(串口的傳輸速率)。設置一個pulse信號,在每個同步信號B一組信號結束之后,pulse信號變為高電平,此時啟動10位并轉串移位寄存器,開始發送串口數據。串口發送數據的時鐘clock的周期至少滿足10clock=8clock1+T1,這樣在8個clock1時鐘周期內才能發送完10位的數據。同步轉異步通信的工作原理如圖6所示。

圖6 同步轉異步通信工作原理
對所有信號進行仿真,結果如圖7所示,其中clock2為50MHz時鐘信號,shifin信號為串行輸入信號,shifout為串行輸出信號, 異步通信的時鐘信號clock為115 200Hz,在pulse的上升沿到來時shifout輸出。輸出電平與輸入一致,通信無故障。

圖7 信號仿真
指令信號產生單元采用M序列發生器,它是由6位移位寄存器加異或反饋網絡組成的。圖8所示為64位隨機碼發生器示意圖。M序列發生器的本原多項式為f(x)=x6+x+1。在時鐘脈沖的觸發下,每次移位后各級寄存器狀態都會發生變化,其中末級寄存器隨著移位寄存器的時鐘節拍的推移會產生一個序列。取末級寄存器的值為隨機碼值,圖8中qout為輸出,a0~a5為寄存器單元[3]。

圖8 指令信號產生單元
FPGA將M序列發生器產生的隨機碼進行編碼,將編碼信號輸出,在FPGA外部再通過譯碼,譯碼后的信號通過增強驅動電流得到所需信號。最終將所需信號進行隔離得到所需的指令信號。

圖9 上位機軟件流程
上位機軟件的工作流程如圖9所示。上位機先發送握手信號,接收到FPGA返回的序列之后,再接收FPGA發送的串行數據,與FPGA返回的序列進行對比,若序列相同,說明設備正常工作;否則,說明設備工作異常。
目前全自動故障診斷裝置的自動化程度較高,避免了人工進行繁瑣的操作浪費時間,極大地提高了生產效率。該裝置在某車間的運行效果良好,其直接模擬人工產生64路指令信號,避免了操作人員操作大量按鈕引起的誤操作。同時,使用全自動檢測裝置后,人機交互界面美觀度增加,減少了加電信號的按鈕數量,并能直接取出診斷結果。每臺待測設備的測試時間由原來的30min降低為2min,極大地提高了生產效率。
[1] 韓建,魏運鋒,談卿暇,等.基于FDGA的IIR數字濾波器的設計及測試分析[J].化工自動化及儀表,2014,41(7):790~792,805.
[2] 劉東華.FPGA應用技術叢書:Altera系列FPGA芯片IP核詳解[M].北京:電子工業出版社,2014:300~400.
[3] Stavinov E著,朱江,尹廷輝,喬廬峰,等譯.FPGA高手設計實戰真經100則[M].北京:電子工業出版社, 2013:200~300.