《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于高頻RFID的微處理器IAP技術
基于高頻RFID的微處理器IAP技術
來源:電子技術應用2013年第4期
劉根賢1,龔雪容2,生擁宏2,邢 勇3
1.清華大學 計算機科學與技術系,北京100084; 2.解放軍信息工程大學,河南 鄭州450004; 3.第二炮兵裝備研究院 中試中心,北京100085
摘要: 針對應用高頻RFID的嵌入式設備設計了一種IAP方案,通過大容量高頻RFID對系統進行軟件升級,確保系統無論升級是否成功都可以維持正常工作。該技術基于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

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

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

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

 


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

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

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

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

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

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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美色网络 | 欧美一区精品二区三区 | 日本不卡三级 | 色综合视频在线观看 | 成人公开视频 | 男女日批视频在线观看 | 在厨房被强行侵犯中文字幕 | 91精品啪在线观看国产线免费 | 精品国产免费观看久久久 | 一级做a爱过程免费视频时看 | 欧美 韩国 精品 另类 综合 | 一级做a爰片性色毛片视频图片 | 免费在线成人 | 欧美在线日韩在线 | 久久天天躁夜夜躁狠狠躁2019 | 久久久午夜影院 | 99视频在线免费 | 国产午夜大片 | 日日摸夜夜爽人人添 | 国内国语一级毛片在线视频 | 最近2019中文字幕 | 91av中文字幕 | 精品在线视频免费 | 免费观看一级成人毛片软件 | 最近更新在线中文字幕一页 | 国产日韩精品在线 | 一级黄视频 | 国产极品一区 | 成人国产一区 | 欧美日韩精品一区二区三区视频 | 日本888 xxxx| 99草在线 | 好爽好黄的视频 | 亚洲综合色网站 | 中文字幕在线看视频一区二区三区 | 大桥未久aⅴ一区二区 | 精品在线一区二区三区 | 欧美在线黄| 成年在线视频免费视频观看 | 日韩中文字幕在线播放 | 91免费高清无砖码区 |