李云飛,陳 淼,王建強,宋景成,李 鵬
(山西銀河電子設備廠,山西 太原 030006)
在現代的武器系統、空間系統和飛行器領域,對控制系統的集成度、動態性需求日益增強,主控芯片作為整個控制系統的核心,正逐步由分離的元器件框架向高集成度的片上系統(SOC)發展,在功能復雜的應用場合,需要使用片上可編程系統(SOPC),來解決靈活的硬件接口設計、復雜的算法邏輯實現等功能。BM3109是一款國產的高動態、高性能、低功耗的SOPC芯片[1],通過將SoC硬件與可編程FPGA系統融合,實現系統的動態可配置和高集成度。對于高精尖領域核心模塊的國產化設計,提供了芯片級的保證。本文從BM3109的硬件組成、軟件架構設計、開發調試環境構建等方面入手,對基于BM3109芯片的國產化硬件平臺工程解決方案進行探索研究。
BM3109是國產的高性能SOPC芯片,由CPU處理芯片、可編程邏輯系統、多級存儲器組成,系統構架如圖1所示。CPU處理芯片采用SPARC-V8架構的32位微處理器BM3101,作為主控芯片,通過LOCAL-BUS總線與片上設備通信,實現整個系統的管理控制功能。BM3101芯片包含整數處理單元、浮點處理單元、獨立的指令和數據Cache、中斷控制器、DSU硬件調試單元、計時器、定時器和串口,支持PROM、SRAM、SDRAM和I/O映射空間訪問的存儲器控制器。可編程邏輯系統采用BQV300現場可編程門陣列,實現硬件接口設計及算法的實現功能。BQV300擁有30萬門系統,工作頻率支持到200MHZ,16-bit RAM、32-bit-RM 和16-bit雙端口RAM,支持 slave-serial、masterserial、SelectMAP Mode、Boundary-Scan Mode 四種配置模式。存儲器系統包括8M Byte FLASH、1 M Byte SRAM和16M Byte SDRAM,用于存放程序代碼、用戶數據等。

圖1 BM3109系統構架示意圖Fig.1 Architecture of general BM3109
在工程設計中,增加復位電路、時鐘模塊、電源模塊即可完成最小系統搭建,復位電路可選用MAX706芯片,時鐘電路可選用25MHZ的外部晶體振蕩器,電源電路可選用DC-DC芯片TPS54610,實現外設電壓3.3V、內核電壓1.8V、可編程邏輯器件2.5V的供電設計。根據工程設計需求,最小系統可以搭載高容量的可編程邏輯門陣列、CPLD芯片、FLASH 芯片、EEPROM 芯片及 MAX3232、MAX485、74ALVCH16245等電平轉換接口芯片等,完成可裁減、可擴充、可升級國產高集成度嵌入式平臺的搭建,如圖2所示。

圖2 硬件平臺組成示意圖Fig.2 Composition of whole hardware platform
SOPC平臺的處理器是基于SPARC體系的CPU芯片BM3101,軟件架構包括啟動引導段和用戶程序段代碼。啟動引導程序類似于PC機的BIOS,完成系統初始化,使用匯編語言進行編寫[2];用戶程序存放在特定的存儲空間,由啟動引導程序搬移到RAM空間后開始運行,程序一般使用C語言進行開發設計。
啟動引導程存放在BM3101處理的0X00000000地址處,系統上電后,程序從該地址開始執行,依次完成異常向量表的定義、堆棧初始化、系統硬件初始化、C程序運行環境初始化、跳轉到用戶C語言主程序。
用戶程序根據軟件需求進行編寫,可以采用執行效率高的前后臺程序設計模式,也可以基于VxWORKS系統進行開發設計。用戶程序存放在BM3101處理器指定的FLASH地址空間,由bootloader搬移到RAM地址空間后開始執行。
在工程設計中,用戶程序一般包括主控模塊、軟件配置管理服務模塊、芯片資源配置模塊、業務管理服務模塊、系統運維管理模塊組成。在應用到FPGA功能的產品中,需設計FPGA控制模塊管理模塊,軟件構架設計見圖3。

圖3 軟件構架設計示意圖Fig.3 Architecture of the standare software
BM3101處理器的開發調試工具包括SPE-C 2.55和GRMON[3]。SPE-C 2.55是針對C程序語言設計的一個完整的集成開發環境,運用GNU的整套集成開發套件作為編譯/調試的核心,在Win32環境下使用,完成應用程序的開發和程序調試。GRMON是一款調試SPARC V8處理的匯編級調試工具,支持對系統寄存器和內存的讀寫訪問,下載和執行LEON應用,斷點和觀察點管理。在實際軟件調試過程中,往往將兩者結合使用,使用SPE-C 2.55的用戶界面完成源代碼的編輯、編譯,生成可執行代碼,利用GRMON完成代碼的下載與在線調試。
在工程設計中,完整的軟件開發調試流程為:第一步,配置SPE-C工程選項,處理器型號選擇BM3101,鏈接選項TEXT地址設置為0X40000000,該地址為用戶程序的執行地址,其他選項默認即可;第二步,編寫程序代碼,以系統mould為基礎建立新工程,根據軟件需求,修改mian.c程序設計;第三步,按“編譯”按鈕完成C文件的編譯工作;第四步,生成FLASH映像燒寫文件,在Boot參數設置頁,選擇BM3101系列,勾選需要BOOT文件,燒寫設置頁,FLASH位寬選擇16位,處理器運行頻率填寫實際頻率,其他選項默認,點擊“確定”按鈕,在工程目錄生成即可生成program_flash_in_ram.bin和program_flash_in_ram.exe兩種二進制可執行映像文件。第五步,下載程序代碼,可以通過兩種方法將目標代碼固化到SOPC芯片中。第一種,使用SPE-C開發環境的存儲初始化功能,按圖3完成PC機和硬件平臺的連接,在初始化配置頁,DSU口選擇連接SOPC芯片的串口,文件選program_flash_in_ram.bin,其他選項默認,下載完成后,點擊“轉到”即可將程序固化到FLASH芯片中;第二種,使用GRMON工具,在cmd控制臺中輸入 “grmon–leon2-uart-comx”,即可使用pc機的X串口連接BM3109的DCL。串口連接成功后,cmd控制臺會出現GRMON提示符“grmon>”。在提示符后可鍵入lo../program_flash_in_ram.Exe,將可執行代碼下載到0X40000000地址處,下載完成后,再鍵入run命令,將目標代碼燒寫到FLASH中。將BM3109的DSU芯片拉低,設置為正常啟動模式,重新上電,硬件平臺即可正常執行程序。平臺的系統調試構架如圖4所示。

圖4 平臺系統調試構架圖Fig.4 System debugging environment of the platform
SOPC芯片憑借其高集成度、高靈活性的顯著優點,在對系統體積、功耗、性能要求嚴格的軍用和宇航領域已得到了廣泛的應用。在追求高可靠性的網絡完全領域和移動通信領域,SOPC芯片也發揮著越來越重要的作用。本文根據SOPC芯片的特點,結合工程設計,詳細介紹了BM3109的硬件組成、軟件構架設計和軟件開發環境,對一套可行的基于國產SOPC芯片設計工程實現方案進行探索研究。
[1]BM3109IB產品使用手冊[Z].航天第772研究所.
[2]吳景紅.SPARC處理器啟動代碼的分析與編程[J].機電產品開發與創新,2008,6.
[3]張憶.BM3803計算機系統調試技術研究[J].電腦知識,2015,8.