在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM和GPRS相配合的軟件無線升級系統(tǒng)

            ARM和GPRS相配合的軟件無線升級系統(tǒng)

            作者: 時間:2013-11-12 來源:網(wǎng)絡(luò) 收藏

            int __main(void)
              ② 對片內(nèi)Flash進(jìn)行初始化操作。
            void FLASH_Init(void)
             ?、?從第二扇區(qū)算起,計算代碼需要的扇區(qū)數(shù)。
            u32 FLASH_SectorMask(vu32 Size)
             ?、?將新代碼需要的扇區(qū)去掉寫保護(hù),為扇區(qū)擦除做準(zhǔn)備。
            void FLASH_WritePrConfig(u32 Xsectors,F(xiàn)unctionalState NewState)
             ?、?將新代碼需要的扇區(qū)進(jìn)行擦除,為寫做準(zhǔn)備。
            void FLASH_SectorErase(u32 Xsectors)
             ?、?將新代碼寫入Flash扇區(qū)中。
            void FLASH_WordWrite(u32 XtargetAdd,u32 Xdata)

            2.2.2 終端應(yīng)用程序設(shè)計
              終端應(yīng)用程序設(shè)定的起始地址是STR710Z2T6的0x40004000處,并可占用之后的整個Flash空間。終端應(yīng)用程序不但完成日常各項工作任務(wù),而且還負(fù)責(zé)接收監(jiān)控中心服務(wù)器發(fā)送的應(yīng)用程序升級命令。當(dāng)收到升級命令后,終端回應(yīng)服務(wù)器此時若接收升級代碼,則應(yīng)用程序?qū)⑸壈凑諑姆绞酵ㄟ^模塊從服務(wù)器下載到終端,通過校驗后保存到終端外部Flash存儲器SST39VF1601中,下載成功后置位升級標(biāo)志和記錄升級包版本號以備引導(dǎo)程序升級。由于升級包的下載過程可看成是數(shù)據(jù)傳輸過程,應(yīng)用程序可在下載升級包的同時進(jìn)行其他任務(wù),且不影響終端的正常工作。當(dāng)終端應(yīng)用程序下載完升級包之后,應(yīng)用程序?qū)Ρ匾默F(xiàn)場進(jìn)行保存然后主動復(fù)位,微控制器啟動之后直接執(zhí)行引導(dǎo)程序,并進(jìn)行Flash編程。由于很多系統(tǒng)終端日常任務(wù)繁多,可通過程序中相應(yīng)的設(shè)置,使新代碼下載和Flash編程盡量選擇在終端可能空閑的時間段,從而盡可能地減少升級應(yīng)用程序?qū)K端正常工作的影響。
            3 通信協(xié)議的設(shè)計
              參照通信規(guī)約和已存在的無線配電監(jiān)控系統(tǒng)的協(xié)議,本文定義了3種類型的協(xié)議幀:服務(wù)器請求升級幀、升級代碼數(shù)據(jù)幀和終端回應(yīng)幀。
              協(xié)議幀公共數(shù)據(jù)段:

            ARM和GPRS相配合的軟件無線升級系統(tǒng)

            服務(wù)器請求升級幀幀格式如下:

            ARM和GPRS相配合的軟件無線升級系統(tǒng)

            升級代碼數(shù)據(jù)幀幀格式如下:

            ARM和GPRS相配合的軟件無線升級系統(tǒng)

            終端回應(yīng)幀幀格式如下:

            ARM和GPRS相配合的軟件無線升級系統(tǒng)

            通信幀部分?jǐn)?shù)據(jù)段說明:
             ?、?數(shù)據(jù)長度。表示數(shù)據(jù)域的字節(jié)數(shù)(由2字節(jié)構(gòu)成),為0時表示無數(shù)據(jù),其值為此數(shù)據(jù)段到校驗和之前的數(shù)據(jù)字節(jié)數(shù)之和。
             ?、?升級軟件版本號。無線監(jiān)控系統(tǒng)終端收到升級請求幀之后,將此數(shù)據(jù)段和其本身的軟件版本進(jìn)行比較。如果版本號小于將要升級的軟件版本,終端將回應(yīng)服務(wù)器同意升級,否則放棄升級。
             ?、?升級文件長度。用來判斷存儲空間夠不夠存放將要升級的文件,以及升級代碼是否傳輸完畢[4]。
            4 終端編程注意事項
             ?。?) 編程代碼大小。IAP編程是用戶的IAP代碼對片內(nèi)Flash存儲器進(jìn)行擦除/編程的過程。由于片內(nèi)Flash存儲空間的限制以及代碼存儲空間的限定,編程時不但需要控制IAP自身代碼量的大小,而且還要控制終端應(yīng)用程序代碼的大小,絕對不能夠超出所指定的存儲范圍。
             ?。?) 提高遠(yuǎn)程升級速度的措施。為了提高系統(tǒng)遠(yuǎn)程升級的速度,在代碼傳輸過程本文采取3種措施:
             ?、?數(shù)據(jù)壓縮。數(shù)據(jù)壓縮是解決由于數(shù)據(jù)大而導(dǎo)致整個下載過程時間長問題的最有效的辦法,本系統(tǒng)中服務(wù)器將升級代碼進(jìn)行壓縮,終端設(shè)備接收到之后進(jìn)行解壓、存儲。由于應(yīng)用程序的代碼滿足指令集的特征,所以壓縮效率較高。
              ② 應(yīng)用程序分塊加載。在日常系統(tǒng)維護(hù)中,無論對系統(tǒng)進(jìn)行升級或是修改程序中的“bug”,其實修改的只是程序中的一小部分,而大部分程序還保持原樣。因此,合理的方法是只把修改的代碼,而不是把整個二進(jìn)制文件下載到遠(yuǎn)程終端。具體的實現(xiàn)辦法是,建立分散文件,在其中按功能將應(yīng)用程序劃分為多個裝載區(qū),并為每個裝載區(qū)留有足夠大的空間,為以后的升級、修改做準(zhǔn)備。這種做法大大減小了數(shù)據(jù)傳輸量,提高了軟件升級速度。
              ③ 小數(shù)據(jù)塊傳輸。由于系統(tǒng)采用錯誤重傳機(jī)制,根據(jù)實際應(yīng)用經(jīng)驗,數(shù)據(jù)塊越大出現(xiàn)錯誤的機(jī)率就越大;同時,由于數(shù)據(jù)塊大,傳輸一幀的速率較低,雖然接收到的數(shù)據(jù)幀較大,但由于錯誤的機(jī)率和傳輸?shù)乃俾?,反而造成效率低下。采用小?shù)據(jù)塊傳輸,雖然一幀數(shù)據(jù)塊小,但彌補(bǔ)了上述不足。
             ?。?) 遠(yuǎn)程通信的誤碼處理。程序代碼傳輸過程中,終端校驗數(shù)據(jù)正確后存入SST39VF1601,檢驗錯誤時向服務(wù)器返回錯誤的編碼和幀序號并請求重發(fā),直到檢測到結(jié)束幀為止。服務(wù)器發(fā)送最后一幀時,如果該幀的數(shù)據(jù)長度不夠,用00填充直到滿足協(xié)議中規(guī)定的長度。對于數(shù)據(jù)傳輸過程中產(chǎn)生的誤碼,系統(tǒng)采用最有效的解決辦法是CRC循環(huán)冗余效驗和重傳機(jī)制。
             ?。?) 相同的存儲區(qū),不同的運(yùn)行區(qū)域。由于需要對Flash進(jìn)行編程,但是對Flash操作的代碼不能在Flash本身運(yùn)行,因此這部分代碼必須在內(nèi)部RAM中運(yùn)行??梢酝ㄟ^分散加載文件設(shè)置函數(shù)的運(yùn)行空間。
             ?。?) 用戶中斷。在系統(tǒng)中IAP程序燒寫在從0x00000000開始的兩個Flash扇區(qū)內(nèi),而用戶程序則是存儲在從0x40004000開始的Flash空間中。如果用戶程序產(chǎn)生中斷,那么內(nèi)核會讀取到IAP的向量表,導(dǎo)致程序跑飛。解決辦法是,在跳轉(zhuǎn)到用戶程序之前,IAP程序把用戶程序的向量表拷貝到片內(nèi)RAM中,然后將RAM重映射到0x00000000地址,最后進(jìn)行跳轉(zhuǎn),這樣就可以保證0x00000000地址有用戶程序的向量表。
              由于RAM的起始地址用來存放用戶程序的中斷向表,往其中寫入數(shù)據(jù)時,需保證這些向量表不被覆蓋,故IAP程序、用戶程序的RW base使用的是0x20000100[5]。
            結(jié)語
              本文利用微控制器和模塊,提出了一種解決無線監(jiān)控系統(tǒng)終端軟件升級和維護(hù)困難問題的方案。相信在未來通信方式更加先進(jìn)、微控制器性能更加優(yōu)越的基礎(chǔ)上,軟件無線升級技術(shù)的應(yīng)用會越來越廣泛。

            存儲器相關(guān)文章:存儲器原理


            晶振相關(guān)文章:晶振原理

            上一頁 1 2 下一頁

            關(guān)鍵詞: ARM GPRS 無線升級系統(tǒng)

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉