《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > DSP系統(tǒng)的CAN總線遠(yuǎn)程升級(jí)方法
DSP系統(tǒng)的CAN總線遠(yuǎn)程升級(jí)方法
2016年微型機(jī)與應(yīng)用第13期
劉瑞
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊050081)
摘要: 針對(duì)通過(guò)JTAG接口在外場(chǎng)升級(jí)DSP困難的問(wèn)題,研究了一套基于CAN總線的遠(yuǎn)程升級(jí)方法。首先對(duì)DSP芯片TMS320F28335的硬件資源和啟動(dòng)過(guò)程進(jìn)行了簡(jiǎn)要介紹和分析,接著說(shuō)明了該方法的基本原理并提出了具體實(shí)現(xiàn)過(guò)程,最后通過(guò)工程證明該方法簡(jiǎn)便可靠,并對(duì)前景進(jìn)行了展望。
Abstract:
Key words :

  劉瑞

  (中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊050081)

  摘要:針對(duì)通過(guò)JTAG接口在外場(chǎng)升級(jí)DSP困難的問(wèn)題,研究了一套基于CAN總線遠(yuǎn)程升級(jí)方法。首先對(duì)DSP芯片TMS320F28335的硬件資源和啟動(dòng)過(guò)程進(jìn)行了簡(jiǎn)要介紹和分析,接著說(shuō)明了該方法的基本原理并提出了具體實(shí)現(xiàn)過(guò)程,最后通過(guò)工程證明該方法簡(jiǎn)便可靠,并對(duì)前景進(jìn)行了展望。

  關(guān)鍵詞:DSP;TMS320F28335;CAN總線;遠(yuǎn)程升級(jí)

0引言

  數(shù)字信號(hào)處理器(Digital Signal Processor,DSP)是一種在數(shù)字信號(hào)處理技術(shù)基礎(chǔ)上發(fā)展起來(lái)的微處理器,其主要應(yīng)用是實(shí)時(shí)快速地實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法。美國(guó)德州儀器公司(Texas Instruments,TI)是目前世界上最大的DSP芯片供應(yīng)商,其產(chǎn)品被廣泛應(yīng)用于工業(yè)控制、移動(dòng)通信、軍事安全等領(lǐng)域。近年來(lái)隨著電子技術(shù)的發(fā)展和用戶(hù)需求的提升,對(duì)已投入使用的DSP設(shè)備的升級(jí)越來(lái)越頻繁,傳統(tǒng)的升級(jí)方法是取下設(shè)備通過(guò)JTAG仿真器來(lái)在線更新程序[1]。該方式簡(jiǎn)單方便,但當(dāng)DSP安裝于諸如密封、遠(yuǎn)程、高空等難以拆卸的設(shè)備中時(shí),就十分不便,因此開(kāi)發(fā)高效便捷的遠(yuǎn)程升級(jí)技術(shù)迫在眉睫。鑒于伺服系統(tǒng)大多使用CAN總線通信,本文研發(fā)了一套基于CAN總線的遠(yuǎn)程升級(jí)系統(tǒng),并成功應(yīng)用于基于TMS320F28335的伺服控制系統(tǒng)中。

1TMS320F28335簡(jiǎn)介及其啟動(dòng)過(guò)程

  TMS320F28335是TI公司推出的一款具有強(qiáng)大的控制和信號(hào)處理能力的32位浮點(diǎn)型信號(hào)處理器,其主頻高達(dá)150 MHz,片上集成了256 KB的Flash存儲(chǔ)器,34 KB的SARAM,8 KB的Boot ROM,1 KB的OTP ROM以及CAN接口、串口、并口等多種先進(jìn)的外設(shè)接口[2]。

  在進(jìn)行系統(tǒng)設(shè)計(jì)之前,首先要了解TMS320F28335上電復(fù)位后的運(yùn)行過(guò)程。該款DSP在出廠前就由廠家固化了一段程序,當(dāng)系統(tǒng)上電復(fù)位后,固化程序會(huì)從中斷向量表中讀取復(fù)位中斷的中斷向量0x3FFFC0,并跳轉(zhuǎn)到該地址處開(kāi)始執(zhí)行。此處為廠家在Boot ROM中的固化程序,其作用主要是完成對(duì)芯片的初始化,并調(diào)用模式選擇函數(shù)SelectBootMode,該函數(shù)通過(guò)讀取固定GPIO管腳的邏輯電平來(lái)確定引導(dǎo)類(lèi)型,默認(rèn)選擇類(lèi)型為Jump to Flash,即片上Flash引導(dǎo)模式。程序隨后轉(zhuǎn)向片上Flash中的0x33FFF6處開(kāi)始執(zhí)行,用戶(hù)需要將編寫(xiě)好的程序燒寫(xiě)在0x33FFF6起始地址處,如圖1所示[3]。

 

001.jpg

2遠(yuǎn)程升級(jí)基本原理

  基于CAN總線的遠(yuǎn)程升級(jí)方法主要涉及三個(gè)程序,分別是底層程序、上位機(jī)程序和應(yīng)用程序。底層程序和上位機(jī)程序是固定不變的,是遠(yuǎn)程升級(jí)系統(tǒng)的組成部分,應(yīng)用程序是DSP使用者編寫(xiě)的用以完成特定功能的代碼。遠(yuǎn)程升級(jí)的實(shí)質(zhì)是通過(guò)“程序”來(lái)燒寫(xiě)“程序”,即使用底層程序來(lái)燒寫(xiě)應(yīng)用程序。相比其他諸多遠(yuǎn)程升級(jí)系統(tǒng),該方法的好處在于升級(jí)過(guò)程中不需要改變DSP的啟動(dòng)方式,直接采用默認(rèn)的片上Flash啟動(dòng)方式即可。

  底層程序是指運(yùn)行于DSP指定空間、對(duì)編程用戶(hù)保護(hù)的、不允許被修改或擦除的一段代碼。其主要作用有以下三個(gè)方面:(1)對(duì)DSP的工作環(huán)境和CAN接口進(jìn)行基本的初始化;(2)與上位機(jī)通信,接收上位機(jī)發(fā)來(lái)的待升級(jí)應(yīng)用程序和程序存儲(chǔ)地址等信息,并將程序?qū)懭胫付▍^(qū)域;(3)升級(jí)完成后,從底層程序跳轉(zhuǎn)到用戶(hù)程序。

  上位機(jī)程序的主要作用是對(duì)編譯完成的.out文件進(jìn)行格式轉(zhuǎn)換、信息提取和打包發(fā)送。由TI自帶的開(kāi)發(fā)工具CCS編譯完成的目標(biāo)代碼在DSP中并不是從起始地址開(kāi)始連續(xù)分布的,而是分成若干個(gè)大小不同的代碼塊交叉分布于程序和數(shù)據(jù)空間,且CCS產(chǎn)生的.out文件的組織形式是一種對(duì)象文件格式,不能直接用于Flash燒寫(xiě),因此上位機(jī)程序首先需要對(duì)編譯完成的.out文件進(jìn)行格式轉(zhuǎn)換和信息提取。這就需要將其轉(zhuǎn)換成含有塊地址、塊容量和塊內(nèi)容等信息的.hex文件,并對(duì)每一塊的信息進(jìn)行提取,按照協(xié)議打包組幀最后通過(guò)CAN總線傳輸。

3具體實(shí)現(xiàn)方法

  3.1上位機(jī)程序

  為了獲得代碼在Flash中的存儲(chǔ)結(jié)構(gòu)等信息,上位機(jī)程序首先對(duì)編譯完成的.out文件進(jìn)行格式轉(zhuǎn)換和信息提取,對(duì)于C2000系列DSP,TI公司提供了文件格式轉(zhuǎn)換工具h(yuǎn)ex2000.exe可將.out文件轉(zhuǎn)換為.hex文件,具體方法為:創(chuàng)建MSDOS型批處理文件transhex.cmd,內(nèi)容為:

  appication.out// appication.out為編譯完成的.out文件

  -memwidth16//16位寬存儲(chǔ)器

  -datawidth32//DSP字長(zhǎng)32位

  -boot

  -sci8

  -o appication.hex//生成名為appication的.hex文件

  將批處理文件transhex.cmd和轉(zhuǎn)換工具h(yuǎn)ex2000.exe以及appication.out拷貝到同一目錄下,在MSDOS命令行中將路徑指定到該目錄,輸入hex2000.exe transhex.cmd即可自動(dòng)生成相應(yīng)的appication.hex文件,該文件符合bootloader數(shù)據(jù)流格式。其中第1、2個(gè)字節(jié)為關(guān)鍵字,表示該數(shù)據(jù)流為8 bit或16 bit寬,接著的16個(gè)字節(jié)為保留位,然后接著的4個(gè)字節(jié)包含22 bit的程序入口地址,然后為每塊程序的尺寸,在Flash中存儲(chǔ)的起始地址以及相應(yīng)的數(shù)據(jù),具體結(jié)構(gòu)如表1所示[4]。按照上述固定格式,通過(guò)對(duì)表內(nèi)容的解析就可以獲得應(yīng)用程序在Flash中的存儲(chǔ)結(jié)構(gòu)。

003.jpg

  在上位機(jī)程序中點(diǎn)擊“選擇文件”來(lái)讀入該文件,程序會(huì)自動(dòng)根據(jù)表1的格式對(duì)其內(nèi)容進(jìn)行分析并完成信息提取,做好向下位機(jī)傳輸?shù)臏?zhǔn)備,并將提取結(jié)果顯示在右側(cè)信息欄中,如圖2所示。該示例應(yīng)用程序由6塊組成,列出了每塊的起始地址和容量大小等信息,最后第7塊的全零信息僅表示結(jié)尾,沒(méi)有實(shí)際內(nèi)容。

 

002.jpg

  3.2底層程序

  底層程序的作用是將上位機(jī)發(fā)送的應(yīng)用程序數(shù)據(jù)燒寫(xiě)至Flash的指定區(qū)域,涉及到應(yīng)用程序的定位以及跳轉(zhuǎn)等諸多問(wèn)題,是整個(gè)系統(tǒng)的重點(diǎn)。由于系統(tǒng)是Flash啟動(dòng),DSP復(fù)位后固定跳轉(zhuǎn)到0x33FFF6處開(kāi)始執(zhí)行,故底層程序必須預(yù)先燒寫(xiě)到此處。底層程序在系統(tǒng)上電復(fù)位后首先運(yùn)行,并在規(guī)定時(shí)間內(nèi)通過(guò)接收上位機(jī)發(fā)來(lái)的固定幀判斷上位機(jī)程序是否啟動(dòng),如果是則等待上位機(jī)發(fā)送的待升級(jí)應(yīng)用程序代碼,否則跳轉(zhuǎn)到已有應(yīng)用程序處執(zhí)行。該過(guò)程采用絕對(duì)地址跳轉(zhuǎn),主要代碼如下:

  #define Jumpgxcx(void(*)(void))0x337FF6//定義應(yīng)用程序的起始地址

  If(guc_updata ==’1’)

  {main();}//如果收到升級(jí)指令則跳轉(zhuǎn)到底層程序主函數(shù)

  Else {(*Jumpgxcx)();}//否則跳轉(zhuǎn)到現(xiàn)有應(yīng)用程序處執(zhí)行

  底層程序收到升級(jí)指令后首先將Flash存儲(chǔ)器上的舊應(yīng)用程序刪除,并將收到的代碼緩存到片上RAM中,由于片上RAM容量有限,一次緩存的容量設(shè)定為2 048 B,因此上位機(jī)會(huì)將代碼按照2 048 B打包,每發(fā)送2 048 B的應(yīng)用程序代碼后就發(fā)送一幀燒寫(xiě)指令,DSP調(diào)用Flash_API函數(shù)緩存代碼寫(xiě)入指定Flash區(qū)域,完成一次燒寫(xiě)后,底層程序會(huì)向上位機(jī)程序發(fā)送燒寫(xiě)完成信息,隨后上位機(jī)開(kāi)始發(fā)送下一包數(shù)據(jù),循環(huán)此過(guò)程直至全部發(fā)送燒寫(xiě)完畢,然后跳轉(zhuǎn)到新程序入口處開(kāi)始執(zhí)行。流程圖如圖3所示。

004.jpg

4結(jié)束語(yǔ)

  經(jīng)過(guò)實(shí)測(cè),升級(jí)約40 KB的應(yīng)用程序用時(shí)約3 min。速度雖然較JTAG接口慢一些,但是免去了拆除設(shè)備的麻煩,大大縮短了總體工作時(shí)間,提高了工作效率。目前基于CAN總線的遠(yuǎn)程升級(jí)系統(tǒng)已在工程中成功應(yīng)用,給工程安裝調(diào)試人員的現(xiàn)場(chǎng)升級(jí)工作帶來(lái)了極大的方便。隨著需求的增多,可以擴(kuò)展出串口、網(wǎng)口等多種外圍接口的升級(jí)方式,也可以將待升級(jí)硬件由DSP系統(tǒng)擴(kuò)展為單片機(jī)或ARM等多種可編程器件。

參考文獻(xiàn)

  [1] 李聲飛,代華山.基于串口通信的DSP程序動(dòng)態(tài)加載技術(shù)[J]. 電訊技術(shù),2011,51(6):121124.

  [2] Texas Instruments.TMS320F28335 digital signal controllers data manual[S].2007.

  [3] 楊宣兵,陳明,彭義.基于TMS320F28335的程序從FLASH到RAM的移植與運(yùn)行[J].湖南理工學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,24(4):3335.

  [4] 汪晶晶,蘇建徽,孫佩石.基于串口通信的DSP應(yīng)用程序在線升級(jí)方法[J].微型機(jī)與應(yīng)用,2013,32(14):1517.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产亚洲精品一区二555| 国产亚洲免费的视频看| 亚洲欧美国产毛片在线| 亚洲美女视频在线观看| 亚洲日本成人在线观看| 亚洲国产精品悠悠久久琪琪| 欧美在线免费一级片| 午夜精品理论片| 亚洲永久免费精品| 亚洲天堂成人| 一区二区三区.www| 亚洲午夜精品久久久久久浪潮| 亚洲免费黄色| 99精品视频一区| 在线视频精品| 亚洲香蕉伊综合在人在线视看| 亚洲色诱最新| 亚洲永久在线| 久久福利视频导航| 亚洲高清电影| 亚洲欧洲精品一区| 亚洲精选91| 中国av一区| 亚洲女人天堂成人av在线| 亚洲欧美不卡| 性亚洲最疯狂xxxx高清| 久久er精品视频| 久久久免费精品| 老司机精品福利视频| 免费看的黄色欧美网站| 欧美黄色aaaa| 欧美日韩黄色大片| 国产精品99免费看 | 久久综合网络一区二区| 麻豆久久精品| 欧美精品久久久久a| 欧美日韩一区在线观看视频| 国产精品久在线观看| 国产九九精品视频| 国产综合色产在线精品| 亚洲国产欧美一区二区三区同亚洲| 亚洲欧洲精品一区二区| 制服丝袜激情欧洲亚洲| 性做久久久久久久免费看| 亚洲成人自拍视频| 99国产一区| 国产一区91精品张津瑜| 欧美华人在线视频| 欧美另类人妖| 国产精品免费看片| 黄色成人在线网址| aa国产精品| 欧美在线视频一区二区| 亚洲精品日韩在线观看| 99热在线精品观看| 欧美一区观看| 欧美激情影音先锋| 国产女人精品视频| 亚洲欧洲另类| 亚洲欧美国产三级| 日韩视频免费观看高清完整版| 亚洲欧美日韩精品一区二区| 男人天堂欧美日韩| 国产伦理精品不卡| 亚洲日本成人| 羞羞答答国产精品www一本| 亚洲肉体裸体xxxx137| 午夜精品免费| 欧美日韩国产黄| 狠久久av成人天堂| 日韩亚洲一区在线播放| 久久福利资源站| 亚洲欧美在线视频观看| 欧美大尺度在线观看| 国产日本欧美视频| 一级日韩一区在线观看| 亚洲欧洲美洲综合色网| 久久福利毛片| 欧美日韩国产综合视频在线观看 | 91久久午夜| 久久不见久久见免费视频1| 中文国产一区| 免费久久99精品国产自| 国产啪精品视频| 日韩午夜在线视频| 亚洲精品免费观看| 久久久久久久国产| 国产精品久久午夜夜伦鲁鲁| 亚洲高清在线精品| 久久精品30| 欧美在线二区| 国产精品av一区二区| 91久久精品久久国产性色也91 | 久久一区精品| 国产精品揄拍500视频| 99pao成人国产永久免费视频| 91久久精品国产91久久性色| 久久久久久久激情视频| 国产精品日本欧美一区二区三区| 亚洲日本无吗高清不卡| 亚洲电影激情视频网站| 欧美一区二区在线视频| 中文精品视频一区二区在线观看| 久久久久国产精品www| 午夜精品久久久久久久99樱桃| 能在线观看的日韩av| 国产视频精品免费播放| 狠色狠色综合久久| 久久高清国产| 久久久另类综合| 国内自拍一区| 久久av一区二区三区亚洲| 久久国产66| 国产亚洲福利社区一区| 亚洲欧美日韩网| 欧美一区2区三区4区公司二百| 国产精品美女| 亚洲一区二区免费在线| 亚洲欧美精品在线| 国产精品推荐精品| 亚洲欧美激情在线视频| 欧美中文字幕视频| 国产日韩亚洲欧美精品| 欧美一级黄色网| 久久乐国产精品| 黄色一区二区三区| 亚洲高清av在线| 欧美大片第1页| 亚洲精品国产拍免费91在线| 夜夜躁日日躁狠狠久久88av| 欧美性理论片在线观看片免费| 一区二区三区日韩精品视频| 亚洲欧美日韩在线综合| 国产视频精品va久久久久久| 久久激情视频久久| 欧美不卡激情三级在线观看| 亚洲欧洲精品天堂一级| 宅男精品视频| 国产精品视频一| 欧美一区二区三区四区视频| 麻豆国产精品va在线观看不卡| 亚洲黄色片网站| 宅男噜噜噜66国产日韩在线观看| 国产精品国内视频| 小辣椒精品导航| 老牛影视一区二区三区| 亚洲欧洲精品一区二区三区不卡| 一区二区三区三区在线| 国产精品一级二级三级| 欧美在线一二三四区| 欧美chengren| a4yy欧美一区二区三区| 亚洲欧美在线视频观看| 国产在线拍揄自揄视频不卡99| 亚洲欧洲在线播放| 欧美日韩小视频| 欧美一级大片在线免费观看| 欧美aa在线视频| 亚洲午夜视频在线| 欧美亚洲一区三区| 在线成人h网| 亚洲一区二区三区影院| 欧美精品九九99久久| 亚洲欧美成人一区二区三区| 亚洲欧美在线磁力| 黄色av一区| 亚洲网址在线| 国产亚洲精品自拍| 一本久道久久综合中文字幕| 国产美女精品一区二区三区| 91久久精品一区| 欧美影院在线播放| 亚洲激情第一区| 欧美一级理论片| 亚洲人成网在线播放| 欧美在线亚洲| 亚洲人成绝费网站色www| 在线综合亚洲| 久久青草福利网站| 一区二区国产精品| 噜噜噜在线观看免费视频日韩| 中文在线不卡| 欧美精品免费在线| 欧美一区激情| 欧美日韩高清不卡| 久久国产视频网| 欧美三日本三级少妇三2023| 久久精品国产999大香线蕉| 欧美亚洲成人免费| 亚洲国产裸拍裸体视频在线观看乱了中文| 国产精品久久久久久久久久ktv| 亚洲国产婷婷| 国产欧美一区在线| 亚洲少妇最新在线视频| 精品动漫3d一区二区三区免费| 亚洲欧美韩国| 99国产精品| 欧美刺激午夜性久久久久久久| 欧美一级视频精品观看| 国产精品久久久久久久久久尿|