999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式終端IAP斷點續傳的研究與實現

2014-09-25 03:05:38朱孟江聶云杰
單片機與嵌入式系統應用 2014年1期
關鍵詞:程序

朱孟江,聶云杰

(南京南瑞集團公司,南京211100)

引 言

在線應用編程(In-Application Programming,IAP)技術是用戶自己的程序在運行過程中對User Flash的部分區域進行燒寫,目的是為了在產品發布后方便地通過服務通信端口對產品中的固件程序進行更新升級。

目前電力市場的電能數據采集終端、集中抄表終端等設備之間通信都是通過GPRS,在一些偏遠或者信號覆蓋較少地區GPRS存在一定的不穩定性,會出現數據傳輸中斷等現象。傳統IAP方式沒有考慮傳輸中斷和傳輸誤碼等問題,采取傳統方式對設備進行升級,如果升級過程中出現中斷,不僅導致APP程序區遭到破壞,還會因為升級中斷而再次重復升級,產生大量GPRS流量,因此急需一種行之有效的方法來解決這類問題。

本文將以ST公司的STM32F103RBT6為平臺,闡述IAP斷點續傳的方案及其優化。該方案解決了升級過程中意外中斷、遠程升級數據傳輸誤碼等關鍵性技術問題,保證了待升級終端內部應用程序的正確運行。該方案方便快捷,避免了傳統應用程序升級所帶來的復雜繁瑣過程,節約了大量人力資源,已在電力集抄系統中得到廣泛的應用。

1 IAP原理

1.1 STM32F103RBT6芯片簡介[1]

STM32F103RBT6是一款以Cortex-M3為內核的32位CPU,帶有20KB的靜態RAM以及128KB的Flash存儲器,最高主頻可達72MHz,外部擁有豐富的外設資源和通信端口,為在線升級端口提供更多選擇。

1.2 傳統IAP編程原理

對MCU而言,其程序都是一系列二進制代碼,并存儲在Flash空間。當MCU上電之后,內核把存儲在Flash內部的數據映射到RAM空間執行。因此在線編程可以看作是MCU對Flash空間的數據進行讀/寫操作。

傳統IAP原理是在用戶程序(APP)運行過程中,當接收到升級的命令后,把用戶數據保存到EEPROM或上傳到主站,然后跳轉到升級區,對APP程序區進行升級,當程序升級完畢,再跳轉到APP區執行APP程序。正常情況下,這種升級方法沒有問題;但是當升級過程中出現中斷,則整個APP數據區被破壞,即使下次升級成功,中間也會出現一段空白期。在電力儀表中,這種空白期將產生很大的影響,不僅丟失大量電能表數據,還會對用戶產生一系列的影響。

傳統升級流程圖如圖1所示。

1.3 IAP斷點續傳原理

斷點續傳能夠很好地解決傳統升級方式的不足,該方法主要原理是把Flash分成不同區域,每個區域存儲不同的數據或者用戶程序。以STM32F103RBT6為例,把內部Flash分成4個區域,如表1[2]所列。

圖1 傳統IAP流程圖

表1 STM32RBT6內部Flash區域劃分

第1個區域為IAP斷點續傳程序區,當終端上電或接收到升級命令時,程序指針跳轉到0x08000000處開始執行,等待接收升級數據包;第2個區域存儲一些升級相關的信息,每個信息表示上一次升級的狀態,以結構體形式存放。如:

第3和第4個區域分別存儲的是低區用戶程序和高區用戶程序。這樣做的目的是當升級其中一個用戶程序時候,即使升級被中斷,也可以到另外一個用戶區去執行相應用戶程序,保證用戶數據能夠得到及時有效處理,該方法在電力集抄系統中顯得尤為重要。假如某次系統升級被破壞,還可以運行原有的程序,繼續電能量的采集。但是采用傳統方式升級系統,假如升級過程被中斷,就會導致整個終端系統崩潰,不僅造成國家大量電能量的流失,而且會影響用戶的日常生活。

斷點續傳原理流程圖如圖2所示。

2 程序設計

2.1 中斷向量表設置

中斷向量表關系到終端的穩定運行,正常情況下終端設備復位后,設備程序指針自動指向0x00000004處,但是我們修改了用戶程序的起始地址,因此要相應地把中斷向量表的起始地址進行偏移。以低區用戶程序為例,

2.2 通信協議

這里用串口對終端設備進行升級,協議幀結構如下:

圖2 斷點續傳流程圖

報文頭設備ID幀類型控制碼報文長度報文內容校驗位報文結尾2字節2字節1字節1字節2字節數據1字節1字節

報文頭:0x5A 0xA5。

設備ID:設備號。

幀類型:預留用來判斷幀的作用,暫定0x01。

控制碼:用來表明報文的作用,暫定下行是0x9X,上行是0x1X。

報文長度:是“報文內容”的長度。

校驗位:校驗位之前所有字符CRC(即從報文頭至校驗位之前的所有位的CRC)。

報文結尾:0xA5。

在通信協議里面加入CRC校驗,能夠很好地解決傳輸誤碼的問題;當接收方對接收到的數據進行校驗時,如果校驗值不正確,則丟棄本包數據,同時告訴主站重新發送該包數據。

2.3 Flash讀寫操作

Flash讀數據直接從相應地址讀取相應數據內容,即地址所指向的內容就是要讀取的數據。Flash寫操作需要注意在寫之前應該先把寫保護去除,否則導致寫入失敗。寫入操作如下:

2.4 程序跳轉設計

PC指針成功跳轉是升級的關鍵。在跳轉之前先關閉全局中斷,保證PC指針指向非中斷服務程序。跳轉之后,首先把地址傳入PC指針,然后初始化堆棧指針[3]。實現方式如下:

結 語

本文提出了一種基于STM32平臺的嵌入式終端斷點續傳升級的新方法,該方法省去了傳統應用程序升級所帶來的復雜繁瑣步驟,同時又規避了升級失敗所帶來的風險。隨著國家對智能電網改造的推進,該方法也在電力集抄終端等設備得到大面積應用,便捷,可靠,具有極高的實用價值。

[1] ST.STM32F103XXX User Guide,2009.

[2] ST.STM32F10XXX閃存編程手冊,2009.

[3] ST.STM32F10x_IAP_AN,2007.

猜你喜歡
程序
給Windows添加程序快速切換欄
電腦愛好者(2020年6期)2020-05-26 09:27:33
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
基于VMM的程序行為異常檢測
偵查實驗批準程序初探
我國刑事速裁程序的構建
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
恐怖犯罪刑事訴訟程序的完善
主站蜘蛛池模板: 色成人亚洲| 日韩在线欧美在线| 国产午夜一级淫片| 最新国产高清在线| 国产青青草视频| 亚洲国产综合精品一区| 无码视频国产精品一区二区| 四虎影视永久在线精品| 草草影院国产第一页| 免费黄色国产视频| 亚洲欧美色中文字幕| 国产精品美女网站| 激情综合五月网| 国产精品林美惠子在线播放| 国产一在线| 成人午夜网址| 国产91视频观看| 无码中文字幕乱码免费2| 成人a免费α片在线视频网站| 好吊色妇女免费视频免费| 久久精品这里只有国产中文精品 | 天天色综合4| 看国产一级毛片| 欧美一区二区人人喊爽| 亚洲一区二区精品无码久久久| 国产精品hd在线播放| 亚洲综合色吧| 亚洲国产综合精品中文第一| 亚洲色无码专线精品观看| 国产一区二区三区夜色| 亚洲国产成人麻豆精品| 国产精品黑色丝袜的老师| 国产精品亚洲va在线观看| 91九色视频网| 最新亚洲人成无码网站欣赏网| 亚洲第一中文字幕| 国产精品99r8在线观看| 九色综合视频网| 亚洲成a人片| 久久一色本道亚洲| 九色在线观看视频| 91av国产在线| 国产一区二区三区免费| 免费精品一区二区h| 亚洲一本大道在线| 久久夜色精品国产嚕嚕亚洲av| 中国丰满人妻无码束缚啪啪| 思思99热精品在线| 免费看a级毛片| 国产精品永久不卡免费视频| 久久久久亚洲AV成人人电影软件 | 亚洲69视频| 99精品国产高清一区二区| 国产精品夜夜嗨视频免费视频| 色135综合网| 国产乱人伦AV在线A| 久久国语对白| 天天激情综合| 91精品国产自产在线观看| 亚洲色图综合在线| 尤物国产在线| 欧美自慰一级看片免费| 欧美成人影院亚洲综合图| 亚洲国模精品一区| 亚洲综合婷婷激情| 欧美天天干| 四虎成人免费毛片| 在线观看国产黄色| 亚洲视频免| 中国美女**毛片录像在线| 好吊色妇女免费视频免费| 久青草国产高清在线视频| 在线精品亚洲一区二区古装| 香蕉在线视频网站| 久久综合亚洲鲁鲁九月天| 国产精品亚洲日韩AⅤ在线观看| 一区二区自拍| 欧美激情综合| 久久久久亚洲精品成人网| 2020久久国产综合精品swag| 国产第一页免费浮力影院| 毛片免费网址|