李 川,汪利建,劉少龍
(中國航空工業集團公司西安航空計算技術研究所,陜西 西安 710068)
在通用航空領域,廣泛采用綜合化、模塊化的航空電子設備。航空電子設備一般由機柜和多個用于實現特定功能的電子模塊組成,在大部分功能模塊上都會有微控制單元(Micro Controller Unit,MCU)或數字信號處理器(Digital Signal Processing,DSP)來進行數據處理。在電子設備軟件調試或升級過程中,經常需要每個電子模塊的MCU或DSP燒錄程序或進行在線調試[1,2]。傳統的調試方法是將需要調試的功能模塊拆卸下來,單獨進行調試。這種方法有以下缺點:(1)每次調試都需要將模塊拆卸,過程煩瑣;(2)模塊脫離機柜后無法滿足調試環境的要求。針對此類問題,本文以TMS570系列MCU為例設計了一種調試電路,可以在不用打開機柜的狀態下對所有的電子模塊進行調試。
目前,主流的芯片調試方法為借助聯合測試行動小組(Joint Test Action Group,JTAG)協議[3]。JTAG是一種國際標準測試協議,用于芯片內部測試,大部分MCU芯片都支持JTAG接口。JTAG接口最常用的4個信號線分別為測試時鐘(Test Clock,TCK)、測試模式選擇(Test Mode Select,TMS)、測試數據輸入(Test Data Input,TDI)以及測試數據輸出(Test Data Output,TDO),通過控制這4個信號線即可訪問MCU內部,實現對芯片的編程和在線測試[4-7]。
JTAG接口雖然可以實現Flash編程和Debug調試,但是其接口無法直接和PC端進行物理連接。通用串行總線(Universal Serial Bus,USB)接口作為PC機必不可少的通信接口之一,支持熱插拔,傳輸速度快。基于此,通過在USB接口和JTAG接口之間進行協議轉換,實現PC機對MCU的訪問[8,9]。
FT2232HL是FTDI公司的一種雙通道高速USB串行通信協議轉換芯片,通過多協議同步串行引擎(Multi-Protocol Synchronous Serial Engine,MPSSE)實現USB設備和其他串行設備的通信。FT2232HL包含2個獨立的MPSSE,可以將1路USB接口同時轉為1路JTAG接口和1路通用異步收發器(Universal Asynchronous Receiver/Transmitter,UART)。此 外,FT2232HL還可以通過外掛1個電可擦除可編程只讀存儲器(Electrically Erasable Programmable Read Only Memory,EEPROM)來存儲配置信息。
USB集線器(USB HUB)是一種擴展USB接口的工具,可以將一個USB接口擴展為多個,并且這些接口可以同時使用[10]。TUSB2046B是德州儀器公司生產的一種一拖四集線器,該芯片兼容USB 2.0標準,支持單獨供電和總線供電2種模式,同時支持自動掛起和恢復操作,提供了一種靈活的USB擴展方案。
CCS是TI公司提供的一款專業嵌入式軟件開發工具,利用CCS IDE可以將寫好的軟件代碼燒寫到嵌入式芯片中,同時也可以通過Debug功能對芯片進行在線調試。當嵌入式芯片通過仿真器連接到PC機時,CCS可以通過2種方式去識別設備并連接。第一種方式為“Only one installed”,這種方式只能用于連接一個仿真器的情形;第二種方式為“Select by serial number”,當同時有多個仿真器連接到PC機時,CCS可以通過序列號來選擇其中一個進行調試。本文所設計的調試系統就是基于CCS軟件提供的第二種連接方式。
基于JTAG和USB HUB技術,設計了一種可以實現4個模塊同時在線調試的系統。調試系統的物理架構如圖1所示,主要包括功能模塊上的調試電路、機柜背板上的USB HUB控制器電路以及PC機上的軟件調試工具。4個調試電路通過USB HUB復用1個USB接口,通過USB數據線連接好機柜和PC后,即可通過選擇每個功能模塊的序列號對相應的模塊進行調試。

圖1 多模塊調試系統物理架構
每個功能模塊上的調試電路設計如圖2所示。

圖2 功能模塊上的調試電路設計
MCU器件的型號為TMS570LS3137,FT2232HL作為協議轉換器,將USB協議轉換為JTAG和UART協議。外部Flash存儲器通過串行外設接口(Serial Peripheral Interface,SPI)總線掛載在FT2232HL上,用于存儲FT2232的配置信息,其中包括需要轉換的接口協議、序列號等信息。FT2232的USB端口通過模塊底部的連接器可以延伸至背板。
在機箱背板中,設計了一個USB HUB,實現了USB接口擴展。HUB的上游端口從機柜引出,下游端口與各個功能模塊的調試電路相連。USB HUB電路設計如圖3所示,由電磁兼容(Electro Magnetic Compatibility,EMC)防護電路、HUB控制器以及過流保護電路構成。

圖3 USB HUB電路設計
標準USB接口由4根線組成,分別是差分數據線D+、D-和電源線VCC、GND。通過一個TUSB2046芯片將1路USB數據線分為4路,實現USB接口擴展。電源線USB VCC通過一個4通道過流檢測器TPS2044進行過流保護,當TPS2044檢測到某個通道的輸出電流超過500 mA時,會發出一個過流信號給TUSB2046,TUSB2046立即關斷使能,TPS2044停止輸出,從而起到過流保護作用。
基于實際的硬件電路、開發工具以及測試代碼驗證系統功能,其中開發工具包括CCS11.1.0、FT2232HL配置工具以及串口調試助手,測試代碼內容包括軟硬件初始化和通過UART循環發送各自模塊的代號。
(1)配置調試電路。每次單獨插入1個功能模塊到背板上,利用PC機上的FT2232HL配置工具依次對4個模塊的調試電路進行配置。將FT2232HL的2個MPSSE通道的功能分別設置為JTAG和UART,并給每個功能模塊設置一個序列號。將配置好的信息寫入調試電路的FLASH芯片中,4個功能模塊的序列號依次為Module1~Module4。
(2)將4個功能模塊全部插入到背板上,連接USB數據線。
(3)在CCS軟件中打開測試代碼的工程,在“連接選項”界面選擇連接方式為“通過序列號連接”,輸入配置的模塊序列號,燒寫程序,如圖4所示。

圖4 CCS軟件配置
(4)打開串口工具,觀察串口打印的信息。按照以上步驟進行測試,4個功能模塊的測試代碼均燒錄成功。重新給機柜上電運行,串口助手界面顯示4個功能模塊都在循環打印各自的代號,測試結果與預期相符。
基于FT2232HL和USB HUB的多模塊在線調試系統優化了模塊化航空電子設備的調試步驟和調試流程,具有較強的實用性。經過實驗驗證和分析,所設計的方案能夠通過一個USB接口實現對多個功能模塊進行程序燒錄、在線仿真以及UART通信,性能穩定且方便易用,值得推廣借鑒。