新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于MCF52235 的RFID 通用開發平臺設計

        基于MCF52235 的RFID 通用開發平臺設計

        作者: 時間:2014-12-15 來源:網絡 收藏

          與LCD構件的通信同樣采用串行方式。串行通信的一次數據分3個字節傳輸。第一個字節數據格式為11111AB0,表示串行控制,A是選擇數據方向,1表示LCD到,0表示到LCD. B是選擇數據類型,1表示數據為顯示數據,0表示數據為控制命令。第二個字節格式為DDDD0000,表示8位數據的高4位。第三個字節格式為0000DDDD表示8位數據的低4位。

        本文引用地址:http://www.104case.com/article/266844.htm

          LCD 構件接口函數說明如下所示:

          //==================================

          void lcd_init();//初始化

          void lcd_display (const char* buf, int line);//在第line 行顯示buf,line>=0 && line<= 3

          //==================================

          USB 軟件構件比較簡單,只需對MC9S12UF32的USB 模塊進行初始化,UF32 便可以和MCF52235 進行交互了。 由于MCF52235 與UF32采用串口連接, 因此只要在串口中斷程序中調用USB 構件,UF32 便可從串口接收數據, 然后通過USB 傳送給上位機。 上位機通過USB 接口發送數據給UF32 也產生一個中斷,在中斷程序把數據緩存起來再調用USB 構件, 通過串口發送給MCF52235. USB 構件接口函數說明如下所示:

          //==================================

          void uf32_uart_init(void);//uf32 模塊初始化

          void uf32_uart_send(uint8 ch[],uint32 n); //發送數據

          uint32 uf32_uart_rev (uint8 ch [],uint32 n); //接收數據

          //==================================

          語音構件相對比較簡單,接口函數說明如下所示:

          //==================================

          void audio_init();//語音模塊初始化

          void audio_play(int i);//語音播放

          void audio_stop();//語音停止

          //==================================

          串口構件接口函數說明如下所示:

          //==================================

          uint8 hw_uart_init(uint8 uartNo, uint32 baud);//串口初始化

          uint8 hw_uart_rev_one (uint8 uartNo, uint8 *fp); //串口接收一個字節到fp

          uint8 hw_uart_send_one(uint8 uartNo, unit8 ch);

          //串口發送一個字節

          //==================================

          SPI 構件接口函數說明如下所示:

          //==================================

          uint8 hw_spi_init (uint8 spiNo,uint8 master);//SPI 初始化

          uint8 hw_spi_send (uint8 spiNo,uint8 data [],uint8 len);//SPI 發送數據

          uint8 hw_spi_re(uint8 spiNo,uint8 data[]); //SPI接收數據

          uint8 hw_spi_enable_re_int (uint8 spiNo); //開SPI 接收中斷

          uint8 hw_spi_disable_re_int (uint8 spiNo); //關SPI 接收中斷

          //==================================

          GPIO 構件接口函數說明如下所示:

          //==================================

          uint8 hw_gpio_init (uint8 port,uint8 pin,uint8dir,uint8 state);//初始化端口為GPIO 引腳

          uint8 hw_gpio_set (uint8 port,uint8 pin, uint8state); //設置指定引腳狀態

          uint8 hw_gpio_get(uint8 port,uint8 pin);//獲取指定引腳狀態

          uint8 hw_gpio_reverse(uint8 port,uint8 pin);//反轉指定引腳狀態

          //==================================

          高層構件包括三個部分:FreeRTOS 操作系統在MCF52235 上的移植[13-14],Shell 的實現,網絡命令和信息的封裝。 將FreeRTOS 移植到MCF52235主要是實現3 個底層匯編級的支持函數,tk_frame(task *tk, int (*entry)(), int arg)函數為tk 進程創建堆棧幀保存進程的各種狀態;tk_switch (task *tk)函數用于把當前進程切換到tk 進程;tk_getsp()函數返回當前堆棧指針。 另外,在FreeRTOS 中運行一個Shell 進程,進程函數為int keyboard (int param),可調試或查看系統狀態信息,比如各個進程的運行狀態、ARP 表、IP 地址、MAC 地址、連接狀態等。

          Shell 實現的效果如圖5 所示。

          在實際應用中,通常一臺PC 主機管理若干讀卡器, 一個讀卡器可以為若干PC 主機服務。 每個PC 主機和讀卡器都具有不同的IP 地址, 一臺PC主機可以控制讀寫器1 讀寫每個Type A 卡的某個塊數據, 還可以同時控制讀寫器2 讀寫每個TypeA 卡的另一個塊數據, 或者請求讀取Type B 卡的UID, 整個網絡關系比較復雜。 因此采用將主機發送的命令、網絡信息、卡信息封裝在如下所示的若干個數據結構中。

          //==================================

          struct invite_info //PC 主機發送的讀卡請求

          { char del_or_add; //主機離開或加入

          uint8 type; //卡的類型

          uint8 block; //要訪問的數據塊

          uint8 password[6]; //塊的密碼

          };

          struct ip_arrays_B //讀Type B 卡信息

          { ip_addr ipaddress; //IP 地址

          int port; //UDP 端口號

          };

          struct send_data_type //發送到主機的數據

          { uint8 sn[4]; //序列號

          uint8 block; //塊號

          uint8 data[16]; //16 個字節塊數據

          uint8 ret; //返回值

          };

          struct IC_ope //用于消費用途的 應用

          {

          uint8 block; //總的金額數

          float fsub; //每次刷卡扣除的金額數量

          uint8 *pass;

          };

          struct record_info //記錄卡信息

          { //此塊引用計數,0 表示沒有請求讀這塊數據

          uint8 ref; //引用計數

          uint8 block; //塊號

          uint8 password[6]; //塊的訪問密碼

          };

          struct ip_arrays_A //讀Type A 卡信息

          { ip_addr ipaddress; //IP 地址

          int port; // UDP 端口號

          uint8 block [num_of_rf_structs]; //這個UDP連接要讀取的所有塊

          };

          struct net_cmd //發送到板子的命令

          { uint8 lenth; //請求數據長度

          uint8 cmdope; //操作碼

          uint8 data[1]; //數據

          };//=================================

          3 通用開發平臺應用

          基于此平臺文中開發了學生機房上機刷卡系統。 在每個機房安裝一臺讀卡器,PC 主機的數據庫中存儲了每個機房的課表、任課教師和學生的信息。 學生持卡到各個機房的讀卡器上刷卡,讀卡器將讀到的信息通過網絡傳輸到PC 主機上,統計學生人數和上、下課時間等情況, 相關信息顯示在LCD 上并進行語音提示。 PC 端軟件實現了網絡通信功能和學生機房上機刷卡管理系統。 網絡通信通過CManagerDlg:: m_skInfo 和CManagerDlg::

          m_skCmd 這2 個sokcet 接口完成。 學生機房上機刷卡管理系統開發軟件采用VC++2012 和SQLServer 2012 關系型數據庫管理系統。 學生機房上機刷卡管理系統界面如圖6 所示。

          

         

          4 結語

          現有 系統開發基本是根據具體應用需求進行單獨設計的。 而這些不同的應用系統在軟、硬件部分具有很大的重復性,為提高軟、硬件的可重用性,文中通過分析RFID 射頻識別系統一般模型,提出了一種基于MCF52235 的RFID 通用開發平臺軟、硬件構件化設計方案,設計了集成多種接口的具備通用功能的RFID 開發平臺,并將該平臺應用于學生機房上機管理系統中。 實踐證明它為RFID 系統開發提供了一個快速、通用的軟、硬件模型。

        pa相關文章:pa是什么


        上拉電阻相關文章:上拉電阻原理
        鎖相環相關文章:鎖相環原理

        上一頁 1 2 3 下一頁

        關鍵詞: RFID MCF52235 CAN

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 和静县| 崇阳县| 龙陵县| 札达县| 阳高县| 兰考县| 龙岩市| 苍梧县| 甘洛县| 阿瓦提县| 通辽市| 亳州市| 东宁县| 本溪市| 阳曲县| 克拉玛依市| 钟山县| 博爱县| 寿阳县| 米林县| 潜山县| 阿拉善右旗| 邳州市| 延边| 周口市| 新疆| 德庆县| 铜山县| 英山县| 游戏| 广德县| 永顺县| 探索| 安阳县| 昆明市| 阿克苏市| 隆化县| 克什克腾旗| 潮州市| 丰顺县| 潢川县|