《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于KL25的RFID構件化工程框架研究
基于KL25的RFID構件化工程框架研究
2015年電子技術應用第8期
曹國平1,2,王宜懷1,2,凌 云1,2
1.蘇州大學 計算機科學與技術學院,江蘇 蘇州215006;2.軟件新技術與產業化協同創新中心,江蘇 南京210093
摘要: 目前,RFID技術已在物流倉儲、交通運輸等很多領域被廣泛使用,但在應用系統的開發過程中存在大量重復工作。依據軟件工程思想,設計了通用的RFID構件,并給出了構件化工程框架,同時采用以飛思卡爾KL25MCU(ARM Cortex-M0+內核)和射頻芯片RC531組成的實驗裝置為實例,在KDS1.1.1開發環境下對該構件框架進行了具體的工程測試,為提高RFID應用系統開發的規范性和可移植性提供了重要參考。
關鍵詞: RFID 工程框架 KL25 RC531
中圖分類號: TP311
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.08.005

中文引用格式: 曹國平,王宜懷,凌云. 基于KL25的RFID構件化工程框架研究[J].電子技術應用,2015,41(8):20-23.
英文引用格式: Cao Guoping,Wang Yihuai,Ling Yun. The research of RFID component engineering framework based on KL25 processor[J].Application of Electronic Technique,2015,41(8):20-23.
The research of RFID component engineering framework based on KL25 processor
Cao Guoping1,2,Wang Yihuai1,2,Ling Yun1,2
1.Department of Computer Science and Technology,Soochow University,Suzhou 215006,China; 2.Collaborative Innovation Center of Novel Software Technology and Industrialization,Nanjing 210093,China
Abstract: Now RFID technology has been widely used in many fields such as logistics warehouse, transportation,etc. But there are a lot of redundant work in the development of the application system. According to software engineering idea, this paper introduces a RFID component engineering framework and universal RFID component to achieve more efficient software design, and tests the engineering framework under the KDS1.1.1 development environment on an experiment board composd of KL25 MCU(ARM Cortex-M0+ Kernel )and RF chip RC531. This work provides important references for improving the standardization and portability of RFID application system development.
Key words : RFID;engineering framework;KL25;RC531

   

0 引言

    目前,射頻識別技術(RFID)已在多個領域中被廣泛使用,但RFID應用系統是典型的硬件平臺相關性系統,通常具有難以維護、更新、移植等特點[1],其中存在大量重復工作。軟件構件技術是指通過組裝一系列可復用的軟件構件形成軟件系統的軟件技術,以軟件構件為基礎,設計一個合理的構件化工程框架是降低工程開發的難度,提升軟件的可重用性、可移植性和可維護性的有效途徑[2]。本文針對RFID應用系統的特點,通過對RFID一般應用模型的分析,封裝了構件相關函數,并給出了結構清晰合理的RFID構件化工程框架,有效提高了RFID應用系統的開發效率。同時以思卡爾KL25 MCU和射頻芯片RC531構成的實驗裝置為基礎,在Kinetis Design Studio集成開發環境中對該構件框架的使用進行了具體測試,并分析了該構件框架在其他嵌入式系統上的移植應用,對提高系統開發的規范性和可移植性具有重要參考意義。

1 RFID驅動構件的設計及解析

    構件設計的目標是可重用,達到此目標的關鍵是構件提供了契約式的接口,它的輸入接口代表了環境為它提供的服務,輸出接口代表了它為環境提供的服務。一個接口提供一種服務,完成某種邏輯行為[3]。構件接口由兩部分組成:一是署名部分,即構件本身提供服務的描述,由構件頭文件(.h)實現;二是行為部分,即構件行為的描述,由源文件(.c)實現。因此,為提高構件可重用性,在設計軟件構件時,必須對構件的共性和個性進行分析,抽取出構件的屬性和對外接口函數。盡量做到:當一個構件應用到不同系統中時,僅需修改構件的頭文件,對于構件的源程序文件則不必修改或改動很小。

1.1 RFID應用系統的一般模型

    通過分析RFID應用系統的共性,可以建立一個由3部分組成的一般系統模型[4],如圖1所示。控制MCU主要提供對射頻讀寫芯片的控制操作;射頻讀寫芯片及輔助電路用于實現與控制MCU的數據通信并控制與標簽的通信操作;天線部分則實現電磁波的收發。

qrs3-t1.gif

    以蘇州大學飛思卡爾嵌入式中心開發的 RFID實驗裝置為例,KL25作為控制MCU,是整個硬件系統的核心;射頻讀寫芯片RC531與KL25通信實現各種功能。RC531支持并行接口或SPI接口兩種方式實現與控制MCU的通信。任意一款MCU只需按表1所示提供對應的GPIO引腳即可以模擬SPI的方式控制RC531芯片。

qrs3-b1.gif

1.2 構件函數封裝

    在RFID系統中,射頻讀寫芯片RC531作為KL25的外設[5-6],是驅動構件的對象。

    RC531對A類卡的通信處理流程如圖2所示。首先,發送Request詢卡命令給天線工作范圍內的所有卡片,卡片在上電復位后響應該命令;隨后通過防沖突循環,根據卡的序列號選中一張卡;接著對準備訪問的卡片的存儲區的密碼進行鑒別;在通過了密碼驗證后,讀寫模塊可以對該存儲區的數據進行讀、寫、增值、減值以及掛起等操作[7]

qrs3-t2.gif

    根據該處理流程,從上層應用的角度出發,可不必關注防沖突、密碼驗證等過程,只需要關注對存儲區的具體應用。因此RC531構件只需要對A類卡提供初始化、讀寫數據等功能函數,而防沖突等操作可作為內部函數處理。同理根據B類卡的處理流程,構件需要提供初始化、讀取卡號等函數。

    綜合以上分析,在RC531構件頭文件中的內容應主要包含外設模塊寄存器相關信息的定義和函數原型的聲明。前者指明了本“元構件”與具體硬件相關的信息,而后者則給出了本驅動構件對上層構件或應用程序所提供的接口函數。另外從硬件的角度看,控制射頻模塊只需要確定MCU與RC531的接口一個要素即可,但由于KL25的每個引腳都需要確定端口號與引腳號兩個部分,所以在應用中將這兩個部分組合為一個值,方便理解與調用。通過這種設定,上層構件在使用它時,將具有極大的靈活性。構件源程序文件實現對外接口函數功能,構件內部使用的函數也在構件源程序文件中定義。最終在頭文件中應給出MF_Init(初始化)、MF_ReadCardA(讀A卡)、MF_WriteCardA(寫A卡)、MF_Deduct(電子錢包充值)、MF_Recharge(電子錢包扣款)、MF_Halt(掛起)、MF_ ReadCardB(讀B卡)等功能函數。以初始化函數為例,其需要完成的功能為:將KL25的GPIO接口初始化為SPI形式,將RC531復位并將天線接口初始化為A類或B類通信狀態。因此初始化函數的封裝需要提供一個通信協議類型的參數,并需要返回一個狀態值反映初始化是否成功。

//將KL25部分GPIO口定義為模擬SPI功能

//MFRC531的MOSI引腳

#define MF_MOSI_PIN

        (GPIO_PORT_D << 8) | 3

//MFRC531的MISO引腳

#define MF_MISO_PIN

        (GPIO_PORT_D << 8) | 5 

/函數名稱:MF_Init

//功能概要:復位芯片并根據標簽類型初始化

//參數說明:ProMode: A類協議 Pro_A

//                    B類協議 Pro_B

//函數返回:錯誤碼 MI_OK:初始化成功

//                 MI_NOTAGERR:失敗

uint_8 MF_Init(uint_8 ProMode);

2 工程框架設計

2.1 工程框架的組織原則

    按照軟件工程的思想,框架是一個能夠被開發人員實例化的系統構架,規定了應用軟件的體系結構,定義了模塊和對象的分割,確定了各部分的主要職責、協作關系及控制流程[8]。工程框架的設計和組織必須是可復用、可移植和可理解的,以利于提高嵌入式軟件的開發效率。因此,本文在設計中遵循以下的原則[9-10]

    (1)系統結構分層,軟件與硬件分離。

    首先,應用系統按照用戶、業務邏輯、驅動進行分層,將不同層次的構件文件組織在不同文件夾下,使框架可即插即用替換構件;其次,從不同的層次中分別提煉出高層構件和底層構件,高層構件與硬件無關,而底層構件與硬件密不可分,是硬件驅動程序的封裝。高層構件實現一個具體應用,而底層構件是對硬件驅動程序的封裝;同時在硬件構件層中,相對于核心構件最小系統而言,中間構件和終端構件都是核心構件的“外設”,將這些“外設”的驅動程序封裝而成的軟件構件作為底層外設構件。底層外設構件可以調用底層內部構件,而高層構件可以調用底層外設構件和底層內部構件中的功能構件。

    (2)將芯片特性分離

    每款芯片都擁有自己的內核及芯片初始化文件,這些文件由芯片設計人員提供,具有特定的內容。將這類文件組織在一起,這樣針對某一款芯片進行開發時,應用開發者不必修改該目錄。

2.2 工程框架的組織形式

    通過RFID應用系統模型,可將射頻讀寫芯片作為外設構件處理。基于框架的組織原則,通過對工程框架的目錄名和共性的文件歸納分類組織,得到符合要求的構件化工程框架。以基于KL25的RFID工程為例,其在KDS1.1.1開發環境下的目錄結構組織如圖3所示。

qrs3-t3.gif

    整個框架中的目錄按照開發系統所應用到的文件順序排列,各目錄中存放文件的原則如下:

    Includes目錄存放開發環境相關的文件,由工程自動生成。

    01_DOC中存放工程說明文檔,工程有變化時,即時更新。

    02_CPU、03_MCU目錄分別存放與內核及芯片相關的公共文件,其中包含了幾乎所有底層構件都涉及的MCU寄存器的宏定義、啟動代碼等文件。

    04_Linker_File中存放鏈接腳本文件,描述程序文件在芯片存儲區中的存放順序,該文件與編譯器相關。

    05_Driver、06_App_componet目錄分別存放底層硬件的驅動構件及高層構件文件,底層構件是硬件系統各功能模塊的驅動封裝,如讀寫芯片RC531的構件文件等;高層構件用于實現具體的應用功能。

    07_Soft_component目錄存放穩定、移植性良好、與硬件無關的抽象構件文件,如數值類型轉換算法等,如此則實現了業務、邏輯、數據的完全分離。

    08_Sources目錄包括總頭文件includes.h、主函數文件main.c以及中斷函數文件isr.h、isr.c。main.c文件是工程任務的核心文件,用戶的應用都添加在該文件中。總頭文件中包含主程序文件中需要的驅動構件頭文件、變量聲明等;isr.c中包含了中斷函數的實現代碼,isr.h是isr.c文件的頭文件,存放中斷函數聲明,因為中斷向量表文件是工程框架的重要內容之一,因此,在工程框架中,用戶應避免直接對中斷向量表文件進行修改,而采用“注冊”的方式為用戶提供編程接口,既方便用戶使用,同時也提高了系統編程的安全性。

3 工程在框架下的移植分析

    在實際應用中,工程的移植有多種情況。以KL25下的RFID應用工程為例,當需要在相同的硬件環境下設計不同的工程時,只需以該工程為模板,在05_Driver目錄下添加需要的底層構件,并在08_Sources目錄下修改主函數中的任務,即可在其余文件保持不變的情況下,快速開發出新的應用工程。這種情況下應用工程之間的可移植性最大。

    當將工程移植到相同或相兼容內核的芯片時,僅需修改03_MCU目錄下的芯片文件,以及根據硬件連接方式在05_Driver目錄下修改RC531構件頭文件中的引腳定義,已有的工程即可在新的目標芯片下運行。如將KL25上的工程移植到Cortex-M4內核的K60芯片時,只需將頭文件中的引腳定義修改即可。

//將K60部分GPIO口定義為模擬SPI功能

//MFRC531的MOSI引腳

#define MF_MOSI_PIN

        (GPIO_PORT_E << 8) | 19

//MFRC531的MISO引腳

#define MF_MISO_PIN

        (GPIO_PORT_E << 8) | 1

    當工程移植到不同內核的芯片時,由于硬件結構一般變化較大,通常需要修改02_CPU、03_MCU、08_Sources目錄下的中斷注冊文件等與芯片直接相關的系統文件,同時還須修改GPIO的驅動,但設備構件文件的結構及工程框架依然可以保持不變。可見在該框架下,工程組織非常清晰,移植也很方便。

4 工程框架應用與測試

    測試工程在KDS1.1.1開發環境和SD-FSL-KL25-EVB開發板上進行,測試工程實現的功能為:KL25的串口1與PC通信,接收讀取M1卡中數據塊5中數據的控制命令,實現框架的中斷服務功能;查找并讀取標簽中的數據,通過串口1將數據顯示在PC上。要實現以上功能,需在框架isr.c文件中添加串口1的中斷服務例程,并在isr.h文件中實現中斷注冊,然后在主函數文件中分別調用RFID初始化、讀數據構件與串口發送數據構件即可。主函數部分代碼如下:

    MF_Init(Pro_A);

    for(;;)

    {

     If(1==read_flag)

     {

    if(MI_OK == MF_ReadCardA

    (ReadDataBuff, Key,BlockNo))

    {

      uart_send_string(UART_1, "Read Success!\r\n"); 

    //將讀取的數據轉換為16進制字符形式

       …

    //將數據輸出

       uart_sendN(UART_1,16,DataBuff);

    }

    else

    {

           uart_send_string(UART_1, "Read failed!\r\n");

        }

    }

    …

    將測試工程編譯后下載到目標板,將開發板上的串口1與PC連接運行,從串口測試工具中發送控制命令“R11”,可以觀察到接收窗口中穩定地回送數據,如圖4所示。測試結果表明在該工程框架下,工程任務建立簡便,運行穩定,控制邏輯清晰可靠,能夠滿足工程運行的需求。

qrs3-t4.gif

5 結論

    RFID應用系統在市場中被廣泛使用,但RFID開發原理較為復雜,同時在開發中存在大量重復工作。設計一個合理的開發框架有助于封裝底層構件,幫助開發者高效地開發出穩定的嵌入式RFID產品。本文根據軟件工程思想,對RFID構件分析并封裝了MF_Init、MF_ReadCardA、MF_WriteCardA、MF_Deduct、MF_Recharge、MF_Halt、MF_ ReadCardB等功能函數,并給出了結構清晰合理的構件化工程框架,對提高RFID應用系統開發的規范性和可移植性具有重要參考意義。同時以飛思卡爾KL25 MCU和射頻芯片RC531構成的實驗裝置為基礎,給出了測試工程的創建及測試過程,為RFID應用系統開發提供了一個結構清晰、層次分明、可移植性強的開發模板。

參考文獻

[1] 譚民,劉禹,曾雋芳.RFID技術系統工程及應用指南[M].北京:機械工業出版社,2007.

[2] 楊芙清,梅宏,黃罡.構件化軟件設計與實現[M].北京:清華大學出版社,2008.

[3] MOREIRA F A,SOLIVEIRA M F.A model-driven engineering framework for embedded systems design[J].Innovations in Systems and Software Engineering,2012,8(1):19-23.

[4] 王慧明.RFID開發平臺的設計及其應用[D].蘇州:蘇州大學,2009.

[5] ARM.Cortex-M0+ technical reference manual[EB/OL].(2012-03-01)[2015-04-20].http://www.Freescale.com.cn.

[6] 王宜懷,朱仕浪,郭蕓.嵌入式技術基礎與實踐-ARM Cortex-M0+ Kinetis L系列微控制器[M].北京:清華大學出版社,2013.

[7] Philips Semiconductors.Mifare MF RC531 ISO 14443 readerIC data sheet[EB/OL].(2005-12-01)[2015-04-20].http://www.nxp.com.

[8] 凌藝春,黃飛.匯編程序移植性的研究與實踐[J].制造業自動化,2011,33(3):174-175.

[9] SZYPERSKI C,GRUNTZ D,MURER S.Component software:beyond object-oriented programming[M].Addison-Wesley,2002.

[10] 張倩,楊玉宇.《系統與軟件可移植性》標準中可移植性定義的研究[J].信息技術與標準化,2009,35(10):51-54.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲第一精品夜夜躁人人爽| 久久av资源网站| 国产精品久久97| 欧美一区二区精美| 亚洲美女视频| 欧美一区影院| 一区二区激情小说| 亚洲第一久久影院| 国产欧美一级| 欧美三级欧美一级| 欧美大胆人体视频| 久久国内精品自在自线400部| 一本到高清视频免费精品| 亚洲福利一区| 性欧美video另类hd性玩具| 日韩一级精品视频在线观看| 韩国在线一区| 国产午夜精品久久| 国产精品久久久久影院亚瑟| 欧美激情精品久久久久久大尺度| 久久久久亚洲综合| 欧美一区激情视频在线观看| 一区二区三区视频在线观看| 亚洲国产一成人久久精品| 午夜精品久久久久久久男人的天堂 | 亚洲国内欧美| 亚洲特色特黄| 妖精成人www高清在线观看| 亚洲日本欧美天堂| 亚洲激情成人网| 在线看片日韩| 影音先锋久久| 在线观看一区视频| 在线免费高清一区二区三区| 激情久久久久久| 黑人巨大精品欧美一区二区| 国产日韩欧美91| 国产欧美一区二区三区在线老狼| 国产精品午夜电影| 国产精品影片在线观看| 国产精品视频一区二区高潮| 欧美午夜精品久久久久久孕妇| 欧美精品激情在线| 欧美日韩精品免费观看视频完整| 欧美精品一区二区蜜臀亚洲| 欧美日韩成人在线视频| 欧美日韩系列| 欧美四级在线| 国产精品久久看| 国产精品视频网站| 国产偷国产偷亚洲高清97cao | 亚洲精品一区中文| 在线观看不卡av| 在线看视频不卡| 亚洲电影在线观看| 亚洲欧洲一区二区三区久久| 亚洲激情网站免费观看| 亚洲精品久久久久| 99精品国产福利在线观看免费| 夜夜精品视频一区二区| 中国女人久久久| 亚洲欧美一区二区原创| 欧美在线免费观看视频| 久久高清福利视频| 亚洲精品专区| 亚洲欧美日韩精品久久| 久久av红桃一区二区小说| 久久久久高清| 欧美华人在线视频| 欧美日韩国产系列| 国产精品久久久久秋霞鲁丝 | 国产精品二区三区四区| 国产人成精品一区二区三| 国产在线不卡精品| 亚洲国产成人不卡| 亚洲视频导航| 久久成人综合网| 99国产精品99久久久久久| 亚洲一区二区在线免费观看| 欧美中文字幕在线视频| 美乳少妇欧美精品| 国产精品www色诱视频| 好吊妞这里只有精品| 亚洲欧洲精品一区| 亚洲欧美成人一区二区在线电影| 亚洲成色999久久网站| 99国产精品| 久久精品主播| 欧美日韩另类一区| 国产一区三区三区| 日韩午夜av电影| 久久不射电影网| 亚洲网站在线观看| 嫩模写真一区二区三区三州| 国产精品爽爽ⅴa在线观看| 一区二区亚洲| 一区二区毛片| 久久精品一二三| 亚洲女女女同性video| 母乳一区在线观看| 国产精品日本精品| 亚洲精品乱码久久久久久蜜桃91| 性亚洲最疯狂xxxx高清| 一区二区三区国产精品| 久久免费视频网| 国产精品久久久久久久久借妻| 在线观看日韩| 欧美一级播放| 亚洲一区国产视频| 在线一区日本视频| 久久久91精品国产| 欧美另类videos死尸| 国产一区二三区| 一本久道久久综合婷婷鲸鱼 | 亚洲国产裸拍裸体视频在线观看乱了中文 | 一区二区三区产品免费精品久久75| 亚洲级视频在线观看免费1级| 夜夜爽www精品| 亚洲欧美日韩专区| 麻豆国产精品一区二区三区 | 欧美在线综合| 国产精品久久久久久久久免费桃花| 亚洲国产精品精华液2区45| 欧美一级视频一区二区| 一二三四社区欧美黄| 老色批av在线精品| 国产日产高清欧美一区二区三区| 一区二区三区国产精品| av不卡免费看| 欧美激情亚洲| 韩国亚洲精品| 亚洲视频一区| 亚洲视频在线一区| 欧美日韩的一区二区| 亚洲欧洲午夜| 久久久久九九视频| 久久久久九九九九| 国产精品每日更新| 亚洲制服av| 欧美在线一级va免费观看| 欧美性色综合| 中日韩高清电影网| 亚洲欧美日韩中文视频| 国产精品免费看片| 欧美一级淫片aaaaaaa视频| 午夜精品国产更新| 国产美女在线精品免费观看| 亚洲欧美清纯在线制服| 久久动漫亚洲| 一区二区三区在线免费播放| 亚洲韩日在线| 欧美激情一区二区三级高清视频| 最新中文字幕亚洲| 亚洲影音先锋| 国产日韩综合| 亚洲人成小说网站色在线| 欧美日韩成人激情| 亚洲综合电影一区二区三区| 久久精品一二三区| 亚洲国产一区在线观看| 亚洲视频免费| 国产区在线观看成人精品| 久久国产66| 欧美日韩日本国产亚洲在线| 亚洲一二三区在线| 久久香蕉精品| 亚洲美女啪啪| 久久狠狠久久综合桃花| 91久久极品少妇xxxxⅹ软件| 亚洲一区二区三区四区在线观看 | 国产精品高潮呻吟久久| 午夜久久一区| 欧美精品日韩一区| 香蕉乱码成人久久天堂爱免费 | 亚洲国产精品成人va在线观看| 亚洲视频在线观看| 精品福利av| 亚洲综合三区| 亚洲高清电影| 欧美在线免费观看| 亚洲人成7777| 久久久免费观看视频| 一本色道久久综合狠狠躁的推荐| 久久精品综合| 亚洲视频一区二区在线观看| 美女黄网久久| 香蕉久久精品日日躁夜夜躁| 欧美理论电影在线观看| 久久xxxx精品视频| 国产精品高潮久久| 99国产精品私拍| 国产又爽又黄的激情精品视频 | 国产女主播一区二区三区| 日韩天堂在线观看| 国内精品伊人久久久久av一坑| 亚洲在线播放| 亚洲人成绝费网站色www| 久久久久免费视频| 亚洲一区二区三区精品在线观看| 欧美精品福利视频|