王玲 王辰平 崔超群
(1中兵通信科技有限公司國營第760廠河南新鄉 453009)
(2 空軍駐新鄉地區軍事代表室河南新鄉 453009)
TMS320VC5502 SPI方式自舉引導的設計與實現
王玲1王辰平1崔超群2
(1中兵通信科技有限公司國營第760廠河南新鄉 453009)
(2 空軍駐新鄉地區軍事代表室河南新鄉 453009)
隨著數字信號處理技術的飛速發展和DSP的廣泛應用,作為其外掛的SPI EEPROM存儲器也得到越來越多地關注和應用。基于TI公司的TMS320VC5502和ST公司的M45PE20開發系統為背景,著重介紹了硬件接口的設計、程序燒寫和上電時正確的自舉引導等關鍵技術問題,對燒寫過程和自舉引導時序作了詳細的描述,在示波器上抓到了其過程波形,并且在實際應用中得到了驗證。
SPI 自舉引導 DSP 程序燒寫
隨著數字信號處理技術的快速發展,DSP被廣泛的應用到各種數字信號處理系統中[1]。由于其內部的ROM較小,所以程序要想脫離仿真器運行,必須將程序代碼存儲在外部非易失性存儲器中。FLASH存儲器以其大容量和可在線編程等特點已成為DSP系統的一個基本配置,但是FLASH占用空間較大,而且扇區擦除難度和時延較大,這時可以選擇SPI EEPROM作為外掛的存儲器。如何將程序燒寫進EEPROM,并在上電時進行正確的bootloader是使用SPI EEPROM芯片時必須解決的2個技術問題。
本文以基于TI公司的TMS320VC5502和ST公司的M45PE20開發的系統為背景,介紹該系統引導相關的硬件設計[2],燒寫軟件設計以及自舉引導等實現方法。
TMS320c5502有多種bootload模式[3],外部SPI ROM、IIC ROM、并行異步ROM、HPI接口和USB接口等。bootload模式是由外部的3個管腳的狀態決定的,當選擇SPI外部bootload模式。需要特別注意的是只有MCBSP0可以作為SPI口來進行上電后的bootloader,只有通用IO4可以作為EEPROM的片選,這是因為TI公司的DSP出廠時,在內部的ROM中固化有一段引導裝載程序,其主要功能是將外部存儲器中的程序加載到片內RAM中運行,可以提高系統的運行速度,正是這一段引導裝載程序決定了SPI bootload模式的管腳分配。
M45PE20是ST公司的一款3 V供電的SPI EEPROM芯片,8位位寬,容量有2 Mbit,具有封裝小、低功耗和高性能等特點,專為需要高耐用性和低功耗的應用而設計,針對持續可靠的非揮發性存儲方案。TMS320VC5502是TI公司55X系列的一款低功耗華為高性能,具有多種片內外設的芯片。硬件連接圖如圖1所示。

圖1 硬件連接圖
3.1 生成引導表
引導表就是在DSP芯片上電復位后由bootloader從外部存儲器裝入片內RAM的一個數據塊,這個數據塊不僅包括用戶程序的全部信息,還包括程序入口地址、寄存器設置、可編程延時和段長等信息。
源程序在CCS3.1編譯器中編譯后生成.out文件,但是這個文件不能直接燒入,必須要生成適合bootloader的引導表[4],要生成引導表,可以將最終編譯生成的.out文件通過CCS自帶的hex55.exe轉換程序得到。將hex55.exe、.out文件和cmd文件放在同一個文件夾中,通過dos命令格式調用hex55.exe,即可完成.out文件到hex格式的引導表文件的轉化。CMD文件用來提供引導表的相關配置信息[5],研究的cmd文件如下:


3.2 數據格式轉換
引導表制作成功以后,其數據并不能直接被C5502讀寫,所以要把這些數據轉化成可以被讀寫的數據文件格式,這樣數據才能被寫入EEPROM芯片。如果輸出文件格式是intel格式,那么可以用一個change.exe來自動轉換數據格式,但如果輸出是ASCII碼的時候,這個自動數據格式轉化就不能用了,必須編程轉換或者用下面方法轉換。
將輸出的ASCII碼格式的文件testa.hex打開,把里面的有效數據全部選中復制(第一行和最后一行的方框刪除)到word或ultraedit應用編輯軟件中,然后通過以下操作來完成格式轉換:
用“,0x”來替換所有的空格;
將第一個字節手動加上0x;
把所有的“0x^p”替換成“0x^p”,^p表示回車。
這樣生成的數據文件比較完整,每個段都能完整地顯示出來。然后可以在編輯軟件里統計0x(即字節)的個數,然后就可以把這些數據寫入EEPROM芯片中。
3.3 數據的燒寫
數據寫入EEPROM芯片M45PE20有2種方法:一種是用編程器直接燒寫,一種是在線系統編程燒寫。用編程器操作比較簡單,但是不適用于貼片的EEPROM芯片,所以最好采用在線系統編程燒寫方法。無論是用那種方法燒寫,本質上都是要在片外的EEPROM芯片中存放整個引導表的內容。
C5502同步緩沖串口的SPI模式數據包的長度可以設成8、12、16、20、24或32位[6]。因為M45PE20的指令和數據是8位,而地址需要24位,所以可以把SPI模式都設置成8位,地址可以分3次發送,根據M45PE20的讀寫時序關系來設置DSP C5502的同步緩沖串口寄存器[7]。寄存器設置如下:

選擇合適的時鐘和串口時鐘,配置好串口寄存器之后就可以進行數據的燒寫,燒寫時序如圖2所示,1路信號是C5502的IO4連接M45PE20的片選,2路信號是C5502串口發時鐘,3路信號是DSP發出的要燒入M45PE20的數據線主出從入(MOSI),B1是示波器直接顯示的串口線上的總線數據,從這里可以很明顯地看到發出的一個個數據,幫助大家更好更快地發現問題解決問題。從圖2可以看出,片選從高變低后開始有效,第一個字節是MOSI線上送出寫指令0x0A,然后分3次送出24 Bytes首地址0x000000,從第5個字節就開始寫燒入M45PE20儲存的數據。

圖2 數據寫入EEPROM芯片M45PE20的時序圖
程序燒入后要驗證燒入的正確性,需要重新上電復位后固化在DSP ROM中的bootloader程序開始運行,通過串口將燒入M45PE20的數據重新讀入DSP內部的RAM中,這個過程如圖3所示,1路信號是C5502的IO4連接M45PE20的片選,2路信號是C5502串口發時鐘,3路信號是數據線主出從入(MOSI),3路信號是數據線主入從出(MISO),B1是MOSI和MISO的總線數據。開始是MOSI線上送出讀出指令0x03,然后送出24 Bytes首地址0x000000,從第5個字節就可以開始讀M45PE20儲存的數據,與燒入的數據對比就可以了。
需要注意的是:M45PE20有一個頁寫指令0x0A,一個頁編程指令0x02,頁寫指令可以使每個bit從1寫成0或0寫成1,所以寫之前不需要擦除操作;而頁編程指令只能將每個bit從1寫成0,所以在再次寫之前必需進行擦除,將需要的存儲空間或是全部空間的bit位全部變成1才可以進行編程操作。

圖3 M45PE20的數據重新讀入DSP內部的RAM中上電引導時序圖
本文提出了一種針對C5502的SPI的bootloader燒寫方式[8],簡單易用,不用擦除,讀寫都很簡單,經過驗證,實際應用表明它是一種行之有效的燒寫方法。
[1]申敏.DSP原理及其在移動通信中的應用[M].北京:人民郵電出版社,2001.
[2]TI.TMS320VC55X系列DSP的CPU與外設[M].彭啟琮,武樂琴,張艦,等,譯,北京:清華大學出版社,2005.
[3]張彪,方方,黃洪全,等.TMS320VC5502外擴Flash自舉引導方法的設計與實現[J].核電子學與探測技術.2009,9(6): 1303-1306.
[4]TI.Using the Tms320VC5501/C5502 Bootloader[R].TI,2004.
[5]TI.TMS320VC55X DSP CPU Reference Guide[M].TI,2004.
[6]TMS320C55X Assembly Language Tools User’s Guide[M]. TI,2003.
[7]TI.TMS320VC55X optimizing C/C++Compiler User’s Guide[R].TI,2003.
[8]閆昌浩,郭寶龍,黃斌.TMS320VC55X系列DSP在線燒寫方法研究[J].電子設計工程,2009,17(1):54-56.
Design and Implementation of SPI Boot Loader Based on TMS320VC5502
WANG Ling1,WANG Chen-ping1,CUI Chao-qun2
(1 No.760 Factory,Xinxiang He’nan 453009,China;
(2 Military Representative Office of PLA Air Force stationed in Xinxiang Region,Xinxiang He’nan 453009,China)
With the rapid development of digital signal processing technology and the extensive application of DSP processor,SPI EEPROM memorizer is gaining more attention and extensive application.Based on the development systems of TI company's TMS320VC5502 and ST company's M45PE20,this paper mainly introduces such key technologies as hardware interface design,program writing and right boot loader at power up time,describes in detail the process of program writing and the sequence of boot loader,gets the waveform of process on an oscilloscope,and verifies its feasibility in the practical application.
SPI;boot loader;DSP;program writing
文獻標識碼A
1008-1739(2014)20-67-3
定稿日期:2014-09-26