基于MCF52235 的RFID 通用開發(fā)平臺設(shè)計
2 RFID通用開發(fā)平臺設(shè)計
本文引用地址:http://2s4d.com/article/266844.htm2.1硬件設(shè)計
硬件構(gòu)件模型中首先是主控制器MCU的選型。由于RFID應(yīng)用廣泛,很多場合要求控制器有較快的處理速度,有多種控制模塊如A/D控制模塊、CAN總線模塊、以太網(wǎng)控制模塊等。綜合分析,文中選擇了飛思卡爾單芯片解決方案MCF52235處理器。該處理器采用Coldfire V2內(nèi)核和精簡指令集(RISC),頻率為60 MHz,通過設(shè)置鎖相環(huán)(PLL),MCF52235能夠穩(wěn)定工作在80 MHz.內(nèi)部集成了10/100M快速以太網(wǎng)控制器(FEC)、以太網(wǎng)物理收發(fā)器(EPHY)等模塊,還有UART,I2C、QSPI、PWM、快速ADC等模塊,實現(xiàn)了單芯片解決方案。
由于MCF52235處理器中集成的以太網(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è)備連接。如果RFID射頻系統(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圖形點陣液晶。該液晶顯示器可以顯示4行、每行8個漢字或者16個字母。它有兩種常用的連接方式:并行和串行。并行連接需要11根引腳線,串行連接僅用3根引腳線,因此與MCU的連接采用串行的連接方式。另外還需一個引腳控制背光燈電源的正極LEDA開關(guān)。語音模塊和LCD模塊的功能一樣,都是為了增強人機(jī)交互,它采用上海奔流公司的BMP5008語音芯片。狀態(tài)指示燈用于觀察系統(tǒng)的運行狀態(tài)和用戶的操作,通過GPIO口連接,幾乎所有的MCF52235引腳都可以作為GPIO引腳。主控制器MCF52235與各模塊的引腳連接如圖4所示。
2.2軟件設(shè)計
根據(jù)平臺的軟件構(gòu)件層次模型,先將各個模塊的驅(qū)動程序封裝成構(gòu)件。底層軟件構(gòu)件是與硬件直接打交道的,它由頭文件和源程序文件兩部分組成。編程思想是分析構(gòu)件的共性和個性,抽取出構(gòu)件的屬性和對外接口函,用戶使用該構(gòu)件時只需了解其接口函數(shù),而不必去了解內(nèi)部具體如何實現(xiàn)。
頭文件部分給出構(gòu)件屬性的宏定義和對外接口函數(shù)的原型說明,源程序部分是函數(shù)的實現(xiàn)。
以太網(wǎng)構(gòu)件主要包括以太網(wǎng)物理收發(fā)器(EPHY)和快速以太網(wǎng)控制器(FEC)的初始化、TCP/IP協(xié)議棧實現(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è)計軟件即可。讀卡器與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)原理
評論