999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于YModem協議的極簡遠程加載實現方法

2020-10-26 16:42:47劉曉旭陳振杰張建偉馬國駒
計算機與網絡 2020年18期

劉曉旭 陳振杰 張建偉 馬國駒

摘要:針對外場環境中無法使用JTAG調試口對數字信號處理器(DSP)代碼進行在線升級的問題,對YModem數據傳輸協議及遠程加載基本原理進行簡要介紹。提出了一種基于YModem協議的極簡遠程加載實現方法,可以用最小的代碼量,利用串口對DSP代碼進行遠程升級,解決外場升級DSP的障礙。通過實驗證明了極簡遠程加載實現方法的完整性及可用性。

關鍵詞:YModem協議;遠程加載;數字信號處理器;Bootloader

中圖分類號:TP316文獻標志碼:A文章編號:1008-1739(2020)18-57-4

0引言

DSP是一種在數字信號處理技術基礎上發展起來的微處理器,因具有強大的數字信號處理能力而在各種測控終端中獲得廣泛應用,主要應用是實時快速地實現各種數字信號處理算法[1]。在DSP的開發設計過程中,一般采用JTAG口完成軟件調試及應用程序的加載固化。

隨著電子技術的發展和用戶需求的提升,對已投入使用的DSP設備的升級越來越頻繁,傳統的升級方法是取下設備通過JTAG仿真器在線更新程序[2]。該方式簡單方便,但當DSP安裝于密封、遠程及高空等難以拆卸的設備中時,就十分不便,因此開發高效便捷的遠程升級技術迫在眉睫。

較早的遠程加載方法一般不采用任何協議,通過Bootloader直接進行串口數據的接收及存儲,此類方法雖然簡單直接,但是一旦傳輸過程中出現誤碼,需要將全部數據重新傳輸一次,效率較低。基于高效且準確的遠程加載需求,提出一種基于YModem協議的極簡遠程加載實現方法,用最小的內存空間實現DSP應用程序的遠程加載更新,并成功進行了工程驗證。

1 YModem協議

XModem及YModem是應用十分廣泛的異步文件傳輸協議。其中,XModem協議結構簡單,但每包數據幀最長僅能傳輸128 Byte數據,效率較低;YModem是由Xmodem改進的一種穩定快速的傳輸協議,單包傳輸數據長度提升至1 024 Byte,傳輸效率更高且可以實現批量傳輸,因而應用更為廣泛。

YModem是一種半雙工協議,不能同時雙向收發控制信號,有助于控制流量、減少緩沖區超限問題。YModem是一種握手協議,發送之后需等待回應:發送方每發送一幀數據,都要等待接收方的確認應答,收到應答后再發送新的一幀數據。如果接收方由于某種原因未能正確接收到此幀數據,會向發送方發送重新傳輸數據幀的申請,則發送方會重新發送此幀數據,直到接收方正確接收。這種機制與CRC校驗共同保證了數據傳輸的準確性。同時,分包傳輸、分包校驗的傳輸機制,可以及時發現誤碼,及時重新傳輸出錯數據包,提高數據傳輸效率。

依據YModem協議,每一幀的發送數據由幀頭、數據段以及幀尾組成,具體格式如表1所示,其中數據段長度可以是128 Byte(幀頭為SOH),也可以是1 024 Byte(幀頭為STX),采用1 024 Byte數據一幀的傳輸方式,可以大大提高傳輸速度[3-4]。

YModem協議傳輸的完整握手流程如圖1所示。

YModem通信協議握手流程如下:

①接收方發送字符C通知發送方,啟動握手流程,進入等待SOH狀態,如果沒有回應,則重新開啟或超時退出;

②發送方開始時處于等待過程中,等待接收方的啟動信號C,收到接收方發送的字符C后,發送方發送幀頭為SOH的文件信息包,包含序號以及文件名、文件大小等信息,然后進入等待字符ACK狀態;

③接收方收到文件信息包,進行CRC校驗,如校驗成功,則發送ACK確認,發送方收到ACK后,進入等待文件傳輸開啟信號,即等待字符C狀態;如果CRC校驗失敗,則發送NAK字符,請求發送方重新發送此數據包;

④接收方發送字符C,通知發送方啟動文件發送,進入等待SOH或STX狀態;

⑤發送方接收到字符C后,進入正式文件發送流程,發送數據包,等待接收方回復ACK后繼續發送下一包;

⑥文件發送完畢后,發送方發出EOT結束信號,接收方回復ACK后,發送方發送以全0填充、序號為0的SOH數據包,接收方回復ACK,至此握手過程結束。

如上文所述,利用YModem協議完善的握手機制和出錯管理機制,引導程序可以準確無誤又快速地接收到包含應用程序的數據包。

2遠程加載基本原理

DSP遠程加載的實現共涉及三部分程序:引導程序(Bootloader)、應用程序以及上位機程序。其中,Bootloader和上位機程序是固定不變的,是遠程升級系統的主要組成部分,應用程序是DSP開發者編寫的用以完成指定功能的代碼,會隨應用需求的變化而變化。

2.1 Bootloader

Bootloader是提前固化在DSP指定空間、在DSP內核啟動前運行的一段程序,對應用程序編程用戶保護、不可被修改,主要作用有:

①初始化硬件設備及內存分配;

②與上位機進行數據交互,接收上位機發送的待升級程序固件與程序存儲地址等信息,并將固件燒錄至Flash指定地址;

③完成程序升級后,跳轉至應用程序。

Bootloader的功能相對簡單且固定,因而具有很好的通用性,易于移植。遠程升級的實質就是通過Bootloader來固化應用程序,不用改變DSP芯片的啟動方式,直接采用默認的片上Flash啟動方式即可。

2.2上位機程序

上位機程序的主要作用是對應用程序編譯生成的文件進行格式轉換、信息提取以及打包發送等功能[5-8]。

由DSP開發工具編譯生成的可執行文件地址不連續,且對象文件格式無法直接用于Flash燒寫,因而需要通過上位機程序將應用程序編譯生成的.out文件轉換成.hex文件,再將轉換后的.hex文件打包發送給Bootloader。

2.3遠程加載實現

遠程加載的工作流程如圖2所示。

①上位機程序對.out文件進行格式轉換和信息提取;

②Bootloader及上位機程序通過特定協議進行可燒錄的應用程序的數據傳輸;

③Bootloader將應用程序數據燒寫至Flash的指定區域,并跳轉至應用程序入口,啟動DSP。

3基于YModem協議的極簡遠程加載實現

3.1實現方法

提出一種基于YModem協議的極簡遠程加載實現方法,和普通遠程加載方法相比,本文方法主要有以下改進:

(1)數據傳輸協議的更新

使用YModem協議進行Bootloader與上位機軟件之間的數據傳輸,握手機制以及分包傳輸和分包校驗的操作流程,提高了數據傳輸的效率及準確率。

(2)Bootloader的優化

由于Bootloader與應用程序共同占用DSP內存空間,而DSP內存空間畢竟有限,因此Bootloader要設計的盡量小。

在Bootloader與上位機之間的數據交互過程中,如果將所有數據幀內的有效數據都存入寄存器中,待數據傳輸完成之后再一起進行Flash燒寫,那么勢必需要在Bootloader中開辟一個很大的存儲空間。本著節省內存空間的原則本例只開辟收、寫2個獨立的1 KB寄存器空間,一個寄存器用來存放當前收到的一幀1 KB數據內容;另一個寄存器存放待寫入Flash的數據。當收寄存器收到數據并校驗無誤后,將其寫入寫寄存器,同時清空收寄存器,用以繼續接收上位機軟件發送的數據;寫寄存器判斷有數據寫入后,開始向Flash寫入,具體實現流程如圖3所示。通過分析,以燒錄一個大小為1 MB的應用程序為例,此極簡加載方法可以節約DSP中原本為存儲數據而開辟的950 300 Byte的RAM內存空間。

3.2實現過程

經過以上改進,提出的基于YModem協議的極簡遠程加載實現方法可以在占用最少內存資源的前提下,實現較傳統遠程加載方法更高效更準確的傳輸。

SecureCRT是較為常用的上位機軟件,可實現XModem、YModem以及ZModem協議的數據傳輸,本例使用SecureCRT作為上位機軟件,以TI公司的OMPL138為硬件平臺,對提出的基于YModem協議的極簡遠程加載實現方法進行工程驗證。

利用上位機軟件SecureCRT向Bootloader發送.hex文件,Bootloader依據YModem協議校驗解析數據幀并存入寄存器,再將寄存器中的.hex文件燒錄至Flash中,即完成遠程加載。數據傳輸完成后SecureCRT應用界面如圖4所示,數據傳輸完成100%且0 Errors,表示數據傳輸全部完成且未出現傳輸錯誤,對以OMAPL138為核心的終端設備斷電重啟,軟件顯示已更新至新版本。至此,提出的基于YModem協議的極簡遠程加載實現方法已在硬件平臺上完成驗證。

4結束語

提出了一種基于YModem協議的極簡遠程加載實現方法,經工程驗證,此方法可以用最小的內存代價快速穩定地實現DSP應用程序的遠程加載。不僅如此,由于YModem協議規定發送方需要向接收方發送數據的文件名和大小,這就使得采用YModem協議進行的遠程加載還可以根據實際應用需求對本文提出的方法進行改進,如實現Flash分區存儲不同的應用程序,用戶可以根據需求選擇不同的應用程序運行。

參考文獻

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

[2]李無言.一步步寫嵌入式操作系統[M].北京:電子工業出版社,2011.

[3]吳兆芝.ARM平臺多進程微內核嵌入式操作系統Ymodem下載功能設計與實現[J].南京曉莊學院學報,2013,29(3): 79-83,89.

[4]戈潤棟,馬旭東.CAN總線分布式系統程序的以太網在線更新[J].工業控制計算機,2013,26(11):19-20,24.

[5]雷衛延,敖振浪,周欽強.基于STM32的在線應用編程(IAP)開發[J].電子測量技術,2015,38(5):62-66.

[6] MENG H,PAN L.Realization of Remote Update Technology for Embedded Equipment based onμC/OS-Ⅱ[J].Journal of Measurement Science and Instrumentation,2014(3):69-72.

[7]羅文,王莉娜,肖鯤.基于GPRS的嵌入式系統遠程監控和升級[J].電子技術應用,2010,36(5):159-162.

[8]吳佳敏.嵌入式遠程工業監控系統的終端設備軟件設計與實現[D].成都:電子科技大學,2010.

主站蜘蛛池模板: 尤物亚洲最大AV无码网站| 日本91在线| 伊人久久综在合线亚洲2019| 日本免费a视频| 亚洲天堂日本| 国产无码高清视频不卡| 亚洲天堂高清| 国产精品大尺度尺度视频| 欧美在线网| 丁香五月激情图片| 国产毛片久久国产| 国产精品999在线| 人妖无码第一页| 色天堂无毒不卡| 国产成人乱无码视频| 亚洲无限乱码| 国产成人久视频免费| 日韩 欧美 国产 精品 综合| 国产精品成人AⅤ在线一二三四| 欧美日韩福利| 国产亚洲精品无码专| 国语少妇高潮| 在线免费不卡视频| 久久久久中文字幕精品视频| 日韩在线1| 欧美日韩一区二区在线播放| 欧美 国产 人人视频| 91av国产在线| 一本一道波多野结衣av黑人在线| 午夜精品久久久久久久2023| 精品亚洲麻豆1区2区3区| 欧美日韩国产在线观看一区二区三区| 国产福利在线免费| 亚洲男人天堂2020| 国产精品无码AⅤ在线观看播放| 国产精品视频猛进猛出| 久久国产香蕉| 国产高清无码第一十页在线观看| 91精品专区国产盗摄| 亚洲国产成人久久77| 99re精彩视频| 精品视频一区二区观看| 国产成人精品高清在线| 亚洲浓毛av| 免费a级毛片18以上观看精品| 九色综合伊人久久富二代| 久久黄色影院| 亚洲第一天堂无码专区| 国产乱子伦精品视频| 无遮挡国产高潮视频免费观看| 国外欧美一区另类中文字幕| 欧美在线一级片| 欧美色香蕉| 亚洲一区二区三区中文字幕5566| 嫩草影院在线观看精品视频| 国产精品欧美在线观看| 免费无码又爽又刺激高| 久久综合一个色综合网| 五月婷婷精品| 一级成人a毛片免费播放| 99这里只有精品在线| 日本亚洲国产一区二区三区| 污污网站在线观看| 欧美成人日韩| 制服丝袜国产精品| 91激情视频| 无码日韩视频| 国产一区二区影院| 狠狠色婷婷丁香综合久久韩国| 国产精品.com| 国产成人高清精品免费| 国产高清免费午夜在线视频| 99在线国产| 麻豆精品在线| 欧美在线国产| 国产成人无码Av在线播放无广告| 91久久精品国产| 伊人久久福利中文字幕| 亚洲色图欧美| 亚洲无线一二三四区男男| 久久网综合| 99热这里只有精品免费|