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

  劉瑞

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

  摘要:針對通過JTAG接口在外場升級DSP困難的問題,研究了一套基于CAN總線遠程升級方法。首先對DSP芯片TMS320F28335的硬件資源和啟動過程進行了簡要介紹和分析,接著說明了該方法的基本原理并提出了具體實現過程,最后通過工程證明該方法簡便可靠,并對前景進行了展望。

  關鍵詞:DSP;TMS320F28335;CAN總線;遠程升級

0引言

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

1TMS320F28335簡介及其啟動過程

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

  在進行系統設計之前,首先要了解TMS320F28335上電復位后的運行過程。該款DSP在出廠前就由廠家固化了一段程序,當系統上電復位后,固化程序會從中斷向量表中讀取復位中斷的中斷向量0x3FFFC0,并跳轉到該地址處開始執行。此處為廠家在Boot ROM中的固化程序,其作用主要是完成對芯片的初始化,并調用模式選擇函數SelectBootMode,該函數通過讀取固定GPIO管腳的邏輯電平來確定引導類型,默認選擇類型為Jump to Flash,即片上Flash引導模式。程序隨后轉向片上Flash中的0x33FFF6處開始執行,用戶需要將編寫好的程序燒寫在0x33FFF6起始地址處,如圖1所示[3]。

 

001.jpg

2遠程升級基本原理

  基于CAN總線的遠程升級方法主要涉及三個程序,分別是底層程序、上位機程序和應用程序。底層程序和上位機程序是固定不變的,是遠程升級系統的組成部分,應用程序是DSP使用者編寫的用以完成特定功能的代碼。遠程升級的實質是通過“程序”來燒寫“程序”,即使用底層程序來燒寫應用程序。相比其他諸多遠程升級系統,該方法的好處在于升級過程中不需要改變DSP的啟動方式,直接采用默認的片上Flash啟動方式即可。

  底層程序是指運行于DSP指定空間、對編程用戶保護的、不允許被修改或擦除的一段代碼。其主要作用有以下三個方面:(1)對DSP的工作環境和CAN接口進行基本的初始化;(2)與上位機通信,接收上位機發來的待升級應用程序和程序存儲地址等信息,并將程序寫入指定區域;(3)升級完成后,從底層程序跳轉到用戶程序。

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

3具體實現方法

  3.1上位機程序

  為了獲得代碼在Flash中的存儲結構等信息,上位機程序首先對編譯完成的.out文件進行格式轉換和信息提取,對于C2000系列DSP,TI公司提供了文件格式轉換工具hex2000.exe可將.out文件轉換為.hex文件,具體方法為:創建MSDOS型批處理文件transhex.cmd,內容為:

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

  -memwidth16//16位寬存儲器

  -datawidth32//DSP字長32位

  -boot

  -sci8

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

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

003.jpg

  在上位機程序中點擊“選擇文件”來讀入該文件,程序會自動根據表1的格式對其內容進行分析并完成信息提取,做好向下位機傳輸的準備,并將提取結果顯示在右側信息欄中,如圖2所示。該示例應用程序由6塊組成,列出了每塊的起始地址和容量大小等信息,最后第7塊的全零信息僅表示結尾,沒有實際內容。

 

002.jpg

  3.2底層程序

  底層程序的作用是將上位機發送的應用程序數據燒寫至Flash的指定區域,涉及到應用程序的定位以及跳轉等諸多問題,是整個系統的重點。由于系統是Flash啟動,DSP復位后固定跳轉到0x33FFF6處開始執行,故底層程序必須預先燒寫到此處。底層程序在系統上電復位后首先運行,并在規定時間內通過接收上位機發來的固定幀判斷上位機程序是否啟動,如果是則等待上位機發送的待升級應用程序代碼,否則跳轉到已有應用程序處執行。該過程采用絕對地址跳轉,主要代碼如下:

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

  If(guc_updata ==’1’)

  {main();}//如果收到升級指令則跳轉到底層程序主函數

  Else {(*Jumpgxcx)();}//否則跳轉到現有應用程序處執行

  底層程序收到升級指令后首先將Flash存儲器上的舊應用程序刪除,并將收到的代碼緩存到片上RAM中,由于片上RAM容量有限,一次緩存的容量設定為2 048 B,因此上位機會將代碼按照2 048 B打包,每發送2 048 B的應用程序代碼后就發送一幀燒寫指令,DSP調用Flash_API函數緩存代碼寫入指定Flash區域,完成一次燒寫后,底層程序會向上位機程序發送燒寫完成信息,隨后上位機開始發送下一包數據,循環此過程直至全部發送燒寫完畢,然后跳轉到新程序入口處開始執行。流程圖如圖3所示。

004.jpg

4結束語

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

參考文獻

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

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

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

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


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美激情一区二区三区蜜桃视频 | 黄乱色伦短篇小说h| 色综合久久一区二区三区| 日本理论片午午伦夜理片2021| 四虎国产精品永久在线| 欧美性生活视频免费| 国产精品视频你懂的| 久久中文字幕免费视频| 野花社区视频在线观看| 成人免费看www网址入口| 亚洲国产精品sss在线观看AV| 91大神精品在线观看| 日韩在线一区二区三区| 午夜性福利视频| 88国产精品欧美一区二区三区| 日韩在线一区二区三区免费视频| 亚洲欧美日韩在线不卡| 精品久久人人妻人人做精品| 国产免费爽爽视频免费可以看 | 欧美又粗又大又硬又长又爽视频| 免费a级毛片在线播放| 肥老熟妇伦子伦456视频| 国产97在线观看| 拍拍拍无挡视频免费观看1000 | 97在线视频免费公开观看| 摸BBB揉BBB揉BBB视频| 亚洲中文字幕在线第六区| 狠狠狠狼鲁欧美综合网免费| 四虎影视永久地址四虎影视永久地址www成人| 午夜精品福利视频| 娇妻之欲海泛舟白丽交换| 亚洲婷婷综合色高清在线| 真实乱视频国产免费观看| 国产一区二区日韩欧美在线| 欧美人与zxxxx与另类| 国产美女被遭强高潮免费网站| www.youjizz.com国产| 晚上睡不着来b站一次看过瘾| 亚洲成年人网址| 深夜动态福利gif动态进| 免费在线观看黄网站|