2.湖北省電網(wǎng)智能控制與裝備工程技術研究中心,湖北 武漢430068)
摘 要: PC104總線是專為嵌入式控制系統(tǒng)定義的一種工業(yè)控制線,其應用廣泛,但是內(nèi)部結(jié)構復雜,出現(xiàn)故障不易檢測。設計了一種基于FPGA的PC104總線故障自動監(jiān)控平臺,對PC104總線信號進行實時監(jiān)控和故障檢測。該平臺利用FPGA程序采集和處理總線信號,并傳至上位機處理顯示。系統(tǒng)中利用FPGA程序?qū)崿F(xiàn)其功能模塊,包括捕獲POST上電自檢指令和BIOS自檢端口代碼、監(jiān)測總線電壓水平、監(jiān)控時鐘和復位等關鍵信號的質(zhì)量、控制PC104的自動復位和BIOS設置模式等功能。給出上位機監(jiān)控結(jié)果和FPGA實時檢測得到的時序圖,反映了該FPGA程序在本系統(tǒng)中滿足PC104總線檢測的技術要求。
關鍵詞: 總線監(jiān)測;POST上電自檢;自檢端口監(jiān)測;時鐘測量
中圖分類號: TN407;TP206
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170644
中文引用格式: 周治虎,張凡,武明虎,等. PC104故障監(jiān)控平臺FPGA程序設計[J].電子技術應用,2017,43(9):57-60.
英文引用格式: Zhou Zhihu,Zhang Fan,Wu Minghu,et al. FPGA program design of PC104 fault monitoring platform[J].Application of Electronic Technique,2017,43(9):57-60.
0 引言
PC104作為一種專用嵌入式控制主板[1],具有功耗低、效率高、體積小、可擴展等優(yōu)點,在航空航天[2]、軍用武器裝備[3]、工業(yè)控制[4]等領域應用廣泛。PC104主板的結(jié)構復雜緊湊,一旦發(fā)生故障,僅靠常規(guī)的監(jiān)控手段很難判斷具體的故障原因。PC104總線需要監(jiān)測的信號高達70多個,總線運行頻率也高達14 MHz左右,無法利用單片機實現(xiàn)監(jiān)測功能[5-6]。因此,本項目采用了基于FPGA的設計方案,利用FPGA的多I/O端口特性和高速并行處理能力[7]對PC104總線進行實時監(jiān)測。
1 PC104監(jiān)控系統(tǒng)設計方案
基于FPGA的PC104故障監(jiān)控平臺(以下簡稱監(jiān)控平臺)主要由待測PC104主板、電平信號轉(zhuǎn)換模塊、FPGA功能模塊(DE0開發(fā)板)[9]、上位機系統(tǒng)4個部分組成。監(jiān)控平臺硬件結(jié)構如圖1。
監(jiān)控平臺中的上位機系統(tǒng)板使用常用Windows XP系統(tǒng),并自動運行監(jiān)控APP程序。通過串口和FPGA功能模塊通信,利用約定好的通信協(xié)議讀取FPGA功能模塊返回的信息,將返回的這些信息處理成可供參考的數(shù)據(jù),最后在上位機APP程序的界面中顯示。
PC104主板功能強大,擴展功能端口很多。監(jiān)控平臺為判斷其具體的故障信息,需要對其總線信號進行實時監(jiān)測。為了保證監(jiān)控平臺方便高效的運行,在待測下方引入主板治具方便主板的插拔,這不僅提高了監(jiān)控效率和準確性,同時可以保護PC104主板總線接口不被損壞。
由于PC104主板工作在+5 V供電環(huán)境下,而采用的FPGA的工作電壓是+3.3 V,監(jiān)控平臺加入了基于74AL-VC164245的電平信號轉(zhuǎn)換模塊。74ALVC164245是TI公司生產(chǎn)制造的一種+5 V和+3.3 V之間雙向轉(zhuǎn)換的電平轉(zhuǎn)換芯片,可以很好地實現(xiàn)FPGA和PC104主板之間的電平匹配。轉(zhuǎn)接板上還包括PC104主板電源測試模塊,并將PC104主板上的鍵盤接口、鼠標接口和兩個串口接口做了擴展。不僅實現(xiàn)了不同電平之間信號的實時傳輸,同時增加了監(jiān)控平臺的空間利用率。
2 FPGA功能模塊設計
FPGA功能模塊是PC104主板故障檢測平臺的核心,也是本文介紹的重點。FPGA擁有可編程輸入輸出單元(IOB)、可配置邏輯塊(CLB)、數(shù)字時鐘管理模塊(DCM)、嵌入式塊RAM(BRAM)、豐富的布線資源等功能,能很好地滿足檢測平臺的相關需求。不僅可以實時采集PC104總線信號,而且可以通過輸出TTL電平信號控制總線上相關引腳來控制PC104主板的運行狀態(tài)。采用FPGA功能模塊作為檢測平臺的核心,在很大程度上提高了檢測平臺的可靠性和高效性。
2.1 BIOS啟動監(jiān)測和POST上電自檢
PC104主板的片外總線接口包括其地址信號線、鎖存地址信號線和數(shù)據(jù)信號線,其中包括20根地址信號線和16根數(shù)據(jù)信號線。監(jiān)控平臺實現(xiàn)該功能基本原理是通過FPGA的信號采集端口監(jiān)控PC104主板啟動時所有地址信號線和數(shù)據(jù)信號線的狀態(tài)來判斷各信號線的工作狀態(tài)是否正常。實現(xiàn)總線信號監(jiān)控功能的具體FPGA程序設計流程圖如圖2。
2.1.1 BIOS啟動檢測
PC104主板的啟動過程包括加電、自舉、核心測試、POST自檢4項。監(jiān)控平臺上電后開始測試,給PC104主板加電后向其發(fā)出復位命令,主板進入初始化過程及復位時長滿足后,釋放復位信號。FPGA的地址線監(jiān)控端口開始讀取地址信號線的數(shù)據(jù),如果讀到的地址線數(shù)據(jù)為0xFFFF0H,則開始執(zhí)行監(jiān)控PC104主板啟動碼的程序,并保存總線上的地址和數(shù)據(jù)。
從PC104主板用戶手冊可知,其在啟動時,首先運行的通常都是一條“EA”跳轉(zhuǎn)指令,跳轉(zhuǎn)到實際BIOS ROM的開始地址。這個初始化搜索地址0xFFFF0H和隨后的CPU重定向的過程一般稱為自舉或引導,也可簡稱為BOOT。當PC104每次啟動時,F(xiàn)PGA采集總線上的地址和數(shù)據(jù)線信號理想情況下是會經(jīng)過跳轉(zhuǎn)指令“EA”跳轉(zhuǎn)到某一固定地址單元,開始執(zhí)行程序。分別監(jiān)測兩塊正常運行主板的BIOS啟動碼實際被測數(shù)據(jù),如表1所示。
從表中數(shù)據(jù)可以看到,主板正常啟動時,從0xFFFFF0地址開始執(zhí)行程序,執(zhí)行的第一條指令是0x5BEA,依此可以判斷該主板的數(shù)據(jù)和地址總線沒有故障。監(jiān)測結(jié)果符合測試要求。
2.1.2 POST上電自檢
PC104主板初始化分為冷啟動(初次加電啟動)和熱啟動(通過FPGA發(fā)送復位命令重啟)。若是冷啟動,就會執(zhí)行POST上電自檢;反之,將會跳過POST上電自檢。遇到錯誤時,單字節(jié)的POST碼會被寫入80H的I/O端口中,系統(tǒng)的初始化也將終止。如果自檢通過,則會向80H的I/O端口中返回0xFF。主板的自檢過程是判斷PC104主板是否正常的標準,所以POST自檢是判斷主板故障信息最重要的模塊之一。當FPGA監(jiān)控到PC104主板啟動后,開始定時反復讀取80H的I/O端口中的信號。當讀取到0xFF時,保存該信號并返回給上位機系統(tǒng),提示自檢通過;反之則返回故障指令并提示自檢未通過。通過對比3塊不同PC104主板的POST監(jiān)控結(jié)果,并參考主板實際運行狀態(tài)可知符合測試要求。當測試過程中,如果主板剛啟動POST自檢代碼就監(jiān)控到0xFF,同時起始代碼不再變化,那也可能是主板并沒有運行,BIOS自檢并沒有正常開始,應該重啟PC104主板,重新測試。POST上電自檢結(jié)果如表2所示。
利用FPGA實時采集PC104主板在啟動過程中總線檢測的結(jié)果,如圖3所示。從圖中可以很直觀地看出PC104主板在啟動過程中所包括的初始化過程和POST自檢結(jié)果,符合其總線測試要求。
2.2 PC104復位與BIOS模式控制
監(jiān)控平臺在運行過程中,會要求對于同一塊PC104主板進行反復測試。由于PC104主板的高集成度,并沒有復位按鈕,所以需要控制主板上的復位控制(Reset Switch)引腳進行復位控制。當上位機系統(tǒng)發(fā)出復位指令后,就需要FPGA給PC104主板的復位控制引腳發(fā)送一個延時復位命令,并監(jiān)測啟動計時器。當復位時間到達后,釋放復位信號。
系統(tǒng)擴展模塊利用盛博科技生產(chǎn)的符合PC104總線標準的軟盤驅(qū)動控制器驅(qū)動裝有測試程序的硬盤,通過測試程序可以監(jiān)控PC104主板的串口和鍵盤等接口的故障信息。為了設置PC014主板的啟動方式以及顯示器狀態(tài)和分辨率等基本硬件信息,需要在啟動時對其是否進入BIOS進行控制。通過FPGA的I/O口控制由繼電器和三極管組成的基本控制電路來控制主板的串行口連接器的DTR和RI引腳是否短接來控制其啟動過程中是否進入BIOS設置。
2.3 PC104關鍵信號測量
PC104主板總線控制信號線中有4個關鍵信號,包括3個時鐘信號和一個復位脈沖信號。
2.3.1 PC104總線時鐘頻率測量
FPGA常用測量頻率的方法有直接測頻法和等精度測頻法,其中直接測頻法又分為直接計數(shù)測頻法和測周期測頻法。直接測頻法的測頻精度與被測信號有關,被測信號頻率越高,測頻精度越高;實現(xiàn)簡單,對硬件資源要求不高。等精度測頻法的測頻精度與被測信號無關,僅與系統(tǒng)時鐘信號有關,系統(tǒng)時鐘信號頻率越高,精度越高;相比直接測頻法,等精度測頻法實現(xiàn)較復雜,需要FPGA系統(tǒng)的晶振頻率達到等精度測頻的測頻精度要求。
待測的時鐘信號分別是:REFRESH#存儲器刷新信號線由刷新控制器驅(qū)動,以表明將執(zhí)行一個刷新周期;BCLK是由平臺電路驅(qū)動的系統(tǒng)總線時鐘信號線,正常運行狀態(tài)下頻率為6 MHz~8 MHz(±500 ppm),周期的占空比為45%~55%;OSC振蕩器信號線是由平臺電路驅(qū)動的時鐘信號,其頻率為14.318 18 MHz(±500 ppm),周期的占空比為45%~55%。其中OSC不與任何其他總線信號線同步。最小的待測頻率是6 MHz,可以選用直接計數(shù)測頻法,測量精度分別可達10-6和10-7級,滿足該頻率測量1%誤差的技術要求。直接計數(shù)測頻法實現(xiàn)過程簡單,計算量小,提高了監(jiān)控平臺的運行速度。
2.3.2 PC104總線復位脈寬測量
脈寬測試是測量PC104主板復位過程中復位脈沖的脈寬,復位信號線由平臺電路驅(qū)動為有效狀態(tài)。任何接收到復位信號的總線資源必須立即使所有輸出驅(qū)動器處于三態(tài),并進入適當?shù)膹臀粻顟B(tài)。
FPGA監(jiān)測脈寬通常采用脈沖計數(shù)法,即在待測信號的高電平或低電平用一個高頻時鐘脈沖進行計數(shù),然后根據(jù)脈沖的個數(shù)計算待測信號寬度。待測信號相對于計數(shù)時鐘通常是獨立的,其上升、下降沿不可能正好落在時鐘的邊沿上,因此該法的最大測量誤差為一個時鐘周期。監(jiān)控平臺FPGA采用50 MHz的高頻時鐘,脈寬測量精度可達2×10-8,滿足PC104主板監(jiān)測復位脈寬測量的技術要求。
2.4 電源測量模塊
電壓監(jiān)控模塊是基于ADI公司生產(chǎn)的AD7417設計的,AD7417為十位、四通道模數(shù)轉(zhuǎn)換器,片內(nèi)帶有溫度傳感器。AD7417在降低功耗方面有非凡的性能,其自動掉電功能可以使芯片在輸出速率較低時啟動掉電模式來降低功耗。
PC104主板工作電壓是+5 V,有些模塊的工作電壓是+12 V。AD7417擁有四路AD轉(zhuǎn)換通道,可以對于總線的±5 V、±12 V分別進行監(jiān)測。利用FPGA的I/O口和AD7417的SDA、SCL構成雙線I2C串行總線接口,通過FPGA控制AD7417芯片分別采集PC104總線上的各路電源電壓,同時將采集到的結(jié)果進行AD轉(zhuǎn)換后上傳到FPGA處理。
電壓測試模塊輸入電路原理圖如圖4所示。總線正電壓采用電阻串聯(lián)分壓的方式得到可被AD7417識別的模擬電壓值;總線負電壓經(jīng)過8.2 V的反向穩(wěn)壓二極管后得到正電壓,再分壓為可識別電壓值。下面以+5 V測試輸入端口為例,介紹實際電壓值計算方法。
已知AD7417的參考電壓是內(nèi)部參考電壓2.5 V,假設實際被測電壓為V1,AD7417輸入端口IN1被測電壓為V2,F(xiàn)PGA采集到的數(shù)值為x,則:
3 結(jié)論
本項目設計的FPGA監(jiān)測程序不僅可以有效地記錄PC104的總線運行代碼,還能實時提取有效啟動代碼和故障監(jiān)控碼,測量總線關鍵信號的頻率和脈寬。FPGA程序與上位機實時通信,可根據(jù)上位機的指令,實現(xiàn)信息上傳、復位控制及BIOS模式控制等功能。該設計經(jīng)過多次測試,可以有效地檢測到故障PC104主板,并提供具體的故障信息。從檢測結(jié)果可以看出,基于FPGA設計的檢測程序在速度和功能上均能滿足PC104主板系統(tǒng)的檢測技術要求。本設計的系統(tǒng)操作方便,擴展性強,實用性好。目前應用該FPGA程序的PC104監(jiān)控平臺達到技術要求,并通過驗收。
參考文獻
[1] 劉廣林.基于PC/104和ARM的工業(yè)控制平臺設計及應用[D].武漢:華中科技大學,2010.
[2] 楊勇智,黃勝倫,馮和軍,等.基于PC/104總線的某型飛機武器控制系統(tǒng)的ATS[J].空軍工程大學學報(自然科學版),2003,4(3):36-39.
[3] 張仲華,高曉莊,王大鵬.基于PC104的雷達主控單元檢測維修平臺[J].現(xiàn)代電子技術,2015,38(3):48-50.
[4] 陳芳.基于PC/104的ARINC 429通訊總線的設計與實現(xiàn)[D].南京:南京航空航天大學,2005.
[5] 陳正捷,何健.基于CPLD和PC104總線規(guī)范的嵌入式計算機主板檢測卡設計[J].測控技術,2006,2(25):331-336.
[6] 陳巖申,張波,管少輝,等.基于OMAPLl38和FPGA構架的PCI04主板檢測系統(tǒng)[J].計算機測量與控制,2015,23(5):1512-1514.
[7] 楊海鋼,孫嘉斌,王慰.FPGA器件設計技術發(fā)展綜述[J].電子與信息學報,2010,32(3):714-727.
[8] 張婉明,李琦,李金海,等.基于ARM與FPGA的便攜式GNSS信號采集回放系統(tǒng)設計[J].電子技術應用,2016,42(10):58-61.
[9] Altera Corporation,Terasic Technologies.DE0 user manual[EB/OL].(2011)[2017]http://DE0.terasic.com.
原文標題:【論文精選】PC104故障監(jiān)控平臺FPGA程序設計
文章出處:【微信號:ChinaAET,微信公眾號:電子技術應用ChinaAET】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論