<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于MCF52235 的RFID 通用開發(fā)平臺設(shè)計(jì)

          基于MCF52235 的RFID 通用開發(fā)平臺設(shè)計(jì)

          作者: 時間:2014-12-15 來源:網(wǎng)絡(luò) 收藏

            2 通用開發(fā)平臺設(shè)計(jì)

          本文引用地址:http://www.ex-cimer.com/article/266844.htm

            2.1硬件設(shè)計(jì)

            硬件構(gòu)件模型中首先是主控制器MCU的選型。由于應(yīng)用廣泛,很多場合要求控制器有較快的處理速度,有多種控制模塊如A/D控制模塊、總線模塊、以太網(wǎng)控制模塊等。綜合分析,文中選擇了飛思卡爾單芯片解決方案處理器。該處理器采用Coldfire V2內(nèi)核和精簡指令集(RISC),頻率為60 MHz,通過設(shè)置鎖相環(huán)(PLL),能夠穩(wěn)定工作在80 MHz.內(nèi)部集成了10/100M快速以太網(wǎng)控制器(FEC)、以太網(wǎng)物理收發(fā)器(EPHY)等模塊,還有UART,I2C、QSPI、PWM、快速ADC等模塊,實(shí)現(xiàn)了單芯片解決方案。

            由于處理器中集成的以太網(wǎng)模塊已經(jīng)包括了以太網(wǎng)控制器和物理層收發(fā)器,因此網(wǎng)絡(luò)硬件構(gòu)件僅需添加少量的元件便可。MCF52235處理器的PHY_RXP、PHY_RXN引腳用于接收數(shù)據(jù),PHY_TXP、PHY_TXN引腳用于發(fā)送數(shù)據(jù)。這兩對收、發(fā)引腳分別接50Ω的上拉電阻。SPDLED引腳接網(wǎng)速LED燈指示當(dāng)前的連接速度是10 Mbps還是100 Mbps,LNKLED引腳接的LED燈則指示當(dāng)前是否已經(jīng)與另一個網(wǎng)絡(luò)設(shè)備連接。如果射頻系統(tǒng)中讀卡器終端并不多,可以不采用網(wǎng)絡(luò)而是通過USB接口與PC機(jī)進(jìn)行通信。USB構(gòu)件采用飛思卡爾的單芯片MC9S12UF32,它提供了高速USB2.0接口,即插即用。此處使用USB接口不是為了獲得更高的速度而是為了使用方便,所以選擇通過MCF52235的一個串口與UF32通信。

            射頻芯片選用的是飛利浦RC531芯片,工作頻率為13.56 MHz,在不外加功率放大器時讀寫距離可達(dá)10 cm,它通過SPI接口與MCF52235通信。

            LCD構(gòu)件采用耀宇科技的YM12864圖形點(diǎn)陣液晶。該液晶顯示器可以顯示4行、每行8個漢字或者16個字母。它有兩種常用的連接方式:并行和串行。并行連接需要11根引腳線,串行連接僅用3根引腳線,因此與MCU的連接采用串行的連接方式。另外還需一個引腳控制背光燈電源的正極LEDA開關(guān)。語音模塊和LCD模塊的功能一樣,都是為了增強(qiáng)人機(jī)交互,它采用上海奔流公司的BMP5008語音芯片。狀態(tài)指示燈用于觀察系統(tǒng)的運(yùn)行狀態(tài)和用戶的操作,通過GPIO口連接,幾乎所有的MCF52235引腳都可以作為GPIO引腳。主控制器MCF52235與各模塊的引腳連接如圖4所示。

            

           

            2.2軟件設(shè)計(jì)

            根據(jù)平臺的軟件構(gòu)件層次模型,先將各個模塊的驅(qū)動程序封裝成構(gòu)件。底層軟件構(gòu)件是與硬件直接打交道的,它由頭文件和源程序文件兩部分組成。編程思想是分析構(gòu)件的共性和個性,抽取出構(gòu)件的屬性和對外接口函,用戶使用該構(gòu)件時只需了解其接口函數(shù),而不必去了解內(nèi)部具體如何實(shí)現(xiàn)。

            頭文件部分給出構(gòu)件屬性的宏定義和對外接口函數(shù)的原型說明,源程序部分是函數(shù)的實(shí)現(xiàn)。

            以太網(wǎng)構(gòu)件主要包括以太網(wǎng)物理收發(fā)器(EPHY)和快速以太網(wǎng)控制器(FEC)的初始化、TCP/IP協(xié)議棧實(shí)現(xiàn)。它的接口函數(shù)原型說明如下:

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

            uint8 hw_ephy_init(uint16 sysclk,uint8 ratemode,

            uint8 dupmode,uint8 autoneg);//EPHY初始化

            void hw_fec_init(uint8 mac_addr_fec[6];//FEC初始化

            int8 hw_fec_sendframe(uint8 ch[],uint8destAdd[6],uint8 srcAdd[6],uint16 lenType,uint16len);//發(fā)送單個以太網(wǎng)幀

            uint8 hw_fec_receiveframe(uint8 ch[],uint16 *len);//接收單個以太網(wǎng)幀

            uint hw_icmp_handle(PACKET p);//處理接收到的ICMP包,響應(yīng)ping請求

            int hw_udp_send(unshort fport,unshort lport,

            PACKET p);//發(fā)送UDP包

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

            RC531射頻模塊與MCF52235通信嚴(yán)格按照串行通信時序要求。RC531與ISO/IEC 14443 TypeA和Type B卡通信,則按照A、B卡調(diào)制和編碼的方式設(shè)置相關(guān)的寄存器,并根據(jù)ISO/IEC 14443協(xié)議來設(shè)計(jì)軟件即可。讀卡器與A、B卡之間的通信是按照應(yīng)答方式來進(jìn)行的,非接觸式的卡有很多工作狀態(tài),各個狀態(tài)的轉(zhuǎn)化可通過讀卡器向卡發(fā)送一系列命令完成。射頻構(gòu)件的接口函數(shù)說明如下所示:

            // ==操作Type A卡的部分主要函數(shù)======

            void pcdinit();//R初始化

            char pcdreset();//RC531復(fù)位

            char pcdrequest(uint8 req_code);//尋卡

            char pcdanticoll(uint8 *snr);//防碰撞

            char pcdselect(uint8 *snr);//選定一張卡

            // =========操作Type B卡的函數(shù)========

            void pcdinitB();//B卡初始化

            char pcdrequestB(uint8 *pupi);//尋B卡

            char pcdattrib(uint8 *pupi);//發(fā)送attrib命令

            char pcdhaltB(uint8 *pupi);// B卡掛起

            char pcdgetUID(uint8 *snr,uint8 *len);//獲得B卡的ID

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

          pa相關(guān)文章:pa是什么


          上拉電阻相關(guān)文章:上拉電阻原理
          鎖相環(huán)相關(guān)文章:鎖相環(huán)原理


          關(guān)鍵詞: RFID MCF52235 CAN

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();