999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種可在線更新程序的DSP自舉模塊※

2014-08-12 08:46:10朱磊郭力董毅王慧俊
關(guān)鍵詞:單片機(jī)程序

朱磊,郭力,董毅,王慧俊

(西安工程大學(xué) 電子信息學(xué)院,西安 710048)

一種可在線更新程序的DSP自舉模塊※

朱磊,郭力,董毅,王慧俊

(西安工程大學(xué) 電子信息學(xué)院,西安 710048)

針對(duì)現(xiàn)有DSP自舉模塊普遍存在程序代碼更新不便的缺陷,提出了一種可便捷高效地在線更新用戶應(yīng)用程序代碼的DSP自舉模塊。該模塊由基于LabVIEW的圖形用戶界面(GUI)軟件與C8051F340單片機(jī)構(gòu)成。GUI軟件完成DSP應(yīng)用程序代碼的格式轉(zhuǎn)換,并通過(guò)USB將轉(zhuǎn)換完成的程序代碼傳送給C8051F340。C8051F340通過(guò)其片上USB外設(shè)接收DSP程序代碼并存儲(chǔ)于片上FLASH中,同時(shí)借助標(biāo)準(zhǔn)串行總線控制DSP完成應(yīng)用程序代碼的自舉操作。該模塊采用在線方式,可一鍵實(shí)現(xiàn)DSP應(yīng)用程序代碼的更新升級(jí)與自舉操作。實(shí)驗(yàn)結(jié)果表明了該模塊的有效性。

DSP自舉;LabVIEW;GUI;USB;C8051F340

引 言

TMS320VC54x系列DSP作為一種低功耗高速處理器在消費(fèi)電子、通信等領(lǐng)域應(yīng)用廣泛[1-2]。通常為實(shí)現(xiàn)DSP程序代碼的高速運(yùn)行,一般需要將DSP的應(yīng)用程序代碼存儲(chǔ)于DSP片內(nèi)RAM中運(yùn)行,但TMS320VC54x處理器是RAM型器件,掉電后DSP不能保存任何用戶應(yīng)用程序代碼。因此,基于該型DSP的電子系統(tǒng)通常需要設(shè)計(jì)自舉模塊。所謂“自舉”是指:DSP芯片內(nèi)的程序引導(dǎo)裝載器(Bootloader)自動(dòng)地將DSP應(yīng)用程序代碼從DSP外部非易失性存儲(chǔ)器加載到片內(nèi)RAM中,脫離仿真器模式獨(dú)立運(yùn)行的過(guò)程。

TMS320VC54x系列DSP有兩類自舉方式:基于靜態(tài)存儲(chǔ)器(如EEPROM、FLASH)的自舉方式和基于處理器的自舉方式。基于靜態(tài)存儲(chǔ)器的DSP自舉方式[3-4]使用外擴(kuò)的靜態(tài)存儲(chǔ)器存儲(chǔ)DSP程序代碼,由于該方式無(wú)需外加控制器干預(yù),因此具有電路簡(jiǎn)單等優(yōu)點(diǎn)。基于處理器的DSP自舉方式[5-6],利用單片機(jī)存儲(chǔ)DSP程序代碼并控制DSP完成自舉,具有可有效控制DSP自舉時(shí)機(jī)、可靈活選擇自舉通信接口等優(yōu)勢(shì)。然而,無(wú)論哪類自舉方式,要更新DSP應(yīng)用程序代碼都需要先將DSP開(kāi)發(fā)軟件CCS編譯產(chǎn)生的.out程序代碼文件通過(guò)一系列的格式轉(zhuǎn)換,生成DSP自舉所需的程序代碼格式,并將得到的代碼移植到DSP應(yīng)用系統(tǒng)片外擴(kuò)展的靜態(tài)存儲(chǔ)器或單片機(jī)中存儲(chǔ)。顯然,傳統(tǒng)DSP自舉模塊的上述程序代碼更新操作非常麻煩。為此本文提出一種便捷高效的DSP自舉模塊。借助該模塊,用戶無(wú)需熟悉DSP自舉設(shè)計(jì)過(guò)程,便可一鍵實(shí)現(xiàn)DSP程序代碼的更新升級(jí)與自舉操作。

1 方案設(shè)計(jì)

DSP開(kāi)發(fā)軟件CCS編譯生成的.out文件不能直接用來(lái)自舉,需要將其進(jìn)行一系列繁瑣的格式轉(zhuǎn)換得到合適的格式并移植到DSP的外部存儲(chǔ)器進(jìn)行自舉[7]。為解決該問(wèn)題,本模塊通過(guò)基于LabVIEW的GUI軟件完成上述轉(zhuǎn)換并控制代碼移植到外部存儲(chǔ)器。DSP自舉模塊框圖如圖1所示。

圖1 DSP自舉模塊系統(tǒng)框圖

GUI軟件首先將.out文件轉(zhuǎn)換為.hex格式,并將得到的.hex文件轉(zhuǎn)換為方便DSP自舉的.dat格式。之后,GUI通過(guò)USB將數(shù)據(jù)傳送給C8051F340單片機(jī)完成DSP程序更新。C8051F340是一款可提供USB功能并具有較大FLASH存儲(chǔ)空間的混合信號(hào)微控制器。本模塊使用其片上FLASH作為DSP的外部存儲(chǔ)器,可省去外擴(kuò)存儲(chǔ)設(shè)備,節(jié)約成本,簡(jiǎn)化電路。自舉開(kāi)始時(shí),單片機(jī)將FLASH中的代碼數(shù)據(jù)通過(guò)標(biāo)準(zhǔn)串行自舉方式傳送給DSP,控制DSP的自舉。標(biāo)準(zhǔn)串行自舉與其他自舉模式相比,占用DSP硬件資源少,電路簡(jiǎn)單。通過(guò)本模塊,開(kāi)發(fā)者可在PC機(jī)上實(shí)現(xiàn)一鍵完成DSP代碼更新。

2 硬件設(shè)計(jì)

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

3 軟件設(shè)計(jì)

本系統(tǒng)主要通過(guò)GUI軟件完成DSP用戶應(yīng)用代碼的格式轉(zhuǎn)換和調(diào)用USB主機(jī)API控制USB傳輸數(shù)據(jù);通過(guò)C8051F340程序調(diào)用USB器件API接收數(shù)據(jù)存入片內(nèi)FLASH中,并通過(guò)標(biāo)準(zhǔn)串行通信控制DSP的自舉。下面分別介紹各軟件設(shè)計(jì)的功能和具體流程。

3.1 基于LabVIEW的GUI程序設(shè)計(jì)

LabVIEW開(kāi)發(fā)的程序一般由一個(gè)或多個(gè)VI組成,所有VI都可分為前面板和框圖兩部分。前面板是VI的交互界面,用戶輸入數(shù)據(jù)通過(guò)前面板傳遞給框圖,計(jì)算和分析結(jié)果在前面板上以不同方式顯示出來(lái)。圖3為本模塊的GUI前面板。前面板分為“輸入配置區(qū)”和“狀態(tài)顯示區(qū)”。通過(guò)在前面板的“輸入配置區(qū)”設(shè)置文件路徑進(jìn)行DSP代碼文件的二次更新。“狀態(tài)顯示區(qū)”可實(shí)時(shí)顯示USB連接狀況、文件轉(zhuǎn)換信息、自舉代碼文件內(nèi)容等詳細(xì)信息。

圖3 基于LabVIEW的GUI前面板

圖形化的程序代碼主要完成兩個(gè)任務(wù):調(diào)用USB主機(jī)的API函數(shù)控制USB數(shù)據(jù)傳輸和控制代碼文件格式轉(zhuǎn)換。

借助Silicon Labs公司為USB驅(qū)動(dòng)程序開(kāi)發(fā)提供的USBXpress,可以簡(jiǎn)便地實(shí)現(xiàn)在PC機(jī)上通過(guò)GUI軟件與作為USB器件的C8051F340單片機(jī)的USB通信。USBXpress提供了10個(gè)USB主機(jī)API函數(shù),通過(guò)LabVIEW中的CLF(調(diào)用庫(kù)函數(shù)節(jié)點(diǎn))調(diào)用USBXpress提供的USB主機(jī)API函數(shù),便可訪問(wèn)USB底層硬件。圖4為本設(shè)計(jì)LabVIEW上位機(jī)程序調(diào)用API的框圖。圖中VI作用分別是獲取USB器件編號(hào)、獲取USB器件序列碼、設(shè)置USB讀寫延時(shí)、打開(kāi)USB器件、向USB器件寫數(shù)據(jù)塊、關(guān)閉USB器件。

圖4 LabVIEW調(diào)用USB主機(jī)API框圖

在成功調(diào)用SI_Open()函數(shù)打開(kāi)USB器件,并通過(guò)“file path control.vi”控件獲取待轉(zhuǎn)換文件的具體路徑后,GUI軟件對(duì)定位的代碼文件開(kāi)始進(jìn)行轉(zhuǎn)換。如圖5所示,首先通過(guò)“Exec.vi”(“執(zhí)行系統(tǒng)命令”VI)調(diào)用CCS軟件環(huán)境提供的DOS批處理文件Hex500.exe軟件(與自舉文件位于同一個(gè)目錄)將.out文件轉(zhuǎn)換為.hex文件。Hex500.exe在DOS環(huán)境下運(yùn)行需要輸入大量轉(zhuǎn)換配置文件,因此GUI需同時(shí)調(diào)用集中描述文件轉(zhuǎn)換所需參數(shù)信息的.cmd文件。.cmd文件內(nèi)容及注釋如下:

bootloader.out //待轉(zhuǎn)化的程序文件

-o bootloader.hex //輸出文件名

-map bootloader.map //生成存儲(chǔ)器映像文件

-boot //生成加載表

-I //輸出文件為Intel Hex文件格式

-e_c_int00 //程序入口地址

-memwidth 16 //標(biāo)系統(tǒng)的存儲(chǔ)器為16位

-romwidth 16 //存儲(chǔ)器芯片的位寬為16位

-bootorg SERIAL //串行裝載

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

圖5 LabVIEW轉(zhuǎn)換DSP程序代碼格式的框圖

3.2 C8051F340程序設(shè)計(jì)

C8051F340通過(guò)USB從GUI軟件接收DSP程序代碼并存儲(chǔ)到片內(nèi)FLASH中,之后通過(guò)標(biāo)準(zhǔn)串行接口將代碼傳送給DSP進(jìn)行自舉。C8051F340程序主要包括初始化函數(shù)、自舉函數(shù)、USB驅(qū)動(dòng)函數(shù)、擦寫FLASH函數(shù)幾個(gè)部分。C8051F340程序的流程圖略——編者注。

3.2.1 初始化程序

程序初始化部分主要包括USB設(shè)備初始化和C8051F340單片機(jī)初始化。USB初始化通過(guò)調(diào)用USBXpress提供的10個(gè)USB器件API函數(shù)實(shí)現(xiàn),包括調(diào)用USB_Clock_Start()函數(shù)初始化USB總線時(shí)鐘、調(diào)用USB_Init()函數(shù)使能USB總線、調(diào)用USB_Init_Enable()函數(shù)使能API中斷;C8051F340單片機(jī)初始化中將單片機(jī)時(shí)鐘設(shè)為48 MHz以滿足USB全速工作方式的需要,配置單片機(jī)輸出端口為推挽輸出,開(kāi)啟外部中斷0并通過(guò)配置寄存器“IT01CF=0x07”將P0.7配置為INT0的中斷觸發(fā)端口引腳,監(jiān)視DSP所給自舉信號(hào)。

3.2.2 自舉函數(shù)

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

圖6 單片機(jī)標(biāo)準(zhǔn)串行自舉時(shí)序圖

BCLKR0=1;

Delaynum(20);

BCLKR0=0;

BFSR0=1;

Delaynum(20);

BCLKR0=1;

Delaynum(20);

BCLKR0=0;

Delaynum(20);

for(i=0;i<16;i++){

BDR0= (w & (0x8000 >> i)) > 0;

BCLKR0=1;

BFSR0=0;

Delaynum(20);

BCLKR0=0;

Delaynum(20);

}

3.2.3 USB驅(qū)動(dòng)函數(shù)和FLASH讀寫函數(shù)

USB中斷函數(shù)通過(guò)調(diào)用Block_Read()函數(shù)接收來(lái)自GUI軟件的代碼數(shù)據(jù),并存入TempStorage[]數(shù)組。ReadStageLength為每次所讀取的文件大小,最大為64字節(jié)(一個(gè)數(shù)據(jù)塊大小)。因GUI軟件每次發(fā)送512字節(jié),F(xiàn)LASH中每512字節(jié)為一頁(yè),故下位機(jī)中每讀取512字節(jié)后寫入FLASH。

如下代碼中,BytesRead為已讀取數(shù)據(jù)的大小,當(dāng)C8051F340通過(guò)USB接收了一頁(yè)FLASH可容納最大數(shù)據(jù)512字節(jié)(Block_PR_Page為每頁(yè)FLASH可容納最多數(shù)據(jù)塊= 512/64)或者GUI軟件發(fā)送的最后一組數(shù)據(jù),寫入FLASH。PageIndices[0]為下位機(jī)自舉的基指針,指向FLASH中0x2000開(kāi)始的地址,其中0x2000~0x2200用來(lái)存放接收數(shù)據(jù)信息(大小、所含數(shù)據(jù)塊量);PageIndex為當(dāng)前操作的Flash相對(duì)于基頁(yè)0x2000的偏移量,PageIndices[0]+PageIndex*0x200指向Flash當(dāng)前操作地址,自舉程序代碼從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++;

}

為測(cè)試該模塊的可行性,以TMS320VC54x目標(biāo)板為基礎(chǔ)進(jìn)行驗(yàn)證。具體方法略——編者注。

結(jié) 語(yǔ)

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

[1] 楊萍,張玉杰,楊良煜,等. 基于DSP的新型智能超聲波相關(guān)流量計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制,2006,14(9).

[2] 劉煒,龍憲惠. TMS320VC5402在汽車防撞警示雷達(dá)中的應(yīng)用[J]. 電子技術(shù)應(yīng)用,2001,27(9).

[3] 陳紅梅,陳健.TMS320VC5402的Flash并行Bootloader技術(shù)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(11).

[4] 徐書杰,劉宏立.TMS320VC5416 DSP并行自舉方案的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2009,31(8).

[5] 鄒翼,曾文海,陳續(xù)喜. 基于TMS320VC5402 DSP的HPI方式自舉的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2009(3).

[6] 李輝.C8051F023通過(guò)HPI對(duì)TMS320C5402自舉的實(shí)現(xiàn)[J]. 無(wú)線電工程,2005,35(3).

[7] 朱磊,劉東. C8051F340與LabVIEW基于API的USB通信[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(1).

朱磊(副教授),研究方向?yàn)榍度胧较到y(tǒng)。

DSP Bootloader Module with Online Program※

Zhu Lei, Guo Li, Dong Yi, Wang Huijun

(School of Electronics and Information, Xi’an Polytechnic University, Xi'an 710048, China)

This paper presents a convenient online-update-program DSP bootloader module for DSP to overcome the inconvenience in updating program codes, which is ubiquitous in existing DSP bootloader module. This module consists of a Graphical User Interface (GUI) software based on LabVIEW and a C8051F340 MCU. DSP application codes are transferred into needed format by GUI and sent to the C8051F340 by using USB. The C8051F340 stores DSP application codes in its on-chip FLASH and controls DSP to finish booting by using standard serial boot mode. The advantage of the design proposal is that it is convenient and fast for DSP to update and boot using online programing. The experimental results show this module is feasible and reliable.

DSP bootloader;LabVIEW;GUI;USB;C8051F340

陜西省教育廳自然科學(xué)項(xiàng)目(12JK0547);西安工程大學(xué)博士科研啟動(dòng)基金項(xiàng)目(BS1205);西安市科技局技術(shù)轉(zhuǎn)移促進(jìn)工程項(xiàng)目(CXY1349(2))。

TP311/368

A

2014-02-15)

猜你喜歡
單片機(jī)程序
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測(cè)量?jī)x
電子制作(2019年9期)2019-05-30 09:42:02
試論我國(guó)未決羈押程序的立法完善
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國(guó)與歐盟正式啟動(dòng)“離婚”程序程序
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
主站蜘蛛池模板: 欧美亚洲第一页| 一级毛片在线直接观看| 日韩中文欧美| 国产女人水多毛片18| 国产第一福利影院| 亚洲毛片一级带毛片基地| 最新国产网站| 国产在线拍偷自揄拍精品| 色网站在线免费观看| 日韩精品无码免费专网站| 久久精品国产免费观看频道| 国产jizzjizz视频| 国产18在线| 8090成人午夜精品| 亚洲色图在线观看| 国产免费怡红院视频| 在线观看无码a∨| 白丝美女办公室高潮喷水视频 | 国产视频入口| 欧美日韩午夜视频在线观看| 深爱婷婷激情网| 91精品人妻一区二区| 国产麻豆精品久久一二三| 1024你懂的国产精品| yy6080理论大片一级久久| 色综合天天综合中文网| 欧美特级AAAAAA视频免费观看| 激情综合婷婷丁香五月尤物| 亚洲欧洲国产成人综合不卡| 九九热视频在线免费观看| 亚洲视频二| 一级毛片基地| 一级成人a毛片免费播放| 国产区网址| 亚洲欧美在线精品一区二区| 国产在线第二页| 青青青国产在线播放| 亚洲Av激情网五月天| 综合亚洲网| 国产精品视频导航| 天天摸天天操免费播放小视频| 国产凹凸一区在线观看视频| 看看一级毛片| 国产成人综合日韩精品无码不卡| 中文一区二区视频| 亚洲精品无码久久毛片波多野吉| 国产成人精品综合| 亚洲天堂久久新| 91精品啪在线观看国产91| 中文无码影院| 在线不卡免费视频| 国产欧美综合在线观看第七页| 成年人视频一区二区| 久久久91人妻无码精品蜜桃HD| 亚洲男人的天堂久久精品| 亚洲va精品中文字幕| 国产日韩欧美在线视频免费观看| 国产精品主播| 激情综合婷婷丁香五月尤物| 国产凹凸视频在线观看| 88av在线| 国产高清色视频免费看的网址| 国产成+人+综合+亚洲欧美| 亚洲日本精品一区二区| 国产精品视频a| 中文字幕亚洲乱码熟女1区2区| 亚洲最大福利视频网| 国产女人在线| 欧美日本中文| 国产福利免费视频| 97国产在线观看| 色播五月婷婷| 国产日韩欧美视频| 99国产精品国产高清一区二区| 日本国产精品一区久久久| 18禁不卡免费网站| 国产粉嫩粉嫩的18在线播放91| 亚洲欧美另类专区| 国产成人免费高清AⅤ| 国产一区二区影院| 免费一极毛片| 美女无遮挡拍拍拍免费视频|