基于多通信方式實現(xiàn)DSP程序在線編程
出處:電子愛好者博客 發(fā)布于:2013-06-05 14:40:58
摘要:該文針對基于DSP的野外及外場數(shù)字設備更新升級提出了一種基于多通信方式的DSP程序在線編程的新方法.該方法同時具備有線.無線多種通信能力,可以根據(jù)具體環(huán)境靈活選擇.使用可擴展通信協(xié)議棧,支持對通信接口和通信協(xié)議的擴展.程序更新基于DSP/BIOS實時操作系統(tǒng),根據(jù)預設算法,更新指定存儲區(qū)的可執(zhí)行程序,實現(xiàn)對原程序替換和升級.
實踐表明,把該方法應用于系統(tǒng)的目標程序在線編程,程序功能穩(wěn)定可靠,使DSP程序的更新脫離了仿真器,滿足了現(xiàn)場更新的時效性.可擴展性和便攜性要求.
現(xiàn)代商業(yè)及工業(yè)嵌入式電力電子產(chǎn)品出于美觀.安全和可維護性方面的考慮,對系統(tǒng)維護的時效性和便攜性要求越來越高.基于DSP開發(fā)的野外及外場數(shù)字設備程序維護困難,已安裝的設備若用戶提出新需求,需要對內部程序進行脫機更新.
針對DSP在線編程問題,張謙等提出的基于硬件標志位控制的方法,編寫了文件轉換工具,實現(xiàn)了DSP在兩套程序之間的選擇加載,避免了對FLASH的反復燒寫;王宏義等提出了基于PCI總線使用單個FLASH存儲器同時實現(xiàn)DSP引導加載和FPGA配置的方法;劉鐵提出的基于CAN總線程序在線升級的方法,使DSP代碼的更新可以脫離仿真器,大大提高了DSP系統(tǒng)程序升級的效率;沈軍等提出了基于RS422串行通信遠程更新DSP程序的方法,在系統(tǒng)不掉電的情況下實現(xiàn)了DSP程序的遠程更新與自啟動;陶維青等提出了基于TMS320F2812 DSP的軟件更新方法,但通過串口實現(xiàn)的4 kbyte/min的更新速度顯然不能滿足野外系統(tǒng)的要求.以上方法都具有一定的局限性:通信方式單一,不能滿足野外數(shù)字設備復雜性及多變性的要求.
針對上述問題,本文提出了一種基于多通信方式的DSP程序更新方法,介紹了方案的實現(xiàn)要點,本方法已經(jīng)成功應用于某型數(shù)字測風經(jīng)緯儀系統(tǒng)中.
1 實現(xiàn)原理系統(tǒng)的MCU選用的是TI公司的TMS320C6747(以下簡稱C6747),C6747是業(yè)界功耗的浮點DSP,C6747自帶USB.串El.網(wǎng)絡和CAN總線等接口,無需外擴芯片.次更新程序時,需要使用仿真器將目標程序更新至FLASH分區(qū)l中,此時系統(tǒng)即可運行.系統(tǒng)需要更新程序時,系統(tǒng)首先響應中斷并讀取多通信模塊信息,然后等待用戶按鍵選擇需要更新的程序,接著從相應通信設備中讀入目標程序及其大小數(shù)值,放到內部RAM緩存中,然后系統(tǒng)判斷當前程序的入口地址,如為FLASH分區(qū)l,則把目標程序更新至FLASH分區(qū)2中,并把程序的人口地址設置為FLASH分區(qū)2;反之則對FALSH分區(qū)1采取相同操作.系統(tǒng)通信設備的信息讀取由多通信模塊完成.這樣就實現(xiàn)了程序更新并且保存了更新前的原程序.系統(tǒng)程序在線編程的軟件流程圖如圖l所示.

2多通信方式模塊設計圖1 系統(tǒng)程序在線編程的軟件流程圖目前工業(yè)界通信協(xié)議具有復雜性和多樣性的特點,傳統(tǒng)的多種通信功能的實現(xiàn)僅僅致力于通信方式接口的開發(fā)與實現(xiàn),可移植性差,并且遠遠不能滿足復雜環(huán)境下的需求.本文多通信模塊的設計思想:
將數(shù)據(jù)收發(fā)的過程與數(shù)據(jù)內部表示的信息分離.數(shù)據(jù)收發(fā)由抽象的收發(fā)器接口表示,在硬件中具體實現(xiàn),比如基本TCP/IP.無線網(wǎng)絡接口.RS232,485接口等.協(xié)議也具備可擴展性.協(xié)議的可擴展性由專門的協(xié)議管理層實現(xiàn),管理層具有協(xié)議注冊和匹配功能.協(xié)議層由一組平等的協(xié)議集合構成.當需要添加新協(xié)議時,在協(xié)議層實現(xiàn)協(xié)議并向協(xié)議管理層注冊.
基于模塊化設計方法,提出了可擴展多通信方式模塊如圖2所示.本模塊主要由五個部分組成,協(xié)議層.協(xié)議管理層.數(shù)據(jù)收發(fā)層.傳輸層和接口層,同時具備有線.無線多種通信能力,可以根據(jù)具體環(huán)境靈活選擇.使用可擴展通信協(xié)議棧,支持對通信接口和通信協(xié)議的擴展.下面分別對各個層進行介紹.

接口層和傳輸層主要對應于硬件設備,每種接口對應于某類傳輸層,如RS232.RS422.RS485均屬于串口傳輸層.數(shù)據(jù)收發(fā)層主要負責底層設備的數(shù)據(jù)接收和發(fā)送,采用數(shù)據(jù)統(tǒng)一收發(fā)的協(xié)議方式,可以有效地實現(xiàn)應用程序與底層接口驅動的隔離.協(xié)議管理層主要負責協(xié)議的匹配,并對已收到和待發(fā)送的指令幀的指令類型.目的地址和包數(shù)據(jù)幀數(shù)進行解析.協(xié)議層主要負責數(shù)據(jù)幀和應答幀的分類處理和編制.軟件流程圖如圖3所示.

3 基于DSP/BI0S實現(xiàn)DSP程序更新DSP/BIOS是一個用戶可剪裁的實時操作系統(tǒng),主要由三部分組成:多線程實時內核.實時分析工具.芯片支持庫.利用DSP/BIOS,可以方便快速的開發(fā)復雜的DSP程序.多線程實時內核調度多線程的運行,將定制的系統(tǒng)算法作為一個嵌入系統(tǒng)線程.
DSP/BIOS以模塊化方式提供給用戶對線程.中斷.定時器.內存資源.所有外設資源的管理能力都可以根據(jù)需要剪裁.實際應用時把相應的算法作為一個線程插入DSP/BIOS的調度隊列,由DSP/BIOS進行調度.本設計是基于DSP/BIOS R1′F's(The DSP/BIOS Real-Time File System)開發(fā)實現(xiàn)的.
3.1編譯環(huán)境的搭接為了能夠使用Rtfs Api程中加入環(huán)境變量,主要需要修改兩部分內容:
Project.Build和Options-Compiler.修改方法參見RTFS相關文檔.然后需要編寫DSP/BIOS配置文件,配置文件的關鍵配置程序為:bios.ECM.ENABLE=1;bios.GBL.C64PLUSMARl28t0159=0x0000ffff.
3.2 A璐文件及解析CCS編譯生成的木。Out需要通過AISgen軟件轉化為木。MS文件才能為DSP所識別,AISgen forD800K003軟件在產(chǎn)生MS文件時需要根據(jù)需要對時鐘管理器.EMIFB管理器.系統(tǒng)上電管理器以及引腳復用管理器進行配置,具體配置方法如圖4所示.

AIS文件生成后需要對其進行解析和修改以確定上電boot后對加載程序分區(qū)定位,AIS文件是一個二進制文件,其基本架構為:4字節(jié)命令頭+命令+..+結束跳轉指令.對AIS文件的修改主要包含對段連接命令地址內容和跳轉結束命令地址內容的修改.段連接命令的作用是段人口點的指定,其形式為:0×58535901+段連接地址+段大小+段數(shù)據(jù).
在AIS文件中找到0×58535901,修改其后面的段連接地址為程序在FLASH中的存放地址.跳轉結束命令的作用是AIS文件結束的標志并跳轉到用戶應用程序(此處為已更新程序的地址),其形式為:0×58535906+跳轉地址.修改其跳轉地址為已更新程序的存放地址.至此AIS文件修改完畢.
3.3 EDMA方式實現(xiàn)程序更新本設計程序更新方式在程序更新過程中采用雙緩沖方式處理數(shù)據(jù),在對程序數(shù)據(jù)進行搬移時,由EDMA方式控制時序,不占用CPU資源,實現(xiàn)無開銷地交換內外存數(shù)據(jù),從而減輕了CPU的運行負擔,增加了程序的并行性,從而實現(xiàn)程序數(shù)據(jù)傳輸和FLASH寫入處理的同步進行,提高效率并且使系統(tǒng)可以處理流水式輸入的目標程序數(shù)據(jù).其具體實現(xiàn)流程如下:
?。?)在內存中設置雙緩沖區(qū),分別為A和B;(2)將一幀目標程序數(shù)據(jù)(大小為1 kbyte)從通信模塊中搬到緩沖區(qū)A;(3)對緩沖區(qū)A中的數(shù)據(jù)進行FLASH寫入的同時,將后續(xù)的一幀數(shù)據(jù)從通信模塊中搬到緩沖區(qū)B;(4)將緩沖區(qū)B中的數(shù)據(jù)寫入FLASH的同時,將后續(xù)的一幀數(shù)據(jù)從通信模塊中搬到緩沖區(qū)A;如此循環(huán)進行,可以使數(shù)據(jù)的搬移與處理實現(xiàn)并行,極大地提高程序更新的執(zhí)行效率.
4應用實例數(shù)字測風經(jīng)緯儀系統(tǒng)主要由3部分組成:數(shù)字測風經(jīng)緯儀.計算機計算平臺和手持計算器.在使用時,氣象員通過經(jīng)緯儀的光學望遠鏡跟蹤測風氣球,測風經(jīng)緯儀使用光電碼盤自動記錄時間.仰角.方位角信息,然后把測風數(shù)據(jù)傳送給計算機平臺或手持計算器,計算機或手持計算器便計算出各種氣象通報.測風經(jīng)緯儀的某些參數(shù)會隨時間而改變,高空風計算模型種類繁多,每種模型計算非常復雜,需要定時標定和驗證,及時修改某些參數(shù).升級程序時,用戶借助計算機終端通過CAN總線.485總線或者網(wǎng)絡遠程向經(jīng)緯儀發(fā)送代碼數(shù)據(jù)(需要編寫上位機在線升級模塊),也可以現(xiàn)場直接使用u盤更新程序,即可完成測風經(jīng)緯儀的程序升級工作.
該程序功能穩(wěn)定可靠,對幾種高空風計算模型的程序更新測試結果如表1所示.

5 結論本文針對現(xiàn)有單通信方式程序更新的不足,提出了基于可擴展多通信方式的DSP程序在線編程方法,該方法將數(shù)據(jù)收發(fā)的過程與數(shù)據(jù)內部表示的信息分離,同時具備有線.無線多種通信能力,可以根據(jù)具體環(huán)境靈活選擇,并支持對通信接口和通信協(xié)議的擴展.本文還對DSP67Zl-7可執(zhí)行AIS文件進行了深入的分析,提出了EDMA方式實現(xiàn)程更新.實踐表明,本方法具有更好的可擴展性和可維護性,使DSP在線編程脫離仿真器,能夠適用于更廣泛的應用場合.
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內容、版權等問題,請在作品發(fā)表之日起一周內與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- 掌握 DSP:原理剖析與應用實踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實時執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉換中的應用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號完整性2022/9/26 16:45:38









