《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于高頻RFID的微處理器IAP技術
基于高頻RFID的微處理器IAP技術
來源:電子技術應用2013年第4期
劉根賢1,龔雪容2,生擁宏2,邢 勇3
1.清華大學 計算機科學與技術系,北京100084; 2.解放軍信息工程大學,河南 鄭州450004; 3.第二炮兵裝備研究院 中試中心,北京100085
摘要: 針對應用高頻RFID的嵌入式設備設計了一種IAP方案,通過大容量高頻RFID對系統(tǒng)進行軟件升級,確保系統(tǒng)無論升級是否成功都可以維持正常工作。該技術基于IAP11F62X和STM32F103單片機硬件平臺進行了驗證。
中圖分類號: TP368.1
文獻標識碼: A
文章編號: 0258-7998(2013)04-0029-03
Microprocessor IAP technology based on high frequency RFID
Liu Genxian1,Gong Xuerong2,Sheng Yonghong2,Xing Yong3
1.Department of Computer Science and Technology, Tsinghua University, Beijing 100084,China; 2.PLA Information Engineering University, Zhengzhou 450004,China; 3.Equipment Research Institute of the Second Artillery, Beijing 100085,China
Abstract: This paper proposes an IAP solution for embedded system based on high-frequency RFID via high-capacity tag. This technology makes sure that system run smoothly no matter the upgrade operation is success or not. The technology is verified on IAP11F62X and STM32F103RC hardware platforms.
Key words : microprocessor;RFID;IAP;interrupt vector;embedded system

    設備的運行維護在嵌入式系統(tǒng)生命周期中占有絕大部分時間,因此研究一種能使現(xiàn)場工程師方便快捷地升級軟件而又絕不破壞設備可用性的技術方案是十分必要的。隨著物流網(wǎng)及相關領域的技術發(fā)展,RFID技術已經(jīng)得到廣泛應用[1]。

    本文針對應用高頻RFID技術的嵌入式設備設計了一種基于IAP技術的運行時軟件升級方案,利用高頻大容量RFID對系統(tǒng)進行軟件升級。軟件架構(gòu)上設計引導程序、應用程序、升級程序。該方案確保系統(tǒng)無論升級是否成功都可以維持正常工作。
    該技術在基于IAP11F62X單片機和FM1702SL非接觸卡讀寫控制器的水控器硬件平臺,以及基于STM32F-
103RC單片機和FM1701非接觸卡讀寫控制器的加油機控制板硬件平臺上進行驗證。投入批量運行兩年多來,極大降低了現(xiàn)場維護成本。
    本文首先介紹基于高頻RFID系統(tǒng)的IAP方案軟件架構(gòu)、引導程序設計及應用程序設計,然后在硬件平臺上進行了驗證。
1 IAP方案設計
    為了不破壞設備的可用性,又可以便捷地對系統(tǒng)進行升級,方案設計時將軟件系統(tǒng)劃分為引導程序、應用程序、升級程序、用戶數(shù)據(jù)和IAP參數(shù)區(qū),如圖1所示。

    引導程序負責檢查應用程序和升級程序的數(shù)據(jù)完整性,決定是否升級軟件或者恢復舊版本軟件,最后運行應用程序。應用程序和升級程序都是當前設備的應用軟件,兩者僅版本不同:一個為當前版本,一個為待升級版本。在應用程序和升級程序中包含IAP功能,從RFID中讀取升級數(shù)據(jù)寫入相應升級程序區(qū)域。

 


1.1 引導程序設計
    設備上電或復位時首先運行引導程序,工作時不依賴任何外部功能。程序進行硬件自檢,設置中斷向量,檢查應用程序和升級程序的數(shù)據(jù)完整性,并根據(jù)IAP參數(shù)的設置決定是需要升級程序還是回滾恢復舊版本應用程序,再判斷升級過程是否被中斷并決定是否繼續(xù)升級。引導程序流程如圖2(a)所示。

    為了確保系統(tǒng)可用型,升級過程中先要備份當前版本應用程序,通過一個緩存頁面,升級程序和應用程序按Flash頁塊進行交換,復制次序如圖2(b)所示,確保升級過程既不破壞原有版本程序代碼,也不丟失新版本程序。
    根據(jù)Flash按頁擦除、字節(jié)寫入的特性,在IAP參數(shù)區(qū),用8 B共64 bit代表64個頁面,初始化時為0xff,完成一頁則依次清除一位,這種寫模式下不需要擦除頁面即可記錄升級進度。一旦升級過程發(fā)生斷電等意外,開機重啟后可以檢測到升級斷點,繼續(xù)升級。
    如果升級后應用程序功能不穩(wěn)定,還可以在應用程序中通過管理卡設置,回滾恢復到原來版本。這個過程和升級新版本軟件過程一樣,只是不需要讀取升級卡,僅需通過管理卡設置回滾標志,通知引導程序“升級”(恢復)到原來版本應用程序。
1.2 應用程序設計
    應用程序完成所需設備功能后,還需要實現(xiàn)讀取升級卡寫入升級程序區(qū),或者通過管理卡設置回滾標志,在應用程序的卡處理過程中增加升級卡處理,應用程序流程如圖3(a)所示。

    在應用程序檢測到有卡時,執(zhí)行卡事件處理流程中,如圖3(b)所示,識別卡的類型如果是消費卡或管理卡,則進入相應功能處理。管理卡與程序版本相關的只有版本選擇參數(shù),置位時寫入IAP參數(shù)區(qū),由引導程序交換應用程序和升級程序,主要用于升級后的版本回退。
    識別到升級卡時,讀取升級卡格式數(shù)據(jù)塊。如果當前已經(jīng)讀取過升級卡并寫過升級程序區(qū),則升級卡版本信息必須與已經(jīng)寫入的升級卡版本一致才能繼續(xù)讀入。確認校驗數(shù)據(jù)完整性后,根據(jù)數(shù)據(jù)地址信息寫入升級程序區(qū),否則提示拒絕該卡,確保升級卡版本一致。如果尚未讀取過升級卡,則先讀取并判斷升級卡版本。如果與應用程序或升級程序版本重復,則提示已經(jīng)升級;如果為新版本軟件,則需要先擦除升級程序區(qū)Flash,再根據(jù)升級卡頭信息寫入升級程序區(qū)。如果本套升級卡已經(jīng)全部讀取并寫入升級程序區(qū),則更新IAP參數(shù),軟件復位跳轉(zhuǎn)到引導程序。
2 IAP硬件平臺設計
    目前支持IAP的51單片機有STC的IAP11F系列以及新茂、新唐(華邦)和SST等很多型號,而基于ARM的單片機基本都支持IAP功能,這里以兩種典型應用為例介紹IAP系統(tǒng)設計。
2.1 51單片機系統(tǒng)
    水控器是應用于飲用水或浴室等用水管理的設備,通過控制電磁閥管理出水,通過定時器計時收費,通過脈沖式流量傳感器計量收費,或者通過RTC時鐘包時收費。
    系統(tǒng)采用STC公司的IAP11F60X單片機,具有62 KB程序空間,引導程序占1 KB,應用程序和升級程序各占28 KB,IAP參數(shù)占1 KB(2頁),其余為用戶數(shù)據(jù)區(qū)[2]。
    射頻模塊為FM1702SL,單片機通過模擬SPI與之連接,可以讀取ISO14442A標準系列非接觸卡。具體功能模塊見圖4。

    在項目設置中需要設置應用程序起始地址,例如在本系統(tǒng)中起始地址設為0x0400,此外需要特別處理中斷向量。51單片機的中斷向量為固定地址,此時中斷向量都在引導程序中,而中斷服務函數(shù)均在應用程序中,因此需要在引導程序中設置中斷跳轉(zhuǎn)到應用程序中,舉例如下:
;-----定時中斷0----------------
    ORG        000BH
    LJMP    AP_ADDR+0BH
;-----定時中斷1----------------
    ORG        001BH
    LJMP    AP_ADDR+1BH
;-----------------------------
    AP_ADDR 定義為應用程序起始地址,而在應用程序中依然通過以下語法實現(xiàn)中斷函數(shù):
    void timer0_ISR(void) interrupt 1 using 1
    void timer1_ISR(void) interrupt 3 using 1
    使用IAP11F62X單片機,在處理完升級卡后可以通過給IAP_CONTR賦值0x20強制軟件復位跳轉(zhuǎn)到引導程序,引導程序完成升級。然后通過LJMP AP_ADDR 指令跳轉(zhuǎn)到應用程序,完成IAP過程并繼續(xù)運行。
2.2 STM32單片機系統(tǒng)IAP
    某型非接觸卡加油機控制板采用STM32F103RC處理器,具有256 KB Flash,讀卡電路采用性價比更高的FM1701,由軟件實現(xiàn)FM1208 CPU卡的加密認證讀取,通過車號識別模塊識別車輛,并可以通過串口攝像模塊拍照,與加油記錄一起保存在大容量串口Flash中,其結(jié)構(gòu)框圖如圖5所示。

    STM32位處理器IAP功能與51單片機系統(tǒng)大體相似,需要設置程序起始位置,引導程序必須設置為Flash基地址(0x08000000),而應用程序地址則是0x0800-2000。不同之處在于STM32的中斷向量表可以通過NVIC_Set-VectorTable函數(shù)設置到0x08002000,而不必通過引導程序跳轉(zhuǎn)[3]。此外,STM32F103RC具有48 KB SRAM,可以讀入升級卡全部數(shù)據(jù),校驗正確后寫入Flash。
    引導程序完成升級程序代碼復制交換后,通過絕對地址跳轉(zhuǎn)語句即可跳轉(zhuǎn)到指定地址的應用程序執(zhí)行。應用程序也通過相同語句跳轉(zhuǎn)到引導程序執(zhí)行,僅地址不同。
3 主機寫升級卡軟件
    主機寫卡軟件讀取HEX格式或者BIN格式程序文件,按IC卡容量分割后寫入升級卡。由于RFID卡數(shù)據(jù)容量有限,升級程序可能需要寫入多張升級卡。
    規(guī)劃卡數(shù)據(jù)的存放時,必須考慮升級時的卡類型識別以及版本控制、數(shù)據(jù)完整性等,因此需要設計格式頭,如圖6所示。

    識別碼用于確認該卡為本設備所用;類型碼用于判定識別卡類型屬于消費卡、管理卡或升級卡;版本為本卡內(nèi)應用程序版本號;起始地址和數(shù)據(jù)長度為卡內(nèi)數(shù)據(jù)在升級程序空間內(nèi)的起始地址和數(shù)據(jù)字節(jié)數(shù);卡數(shù)說明升級程序共包含多少張卡;卡序則是說明當前卡為第幾張卡;數(shù)據(jù)校驗用于驗證卡內(nèi)數(shù)據(jù)的完整性。主機寫卡軟件根據(jù)應用程序大小計算所需升級卡數(shù)量,并依次寫入升級卡格式以及數(shù)據(jù)[4]。
4 功能驗證
    該升級方案應用于某型非接觸卡水控器,采用4 KB數(shù)據(jù)容量的FM11F32卡作為升級介質(zhì),單片機為IAP11F62X。一套升級卡一直控制在7張卡以內(nèi)。某型非接觸卡加油機控制板也采用這一方案,采用8 KB數(shù)據(jù)容量的FM1208 CPU卡作為升級介質(zhì),單片機為STM32-
F103RC。由于加油站現(xiàn)場環(huán)境限制,這種升級方式更易于接受[5]。
    在設備運行的近2年時間時,由于修復BUG、調(diào)整功能等需求,設備進行了十多次升級,正因為采用這種方式,沒有給用戶和維護人員帶來額外負擔。
    本設計采用大容量RFID卡作為升級介質(zhì),無須下載線,更不必拆開設備,就可以進行現(xiàn)場升級,極大降低了維護難度。雖然由于目前非接觸卡存儲容量有限,可能需要多張IC卡才能完成升級,但由于設備讀卡速度快,整個軟件升級過程也不過兩三分鐘時間。實際應用證明,這種升級方式無論用戶還是現(xiàn)場維護人員都易于接受,具有較高的應用價值。
參考文獻
[1] 王愛英.智能卡技術[M].北京:清華大學出版社,2009.
[2] 丁向榮.STC系列增強型8051單片機原理與應用[M].北京:電子工業(yè)出版社,2011.
[3] 李寧.基于MDK的STM32處理器開發(fā)應用[M].北京:北京航空航天大學出版社,2008.
[4] 鄭群星.RFID原理[M].臺北:全華圖書股份有限公司,2011.
[5] 王幸之.單片機應用系統(tǒng)電磁干擾與抗干擾技術[M].北京:北京航空航天大學出版社,2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
主站蜘蛛池模板: 久久国产视频精品 | 久久久免费精品视频 | 国产视频久久 | a级毛片在线免费看 | 无需付费看大片免费 | 国产成人精品一区 | 色婷婷影院在线视频免费播放 | 久久久久精彩视频 | 久久狠狠一本精品综合网 | 成人久草 | 成人精品| 久久精品免看国产成 | 免费看国产精品久久久久 | 久久久久久久久久免免费精品 | 天天插狠狠干 | 午夜男人天堂 | 97狠狠干 | 久久福利视频导航 | 老女人爱爱 | 五月天激激婷婷大综合丁香 | 亚洲成人国产精品 | 国产电影午夜成年免费视频 | 成人影院一区二区三区 | h视频导航 | 青青青视频蜜桃一区二区 | 亚洲狠狠婷婷综合久久久图片 | 久久精品视频久久 | 国产毛片网 | 五月婷婷丁香综合网 | 国产精品免费福利 | 久久天天躁夜夜躁狠狠85台湾 | 精品一区二区久久 | 久久国产精品成人免费古装 | 欧美日韩亚洲高清老妇性 | 五月天播播网 | 999久久久免费精品国产牛牛 | 久久亚洲综合 | 好了016av第四电影综合站 | 免费的毛片网站 | 精品久久久久久久久免费影院 | 五月丁五月丁开行停停乱 |