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

        ?

        一種基于Windows USB Mass Storage類(lèi)的信令和數(shù)據(jù)傳輸方式

        2022-07-21 06:09:54黃學(xué)達(dá)楊俊杰侯志鵬黃俞霖章世博
        物聯(lián)網(wǎng)技術(shù) 2022年7期
        關(guān)鍵詞:基本型下位命令

        黃學(xué)達(dá),楊俊杰,侯志鵬,黃俞霖,章世博

        (重慶郵電大學(xué) 自動(dòng)化學(xué)院,重慶 400065)

        0 引 言

        傳統(tǒng)USB Mass Storage類(lèi)的設(shè)備俗稱(chēng)U盤(pán),是即插即用裝置,使用現(xiàn)有的“標(biāo)準(zhǔn)”設(shè)備驅(qū)動(dòng)程序,無(wú)須安裝任何設(shè)備驅(qū)動(dòng)即可用于所有系統(tǒng)運(yùn)行。當(dāng)操作系統(tǒng)檢查到USB裝置插入時(shí),就會(huì)自動(dòng)詢(xún)問(wèn)該裝置相關(guān)參數(shù)以了解其能力和要求,并自動(dòng)將適合的驅(qū)動(dòng)程序加載到操作系統(tǒng)中,用戶(hù)就可以正常使用該設(shè)備。當(dāng)該設(shè)備從USB接口拔出時(shí),操作系統(tǒng)就會(huì)自動(dòng)停止該設(shè)備的使用并卸載其驅(qū)動(dòng)程序。USB裝置與其內(nèi)部存儲(chǔ)的軟件(固件)一起銷(xiāo)售,用于控制該裝置(即下位機(jī))的運(yùn)行,其一般采用通用的標(biāo)準(zhǔn)驅(qū)動(dòng)程序,只對(duì)PC端(上位機(jī))下發(fā)的讀取、寫(xiě)入、擦除等相關(guān)標(biāo)準(zhǔn)命令作出響應(yīng)。

        USB接口在PC及消費(fèi)電子等領(lǐng)域普及率高,因此該種傳輸方式應(yīng)用范圍很廣泛。但也存在以下缺點(diǎn):傳統(tǒng)USB Mass Storage類(lèi)設(shè)備只能滿(mǎn)足簡(jiǎn)單的數(shù)據(jù)傳輸需求,不能支持其他擴(kuò)展命令(如嵌入式調(diào)試設(shè)備常用的調(diào)試命令)傳輸?shù)裙δ埽辉跀?shù)據(jù)傳輸過(guò)程中如果出現(xiàn)意外中斷(如U盤(pán)意外復(fù)位、斷電等情況),數(shù)據(jù)傳輸命令在U盤(pán)重新連接后無(wú)法繼續(xù)執(zhí)行。

        4G、5G手機(jī)和相關(guān)終端模塊以及Cat1、eMTC、NB-IoT等通信終端在出廠前必須要對(duì)射頻參數(shù)進(jìn)行校準(zhǔn)、綜測(cè),射頻參數(shù)的校準(zhǔn)、綜測(cè)指標(biāo)主要有APC(自動(dòng)功率控制)、AGC(自動(dòng)增益控制)、AFC(自動(dòng)頻率控制)等,耗時(shí)大約2~3 min。通信終端校準(zhǔn)、綜測(cè)的硬件接口一般采用USB接口,使用夾具頂針的方式去接觸電路板上的測(cè)試點(diǎn),從而完成信號(hào)的連通。在實(shí)際的工廠校準(zhǔn)、綜測(cè)過(guò)程中若存在通信終端設(shè)備異常斷電或者USB松動(dòng),就會(huì)導(dǎo)致校準(zhǔn)、綜測(cè)失敗。為了提高效率,需要在USB接口重新插好后繼續(xù)從上次中斷的地方進(jìn)行射頻參數(shù)的校準(zhǔn)和綜測(cè)。

        1 異常掉電后重新上電執(zhí)行機(jī)制

        本文研究的主要目的是:針對(duì)下位機(jī)在未執(zhí)行上位機(jī)命令而掉電的情況,提供一種在下次上電時(shí)使其繼續(xù)執(zhí)行未完成操作的方案。

        USB Mass Storage設(shè)備采用FLASH進(jìn)行數(shù)據(jù)存儲(chǔ),F(xiàn)LASH具有在掉電后數(shù)據(jù)不會(huì)丟失的特點(diǎn)。通過(guò)上位機(jī)在USB Mass Storage設(shè)備中劃分出命令交互區(qū)等,供異常斷電恢復(fù)后去判斷是否需要繼續(xù)執(zhí)行上次未執(zhí)行完的操作。

        1.1 重新上電執(zhí)行方案

        本方案的主要思想是采用先存儲(chǔ)命令(含命令所需數(shù)據(jù))然后再執(zhí)行命令的方式。具體實(shí)施方案由在PC側(cè)運(yùn)行的上位機(jī)軟件部分和與之通過(guò)USB口連接且以Mass Storage類(lèi)枚舉到PC的下位機(jī)完成。在U盤(pán)中設(shè)置特定的命令和數(shù)據(jù)交互區(qū)(A區(qū)和B區(qū)),如圖1(基本型)和圖2(擴(kuò)展模式)所示,上位機(jī)發(fā)送給下位機(jī)的所有命令,包括標(biāo)準(zhǔn)的USB讀寫(xiě)命令以及擴(kuò)展命令,都使用標(biāo)準(zhǔn)USB寫(xiě)命令數(shù)據(jù)包發(fā)送到A區(qū),實(shí)際的命令作為數(shù)據(jù)封裝到USB標(biāo)準(zhǔn)數(shù)據(jù)包中;USB設(shè)備將接收到的包含命令的數(shù)據(jù)包寫(xiě)入A區(qū)指定地址,并定時(shí)查詢(xún)A區(qū)數(shù)據(jù),如果查詢(xún)到A區(qū)中存在命令,解析命令并執(zhí)行,完成后將A區(qū)中的命令改寫(xiě)為命令響應(yīng)。

        圖1 上下位機(jī)的命令和數(shù)據(jù)交互區(qū)分布圖(基本型)

        圖2 上下位機(jī)的命令和數(shù)據(jù)交互區(qū)分布圖(擴(kuò)展型)

        USB設(shè)備上電枚舉成功后,上位機(jī)讀取A區(qū)中的數(shù)據(jù),如果是響應(yīng)包,則發(fā)送新命令;如果不是響應(yīng)包,則等待USB設(shè)備執(zhí)行A區(qū)中的命令。將上位機(jī)給下位機(jī)的命令寫(xiě)入命令交互區(qū)的格式如圖3所示,而當(dāng)命令執(zhí)行完成后下位機(jī)寫(xiě)入命令交互區(qū)的格式如圖4所示,各個(gè)“保留區(qū)間”作為數(shù)據(jù)保護(hù)及今后功能擴(kuò)展使用;數(shù)據(jù)區(qū)格式如圖5所示。根據(jù)上述方式擴(kuò)展而來(lái)的衍生型多個(gè)命令/響應(yīng)包組合寫(xiě)入、響應(yīng)方式如圖6、圖7所示,對(duì)應(yīng)多個(gè)命令/響應(yīng)包的數(shù)據(jù)區(qū)格式如圖8所示。

        圖3 命令交互區(qū)(A區(qū))的命令包格式(基本型)

        圖4 命令交互區(qū)(A區(qū))的響應(yīng)包格式(基本型)

        圖5 數(shù)據(jù)區(qū)格式(基本型)

        圖6 命令交互區(qū)(A區(qū))的命令包格式(擴(kuò)展型)

        圖7 命令交互區(qū)(A區(qū))的響應(yīng)包格式(擴(kuò)展型)

        圖8 數(shù)據(jù)區(qū)格式(擴(kuò)展型)

        1.2 基本型實(shí)現(xiàn)方案

        完成整個(gè)功能時(shí),將用戶(hù)下發(fā)的各種操作轉(zhuǎn)換為下位機(jī)支持的對(duì)應(yīng)命令或命令集,同時(shí)對(duì)用戶(hù)的操作對(duì)象(一般是各種數(shù)據(jù))進(jìn)行拆包、分段等預(yù)處理操作;

        (3)命令包、數(shù)據(jù)包打包組裝單元:以規(guī)定方式將命令執(zhí)行碼、命令執(zhí)行起始地址、命令執(zhí)行長(zhǎng)度及數(shù)據(jù)文件分別打包成有效的命令包、數(shù)據(jù)包;

        (4)響應(yīng)包及響應(yīng)數(shù)據(jù)解析處理單元:將獲取到的響應(yīng)

        由于普通的Mass Storage類(lèi)設(shè)備只能對(duì)上位機(jī)(PC)的讀取、寫(xiě)入、擦除等操作命令進(jìn)行對(duì)應(yīng)命令響應(yīng),無(wú)法滿(mǎn)足對(duì)U盤(pán)約定偏移地址的命令交互區(qū)參數(shù)及數(shù)據(jù)交互區(qū)數(shù)據(jù)的讀/寫(xiě)操作要求,因此下位機(jī)需要額外使用本方案的功能支持模塊(軟件或硬件方式)來(lái)實(shí)現(xiàn)上述功能;同樣上位機(jī)需要運(yùn)行一個(gè)額外的軟件或軟/硬件模塊來(lái)支持該功能。如圖9所示為添加了上下位機(jī)功能支持模塊的結(jié)構(gòu)框圖。新增模塊的內(nèi)部各功能單元結(jié)構(gòu)框圖如圖10所示。

        圖9 本方案功能支持模塊的上下位機(jī)結(jié)構(gòu)框圖

        圖10 上下位機(jī)功能支持模塊的內(nèi)部子模塊框圖

        1.2.1 上位機(jī)功能支持模塊

        上位機(jī)功能支持模塊的功能如下:

        (1)界面顯示、用戶(hù)操作響應(yīng)單元:對(duì)用戶(hù)執(zhí)行的各種操作進(jìn)行響應(yīng),以及對(duì)命令執(zhí)行進(jìn)度、結(jié)果進(jìn)行顯示,同時(shí)也為各種設(shè)置選項(xiàng)提供輸入接口;

        (2)用戶(hù)操作命令或命令集轉(zhuǎn)換單元:當(dāng)單個(gè)命令無(wú)法信息按規(guī)定方式拆包、解析,判斷命令執(zhí)行的響應(yīng)結(jié)果,提取響應(yīng)數(shù)據(jù),并在需要的情況下對(duì)響應(yīng)數(shù)據(jù)重新組包、恢復(fù)成超大數(shù)據(jù)包傳回給上位機(jī);

        (5)命令數(shù)據(jù)緩存及執(zhí)行結(jié)果記錄單元:記錄當(dāng)前USB設(shè)備的ID號(hào)及其在命令執(zhí)行時(shí)緩存本條命令的命令包、數(shù)據(jù)包信息,并隨時(shí)記錄該命令的執(zhí)行情況,以便當(dāng)本條命令執(zhí)行失敗時(shí),上位機(jī)能夠重新下發(fā)該命令或完成上次操作未完成的響應(yīng)數(shù)據(jù)獲取工作;

        (6)A/B區(qū)數(shù)據(jù)讀寫(xiě)單元:完成對(duì)指定偏移地址的A/B區(qū)數(shù)據(jù)的讀寫(xiě)功能;

        (7)命令執(zhí)行流程維護(hù)單元:對(duì)以上單元的功能執(zhí)行情況進(jìn)行判斷維護(hù),判斷當(dāng)前命令是否執(zhí)行失敗、是否重新執(zhí)行當(dāng)前命令、是否需要提示用戶(hù)干預(yù)操作以及通過(guò)USB的ID判斷當(dāng)前USB設(shè)備是否有上次未完成的操作等。

        1.2.2 下位機(jī)功能支持模塊

        下位機(jī)功能支持模塊的功能如下:

        (1)A/B區(qū)數(shù)據(jù)讀寫(xiě)單元:完成對(duì)指定偏移地址的A/B區(qū)數(shù)據(jù)的讀(獲取命令包)/寫(xiě)(寫(xiě)入響應(yīng)包)功能,特別是以固定時(shí)間間隔輪詢(xún)A區(qū)數(shù)據(jù),以便隨時(shí)獲取上位機(jī)下發(fā)的命令;

        (2)命令包、數(shù)據(jù)包解析及有效性判斷單元:以規(guī)定方式將命令包、數(shù)據(jù)包進(jìn)行解析,并判斷其有效性及是否支持該命令等;

        (3)命令執(zhí)行單元:將命令包里的命令執(zhí)行碼轉(zhuǎn)換為對(duì)應(yīng)的一系列下位機(jī)操作過(guò)程,并使用數(shù)據(jù)包里的數(shù)據(jù)來(lái)具體執(zhí)行該操作;

        (4)響應(yīng)包及響應(yīng)數(shù)據(jù)組裝單元:將由命令執(zhí)行單元執(zhí)行后的結(jié)果以執(zhí)行響應(yīng)碼及響應(yīng)數(shù)據(jù)的方式分別打包成命令執(zhí)行響應(yīng)包及響應(yīng)數(shù)據(jù)包以便向A/B區(qū)寫(xiě)入。

        2 具體實(shí)施方式

        上位機(jī)和下位機(jī)的具體實(shí)現(xiàn)以基本型命令執(zhí)行過(guò)程為例進(jìn)行詳細(xì)描述。

        2.1 基本型上位機(jī)執(zhí)行過(guò)程

        上位機(jī)下發(fā)命令執(zhí)行流程如圖11所示,上位機(jī)在下發(fā)新命令之前會(huì)先通過(guò)USB的ID號(hào)判斷USB設(shè)備是否有上次未執(zhí)行完的操作,如果沒(méi)有,則按照正常流程分別根據(jù)用戶(hù)的操作情況生成命令執(zhí)行碼及對(duì)應(yīng)數(shù)據(jù),再按照規(guī)定組裝成命令包、數(shù)據(jù)包,并經(jīng)過(guò)上位機(jī)緩存記錄后分別寫(xiě)入對(duì)應(yīng)的A/B區(qū),即完成本條命令的下發(fā)過(guò)程。在命令下發(fā)后,上位機(jī)就不停地查詢(xún)A區(qū)數(shù)據(jù),以判斷是否有下位機(jī)執(zhí)行完成的響應(yīng)包寫(xiě)回;在規(guī)定時(shí)間內(nèi)獲取響應(yīng)包及響應(yīng)數(shù)據(jù)后,上位機(jī)就進(jìn)行解包及命令執(zhí)行結(jié)果判斷等工作。至此本條命令交互流程就完成了,上位機(jī)可以進(jìn)入下一條命令的下發(fā)交互流程。如果以上任意流程執(zhí)行失敗或下位機(jī)寫(xiě)回響應(yīng)包超時(shí),該條命令將會(huì)標(biāo)記為執(zhí)行失敗,可以根據(jù)設(shè)置情況重新下發(fā)命令、暫停命令執(zhí)行流程或要求用戶(hù)干預(yù)。

        圖11 上位機(jī)下發(fā)命令執(zhí)行流程

        如果當(dāng)前USB設(shè)備的上次命令未執(zhí)行完成,上位機(jī)會(huì)讀取下位機(jī)A區(qū)的數(shù)據(jù),并判斷其是否為上次命令的正常響應(yīng)包,如果是,就將該響應(yīng)包及響應(yīng)數(shù)據(jù)獲取回來(lái),以便完成上次遺留的命令交互過(guò)程,然后再進(jìn)行新命令的下發(fā)操作;如果不是響應(yīng)包而是命令包,說(shuō)明上次命令的響應(yīng)包還未被下位機(jī)寫(xiě)入,在判斷A/B區(qū)數(shù)據(jù)與緩存數(shù)據(jù)一致的情況下,上位機(jī)在等待下位機(jī)將該命令執(zhí)行完并寫(xiě)入響應(yīng)包、響應(yīng)數(shù)據(jù)包后,再獲取響應(yīng)數(shù)據(jù),以便完成上次未完成的命令,然后再發(fā)新命令。如果上位機(jī)發(fā)現(xiàn)A/B區(qū)數(shù)據(jù)與緩存數(shù)據(jù)不一致,將重寫(xiě)A/B區(qū)以便上次的命令能夠正確執(zhí)行,再進(jìn)行上述操作。

        2.2 基本型下位機(jī)執(zhí)行過(guò)程

        下位機(jī)模塊對(duì)于本方案的基本型命令執(zhí)行流程如圖12所示。下位機(jī)均為以一定時(shí)間間隔輪詢(xún)A、B區(qū)的信息,以便及時(shí)判斷上位機(jī)是否有新命令下發(fā)。在獲取到上位機(jī)寫(xiě)入的命令包后,確認(rèn)命令包及數(shù)據(jù)包有效的情況下就會(huì)加載數(shù)據(jù)并執(zhí)行該命令執(zhí)行碼對(duì)應(yīng)的操作,再把執(zhí)行結(jié)果(響應(yīng)包及響應(yīng)數(shù)據(jù))寫(xiě)入指定地址中,從而完成一個(gè)命令碼的執(zhí)行過(guò)程。

        圖12 下位機(jī)接收命令并執(zhí)行的流程

        如果下位機(jī)檢查到A/B區(qū)數(shù)據(jù)不是合法的命令/數(shù)據(jù)包,可能為上次命令執(zhí)行后寫(xiě)入的正常響應(yīng)包,或被破壞的命令/數(shù)據(jù)包,就不會(huì)執(zhí)行任何操作,會(huì)等待一定時(shí)間再查詢(xún)A/B區(qū)數(shù)據(jù),以便讓上位機(jī)讀取響應(yīng)數(shù)據(jù)或在上位機(jī)重新下發(fā)正確的命令和數(shù)據(jù)包后才繼續(xù)命令執(zhí)行過(guò)程。

        按照上述方式,即使在下位機(jī)出現(xiàn)異常掉電、干擾等復(fù)位情況,也會(huì)在上電完成PC的枚舉識(shí)別后,先檢查A區(qū)是否存在有效的命令包,如果存在,則說(shuō)明上次斷電前該命令未執(zhí)行完成,下位機(jī)就會(huì)重新執(zhí)行該命令,并會(huì)用執(zhí)行完成后的響應(yīng)包及數(shù)據(jù)覆蓋寫(xiě)入到對(duì)應(yīng)的A區(qū)、B區(qū),以標(biāo)志該命令執(zhí)行完成。因此,本套機(jī)制對(duì)于異常掉電后的上電狀態(tài)仍舊適用。

        2.3 擴(kuò)展型執(zhí)行過(guò)程

        本方案擴(kuò)展型的命令執(zhí)行過(guò)程與基本型的基本原理一致,只不過(guò)上位機(jī)可以一次性下發(fā)多個(gè)命令及對(duì)應(yīng)數(shù)據(jù),而下位機(jī)則可以依次執(zhí)行對(duì)應(yīng)命令并寫(xiě)回對(duì)應(yīng)命令的命令執(zhí)行響應(yīng)包及響應(yīng)數(shù)據(jù)包執(zhí)行結(jié)果。根據(jù)實(shí)際使用需求可以每執(zhí)行完成一步就寫(xiě)回該步的執(zhí)行結(jié)果,或整個(gè)命令集執(zhí)行完成后再統(tǒng)一把每步的響應(yīng)寫(xiě)入對(duì)應(yīng)位置,確保了需要多次命令操作才能夠執(zhí)行完成某一功能的命令集合在掉電、異常重啟等情況下的執(zhí)行有效性。

        對(duì)于標(biāo)準(zhǔn)命令,將其含有命令、數(shù)據(jù)、校驗(yàn)等信息的整個(gè)標(biāo)準(zhǔn)命令包作為數(shù)據(jù)包發(fā)送到B區(qū),然后發(fā)送一條擴(kuò)展命令到A區(qū),標(biāo)示該B區(qū)的數(shù)據(jù)為標(biāo)準(zhǔn)命令包,USB設(shè)備解析到該擴(kuò)展命令后,即可從B區(qū)完整地取出該標(biāo)準(zhǔn)命令包,再按原有的標(biāo)準(zhǔn)命令執(zhí)行功能執(zhí)行該命令。

        3 結(jié) 語(yǔ)

        本文實(shí)現(xiàn)了一種確保下位機(jī)在未執(zhí)行上位機(jī)命令而掉電后,仍舊能夠在下次上電繼續(xù)執(zhí)行未完成操作的方案。設(shè)計(jì)方案覆蓋了基本型和擴(kuò)展型兩種操作方式,對(duì)命令包格式和響應(yīng)包格式進(jìn)行了相應(yīng)的描述。本方案可以確保Mass Storage類(lèi)下位機(jī)對(duì)各類(lèi)命令執(zhí)行的可靠性,即使在掉電或受異常干擾中斷命令執(zhí)行后也能夠在下次上電繼續(xù)執(zhí)行未完成命令,特別適合數(shù)據(jù)操作要求高、傳輸量大、USB連接不可靠的場(chǎng)合。

        在國(guó)內(nèi)某手機(jī)芯片廠家的Cat1模塊實(shí)際生產(chǎn)射頻參數(shù)的校準(zhǔn)、綜測(cè)中,采用了本文的技術(shù)方案后,因夾具或者工人操作導(dǎo)致的USB Mass Storage類(lèi)設(shè)備異常斷電并重新上電后,可以繼續(xù)在上次中斷的地方進(jìn)行校準(zhǔn)、綜測(cè),而不用重新開(kāi)始,大大節(jié)約了繼續(xù)校準(zhǔn)、綜測(cè)的時(shí)間,提高工作效率。

        本文的技術(shù)方案不但可以用于通信終端的射頻參數(shù)校準(zhǔn)、綜測(cè)環(huán)節(jié),還可以運(yùn)用于任何有如下要求的Mass Storage類(lèi)設(shè)備:當(dāng)遇到異常斷電并重新上電后需要繼續(xù)執(zhí)行上次中斷地方的程序。

        猜你喜歡
        基本型下位命令
        只聽(tīng)主人的命令
        2019年9月基本型乘用車(chē)(轎車(chē))生產(chǎn)匯總表
        2019年3月基本型乘用車(chē)(轎車(chē))銷(xiāo)售匯總表
        2019年1月基本型乘用車(chē)(轎車(chē))銷(xiāo)售匯總表
        發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
        移防命令下達(dá)后
        景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        這是人民的命令
        CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
        国产偷国产偷亚洲清高| 一边摸一边做爽的视频17国产| 国产午夜手机精彩视频| 亚洲av片不卡无码久久| 色婷婷久久免费网站| 亚洲av色香蕉一区二区三区潮| 免费大片黄国产在线观看| 亚洲国产av导航第一福利网| 久久久亚洲av成人网站| ā片在线观看免费观看| 久草国产视频| 伊人久久大香线蕉综合av| 欲女在线一区二区三区| 国产激情久久久久影院老熟女| 精品国产国产AV一区二区| 国产精品三级国产精品高| 日本强伦姧人妻一区二区| 国产精品沙发午睡系列990531| 亚洲国产香蕉视频欧美| 日韩一区二区中文天堂| 欧美人与动性xxxxx杂性| 亚洲av无码一区二区乱子伦as | 亚洲aⅴ天堂av天堂无码麻豆| 野外三级国产在线观看| 亚洲女同性恋第二区av| 美女下蹲露大唇无遮挡| 久久精品国产亚洲av香蕉| 亚洲另类自拍丝袜第五页| 欧美片欧美日韩国产综合片| 精品露脸熟女区一粉嫩av | 色偷偷av亚洲男人的天堂| 无码人妻专区一区二区三区| 一区二区三区四区草逼福利视频 | 日本一二三区免费在线| 四虎国产精品永久在线国在线| 中文字幕在线日韩| 国产女主播福利一区二区| 亚洲午夜成人精品无码色欲| 欧美日韩亚洲精品瑜伽裤| 日韩av中文字幕亚洲天| 国产成人av无码精品|