歐 斌,李敬超,高 霞,徐彬彬
(重慶金美通信有限責(zé)任公司,重慶400030)
基于以太網(wǎng)傳輸?shù)那度胧蕉嗪薉SP自啟引導(dǎo)
歐斌,李敬超,高霞,徐彬彬
(重慶金美通信有限責(zé)任公司,重慶400030)
TI推出的基于KeyStone架構(gòu)的TMS320C66xx系列產(chǎn)品在圖像處理、語(yǔ)音處理、信號(hào)處理等諸多領(lǐng)域得到了廣泛應(yīng)用,多核自啟引導(dǎo)關(guān)系到DSP內(nèi)核代碼之間能否在離線模式下同步并行工作和獨(dú)立自主運(yùn)行。結(jié)合以太網(wǎng)接口的高速傳輸特性和NAND FLASH大容量非易失存儲(chǔ)優(yōu)勢(shì),通過(guò)在FLASH燒寫(xiě)程序中嵌入U(xiǎn)DP協(xié)議代碼實(shí)現(xiàn)多核鏡像文件的以太網(wǎng)傳輸功能,并且對(duì)IBL二級(jí)自啟引導(dǎo)代碼進(jìn)行改進(jìn),實(shí)現(xiàn)了多核鏡像文件從FLASH到內(nèi)核的引導(dǎo)。經(jīng)過(guò)在TMS320C6670 DSP平臺(tái)上驗(yàn)證,該設(shè)計(jì)能夠?qū)崿F(xiàn)多核程序代碼到FLASH的高效傳輸、燒寫(xiě)和自啟引導(dǎo),為嵌入式DSP設(shè)備出廠制造和程序升級(jí)提供了新的思路。
嵌入式;多核;自啟引導(dǎo);以太網(wǎng);DSP處理器;NAND FLASH存儲(chǔ)器
TI推出的基于KeyStone架構(gòu)的TMS320C66xx系列產(chǎn)品在圖像處理、語(yǔ)音處理、信號(hào)處理等諸多領(lǐng)域得到了廣泛應(yīng)用[1]。其采用的多核并行和高速接口工作機(jī)制,提高了DSP的處理能力,高效地進(jìn)行多核程序的自啟引導(dǎo)和程序升級(jí)成為設(shè)備成品和離廠維護(hù)的必備選擇。
DSP的自啟引導(dǎo)可分為處理器加載和存儲(chǔ)器加載兩種模式。前者需要其它處理器作為上位機(jī)通過(guò)網(wǎng)口[2]、RapidIO、HyperLink、PCIe等高速接口快速加載應(yīng)用程序;后者通過(guò)存儲(chǔ)在非易失的EEPROM、FLASH等存儲(chǔ)芯片中可實(shí)現(xiàn)DSP加載應(yīng)用程序[3]。嵌入式的DSP系統(tǒng)普遍采用存儲(chǔ)器模式的獨(dú)立自啟設(shè)計(jì)。一般I2C總線連接EEPROM容量較小,主要用于存儲(chǔ)較小體積的引導(dǎo)程序,例如DSP的二級(jí)引導(dǎo)程序IBL。大容量用戶(hù)程序自啟引導(dǎo)需要FLASH存儲(chǔ)器完成加載。
以TMS320C6670為例,通過(guò)對(duì)自啟引導(dǎo)程序的重新設(shè)計(jì),提出了一種通過(guò)千兆以太網(wǎng)進(jìn)行鏡像傳輸,使用串口監(jiān)控和指導(dǎo)NAND FLASH程序燒寫(xiě)和更新,實(shí)現(xiàn)DSP多核程序自啟引導(dǎo)的方法。
嵌入式的DSP用戶(hù)程序鏡像的傳輸燒寫(xiě)、自啟引導(dǎo)工作主要使用PC客戶(hù)端、DSP內(nèi)核、外部存儲(chǔ)三大模塊的協(xié)調(diào)工作完成,整個(gè)系統(tǒng)的架構(gòu)設(shè)計(jì)如圖1所示。
PC模塊主要用于完成用戶(hù)鏡像文件的傳輸,以及程序運(yùn)行狀態(tài)的監(jiān)控和控制處理。外存用于存放自啟引導(dǎo)所需的鏡像文件和自啟引導(dǎo)程序。DSP模塊作為核心部分完成鏡像的燒寫(xiě)和加載工作。
圖1 系統(tǒng)架構(gòu)
DSP提供了UART接口[4],需要通過(guò)在外部電路中接入MAX3221換為RS232信號(hào),以方便PC機(jī)通過(guò)USB轉(zhuǎn)串口工具同DSP進(jìn)行通信。串口電路如圖2所示。
圖2 串口電路
DSP提供了SGMII高速接口用于數(shù)據(jù)的高效傳輸。為實(shí)現(xiàn)DSP與PC的網(wǎng)絡(luò)通信,需要將通信接口SGMII與PHY相連,然后通過(guò)變壓器和RJ45連接,配置為標(biāo)準(zhǔn)的以太網(wǎng)接口進(jìn)行通信。以太網(wǎng)接口電路如圖3所示。
圖3 以太網(wǎng)接口電路
DSP6670的NAND FLASH通過(guò)GPIO接口同DSP連接[5],用于存儲(chǔ)DSP多核鏡像。EEPROM通過(guò)I2C總線同DSP連接用于存儲(chǔ)二級(jí)自啟程序IBL[3、6]。存儲(chǔ)電路如圖4所示。
圖4 存儲(chǔ)電路
4.1多核鏡像傳輸和燒寫(xiě)設(shè)計(jì)
TI提供了NAND FLASH的燒寫(xiě)工程,傳統(tǒng)模式下,從PC通過(guò)仿真線加載用戶(hù)鏡像文件并寫(xiě)入FLASH。通過(guò)在以太網(wǎng)系統(tǒng)工程中嵌入NAND FLASH燒寫(xiě)模塊實(shí)現(xiàn)PC同DSP之間的以太網(wǎng)通信,用于接收鏡像文件并直接對(duì)其進(jìn)行燒寫(xiě)[7]。改進(jìn)的以太網(wǎng)系統(tǒng)鏡像文件預(yù)先使用傳統(tǒng)方式燒寫(xiě)到FLASH中,當(dāng)用戶(hù)需要進(jìn)行程序更新時(shí),DSP加電啟動(dòng)后會(huì)從FLASH中加載該工程。流程圖如圖5所示,具體介紹如下:
圖5 多核鏡像的傳輸和燒寫(xiě)流程
(1)以太網(wǎng)系統(tǒng)傳輸模塊
DSP接收包含多核鏡像的以太網(wǎng)包需要本地MAC和IP地址進(jìn)行匹配,然后通過(guò)多核導(dǎo)航器QMSS接收描述符裝載的數(shù)據(jù)流到內(nèi)存空間,最后通過(guò)輪詢(xún)或中斷的方式判斷傳輸?shù)臄?shù)據(jù)量是否滿足以太網(wǎng)包包含的鏡像大小信息,決定是否接收完成。這一過(guò)程通過(guò)使能多核導(dǎo)航器QMSS,CPPI通道,SGMII高速口以及以太網(wǎng)收發(fā)線程完成。接收完成的多核鏡像文件暫存在DSP DDR3內(nèi)存,等待寫(xiě)入FLASH。
(2)NAND FLASH燒寫(xiě)模塊
NAND FLASH的讀寫(xiě)、擦除均是以塊為單位進(jìn)行的,因此存放在DSP內(nèi)存的鏡像數(shù)據(jù)要進(jìn)行分塊處理,然后根據(jù)以太網(wǎng)包中包含的鏡像文件存儲(chǔ)區(qū)域信息通過(guò)NAND FLASH的驅(qū)動(dòng)程序?qū)懭氲紽LASH中相應(yīng)的代碼存儲(chǔ)區(qū)域。
4.2多核鏡像加載和引導(dǎo)設(shè)計(jì)
TI提供的NAND FLASH的二級(jí)引導(dǎo)代碼只可進(jìn)行單核應(yīng)用程序的加載,需要對(duì)其進(jìn)行擴(kuò)展設(shè)計(jì),完成多核程序的加載和引導(dǎo)功能。多核鏡像的加載流程如圖6所示,具體過(guò)程如下:
圖6 多核鏡像加載引導(dǎo)流程圖
(1)程序升級(jí)選擇階段
DSP加電啟動(dòng)時(shí)需要用戶(hù)選擇正常加載多核鏡像文件或燒寫(xiě)程序鏡像文件,該指令通過(guò)更改IBL中的程序加入U(xiǎn)ART串口輸入功能完成。
(2)多核程序加載階段
將多核鏡像文件各自存放在FLASH中的地址參數(shù)提供給IBL的NAND Boot函數(shù)后使其循環(huán)運(yùn)行,該函數(shù)通過(guò)查詢(xún)FLASH內(nèi)OUT文件的標(biāo)識(shí),開(kāi)始以代碼段的模式加載到DSP相應(yīng)內(nèi)存中,完成FLASH中用戶(hù)代碼到DSP的加載。
(3)多核并行自啟動(dòng)預(yù)處理階段
多核自啟動(dòng)需要從BOOT_MAGIC地址內(nèi)獲取入口地址(_c_int00)方能開(kāi)始運(yùn)行。在IBL啟動(dòng)程序中,預(yù)先將各個(gè)核的入口地址寫(xiě)入多核處理器各自L2SDRAM內(nèi)存上的BOOT_MAGIC全局地址內(nèi)(0x1*8ffffc,‘*'為內(nèi)核標(biāo)號(hào))[8],IBL運(yùn)行完之后跳轉(zhuǎn)到主核(CORE0)入口地址開(kāi)始運(yùn)行。主核通過(guò)IPC中斷進(jìn)行核間觸發(fā),從核(CORE1~CORE3)被激活,從各自BOOT_MAGIC內(nèi)獲取入口地址開(kāi)始執(zhí)行應(yīng)用程序,從而實(shí)現(xiàn)多核應(yīng)用程序并行工作。
需要注意的是,從核存儲(chǔ)在DSP L2SDRAM的代碼和數(shù)據(jù)需要在存儲(chǔ)映射文件中設(shè)置為全局地址,否則CPU將會(huì)認(rèn)為該地址為主核CORE0的L2局部地址運(yùn)行,導(dǎo)致程序紊亂。
DSP設(shè)置為NAND BOOT模式啟動(dòng)后,串口打印如圖7所示。wait等待接受指令,輸入升級(jí)指令后,接收到以太網(wǎng)客戶(hù)端發(fā)送的多核用戶(hù)OUT文件,并自動(dòng)完成多核鏡像的燒寫(xiě),說(shuō)明鏡像傳輸和FLASH燒寫(xiě)功能正常。
重啟DSP后,串口打印如圖8所示,IBL等待超時(shí)后自動(dòng)加載多核用戶(hù)程序,各核均有串口輸出,證明多核自啟引導(dǎo)運(yùn)行正常。
圖7 鏡像傳輸和燒寫(xiě)驗(yàn)證
圖8 多核自啟引導(dǎo)驗(yàn)證
通過(guò)嵌入帶有以太網(wǎng)傳輸模塊的DSP升級(jí)程序和IBL的擴(kuò)展設(shè)計(jì),實(shí)現(xiàn)了通過(guò)千兆以太網(wǎng)接口進(jìn)行多核應(yīng)用程序的高效快速升級(jí)更新和自啟引導(dǎo),對(duì)批量DSP設(shè)備的生產(chǎn)制造和軟件升級(jí)維護(hù)具有一定的參考價(jià)值。
[1]Texas Instruments Incorporated.TMS320C6670 multicore fixed and floating-point system on chip user guide[EB/OL].Http://www.ti.com.cn.2012.
[2]Texas Instruments Incorporated.KeyStone Architecture GbE Swith subsystem[EB/OL].Http://www.ti.com.cn.2012.
[3]Texas Instruments Incorporated.KeyStone Architecture Bootloader[EB/OL].Http://www.ti.com.cn.2012.
[4]Texas Instruments Incorporated.KeyStone Architecture Universal Asynchronous Receiver_Transmitter(UART)[EB/OL].Http://www.ti.com.cn.2012.
[5]Texas Instruments Incorporated.KeyStone Architecture EMIF16[EB/OL].Http://www.ti.com.cn.2012.
[6]Texas Instruments Incorporated.KeyStone Architecture I2C[EB/OL].Http://www.ti.com.cn.2012.
[7]左顥睿,劉永清,張傲華,等.基于以太網(wǎng)的DSP遠(yuǎn)程加載技術(shù)研究[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2012(5):24-26.Zuo Hao-rui,Liu Yong-qing,Zhang Ao-h(huán)ua,et al.Remote Loading Technology Research of DSP Based on Ethernet[J].Microcontrollers&Embedded Systems,2012(5):24-26.
[8]劉章文,劉七華,謝川林,等.基于TMS320C6678的多核DSP上電加載技術(shù)[J].現(xiàn)代電子技術(shù),2013,36(18):111-114.Liu Zhangwen,Liu Qihua,Xie Chuanlin,et al.Multi core DSP BootLoad technology based on TMS320C6678[J].Modern Electronics Technique,2013,36(18):111-114.
Bootloader of Embedded Muti-core DSP Based on Ethernet
Ou Bin,Li Jingchao,Gao Xia,Xu Binbin
(Chongqing Jinmei Communication CO.,Ltd.,Chongqing 400030,China)
A series of TMS320C66xx DSPs from TI,based on KeyStone,are widely used in fields of image processing,signal processing and speech processing.The multi-core DSP boot load affects operation between kernel code,sync parallel and independently run in offline mode.In this paper,combined with high-speed Ethernet interface transmission characteristics and high capacity NAND FLASH nonvolatile storage advantage,the multi-core image files from Ethernet are
by embedding UDP protocol to FLASH programmer procedures,and the multi-core image files are loaded from the FLASH to the kernel by improving IBL boot code.The proof on the TMS320C6670 DSP platform shows that it enables efficient transmission of multi-core code to FLASH and provides a new thinking for embedded DSP device in factory manufacture and upgrade field.
Embedded;Muti-core;Bootload;Ethernet;DSP;NAND FLASH
10.3969/j.issn.1002-2279.2016.05.021
TN964
A
1002-2279(2016)05-0089-03
歐斌(1982-),男,四川省德陽(yáng)市人,碩士研究生,主研方向:無(wú)線通信。
2016-01-07