• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      DSP系統(tǒng)的CAN總線遠程升級方法

      2016-08-04 02:07:55
      關鍵詞:底層上位應用程序

      劉 瑞

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

      ?

      DSP系統(tǒng)的CAN總線遠程升級方法

      劉瑞

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

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

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

      引用格式:劉瑞. DSP系統(tǒng)的CAN總線遠程升級方法[J].微型機與應用,2016,35(13):71-72,75.

      0引言

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

      1TMS320F28335簡介及其啟動過程

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

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

      圖1FLASH啟動的系統(tǒng)工作流程

      2遠程升級基本原理

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

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

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

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

      3.1上位機程序

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

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

      -memwidth16//16位寬存儲器

      -datawidth32//DSP字長32位

      -boot

      -sci8

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

      表1 數(shù)據(jù)流結構

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

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

      圖2 hex文件信息提取結果

      3.2底層程序

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

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

      If(guc_updata ==’1’)

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

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

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

      4結束語

      經(jīng)過實測,升級約40 KB的應用程序用時約3 min。速度雖然較JTAG接口慢一些,但是免去了拆除設備的麻煩,大大縮短了總體工作時間,提高了工作效率。目前基于CAN總線的遠程升級系統(tǒng)已在工程中成功應用,給工

      圖3 底層程序流程圖

      程安裝調試人員的現(xiàn)場升級工作帶來了極大的方便。隨著需求的增多,可以擴展出串口、網(wǎng)口等多種外圍接口的升級方式,也可以將待升級硬件由DSP系統(tǒng)擴展為單片機或ARM等多種可編程器件。

      參考文獻

      [1] 李聲飛,代華山.基于串口通信的DSP程序動態(tài)加載技術[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.

      中圖分類號:TP368.1

      文獻標識碼:A

      DOI:10.19358/j.issn.1674- 7720.2016.13.023

      (收稿日期:2016-03-07)

      作者簡介:

      劉瑞(1982-),通信作者,男,碩士,工程師,主要研究方向:數(shù)字電路與系統(tǒng)、數(shù)字信號處理、自動控制工程。E-mail:liurui110@163.com。

      A method of remote update for DSP system based on CAN bus

      Liu Rui

      (The 54th Research Institute of China Electronics Technology Group Corpopation, Shijiazhuang 050081, China )

      Abstract:Aiming at the problem of updating program of DSP in outfield through JTAG interface, a method of remote update based on CAN bus is developed. Firstly, the hardware resource and bootloader of the TMS320F28335 which is DSP chip is introduced and analyzed. Secondly, the basal theory and detailed process of realization are explained. Finally, the method is proved to be brief and dependable by actual project, and the development of this method is prospected.

      Key words:DSP;TMS320F28335;CAN bus;remote update

      猜你喜歡
      底層上位應用程序
      航天企業(yè)提升采購能力的底層邏輯
      刪除Win10中自帶的應用程序
      電腦報(2019年12期)2019-09-10 05:08:20
      特斯拉 風云之老阿姨上位
      車迷(2018年12期)2018-07-26 00:42:22
      “三扶”齊上位 決戰(zhàn)必打贏
      基于ZigBee和VC上位機的教室智能監(jiān)測管理系統(tǒng)
      以新思路促推現(xiàn)代農業(yè)上位
      學習月刊(2015年3期)2015-07-09 03:51:04
      回到現(xiàn)實底層與悲憫情懷
      小說林(2014年5期)2014-02-28 19:51:47
      略論“底層”
      雜文選刊(2013年7期)2013-02-11 10:41:11
      關閉應用程序更新提醒
      電腦迷(2012年15期)2012-04-29 17:09:47
      三星電子將開設應用程序下載商店
      白银市| 皋兰县| 绥江县| 临泉县| 建始县| 凤凰县| 德令哈市| 正镶白旗| 金山区| 梧州市| 罗平县| 霍城县| 东城区| 昌江| 海原县| 徐水县| 东光县| 新晃| 南投县| 图木舒克市| 泽州县| 洛浦县| 东方市| 上蔡县| 乌兰察布市| 忻州市| 班戈县| 龙里县| 襄城县| 维西| 毕节市| 金湖县| 金昌市| 客服| 儋州市| 米林县| 泰顺县| 长汀县| 太白县| 大安市| 邵东县|