亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于串口通信的DSP程序動(dòng)態(tài)加載技術(shù)

        2011-03-05 08:59:42李聲飛代華山
        電訊技術(shù) 2011年6期
        關(guān)鍵詞:程序設(shè)備

        李聲飛,代華山

        (中國西南電子技術(shù)研究所,成都 610036)

        1 引 言

        TMS320F2812是TI公司推出的一款高性能的定點(diǎn)DSP[1],具有32位內(nèi)核處理器,主頻可達(dá)150MHz,片內(nèi)集成 128 kbyte的 FLASH、16 kbyte的SARAM,以及豐富多樣的外部接口,廣泛應(yīng)用于工業(yè)控制、移動(dòng)通信、軍事安全等領(lǐng)域。隨著電子技術(shù)的發(fā)展和用戶需求的提升,對(duì)已投入使用嵌入式設(shè)備程序的升級(jí)也越來越頻繁,而目前傳統(tǒng)的程序升級(jí)方法是實(shí)地取下設(shè)備,通過JTAG仿真器來燒寫程序[2]。這種方法簡單有效,但對(duì)于某些特殊場合,如設(shè)備在密閉的箱體內(nèi)以及其它不便觸及的地方,這種方式給升級(jí)帶來了極大的不便,因此開發(fā)高效、便捷的升級(jí)技術(shù)成為一種迫切的需求。筆者考慮到多數(shù)設(shè)備都有遠(yuǎn)程通信端口,如串口、SPI等,因此可采用在線升級(jí)方式,在不打開設(shè)備箱體的情況下,實(shí)現(xiàn)軟件更新。

        2 系統(tǒng)結(jié)構(gòu)介紹

        如圖1所示,系統(tǒng)硬件結(jié)構(gòu)采用DSP+FPGA架構(gòu)。DSP(TMS320F2812)作為處理中心,通過數(shù)據(jù)總線和地址總線完成與FPGA的數(shù)據(jù)交換,實(shí)現(xiàn)復(fù)雜數(shù)據(jù)處理算法和外部控制。FPGA利用其大規(guī)模硬件資源,實(shí)現(xiàn)接口擴(kuò)展。上電時(shí),FPGA對(duì)DSP的模式選擇端進(jìn)行控制,使DSP選擇從片內(nèi)FLASH啟動(dòng)或SCI啟動(dòng),并且通過FPGA,將PC機(jī)的串口與DSP的串口相連,實(shí)現(xiàn)PC機(jī)和DSP的數(shù)據(jù)透明交換。

        圖1 嵌入式設(shè)備系統(tǒng)框圖Fig.1 Block diagram of embedded equipment system

        傳統(tǒng)的編程方式采用JTAG口加載程序,利用TI公司編譯軟件CCS中的On-chip Flash Programmer插件,將編譯生成的.out文件直接燒寫到片內(nèi)FLASH區(qū)[3]。該方法簡單高效,能夠?qū)崿F(xiàn)對(duì)模塊軟件的升級(jí)。但對(duì)于特殊場合,如模塊在密閉箱體內(nèi),該升級(jí)方式無法快速有效的實(shí)現(xiàn)軟件升級(jí),所以本文采用基于串口的動(dòng)態(tài)加載的方式,實(shí)現(xiàn)設(shè)備軟件更新。

        3 動(dòng)態(tài)加載的工作機(jī)理

        TMS320F2812的啟動(dòng)方式可以分為內(nèi)部Flash引導(dǎo)啟動(dòng)、SPI引導(dǎo)啟動(dòng)、SCI-A引導(dǎo)啟動(dòng)、H0-SARAM引導(dǎo)啟動(dòng)、OTP引導(dǎo)啟動(dòng)、GPIO端口B引導(dǎo)啟動(dòng)等幾種模式,由其模式選擇端實(shí)現(xiàn)不同的啟動(dòng)方式。其中,TMS320F2812脫機(jī)運(yùn)行默認(rèn)為內(nèi)部Flash啟動(dòng),本文通過串口實(shí)現(xiàn)軟件升級(jí),將模式選擇端置為SCI啟動(dòng)模式。

        本文描述的程序加載采用兩級(jí)引導(dǎo)方式[4],分為引導(dǎo)程序加載和應(yīng)用程序FLASH編程。程序動(dòng)態(tài)加載原理如下:首先DSP上電并掃描模式選擇口,選擇SCI-A啟動(dòng)模式,然后等待接收來自SCI口數(shù)據(jù);PC機(jī)通過串口將引導(dǎo)程序發(fā)送給DSP的SCI通信口,將引導(dǎo)程序緩存至RAM區(qū);然后再發(fā)送應(yīng)用程序的燒寫文件,DSP在引導(dǎo)程序的控制下,將應(yīng)用程序燒寫到DSP的FLASH區(qū)。由于TMS320F2812有128 kbyte的FLASH空間,能夠滿足一般的應(yīng)用需求。

        3.1 引導(dǎo)程序加載

        DSP的RAM空間分為安全區(qū)和非安全區(qū),為了代碼的安全性,一般將代碼放在安全區(qū)域內(nèi)運(yùn)行。所以要把加載引導(dǎo)程序加載至RAM的安全區(qū)內(nèi)。

        如圖2所示,DSP在SCI_BOOT模式下,接收來自串口的數(shù)據(jù),先將引導(dǎo)程序存儲(chǔ)到非安全RAM區(qū)(安全RAM處于鎖定狀態(tài)),該區(qū)域在DSP存儲(chǔ)器的低地址位。然后加載引導(dǎo)程序接管DSP的控制權(quán),對(duì)DSP進(jìn)行解鎖操作,并將自身拷貝到RAM的安全區(qū)。

        圖2 引導(dǎo)程序加載Fig.2 Download boot program

        3.2 應(yīng)用程序燒寫

        在引導(dǎo)程序的控制下,將應(yīng)用程序燒寫到DSP的FLASH區(qū),如圖3所示。

        圖3 應(yīng)用程序燒寫Fig.3 Programming APP code

        首先PC機(jī)通過串口將編譯好的應(yīng)用程序發(fā)到DSP,DSP接收并緩存程序到RAM區(qū)。鑒于應(yīng)用程序占用空間較大,一般將其存儲(chǔ)在較大的RAM空間中。筆者根據(jù)需求,將其定位到L0L1區(qū)域(地址空間0x008000~0x00A000)。預(yù)定義兩個(gè)數(shù)組Uint16BlockBuffer1[4096]、Uint16BlockBuffer2[4096]用于存儲(chǔ)應(yīng)用程序,在引導(dǎo)程序中采用存儲(chǔ)器定位語句,將以上兩個(gè)緩沖數(shù)組定位到相應(yīng)存儲(chǔ)空間:

        在CMD文件中,采用定位語句,將Buffer1/2定位到DSP較大的RAM空間:

        通過以上引導(dǎo)程序的設(shè)置,可將應(yīng)用程序緩存至RAM區(qū)中。

        當(dāng)緩沖區(qū)Buffer1存滿后,引導(dǎo)程序調(diào)用FLASH編程API函數(shù),將Buffer1中應(yīng)用程序燒寫到FLASH中。在燒寫前要對(duì)FLASH進(jìn)行擦除,采用TI公司提供的API函數(shù)對(duì)FLASH區(qū)域擦除:

        其中,第一個(gè)參數(shù)SECTOR-F2812表示要擦除的扇區(qū),第二個(gè)參數(shù)返回狀態(tài)值;通過Erase Status來判斷擦寫是否成功,若成功,則調(diào)用FLASH編程API函數(shù)如下:

        其中,參數(shù)Flash-ptr表示編程首地址,BlockBuffer1為應(yīng)用程序暫存RAM的首地址,Length為燒寫字節(jié)數(shù),ProgStatus表示返回狀態(tài)。通過調(diào)用該API函數(shù),將暫存在RAM區(qū)的應(yīng)用程序燒寫至指定的FLASH區(qū)域,并可以通過指定燒寫首地址方式來自行分配FLASH空間。

        在BlockBuffer1程序FLASH燒寫同時(shí),引導(dǎo)程序繼續(xù)接收剩下的應(yīng)用程序代碼至BlockBuffer2空間,然后重復(fù)以上步驟,將BlockBuffer2中代碼燒寫至FLASH指定位置,如此反復(fù),待FLASH全部燒寫完畢,即完成了程序的升級(jí)。

        4 動(dòng)態(tài)加載的實(shí)現(xiàn)

        4.1 硬件環(huán)境搭建

        首先要搭建設(shè)備升級(jí)的硬件環(huán)境,將設(shè)備串口與PC機(jī)串口相連,保證數(shù)據(jù)傳輸?shù)挠布氛?然后通過FPGA控制DSP的啟動(dòng)模式[5],配置DSP上電SCI-A啟動(dòng)。如表1所示,FPGA控制4條模式選擇線GPIOF4、GPIOF12、GPIOF3、GPIOF2 輸出為 0011。

        表1 DSP啟動(dòng)模式控制Table 1 DSP boot mode control

        4.2 DSP資源分配

        TMS320F2812片內(nèi)[6]有兩塊 1 k×16 bit的SARAM MO/M1,兩塊 4 k ×16 bit的 SARAM L0/L1,1塊8 k×16 bit的 SARAM H0、128 k ×16 bit的FLASH 。由于SARAM具有讀寫速度快的優(yōu)點(diǎn),所以優(yōu)先考慮程序在SARAM中運(yùn)行,同時(shí)大容量的SARAM可以作為數(shù)據(jù)暫存。FLASH具有掉電數(shù)據(jù)不丟失的特性,用來保存代碼和重要數(shù)據(jù)信息?;谝陨峡紤],引導(dǎo)程序代碼量較小,筆者選擇將其代碼段存放到MO/M1空間中,運(yùn)行程序放在較大的L0/L1段,CMD映射關(guān)系如下所示:

        應(yīng)用程序的CMD文件控制其取址和運(yùn)行的空間,如下所示:

        econst段為存放外部數(shù)據(jù)和常量的空間,分配一個(gè)較大的8 k FLASH的區(qū)域來保存外部數(shù)據(jù);text段為代碼段,將程序映射到 FLASHD(地址空間:0x3EC000~0x3F0000)中;cinit用于保存已初始化全局?jǐn)?shù)據(jù),存放到FLASHD區(qū)域。Ramfuncs控制程序的執(zhí)行方式,上電后程序從FLASHD中拷貝代碼到RAML0(地址空間:0x008000~0x009000)中運(yùn)行,實(shí)現(xiàn)了程序從FLASH區(qū)到RAM區(qū)的映射。

        4.3 轉(zhuǎn)換待傳輸?shù)奈募?/h3>

        由于CCS編譯生成的目標(biāo)文件(.out)是模塊化格式,即程序中代碼和數(shù)據(jù)分別存放在不同段中,該文件不能直接用來燒寫FLASH,需將其轉(zhuǎn)換為FLASH能識(shí)別的數(shù)據(jù)格式——二進(jìn)制文件(.bin)。筆者采用HEX2000和Fileoshell.exe工具來實(shí)現(xiàn)文件轉(zhuǎn)換。編寫AppCode-hex-2812.cmd文件,將CCS編譯后生成文件AppCode.out轉(zhuǎn)換成HEX文件App-Code.hex,并填充未用的FLASH區(qū)域?yàn)槿?。

        利用AppCode-COFF2BIN-2812.bat批處理文件,控制FillOShell工具生成bin文件,可以直接傳輸該文件來實(shí)現(xiàn)在線升級(jí)。

        4.4 燒寫步驟

        首先配置串口調(diào)試工具,配置參數(shù)為:波特率9600bit/s,8 bit數(shù)據(jù)位,1 bit截止位。然后,選擇發(fā)送文本文件方式,發(fā)送引導(dǎo)程序的bin文件到DSP,如圖4所示。

        圖4 傳輸引導(dǎo)程序Fig.4 Transmission boot program

        傳完后再次鎖定波特率,并選擇擦除FLASH,將未編程的FLASH區(qū)域全部擦除,再傳輸應(yīng)用程序的bin文件,如圖5所示。FLASH燒寫完成,并校驗(yàn)應(yīng)用程序大小,若校驗(yàn)通過則FLASH燒寫成功。

        圖5 燒寫成功Fig.5 Programming success

        5 結(jié)束語

        本文提出了一種DSP軟件動(dòng)態(tài)加載方法,可以在不打開機(jī)箱條件下實(shí)現(xiàn)模塊軟件升級(jí)。通過實(shí)際測試,應(yīng)用程序代碼在10kbyte左右時(shí),升級(jí)耗時(shí)2 min左右,與傳統(tǒng)的JTAG升級(jí)方式相比,雖然時(shí)間有所增加,但解決了高空、密閉等特殊情況下程序升級(jí)的困難,可滿足基于TMS320F2812 DSP開發(fā)的嵌入式系統(tǒng)升級(jí)要求。文中采用二級(jí)引導(dǎo)方式,通過串口傳輸數(shù)據(jù)并調(diào)用API編程函數(shù)實(shí)現(xiàn)程序動(dòng)態(tài)加載。由于片內(nèi)FLASH容量有限(128 kbyte),擴(kuò)充片外FLASH資源以滿足大型應(yīng)用需求,將成為下一階段工作的重點(diǎn),若配合以太網(wǎng)絡(luò)或總線技術(shù),還可實(shí)現(xiàn)軟件的遠(yuǎn)程升級(jí)。總之,該方法具有操作簡單、燒寫穩(wěn)定等優(yōu)點(diǎn),可廣泛應(yīng)用于嵌入式設(shè)備軟件的更新升級(jí)中,是智能化設(shè)備的必然要求和趨勢。

        [1]王虹,楊更生.基于 TMS320F2812的步進(jìn)電機(jī) SVPWM 細(xì)分驅(qū)動(dòng)[J].電訊技術(shù),2008,48(8):189-193.WANG Hong,YANG Su.Subdivision Driving with SVPWM of Stepping Motor Based onTMS320F2812[J].Telecommunication Engineering,2008,48(8):189-193.(in Chinese)

        [2]李靜,張樹團(tuán).TMS320F2812片內(nèi)Flash在線燒寫技術(shù)研究[J].計(jì)算機(jī)應(yīng)用,2008(10):37-40.LI Jing,ZHANG Shu-tuan.Research on on-line programming techniques for Flash in TMS320F2812[J].Journal of Computer Applications,2008(10):37-40.(in Chinese)

        [3]陳代媛.C6000外部FLASH在線編程引導(dǎo)技術(shù)[J].電訊技術(shù),2009,49(5):86-88.CHEN Dai-yuan.External FLASH Memory′s Bootloader System for C6000[J].Telecommunication Engineering,2009,49(5):86-88.(in Chinese)

        [4]朱望純,胡漢武,李智.DSP+FLASH的二次程序加載實(shí)現(xiàn)方法[J].理論與方法,2008,27(4):14-16.ZHU Wang-chun,HU Han-wu,LI Zhi.Secondary boot loader method for DSP and FLASH[J].Journal of Theory and Methods,2008,27(4):14-16.(in Chinese)

        [5]黃玉梅.一種基于DSP+FPGA的控制系統(tǒng)方案設(shè)計(jì)[J].電訊技術(shù),2004,44(3):136-138.HUANG Yu-mei.A DSP and FPGA Based Scheme for Control System[J].Telecommunication Engineering,2004,44(3):136-138.(in Chinese)

        [6]李晶,鐘瑜,鄭百衡.基于DSP的FPGA動(dòng)態(tài)配置技術(shù)[J].電訊技術(shù),2005,45(1):156-159.LI Jing,ZHONG Yu,ZHENG Bai-heng.FPGA Dynamic Reconfiguration Based on DSP[J].Telecommunication Engineering,2005,45(1):156-159.(in Chinese)

        猜你喜歡
        程序設(shè)備
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        試論我國未決羈押程序的立法完善
        基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
        基于MPU6050簡單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        如何在設(shè)備采購中節(jié)省成本
        免费va国产高清大片在线| 亚洲国产线茬精品成av| 国产午夜精品视频在线观看| 中文字幕乱码亚洲一区二区三区 | 精品亚亚洲成av人片在线观看| 国语对白免费观看123| 48久久国产精品性色aⅴ人妻| 免费人成毛片乱码| 日本亚洲成人中文字幕| 成年人干逼视频水好多| 国产午夜福利不卡在线观看| 欧美日韩精品乱国产538| 日本高清中文一区二区三区| 99精品国产一区二区三区| 男人扒开女人双腿猛进视频| 理论片午午伦夜理片影院 | 欧美亚洲日韩国产人成在线播放 | 女人被狂躁的高潮免费视频| 婷婷久久久亚洲欧洲日产国码av | 国产欧美另类精品久久久| 色婷婷久色国产成人免费| 欧美老肥婆牲交videos| 人人妻人人澡人人爽人人精品| 日本嗯啊在线观看| 一区二区三区国产色综合| 一本本月无码-| 一区二区无码中出| 特一级熟女毛片免费观看| 与最丰满美女老师爱爱视频| 任我爽精品视频在线播放| 五月婷婷激情小说| 自拍av免费在线观看| 麻豆国产精品va在线观看不卡| 国产精品va在线播放我和闺蜜| 国产精品白浆免费观看| 美女主播网红视频福利一区二区| 久精品国产欧美亚洲色aⅴ大片| 伊人亚洲综合网色AV另类| 日本免费大片一区二区三区 | 亚洲av不卡一区男人天堂| 香蕉久久福利院|