可在線(xiàn)更新應用程序代碼的DSP自舉模塊

發(fā)布時(shí)間:2015-2-10 15:08    發(fā)布者:designapp
關(guān)鍵詞: DSP自舉 , LabVIEW , GUI , USB

        針對現有DSP自舉模塊普遍存在程序代碼更新不便的缺陷,提出了一種可便捷高效地在線(xiàn)更新用戶(hù)應用程序代碼的DSP自舉模塊。該模塊由基于LabVIEW的圖形用戶(hù)界面(GUI)軟件與C8051F340單片機構成。GUI軟件完成DSP應用程序代碼的格式轉換,并通過(guò)驅動(dòng)USB將轉換完成的程序代碼傳送給C8051F340。C8051F340通過(guò)其片上USB外設接收DSP程序代碼并存儲于片上FLASH中,同時(shí)借助標準串行總線(xiàn)控制DSP完成應用程序代碼的自舉操作。該模塊采用在線(xiàn)方式,可一鍵實(shí)現DSP應用程序代碼的更新升級與自舉操作。
TMS320VC54x系列DSP作為一種低功耗高速處理器在消費電子、通信等領(lǐng)域應用廣泛[1-2]。通常為實(shí)現DSP程序代碼的高速運行,一般需要將DSP的應用程序代碼存儲于DSP片內RAM中運行,但TMS320VC54x處理器是RAM型器件,掉電后DSP不能保存任何用戶(hù)應用程序代碼。因此,基于該型DSP的電子系統通常需要設計自舉模塊。所謂“自舉”是指:DSP芯片內的程序引導裝載器(Bootloader)自動(dòng)地將DSP應用程序代碼從DSP外部非掉電易失存儲器加載到片內RAM中,脫離仿真器模式獨立運行的過(guò)程。
TMS320VC54x系列DSP有兩類(lèi)自舉方式:基于靜態(tài)存儲器(如:EEPROM、FLASH)的自舉方式和基于處理器的自舉方式;陟o態(tài)存儲器的DSP自舉方式[3-4]使用外擴的靜態(tài)存儲器存儲DSP程序代碼,由于該方式無(wú)需外加控制器干預,因此具有電路簡(jiǎn)單等優(yōu)點(diǎn);谔幚砥鞯腄SP自舉方式[5-6],利用單片機存儲DSP程序代碼并控制DSP完成自舉,具有可有效控制DSP自舉時(shí)機,可靈活選擇自舉通信接口等優(yōu)勢。然而,無(wú)論哪類(lèi)自舉方式,要更新DSP應用程序代碼都需要先將DSP開(kāi)發(fā)軟件CCS編譯產(chǎn)生的.out程序代碼文件通過(guò)一系列的格式轉換,生成DSP自舉所需的程序代碼格式,并將得到的代碼移植到DSP應用系統片外擴展的靜態(tài)存儲器或單片機中存儲。顯然,傳統DSP自舉模塊的上述程序代碼更新操作非常麻煩。為此本文提出一種便捷高效的DSP自舉模塊。借助該模塊,用戶(hù)無(wú)需熟悉DSP自舉設計過(guò)程,便可一鍵實(shí)現DSP程序代碼的更新升級與自舉操作。
1 方案設計
DSP開(kāi)發(fā)軟件CCS編譯生成的.out文件不能直接用來(lái)自舉,需要將其進(jìn)行一系列繁瑣的格式轉換得到合適的格式并移植到DSP的外部存儲器進(jìn)行自舉[7]。為解決該問(wèn)題,本模塊通過(guò)基于LabVIEW的GUI軟件完成上述轉換并控制代碼移植到外部存儲器。如圖1所示。GUI軟件首先將.out文件轉換為.hex格式,并將得到的.hex文件轉換為方便DSP自舉的.dat格式。之后GUI通過(guò)USB將數據傳送給C8051F340單片機完成DSP程序更新。C8051F340是一款可提供USB功能并具有較大FLASH存儲空間的混合信號微控制器。本模塊使用其片上FLASH作為DSP的外部存儲器,可省去外擴存儲設備,節約成本,簡(jiǎn)化電路。自舉開(kāi)始時(shí),單片機將FLASH中的代碼數據通過(guò)標準串行自舉方式傳送給DSP,控制DSP的自舉。標準串行自舉與其他自舉模式相比,占用DSP硬件資源少、電路簡(jiǎn)單。通過(guò)本模塊,開(kāi)發(fā)者可在PC機上實(shí)現一鍵完成DSP代碼更新。


圖1 DSP自舉模塊系統框圖


2 硬件設計
本模塊使用C8051F340的片上FLASH作為DSP的外部存儲器。C8051F340通過(guò)標準串行接口與DSP通信,通過(guò)USB與處理代碼格式轉換的GUI軟件通信。如圖2所示,虛線(xiàn)框1為3線(xiàn)制的標準串行總線(xiàn),負責數據的傳輸。虛線(xiàn)框2為復位與握手信號。DSP的bootloader通過(guò)拉低XF引腳通知單片機DSP已準備好接收數據;而單片機通過(guò)P1.3引腳拉低ˉRS來(lái)復位DSP。C8051F340與PC機通過(guò)USB連接。如圖2所示,VBUS為USB電纜VBUS引線(xiàn)的感應輸入端,當該引腳出現5V高電平信號時(shí),表示該設備已經(jīng)和主機連接好。D+、D-為USB的差分信號線(xiàn),D+信號線(xiàn)接1.5k的上拉電阻R1使USB設備工作于高速。電容C1、C3為15pF的濾波電容。為了消除差模干擾,兩信號線(xiàn)連接大小為33pF的電容C2。REGIN為C8051F340片內電壓調節器的輸入端。VDD為C8051F340片內電壓調節的3.3V輸出端。通過(guò)將REGIN和VDD短接,C8051F340被配置為USB固件自供電,片內穩壓器禁止的工作模式。另外,C8051F340電路模塊中,通過(guò)C2調試接口(包括C2CK時(shí)鐘信號和C2D雙向數據信號)連接JTAG對單片機程序進(jìn)行燒寫(xiě)和調試。


圖2 自舉模塊主要硬件連接關(guān)系圖

  



       
3 軟件設計
本系統主要通過(guò)GUI軟件完成DSP用戶(hù)應用代碼的格式轉換和調用USB主機API控制USB傳輸數據;通過(guò)C8051F340程序調用USB器件API接收數據存入片內FLASH中并通過(guò)標準串行通信控制DSP的自舉。下面分別介紹各軟件設計的功能和具體流程。
3.1 基于LabVIEW的GUI程序設計
LabVIEW開(kāi)發(fā)的程序一般由一個(gè)或多個(gè)VI組成,所有VI都可分為前面板和框圖兩部分。前面板是VI的交互界面,用戶(hù)輸入數據通過(guò)前面板傳遞給框圖,計算和分析結果在前面板上以不同方式顯示出來(lái)。圖3為本模塊的GUI前面板。如圖所示前面板分為“輸入配置區”和“狀態(tài)顯示區”。通過(guò)在前面板的“輸入配置區”設置文件路徑進(jìn)行DSP代碼文件的二次更新!盃顟B(tài)顯示區”可實(shí)時(shí)顯示USB連接狀況、文件轉換信息、自舉代碼文件內容等詳細信息。


圖3 基于LabVIEW的GUI前面板

框圖是圖形化的程序代碼,主要完成兩個(gè)任務(wù):調用USB主機的API函數控制USB數據傳輸和控制代碼文件格式轉換。
借助Silicon Laboratories公司為USB驅動(dòng)程序開(kāi)發(fā)提供的USBXpress,可以簡(jiǎn)便的實(shí)現在PC機上通過(guò)GUI軟件與作為USB器件的C8051F340單片機的USB通信。USBXpress提供了10個(gè)USB主機API函數,通過(guò)LabVIEW中的CLF(調用庫函數節點(diǎn))調用USBXpress提供的USB主機API函數,便可訪(fǎng)問(wèn)USB底層硬件。圖4為本設計LabVIEW上位機程序調用API的框圖。圖中VI作用分別是獲取USB器件編號、獲取USB器件序列碼、設置USB讀寫(xiě)延時(shí)、打開(kāi)USB器件、向USB器件寫(xiě)數據塊、關(guān)閉USB器件。
在成功調用SI_Open()函數打開(kāi)USB器件,并通過(guò)“file path control.vi”控件獲取待轉換文件的具體路徑后,GUI軟件對定位的代碼文件開(kāi)始進(jìn)行轉換。如圖5框圖程序所示:首先通過(guò)“Exec.vi”(“執行系統命令”VI)調用CCS軟件環(huán)境提供的DOS批處理文件Hex500.exe軟件(與自舉文件位于同一個(gè)目錄)將.out文件轉換為.hex文件。Hex500.exe在DOS環(huán)境下運行需要輸入大量轉換配置文件,因此GUI需同時(shí)調用用來(lái)集中描述文件轉換所需參數信息的.cmd文件。.cmd文件內容及注釋如下:
bootloader.out //待轉化的程序文件
-o bootloader.hex            //輸出文件名
-map bootloader.map         //生成存儲器映像文件
-boot                     //生成加載表
-I                        //輸出文件為Intel Hex文件格式
-e _c_int00                //程序入口地址
-memwidth 16              //標系統的存儲器為16位
-romwidth 16              //存儲器芯片的位寬為16位
-bootorg SERIAL         //行裝載


圖4 LabVIEW調用USB主機API框圖


之后通過(guò)“Exec.vi”函數調用hex-to-dat.exe軟件將.hex格式轉換為.dat格式。最終在文件格式轉換完畢之后提取代碼并轉換為數組,在循環(huán)中調用SI_Open()函數以每次512字節的速度將數據寫(xiě)入USB器件,直到所有文件傳輸完畢,關(guān)閉USB。


圖5 LabVIEW轉換DSP程序代碼格式的框圖
  



       
3.2  C8051F340程序設計
C8051F340通過(guò)USB從GUI軟件接收DSP程序代碼并存儲到片內FLASH中,之后通過(guò)標準串行接口將代碼傳送給DSP進(jìn)行自舉。C8051F340程序主要包括初始化函數、自舉函數、USB驅動(dòng)函數、擦寫(xiě)FLASH函數幾個(gè)部分。圖6為C8051F340程序的流程圖。
3.2.1 初始化程序
程序初始化部分主要包括USB設備初始化和C8051F340單片機初始化。USB初始化通過(guò)調用USBXpress提供的10個(gè)USB器件API函數實(shí)現,包括調用USB_Clock_Start()函數初始化USB總線(xiàn)時(shí)鐘、調用USB_Init()函數使能USB總線(xiàn)、調用USB_Init_Enable()函數使能API中斷;C8051F340單片機初始化中將單片機時(shí)鐘設為48MHZ以滿(mǎn)足USB全速工作方式的需要、配置單片機輸出端口為推挽輸出、開(kāi)啟外部中斷0并通過(guò)配置寄存器“IT01CF=0x07”將P0.7配置為INT0的中斷觸發(fā)端口引腳,監視DSP所給自舉信號。


圖6 C8051F340程序流程圖


3.2.2 自舉函數
DSP啟動(dòng)速度比C8051F340快,因此自舉之前需先復位DSP并初始化SPI接口,等待DSP的XF引腳觸發(fā)INT0中斷后啟動(dòng)自舉操作。本程序使用16位標準串行方式對DSP自舉。通信時(shí)序如圖7所示,BFSR0脈沖之后可傳輸一個(gè)16位的數據,傳輸的每個(gè)16位數據之間需至少保證40個(gè)DSP時(shí)鐘周期的延時(shí)時(shí)間。且單片機時(shí)鐘頻率(BCLKR0)不可超過(guò)DSP時(shí)鐘頻率的1/2。標準串行自舉代碼如下所示,程序中將BFSR0拉高后,傳輸一個(gè)字節的數據,并通過(guò)調用延時(shí)函數Delaynum(20)延時(shí)20微秒來(lái)滿(mǎn)足傳輸兩數據間最小CPU時(shí)鐘間隔的要求,程序中w為當前傳輸的由四個(gè)ASCⅡ字符轉換而來(lái)的16位無(wú)符號整形變量。


圖7 單片機標準串行自舉時(shí)序圖


BCLKR0=1;
Delaynum(20);
BCLKR0=0;
BFSR0=1;
Delaynum(20);
BCLKR0=1;
Delaynum(20);
BCLKR0=0;
Delaynum(20);
for(i=0;i> i)) > 0;
BCLKR0=1;       
BFSR0=0;
Delaynum(20);
BCLKR0=0;
Delaynum(20);
}
3.2.3 USB驅動(dòng)函數、FLASH讀寫(xiě)函數
USB中斷函數通過(guò)調用Block_Read()函數接收來(lái)自GUI軟件的代碼數據,并存入TempStorage[]數組。ReadStageLength為每次所讀取的文件大小,最大為64字節(一個(gè)數據塊大。。因GUI軟件每次發(fā)送512字節,FLASH中每512字節為一頁(yè),故下位機中每讀取512字節后寫(xiě)入FLASH。如下代碼所示BytesRead為已讀取數據的大小,當C8051F340通過(guò)USB接收了一頁(yè)FLASH可容納最大數據512字節(Block_PR_Page為每頁(yè)FLASH可容納最多數據塊= 512/64)或者GUI軟件發(fā)送的最后一組數據,寫(xiě)入FLASH。PageIndices[0]為下位機自舉的基指針,指向FLASH中0x2000開(kāi)始的地址,其中0x2000~0x2200用來(lái)存放接收數據信息(大小、所含數據塊量);PageIndex為當前操作的Flash相對于基頁(yè)0x2000的偏移量,PageIndices[0]+PageIndex*0x200指向Flash當前操作地址,自舉程序代碼從0x2200地址處開(kāi)始。
BytesRead+= Block_Read((BYTE*)(&TempStorage[BlockIndex]),
ReadStageLength);
BlockIndex++;
if((BlockIndex==(Block_PR_Page))||(BytesRead==BytesToRead))
{
        Page_Erase((BYTE*)(PageIndices[0]+PageIndex*0x200));
        Page_Write((BYTE*)(PageIndices[0]+PageIndex*0x200));
PageIndex++;
}  



       
4 實(shí)驗驗證
為測試該模塊的可行性,以TMS320VC54x目標板為基礎,設計了如下實(shí)驗進(jìn)行驗證。
實(shí)驗第一步首先需要驗證GUI軟件控制代碼格式轉換,和移植的可行性。利用DSP開(kāi)發(fā)軟件CCS編寫(xiě)一段LCD顯示程序并編譯生成.out文件。通過(guò)JTAG仿真后,LCD上顯示“DSP自舉模塊液晶顯示自舉測試”等信息。之后去除JTAG進(jìn)行自舉試驗。通過(guò)USB將PC機與C8051F340相連。待GUI軟件成功獲取USB器件編號并打開(kāi)USB器件后,設置自舉文件路徑,點(diǎn)擊 “下載更新DSP自舉代碼”按鍵開(kāi)始更新代碼。圖8、圖9為試驗結果。
圖8為GUI前面板的實(shí)驗數據。圖中兩個(gè)USB檢測燈在USB連接成功并被功打開(kāi)時(shí)被點(diǎn)亮表明。狀態(tài)顯示區中的“文件轉換執行信息”由GUI調用Hex500.exe軟件之后產(chǎn)生、“DSP自舉代碼文件路徑”為所轉換生成的.dat文件路徑,通過(guò)路徑轉換為字符串產(chǎn)生、“DSP自舉代碼文件內容”,由“讀取文本文件VI”讀取生成的.dat文件產(chǎn)生。實(shí)驗數據與設想的一致,表明該模塊已成功完成了程序代碼的格式轉換。最下方的燈被點(diǎn)亮并顯示“DSP自舉代碼下載更新完成”表示GUI軟件成功的通過(guò)USB將代碼數據更新給C8051F340,DSP自舉代碼更新完成。


圖8 前面板詳細信息實(shí)驗數據


圖9為GUI軟件控制DSP代碼文件格式轉換部分的框圖在高亮運行模式下截取的數據。探針[1]為轉換完成后所獲得.dat文件的路徑,探針[2]為所得到.dat文件的大小。表明上位機已成功完成代碼文件格式的轉換得到.dat格式文件


圖9 代碼文件格式轉換實(shí)驗結果


第二步需驗證C8051F340利用FLASH存儲DSP代碼并通過(guò)標準串行自舉控制DSP自舉的可行性。實(shí)驗第一步成功之后,將C8051F340與DSP通過(guò)標準串行總線(xiàn),C8051F340自動(dòng)控制DSP開(kāi)始自舉。圖10為C8051F340在獲取GUI軟件傳送的更新代碼并成功通過(guò)標準串行自舉控制完成DSP自舉的實(shí)物照片。LCD顯示數據與通過(guò)JTAG仿真情況下完全一致,證明了該DSP自舉模塊的有效性,且該自舉模塊可實(shí)現一鍵更新DSP代碼文件,方便快速。


圖10 自舉完成實(shí)驗實(shí)物圖

5 結語(yǔ)
本文提出了一種可在線(xiàn)更新程序的自舉模塊。該模塊在GUI軟件中將DSP程序代碼進(jìn)行格式轉換并通過(guò)利用USB將代碼數據導入C8051F340單片機的片內FLASH中存儲。C8051F340通過(guò)標準串行總線(xiàn)控制DSP進(jìn)行自舉。利用該模塊,用戶(hù)更新DSP程序代碼可完全在計算機上操作,無(wú)需了解自舉的具體細節,實(shí)現一鍵更新代碼;同時(shí)該自舉模塊可在短短數秒內完成代碼更新,從而大大減輕了開(kāi)發(fā)難度和縮短開(kāi)發(fā)周期。另外,由于單片機FLASH存儲量為64kb,除去單片機的程序占用空間,從0x2200地址開(kāi)始,共可存儲55.5kb左右的DSP程序代碼,滿(mǎn)足大多數中小DSP應用程序的自舉需求,因此該系統可廣泛用于程序代碼不超過(guò)55.5k字節的DSP系統中。

參考文獻
[1]        楊萍,張玉杰,楊良煜,楊勇強. 基于DSP的新型智能超聲波相關(guān)流量計 [J]. 計算機測量與控制,2006,14(9).
[2]        劉煒,龍憲惠. TMS320VC 5402在汽車(chē)防撞警示雷達中的應用 [J]. 電子技術(shù)應用,2001,27(9).
[3]        陳紅梅,陳健.TMS320VC5402的Flash并行Bootloader技術(shù)[J].單片機與嵌入式系統應用,2003.
[4]        徐書(shū)杰,劉宏立.TMS320VC5416 DSP并行自舉方案的設計與實(shí)現[J].計算機工程與科學(xué),2009,31(8).
[5]        鄒翼,曾文海,陳續喜. 基于TMS320VC5402 DSP的HPI方式自舉的設計與實(shí)現 [J]. 計算機系統應用,2009,(3).
[6]        李輝.C8051F023通過(guò)HPI對TMS320C5402自舉的實(shí)現[J]. 無(wú)線(xiàn)電工程,2005,35(3).
[7]        朱磊,劉東. C8051F340與LabVIEW基于A(yíng)PI的USB通信[J]. 單片機與嵌入式系統應用,2007,(1).



本文地址:http://selenalain.com/thread-145902-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页