亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于YModem協(xié)議的極簡遠程加載實現(xiàn)方法

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

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

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

        關(guān)鍵詞:YModem協(xié)議;遠程加載;數(shù)字信號處理器;Bootloader

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

        0引言

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

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

        較早的遠程加載方法一般不采用任何協(xié)議,通過Bootloader直接進行串口數(shù)據(jù)的接收及存儲,此類方法雖然簡單直接,但是一旦傳輸過程中出現(xiàn)誤碼,需要將全部數(shù)據(jù)重新傳輸一次,效率較低?;诟咝覝蚀_的遠程加載需求,提出一種基于YModem協(xié)議的極簡遠程加載實現(xiàn)方法,用最小的內(nèi)存空間實現(xiàn)DSP應(yīng)用程序的遠程加載更新,并成功進行了工程驗證。

        1 YModem協(xié)議

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

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

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

        YModem協(xié)議傳輸?shù)耐暾帐至鞒倘鐖D1所示。

        YModem通信協(xié)議握手流程如下:

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

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

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

        ④接收方發(fā)送字符C,通知發(fā)送方啟動文件發(fā)送,進入等待SOH或STX狀態(tài);

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

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

        如上文所述,利用YModem協(xié)議完善的握手機制和出錯管理機制,引導(dǎo)程序可以準確無誤又快速地接收到包含應(yīng)用程序的數(shù)據(jù)包。

        2遠程加載基本原理

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

        2.1 Bootloader

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

        ①初始化硬件設(shè)備及內(nèi)存分配;

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

        ③完成程序升級后,跳轉(zhuǎn)至應(yīng)用程序。

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

        2.2上位機程序

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

        由DSP開發(fā)工具編譯生成的可執(zhí)行文件地址不連續(xù),且對象文件格式無法直接用于Flash燒寫,因而需要通過上位機程序?qū)?yīng)用程序編譯生成的.out文件轉(zhuǎn)換成.hex文件,再將轉(zhuǎn)換后的.hex文件打包發(fā)送給Bootloader。

        2.3遠程加載實現(xiàn)

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

        ①上位機程序?qū)?out文件進行格式轉(zhuǎn)換和信息提??;

        ②Bootloader及上位機程序通過特定協(xié)議進行可燒錄的應(yīng)用程序的數(shù)據(jù)傳輸;

        ③Bootloader將應(yīng)用程序數(shù)據(jù)燒寫至Flash的指定區(qū)域,并跳轉(zhuǎn)至應(yīng)用程序入口,啟動DSP。

        3基于YModem協(xié)議的極簡遠程加載實現(xiàn)

        3.1實現(xiàn)方法

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

        (1)數(shù)據(jù)傳輸協(xié)議的更新

        使用YModem協(xié)議進行Bootloader與上位機軟件之間的數(shù)據(jù)傳輸,握手機制以及分包傳輸和分包校驗的操作流程,提高了數(shù)據(jù)傳輸?shù)男始皽蚀_率。

        (2)Bootloader的優(yōu)化

        由于Bootloader與應(yīng)用程序共同占用DSP內(nèi)存空間,而DSP內(nèi)存空間畢竟有限,因此Bootloader要設(shè)計的盡量小。

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

        3.2實現(xiàn)過程

        經(jīng)過以上改進,提出的基于YModem協(xié)議的極簡遠程加載實現(xiàn)方法可以在占用最少內(nèi)存資源的前提下,實現(xiàn)較傳統(tǒng)遠程加載方法更高效更準確的傳輸。

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

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

        4結(jié)束語

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

        參考文獻

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

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

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

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

        [5]雷衛(wèi)延,敖振浪,周欽強.基于STM32的在線應(yīng)用編程(IAP)開發(fā)[J].電子測量技術(shù),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的嵌入式系統(tǒng)遠程監(jiān)控和升級[J].電子技術(shù)應(yīng)用,2010,36(5):159-162.

        [8]吳佳敏.嵌入式遠程工業(yè)監(jiān)控系統(tǒng)的終端設(shè)備軟件設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2010.

        中文字幕一区二区va| 四虎影视免费永久在线观看| 水蜜桃无码视频在线观看| 一本无码人妻在中文字幕| 久久婷婷免费综合色啪| 国产成人av三级三级三级在线| 人妻少妇进入猛烈时中文字幕| 极品白嫩的小少妇| www国产精品内射熟女| 久久中文字幕亚洲精品最新| 日本免费a一区二区三区| 自拍视频在线观看首页国产| 日韩日韩日韩日韩日韩| 亚洲av永久无码精品国产精品| 在线亚洲+欧美+日本专区| 国产成版人性视频免费版| 亚洲最新精品一区二区| 成年女人a级毛片免费观看| 色视频www在线播放国产人成 | 国产av在线观看91| 午夜国产视频一区二区三区| 亚洲精品www久久久久久| 狠狠色狠狠色综合日日不卡| 久国产精品久久精品国产四虎| 日本一区二区三区激视频| 亚洲国产中文字幕视频| 色avav色av爱avav亚洲色拍| 亚洲AⅤ无码日韩AV中文AV伦| 亚洲精品区二区三区蜜桃| 日本在线观看不卡一区二区| 亚洲成av人在线播放无码 | 日韩一区二区肥| 亚洲中文字幕不卡一区二区三区| 亚洲97成人在线视频| 久久久久亚洲精品无码网址蜜桃| 国产精品内射后入合集| 日韩av一区在线播放| 国产成人综合精品一区二区| 九色综合九色综合色鬼| 国模无码视频一区| 亚洲av五月天天堂网|