熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

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

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

作者: 時間:2013-11-12 來源:網絡 收藏

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

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

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

服務器請求升級幀幀格式如下:

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

升級代碼數據幀幀格式如下:

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

終端回應幀幀格式如下:

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

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

存儲器相關文章:存儲器原理


晶振相關文章:晶振原理

上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉