李金猛,張子明,顧正偉
(1.中國人民解放軍第5720 工廠,安徽蕪湖 241000;2.中國人民解放軍第5720 工廠航空設備測控與逆向工程實驗室,安徽蕪湖 241000;3.安徽天航科創(chuàng)發(fā)展(集團)有限公司研發(fā)中心,安徽 蕪湖 241000)
伴隨電子技術的飛速發(fā)展,印制電路板的功能日益強大,印制電路板在民用領域和軍用領域發(fā)揮著舉足輕重的作用[1]。在航空領域,作為機載設備核心的電路板已高度集成化、復雜化,其維修保障的難度急劇增加。如何對航空電路板進行準確的測試和故障診斷已經(jīng)成為裝備維修企業(yè)當前亟需解決的問題之一[2]。
傳統(tǒng)電路板測試采用人工方式,通過示波器和萬用表對元器件進行測試,該方式測試周期長,對人員理論和技能要求高,另外對比較復雜特別是含處理器類板件的測試難度很大[3-5]。
文中采用基于TRACE32 平臺調(diào)試技術研究了對某型航空通用處理平臺電路板的測試方式和維修應用,該方法不需要拆卸電路板上的器件,便可以實現(xiàn)對器件在應用期間的故障進行準確判斷;同時可以快速、精準地完成相應的檢測作業(yè),能夠完成對復雜數(shù)字電路板的精準、快速檢測[6-8]。
TRACE32 是由德國Lauterbach 公司研制開發(fā)的一款仿真測試工具。TRACE32 作為一種真正集成化、通用性系統(tǒng)仿真器可以組合成多種方案。無論是選用網(wǎng)絡、單機、光纖方案,TRACE32 系列工具作為一種通用、模塊化的仿真與測試都有很強的優(yōu)越性。TRACE32 采用了很多領先技術,如雙端口存儲技術、實時多任務處理機制,以太網(wǎng)、光纖通信技術、多CPU 調(diào)試技術、軟件代碼覆蓋技術、基于斷點系統(tǒng)的存儲技術、多級觸發(fā)單元技術、時鐘處理單元技術、動態(tài)存儲技術等[9-10]。該系列工具的軟件支持接口豐富,并支持60 多種編譯器、20 多種實時多任務操作系統(tǒng)、十幾種操作平臺,因此具有非常強大的通用性。
TRACE32 目前一般應用于PowerPC 等含處理器航空電路板件的測試維修中,使用的模塊為Power Debug(調(diào)試器)及對應的Debug Cable(調(diào)試電纜)。
1.2.1 Power Debug調(diào)試器
TRACE32 在線測試時的常用調(diào)試器為Power Debug,用于對各型處理器進行在線調(diào)試,文中選用的型號為LA-3505 POWER-DEBUG-PRO,其具體特點是:①具有通用BDM 調(diào)試和JTAG 控制器,可以兼容所有BDM 和JTAG 調(diào)試器;②具有USB2.0 接口、1 Gbit/100 Mbit/10 Mbit 速率以太網(wǎng)接口以及測試總線擴展接口;③速率高達1 000 DMIPS/500 MHz。
1.2.2 Debug Cable調(diào)試電纜
為了調(diào)試不同的處理器,TRACE32 調(diào)試器需要與測試電纜配合使用,不同的處理器對應其相應的測試電纜,調(diào)試器通過測試電纜與處理器的JTAG口相連。支持的處理器系列包括ARM/XCALE、POWER 架構、MIPS32/64、Intel/x86、AVR32、MSP430等多種市面常見的CPU。
某型航空通用處理平臺電路板基于Power PC7447A 處理器和Tsi109-200IL 橋接芯片,以PCI 總線通信為主要架構,可以用于完成飛機航電系統(tǒng)中如任務管理、顯示控制、數(shù)據(jù)融合和數(shù)據(jù)計算等功能。該平臺符合VME 底板總線標準,配備PMC 標準接口,易于擴展,是一種高性能的航空電子商用貨架產(chǎn)品[11]。
該處理平臺包括兩個獨立的處理單元。處理器選用飛思卡爾的PowerPC,型號為7447A,主從節(jié)點通過PCI 總線交互,每個處理器外圍電路完全相同,灌入不同的軟件即可實現(xiàn)相應的功能。這兩個處理器通過Tsi109 橋接芯片完成對串口、網(wǎng)口、存儲器以及PCI 總線的功能擴展,F(xiàn)PGA 負責對內(nèi)存SDRAM、系統(tǒng)FLASH、用戶FLASH、NVSRAM 等地址區(qū)域控制端的控制,PCI 總線和VME 總線之間通過Tsi148芯片再次進行橋接。平臺通過VME 總線與航電系統(tǒng)的其他設備連接。平臺可以按應用需求提供豐富的擴展功能。圖1 所示為安裝MBI 子卡提供1553B總線接口的電路板框架圖。
圖1 通用處理平臺電路板框架
使用TRACE32 進行測試需要密切關注其各類資源的地址分配,存儲器控制器由Tsi109 分配實現(xiàn),系統(tǒng)地址空間分為4 個區(qū):局部存儲器、PCI 存儲器空間、PCI IO 空間、FLASH 存儲器空間。Tsi109 實現(xiàn)對所有空間的控制訪問。系統(tǒng)資源地址分配見表1。
表1 系統(tǒng)資源地址分配
首先,通過測試電纜連接調(diào)試器與電路板處理器JTAG 口,通過USB 線連接調(diào)試器與調(diào)試計算機,連接調(diào)試器電源適配器,打開電路板電源,可以看到電路板電源指示燈燃亮,調(diào)試器電源適配器電源指示燈和TRACE32 調(diào)試器所有指示燈均不亮。打開TRACE32 軟件,在界面的右下角位置顯示“power down”狀態(tài)。此時將調(diào)試器電源適配器打開,調(diào)試器上電,可以看到適配器電源指示燈燃亮,同時調(diào)試器電源燈(POWER)和設置燈(SELECT)燃亮,另外界面右下角的軟件狀態(tài)由“power down”變?yōu)椤皊ystem down”。
在菜單欄點擊CPU,選擇SYSTEM 菜單,彈出處理器設置框,點擊CPU 按鈕,選擇目標處理器,這里選擇MPC7447A。
選擇好處理器后,要連接相應板件,在Mode 框中點擊“up”選項,該操作可以連接處理器并由TRACE32 調(diào)試器全面接管處理器,此時將IP 指針拉到處理器的起始入口地址。等待片刻后可以看到軟件右下角地址為FFF00100(PowerPC 的入口地址),狀態(tài)由“system down”變?yōu)椤皊ystem ready”。此時處理器已經(jīng)由TRACE32 接管,連接工作完成。
一般含處理器電路板的模塊將模塊中的各種資源按照不同的地址進行訪問和使用,因此對內(nèi)存空間進行監(jiān)控可以反映板件各資源的運行情況,對于板件的測試及排故具有很大幫助。
可以查看處理器內(nèi)存空間的具體內(nèi)容,點擊View 菜單,選擇“Dump..”。此時跳出地址查看設置框,在Adderss/Expression 框中輸入查看的地址。
SDRAM 具有較高的讀寫速率以及較高的精度,存儲容量大、可支持突發(fā)模式等優(yōu)點[12],因此內(nèi)存選擇SDRAM。處理器運行時要把用到的數(shù)據(jù)和程序從FLASH 調(diào)用到內(nèi)存里,這樣調(diào)用時更加快速高效。該板件的SDRAM 地址從0x00000000 開始,因此在Adderss/Expression 框中輸入0x00000000,就可以顯示SDRAM 內(nèi)容。
由于內(nèi)存所用的SDRAM 存儲器是隨機讀寫機制,因此可以靈活修改這個區(qū)域的數(shù)據(jù)。只需要雙擊軟件中的地址,在下方顯示的命令欄中輸入所要修改的內(nèi)容,就可以把這個地址的內(nèi)容修改。如圖2所示,位于0x00000064 地址的數(shù)據(jù)由圖2(a)中的0xEFFE7FEF 修改為圖2(b)中的0x00000000。
圖2 SDRAM內(nèi)容的修改
FALSH 相當于電路板件計算機系統(tǒng)的硬盤,存放需要運行的軟件代碼,掉電不丟失。因為PowerPC 的入口地址為0xFFF00100,因此訪問該地址就可以查看相應FLASH 空間的內(nèi)容,如圖3 所示。
圖3 查看PowerPC入口地址的FLASH內(nèi)容
需要注意的是,F(xiàn)LASH 是只讀存儲器,不能輕易按照3.1 節(jié)的方法進行內(nèi)容的修改。具體的FLASH操作方法將結合實例在第4 節(jié)介紹。
隨著航空電子技術的迅猛發(fā)展,我國軍用飛機的數(shù)字化、集成化水平取得了長足的發(fā)展,F(xiàn)LASH 等存儲器在航空電路板中得到了廣泛的應用[13]。在航空電路板的使用中,F(xiàn)LASH 脫焊是十分常見的故障之一,因此需要對電路板上的FLASH 芯片進行讀、寫、擦等操作,通過觀察FLASH 空間內(nèi)容的異常、配合示波器等觀察時序波形的異常等分析故障原因并確定故障位置。
在一次修理過程中經(jīng)過初步觀察,懷疑某型航空通用處理平臺電路板的FLASH 芯片存在故障,以下通過在TRACE32 中編寫CMM 文件作為FLASH 擦除和寫入腳本,從而實現(xiàn)操作FLASH 的方法來確認故障點。
4.1.1 橋接芯片格式
首先確定分配地址的具體映射關系,PCI 總線作為一種高性能32 位或64 位地址數(shù)據(jù)復用的總線,具有性能強、成本低、適應性強、數(shù)據(jù)完整性和軟件兼容性好等特點,可實現(xiàn)處理器和存儲器系統(tǒng)以及各種接口系統(tǒng)的連接[14-15]。根據(jù)2.1 節(jié)的介紹可以分析出該電路板使用的就是以Tsi109-200IL 橋接芯片為樞紐的PCI 總線結構,根據(jù)對橋接芯片Tsi109-200IL的芯片手冊進行查詢可以得出,該模塊使用32 位模式的HLP 格式,HLP 格式中每一位與地址、數(shù)據(jù)位的對應關系如表2 所示。
表2 Tsi109的32位模式HLP格式
4.1.2 FLASH操作時序
不同的FLASH 芯片操作時序和指令存在差異,該航空通用處理平臺電路板使用的FLASH 型號為S29GL256GP11TFI010,其操作指令如表3 所示。
表3 S29GL256GP11TFI010的操作指令
以編程操作為例。根據(jù)電路邏輯圖,F(xiàn)PGA 的LATCH_AD_6~LATCH_AD_29 端口分別連接FLASH地址線A0~A23;FPGA 的AD0~AD15 端口分別連接FLASH 數(shù)據(jù)線DQ0~DQ15。表1 中HLP_AD[6:29]可看作LATCH_AD_6~LATCH_AD_29,對應系統(tǒng)總線的A2~A25;數(shù)據(jù)線則仍為D31~D0。所以可得到表4所示的映射關系。
表4 地址映射關系
需要注意的是,表3 中最右邊一列是從下向上排序的十六進制表示,因此可以看到,編程指令的第一個地址就由0x555 變成了系統(tǒng)總線的0x1554,另外還要加上需要操作的FLASH 基地址,如航空通用處理平臺電路板的用戶FLASH 基地址0xF8000000。所以第一個指令的地址變?yōu)?xF8001554,數(shù)據(jù)不變,仍為0xAAAAAAAA(航空通用處理平臺電路板中的用戶FLASH 為4 片并聯(lián)的形式,數(shù)據(jù)線擴展為32 位,所以數(shù)據(jù)擴展為0xAAAAAAAA)。以此類推,第二個指令地址為0xF8000AA8,數(shù)據(jù)為0x55 555555;第三個指令地址為0xF8001554,數(shù)據(jù)為0xA0A0A0A0。
因為PowerPC 架構下應按照大端模式32 位尋址,所以CMM 文件中應該注明相應的“%BE”(大端模式)和“%LONG”(32 位模式)控制字。
可以在TRACE32 中編寫CMM 腳本文件直接對微處理器的寄存器和存儲器等模塊進行操作[16],根據(jù)表2 的FLASH 操作指令,編寫以下CMM 腳本文件實現(xiàn)FLASH 的不同操作:
1)字節(jié)編程序列,通過以下代碼實現(xiàn)向0xF8000000 地址寫入數(shù)據(jù)0x11223344 的功能,將其命名為program.cmm。
D.S D:0xF8001554%BE%LONG 0xAAAAAAAA
D.S D:0xF8000AA8%BE%LONG 0x55555555
D.S D:0xF8001554%BE%LONG 0xA0A0A0A0
D.S D:0xF8000000%BE%LONG 0x11223344
2)扇區(qū)擦除序列,通過以下代碼實現(xiàn)擦除第0扇區(qū)(地址0xF8000000-0xF803FFFF)的功能。將其命名為erase_sector.cmm。
D.S D:0xF8001554%BE%LONG 0xAAAAAAAA
D.S D:0xF8000AA8%BE%LONG 0x55555555
D.S D:0xF8001554%BE%LONG 0x80808080
D.S D:0xF8001554%BE%LONG 0xAAAAAAAA
D.S D:0xF8000AA8%BE%LONG 0x55555555
D.S D:0xF8000000%BE%LONG 0x30303030
3)正片擦除序列,通過以下代碼實現(xiàn)擦除正片F(xiàn)LASH 的功能,注意此步驟耗時較長。將其命名為erase_chip.cmm。
D.S D:0xF8001554%BE%LONG 0xAAAAAAAA
D.S D:0xF8000AA8%BE%LONG 0x55555555
D.S D:0xF8001554%BE%LONG 0x80808080
D.S D:0xF8001554%BE%LONG 0xAAAAAAAA
D.S D:0xF8000AA8%BE%LONG 0x55555555
D.S D:0xF8001554%BE%LONG 0x10101010
點擊File 菜單,選擇“Edit Script”選項,該模式下可以編輯和運行測試代碼,如圖4 所示。
圖4 選擇“Edit Script”
選擇4.2 節(jié)編寫的FLASH 操作測試程序文件,可以看到詳細的代碼內(nèi)容,界面中有“編輯”、“保存”、“運行”、“調(diào)試”等多個按鈕。
點擊“Do”(“運行”)按鈕,測試程序開始運行,打開存儲空間監(jiān)控界面可以看到FLASH 目標地址區(qū)域發(fā)生了相應的變化。
值得注意的是,以上方法不僅僅局限于軟件操作,在使用軟件的同時常常也需要各種儀器設備完成對硬件的測量,這樣才能夠更準確、更有效地實現(xiàn)對故障的定位。
具體而言,常用的方法為在通過軟件訪問地址空間時用示波器觀察其時序波形,主要檢查其是否存在控制信號缺失、地址/數(shù)據(jù)線常高或常低、信號半高不低等問題,從而判斷故障原因。值得一提的是,正確使用示波器可以準確定位到有問題的信號究竟是在信號線的哪一端,進而確定故障芯片,具體來說就是用讀/寫的方式查看信號是否正常。
該例分析的最終故障分析如下:某信號為橋接芯片Tsi109 和FLASH 相連,因為橋接芯片為BGA 封裝只能測到存儲器引腳的信號,測試時發(fā)現(xiàn)讀操作數(shù)據(jù)線狀態(tài)正常而寫操作某位數(shù)據(jù)線半高不低,則最終判斷是橋接芯片器件脫焊導致其信號出現(xiàn)問題。
TRACE32 是一種非常先進的調(diào)試設備,其功能非常強大,應用范圍很廣,文中從部分功能和模塊介紹了其最為基本的使用,包括運行測試程序和內(nèi)存地址的監(jiān)控,實踐證明TRACE32 的使用是復雜電路板測試和排故中最基本也是非常有效的方法。通過不斷開發(fā)TRACE32 的功能,可以在后續(xù)的維修作業(yè)中提煉出更多、更有效、更便捷的測試和故障定位方法。