Microblaze在RFID阅读器的软硬件设计中的应用
时间:11-10
来源:互联网
点击:
4.2 实现过程
在集成开发环境中添加LCD、 URAT 和DIP的软件IP 核,其中DIP 用于模拟键盘输入。然后配置各个接口IP 核的总线类型、地址范围和外部端口,在项目的UCF 文件中配置接口IP 核的引脚和FGPA 的I/O 的连接关系。
从串口接收数据有两种方法:一种是采用定时器读;另一种采用串口的中断服务程序来读。采用定时器消耗资源比较大,本文采用串口中断的方法,当串口有数据到达时,激活串口中断服务程序,在中断服务程序中读出串口缓冲区的数据,然后写道FIFO 对列。
URAT 中断服务程序的主要代码如下:
Void XUartLite_InterruptHandler ( XUartLite *
InstancePtr)
/*判断Uart 缓冲区是否为空*/
if(!XUartLite_mIsReceiveEmpty(RS232_BASEADD
R))
{
/*接收URAT 数据*/
Data=XUartLite_RecvByte(RS232_BASEADDR);//
/*写入FIFO 缓冲队列*/
Add_Queue(Data);
}
其中FIFO 缓冲队列是由一个自定义的数据结构和对它的操作实现的。
下面是主程序的主要代码。
初始化部分
/*URAT 初始化*/
XUartLite_Initialize( &Uart,
XPAR_RS232_DEVICE_ID)
/*LCD 初始化*/
void lcd_init(unsigned int base_addr)
/*URAT 开中断*/
void XUartLite_EnableInterrupt ( XUartLite *
InstancePtr)
/*设置URAT 初始化*/
void XUartLite_SetSendHandler(XUartLite
* InstancePtr, XUartLite_Handler FuncPtr, void
*CallBackRef)
/*设置URAT 的中断服务程序*/
void XUartLite_SetRecvHandler(XUartLite *
InstancePtr, , XUartLite_Handler
XUartLite_InterruptHandle, void * CallBackRef)
初始化完成以后,然后进入一个无限循环。
/*判断是否有键按下*/
XGpio_InterruptGetStatus(XGpio *InstancePtr)
/*发送读标签命令*/
for (j=0;j
{ XUartLite_SendByte(UARTLITE_0_BASEA
DDR, *(commanda+j) );
wait(50000);
}
/*如果对列不为空*/
If(!IsEmptyQuque())
/* 读取队列数据 */
Read_Quque(data )
/* 写入FLASH*/
void flash_write(Xuint32 addr, long data)
对FLASH 的操作首先要块檫除,然后才能写,对FLASH 写的代码如下:
void flash_write(Xuint32 addr, long data)
{XIo_Out32(flash_base_addr + (0x555
图6 标签信息在LCD 的显示
5 结 论
RFID 技术是近年来发展起来的一种新型的自动识别技术。FPGA 技术是未来硬件广泛使用的一种技术,本文结合将RFID 技术与FPGA 技术相结合,研究和实现了一种新结构的阅读器,基于FPGA的阅读器具有结构灵活、体积小、升级容易和易扩展等优点。本文给出了阅读器的总体结构、硬件部分结构和软件部分结构,研究了RFID 射频模块与FPGA 之间的接口实现及标签信息在LCD 显示。具有广泛的使用价值。
在集成开发环境中添加LCD、 URAT 和DIP的软件IP 核,其中DIP 用于模拟键盘输入。然后配置各个接口IP 核的总线类型、地址范围和外部端口,在项目的UCF 文件中配置接口IP 核的引脚和FGPA 的I/O 的连接关系。
从串口接收数据有两种方法:一种是采用定时器读;另一种采用串口的中断服务程序来读。采用定时器消耗资源比较大,本文采用串口中断的方法,当串口有数据到达时,激活串口中断服务程序,在中断服务程序中读出串口缓冲区的数据,然后写道FIFO 对列。
URAT 中断服务程序的主要代码如下:
Void XUartLite_InterruptHandler ( XUartLite *
InstancePtr)
/*判断Uart 缓冲区是否为空*/
if(!XUartLite_mIsReceiveEmpty(RS232_BASEADD
R))
{
/*接收URAT 数据*/
Data=XUartLite_RecvByte(RS232_BASEADDR);//
/*写入FIFO 缓冲队列*/
Add_Queue(Data);
}
其中FIFO 缓冲队列是由一个自定义的数据结构和对它的操作实现的。
下面是主程序的主要代码。
初始化部分
/*URAT 初始化*/
XUartLite_Initialize( &Uart,
XPAR_RS232_DEVICE_ID)
/*LCD 初始化*/
void lcd_init(unsigned int base_addr)
/*URAT 开中断*/
void XUartLite_EnableInterrupt ( XUartLite *
InstancePtr)
/*设置URAT 初始化*/
void XUartLite_SetSendHandler(XUartLite
* InstancePtr, XUartLite_Handler FuncPtr, void
*CallBackRef)
/*设置URAT 的中断服务程序*/
void XUartLite_SetRecvHandler(XUartLite *
InstancePtr, , XUartLite_Handler
XUartLite_InterruptHandle, void * CallBackRef)
初始化完成以后,然后进入一个无限循环。
/*判断是否有键按下*/
XGpio_InterruptGetStatus(XGpio *InstancePtr)
/*发送读标签命令*/
for (j=0;j
{ XUartLite_SendByte(UARTLITE_0_BASEA
DDR, *(commanda+j) );
wait(50000);
}
/*如果对列不为空*/
If(!IsEmptyQuque())
/* 读取队列数据 */
Read_Quque(data )
/* 写入FLASH*/
void flash_write(Xuint32 addr, long data)
对FLASH 的操作首先要块檫除,然后才能写,对FLASH 写的代码如下:
void flash_write(Xuint32 addr, long data)
{XIo_Out32(flash_base_addr + (0x555
图6 标签信息在LCD 的显示
5 结 论
RFID 技术是近年来发展起来的一种新型的自动识别技术。FPGA 技术是未来硬件广泛使用的一种技术,本文结合将RFID 技术与FPGA 技术相结合,研究和实现了一种新结构的阅读器,基于FPGA的阅读器具有结构灵活、体积小、升级容易和易扩展等优点。本文给出了阅读器的总体结构、硬件部分结构和软件部分结构,研究了RFID 射频模块与FPGA 之间的接口实现及标签信息在LCD 显示。具有广泛的使用价值。
RFID 电子 自动化 FPGA 集成电路 ARM 射频 LCD 电路 Xilinx 嵌入式 Altera VHDL 总线 555 相关文章:
- RFID标记技术及其应用(09-27)
- RFID全面挑战蓝牙(09-27)
- 无线射频技术应用大有作为(02-19)
- WLAN:在期待中曲折前进(02-20)
- 无线射频技术(RFID)应用原理 (04-16)
- RFID技术的发展历史和标准现状(04-16)