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精品啪在线观看国产| 欧美精品xx| 色成人综合| 午夜福利亚洲精品| 日韩不卡高清视频| 成年av福利永久免费观看| 欧美成人亚洲综合精品欧美激情| 中文无码伦av中文字幕| 免费国产好深啊好涨好硬视频| 亚洲成网777777国产精品| 国产在线一区视频| 国产综合网站| 99精品久久精品| 久久精品人人做人人综合试看| 99热最新网址| 精品自窥自偷在线看| 18禁高潮出水呻吟娇喘蜜芽| 内射人妻无码色AV天堂| 国产成人综合日韩精品无码不卡| 精品国产一区91在线| 女人爽到高潮免费视频大全| 一个色综合久久| 免费人成黄页在线观看国产| 久久国产亚洲偷自| 91精品最新国内在线播放| 国产人人乐人人爱| 精品五夜婷香蕉国产线看观看| 欧美三级不卡在线观看视频| 欧美午夜在线观看| 亚洲av无码专区久久蜜芽| 久久性视频| 亚洲va在线∨a天堂va欧美va| 亚洲成a人在线观看| 亚洲永久视频| 国产剧情一区二区| 美女视频黄频a免费高清不卡| 国产极品美女在线观看| 欧美一级高清片欧美国产欧美| 91福利片| 欧美一级高清片欧美国产欧美| 在线播放真实国产乱子伦| 亚洲国产天堂在线观看| 国产在线观看人成激情视频| 91青草视频| 国产激爽大片在线播放| AV不卡在线永久免费观看| 制服丝袜国产精品| 91精品啪在线观看国产60岁| 日韩高清中文字幕| 白丝美女办公室高潮喷水视频| 国产精品成人久久| 国产亚洲欧美在线视频| 欧美在线伊人| 国产精品毛片一区| 欧美日韩导航| 999精品在线视频| 亚洲视频一区在线| 欧美成人aⅴ| 亚洲综合色婷婷| 久久黄色一级视频| 国产新AV天堂| 亚洲综合九九| 欧美精品1区2区| 永久免费无码日韩视频| 国产视频 第一页| 国产精品分类视频分类一区| 亚洲一区二区三区国产精品 | 在线观看国产黄色| 制服丝袜一区二区三区在线| 亚洲第一极品精品无码| 99国产精品一区二区| 好久久免费视频高清| 国产小视频a在线观看| 波多野结衣一区二区三区四区| 在线99视频| 91偷拍一区| 国产91久久久久久| a色毛片免费视频| 中文字幕免费播放|