国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于SCI通訊的軟件加載及校驗(yàn)方法

2021-06-16 05:29張寶升王超楊恒輝
電子制作 2021年4期
關(guān)鍵詞:校驗(yàn)數(shù)據(jù)包合法

張寶升,王超,楊恒輝

(中國航空工業(yè)集團(tuán)公司西安航空計(jì)算技術(shù)研究所,陜西西安,710065)

0 引言

本文設(shè)計(jì)了一種基于SCI通訊的軟件加載及校驗(yàn)方法,在加載/校驗(yàn)過程中對每一包數(shù)據(jù)的加載/校驗(yàn)地址都進(jìn)行了合法性判斷,保證了加載/校驗(yàn)的正確性;并且采用逐字校對的方法進(jìn)行校驗(yàn),防止了“單粒子翻轉(zhuǎn)”效應(yīng)和加載地址錯(cuò)誤導(dǎo)致的產(chǎn)品工作異常。

1 SCI通訊驅(qū)動設(shè)計(jì)

■1.1 通訊協(xié)議

本系統(tǒng)所使用的通訊協(xié)議見圖1。其中S0為開始數(shù)據(jù)包,S2為加載/校驗(yàn)數(shù)據(jù)包,S5為結(jié)束數(shù)據(jù)包。

圖1 通訊協(xié)議[1]

開始數(shù)據(jù)包表示“通訊開始”,接收數(shù)據(jù)可設(shè)置為固定字符。

加載/校驗(yàn)數(shù)據(jù)包的接收數(shù)據(jù)包括加載/校驗(yàn)地址和數(shù)據(jù)。

結(jié)束數(shù)據(jù)包的接收數(shù)據(jù)可設(shè)置為接收到的加載/校驗(yàn)數(shù)據(jù)包的總包數(shù)。

■1.2 SCI接收處理

SCI接收處理的主要功能是接收上位機(jī)發(fā)送過來的數(shù)據(jù)包并進(jìn)行合法性檢查,如果合法,則將接收到的數(shù)據(jù)包進(jìn)行轉(zhuǎn)換保存。在接收數(shù)據(jù)時(shí)可設(shè)置計(jì)數(shù)器,對接收到的數(shù)據(jù)進(jìn)行計(jì)數(shù)。

當(dāng)以下條件都滿足時(shí),則判斷接收到的數(shù)據(jù)包合法。

a.第0個(gè)字節(jié)為'S',且第1個(gè)字節(jié)為'0'、'2'或'5'[2]。

b.數(shù)據(jù)長度在合法范圍內(nèi)。

c.數(shù)據(jù)長度與計(jì)數(shù)器的計(jì)數(shù)值一致。

d.SCI狀態(tài)寄存器不報(bào)錯(cuò)。

■1.3 數(shù)據(jù)轉(zhuǎn)換保存

數(shù)據(jù)轉(zhuǎn)換處理的主要功能是將SCI通訊接收到的合法數(shù)據(jù)包進(jìn)行ASCII碼到16進(jìn)制機(jī)器碼的轉(zhuǎn)換,并將轉(zhuǎn)換后的數(shù)據(jù)保存到加載/校驗(yàn)數(shù)據(jù)緩沖區(qū)中。

加載/校驗(yàn)數(shù)據(jù)緩沖區(qū)是一個(gè)類型為字,長度可設(shè)置的數(shù)組。當(dāng)數(shù)據(jù)轉(zhuǎn)換保存完成后,若加載/校驗(yàn)數(shù)據(jù)緩沖區(qū)未滿,則不進(jìn)行加載/校驗(yàn),繼續(xù)接收下一包數(shù)據(jù)并轉(zhuǎn)換保存,直到加載/校驗(yàn)數(shù)據(jù)緩沖區(qū)滿為止。

2 軟件加載設(shè)計(jì)

本方案的軟件加載流程圖如圖2所示。

圖2 軟件加載流程圖

在加載開始前,上位機(jī)會發(fā)送開始數(shù)據(jù)包,加載設(shè)備若接收到正確的開始數(shù)據(jù)包,則會給上位機(jī)發(fā)送應(yīng)答信號,可繼續(xù)加載軟件,否則停止加載并報(bào)故障。

在加載過程中,為滿足軟件的模塊化加載需求,設(shè)計(jì)了軟件識別信息,通過軟件識別信息確定加載地址范圍,以此判斷加載數(shù)據(jù)包中的加載起始地址是否合法。若合法,則繼續(xù)加載;若不合法,則停止加載并報(bào)故障。

在加載完成后,上位機(jī)會發(fā)送結(jié)束數(shù)據(jù)包,軟件讀取結(jié)束數(shù)據(jù)包中的總包數(shù),并與接收到的加載數(shù)據(jù)包數(shù)進(jìn)行比較,若一致則判定加載成功,否則會報(bào)故障。

關(guān)于故障信息和提示信息,如下設(shè)計(jì):

a.未接收到開始數(shù)據(jù)包:當(dāng)軟件開始加載時(shí),未在規(guī)定的時(shí)間內(nèi)接收到開始數(shù)據(jù)包,提示此故障。

b.錯(cuò)誤的開始數(shù)據(jù)包:當(dāng)接收到的開始數(shù)據(jù)包與期望序列不符時(shí)提示此故障。

c.數(shù)據(jù)傳輸錯(cuò)誤:當(dāng)接收到的加載數(shù)據(jù)為非十六進(jìn)制的非法字符時(shí)提示此故障。

d.地址范圍越界:當(dāng)加載數(shù)據(jù)包中的加載地址超范圍時(shí)提示此故障。

e.校驗(yàn)錯(cuò)誤:當(dāng)接收到數(shù)據(jù)包中的校驗(yàn)數(shù)據(jù)與計(jì)算的校驗(yàn)和不一致時(shí)提示此故障。

f. flash存儲器被鎖:當(dāng) flash存儲器的寫允許信號未被激活時(shí)提示此故障。

g.加載錯(cuò)誤:當(dāng)從Flash存儲器回讀到的加載數(shù)據(jù)有錯(cuò)誤時(shí)提示此故障。

h.未接收到結(jié)束數(shù)據(jù)包:當(dāng)軟件加載結(jié)束時(shí),未在規(guī)定的時(shí)間內(nèi)接收到結(jié)束數(shù)據(jù)包,提示此故障。

i.軟件加載成功:當(dāng)軟件加載完成,且未報(bào)任何故障時(shí),提示此成功信息。

3 軟件校驗(yàn)設(shè)計(jì)

大部分的軟件校驗(yàn)方法是計(jì)算軟件的校驗(yàn)和,并和固化的校驗(yàn)和比較,若一致則校驗(yàn)正確,否則校驗(yàn)錯(cuò)誤。當(dāng)“單粒子翻轉(zhuǎn)”效應(yīng)導(dǎo)致偶數(shù)個(gè)二進(jìn)制位發(fā)生翻轉(zhuǎn)時(shí),該校驗(yàn)方法就不能校驗(yàn)出軟件錯(cuò)誤,致使軟件繼續(xù)往下執(zhí)行,導(dǎo)致產(chǎn)品工作異常。

另外,當(dāng)軟件加載到錯(cuò)誤的地址時(shí),該校驗(yàn)方法也可能校驗(yàn)不出錯(cuò)誤,比如某段代碼的正確的地址為0x20000~0x20021,如圖3所示。假設(shè)在加載過程中發(fā)生錯(cuò)誤,誤加載到地址0x20040~0x20061中,如圖4所示,其它代碼均一致。這種錯(cuò)誤只比較校驗(yàn)和是檢查不出來的,只有用本方案的校驗(yàn)方法才能檢查出來。

圖3 地址正確的代碼

圖4 地址錯(cuò)誤的代碼

圖5 軟件校驗(yàn)流程圖

本方案設(shè)計(jì)的軟件校驗(yàn)方法為:通過SCI接口接收上位機(jī)發(fā)送的“S數(shù)據(jù)包”,然后解析,解析完成后和對應(yīng)地址的代碼按字進(jìn)行校對,直到將所有代碼校對完。校對完成后若全部一致則校驗(yàn)正確,否則校驗(yàn)錯(cuò)誤。本方案的軟件校驗(yàn)流程圖如圖5所示。

4 結(jié)束語

本方案在加載/校驗(yàn)過程中對每一包數(shù)據(jù)的加載/校驗(yàn)地址都進(jìn)行了合法性判斷,保證了加載/校驗(yàn)的正確性;并且采用逐字校對的方法進(jìn)行校驗(yàn),防止了“單粒子翻轉(zhuǎn)”效應(yīng)和加載地址錯(cuò)誤導(dǎo)致的產(chǎn)品工作異常。但由于要進(jìn)行數(shù)據(jù)合法性檢查和轉(zhuǎn)換,會導(dǎo)致時(shí)間較長,若不考慮時(shí)間因素,本方案不失為一種穩(wěn)定可靠的軟件加載/校驗(yàn)方案。

猜你喜歡
校驗(yàn)數(shù)據(jù)包合法
復(fù)雜多耦合仿真模型校驗(yàn)工具研究
使用Excel朗讀功能校驗(yàn)工作表中的數(shù)據(jù)
二維隱蔽時(shí)間信道構(gòu)建的研究*
電能表在線不停電校驗(yàn)技術(shù)
西班牙推動廢除合法賣淫
C#串口高效可靠的接收方案設(shè)計(jì)
精通文件校驗(yàn)的“門道”
網(wǎng)絡(luò)數(shù)據(jù)包的抓取與識別
報(bào)告
謹(jǐn)防“合法”干預(yù)司法