通信工程实训报告模板Word文件下载.docx
《通信工程实训报告模板Word文件下载.docx》由会员分享,可在线阅读,更多相关《通信工程实训报告模板Word文件下载.docx(27页珍藏版)》请在冰点文库上搜索。
2、系统的主要功能有:
(1>
显示系统:
液晶屏显示,能显示系统时钟和卡片信息等;
(2>
按键操作:
能实现对系统的设置和卡上数据的操作;
(3>
机器读卡速度:
0.5秒可完成一次打卡过程,读卡距离为5至10厘M。
进度安排:
2018年11月18日——2018年11月30日查阅资料、工程总体分析
2018年12月01日——2018年12月13日系统功能总体设计
2018年12月14日——2018年12月26日软件程序及硬件电路设计
2018年12月27日——2018年01月03日软硬件系统调试、测试
2018年01月04日——2018年01月08日撰写实训报告
2018年01月09日——2018年01月10日验收
主要参考资料:
[1]谭民等.RFID技术系统工程及应用指南[M].北京:
机械工业出版社.2007.4;
[2]郎为民.射频识别<
RFID)技术原理与应用[M].北京:
机械工业出版社.2006.8;
[3]韦龙新,高玉玲.一种近距离RFID读写器的设计[J].信息通信.2018年03期
教师签名:
年月日
目录
1引言1
2方案设计1
2.1读写器基本原理1
2.2各模块方案选择2
2.总体方案确定3
3.硬件电路设计4
3.1单片机控制部分4
3.2射频处理模块5
3.3天线部分6
3.4声音提示及显示部分7
4.单片机程序设计7
4.1Mifare卡操作程序设计7
4.2软硬件的联合测试运行13
5.总结16
参考文献17
附录17
1引言
RFID是无线射频识别技术英文Radiofrequencyidentification的缩写,无线射频识别技术是20世纪90年代开始兴起并逐渐成熟的一种识别技术,是一项利用射频信号通过空间耦合实现无接触信息传递并通过所传递的信息达到识别目的的技术。
本次软硬件专业综合课程设计的任务是基于单片机设计一种RFID读写器,该读写器可以将信息编码写入标签,粘贴在需要识别的物体表面,然后借助无限远程传输功能进行信息传递和更新,完成对其定位、识别和管理。
2方案设计
2.1读写器基本原理
RFID读写器以射频识别技术为核心,读写器内主要使用专用的读写处理芯片,它是读/写操作的核心器件,其功能包括调制、解调、产生射频信号、安全管理和防碰撞机制。
其内部结构分为射频区和接口区:
射频区内含调制解调器和电源供电电路,直接与天线连接;
接口区有与单片机相连的端口,还具有与射频区相连的收/发器、数据缓冲器、防碰撞模块和控制单元。
这是与智能IC卡实现无线通信的核心模块,也是读写器读写智能IC卡的关键接口芯片。
读写器工作时,不断地向外发出一组固定频率的电磁波,当有卡靠近时,卡片内有一个LG串联谐振电路,其频率与读写器的发射频率相同,这样在电磁波的激励下,LG谐振电路产生共振,从而使电容充电有了电荷。
在这个电容另一端,接有一个单向导电的电子泵,将电容内的电荷送到另一个电容内存储。
当电容器充电达到一定电压值时,此电容就作为电源为卡片上的其他电路提供工作电压,将卡内数据发射出去或接收读写器发出的数据与保存。
读卡器的工作过程如下:
读卡器将载波信号经天线向外发送;
卡进入读卡器的工作区域后,卡内天线和电容组成的谐振回路接收读卡器发射的载波信号,射频接口模块将其转换成电源电压、复位信号,使卡片激活;
存取控制模块将存储器中信息调制到载波上,经卡上天线送给读卡器;
(4>
读卡器对接收到的信号进行解调、解码后送至后台计算机;
(5>
后台计算机根据卡号的合法性,针对不同应用做出相应的处理和控制。
2.2各模块方案选择
控制器的选择
采用ATMEL公司的AT89S52作为系统的控制器。
AT89S52单片机算术运算功能强、软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等特点,使其在各个领域应用广泛。
AT89S52是我们熟悉的控制器,编程比较熟悉,易于掌握。
RFID读卡芯片的选择
随着RFID市场的迅猛增长,各大传统IC芯片制造商都加入到RFID读卡芯片的开发当中,可供选择的芯片很多。
其中NXP公司是较早进入RFID芯片行业的国际半导体公司,在射频读写芯片上产品较全。
MF-RC500芯片就是NXP公司生产的。
MF-RC500是高整合的13.56MHz非接触IC卡读写芯片,整合了所有主动非接触通信方式和协议,MF-RC500支持ISO14443A&
B的所有层的通信方案;
内部收发器部分能够驱动近耦合设计的天线而不需要另外的电路;
数字部分能处理完整的ISO14443帧数据还有错误检测;
具有合适的并行接口,可以直接与8位的微处理器相连,并且支持SPI兼容接口。
由于MF-RC500能够满足设计需求,而且应用范围比其他的芯片更广,资料齐备,作为本设计的射频接口芯片。
显示模块的选择
使用液晶显示屏显示各种信息。
液晶显示屏具有轻薄短小、低耗电量、平面直角显示以及影像稳定不闪烁等优势,并且符合本系统显示信息量多的需求,利用LCD自带的字符库,进行编程就可以实现所需信息的显示,其不必利用控制芯片创建字符库,既节省了资源,又省去了该部分的大量编程任务。
为了使人机界面更加友好,操作更加方便,采用LCD液晶显示。
键盘模块的选择
由于该系统要求具有对卡片进行读/写操作,系统时钟的设置等,用到的按键较多,在设计时考虑采用矩阵式按键。
矩阵式按键接口适用于按键数量较多,又不想使用专用键盘芯片的场合。
这种方式的按键接口由行线和列线组成,按键位于行、列的交叉点上。
这种方的优点是可以节省很多I/O资源,相对于专用键盘可以节省成本,且更为灵活。
缺点是需要用软件处理消抖、重键等。
系统时钟和存储芯片的选择
刷卡时要记录刷卡的时间,用外接硬件时钟芯片的办法,为系统提供一个准确可靠的时钟,用3V备用电池保证在系统掉电时也能正常走时。
在此选用体积小、接口简单的实时时钟芯片DS1302。
它是美国Dallas公司推出的低功耗串行通信接口专用芯片,采用3线串行方式与单片机进行数据通信。
采用AT24C64作数据存储器。
AT24C64是串行E2PROM存储器,支持I2C总线数据传输协议,8K存储器容量,用两根线与CPU构成串行接口。
由于本设计采用的AT89S52单片机不具备I2C总线接口,因此采用软件法加以解决。
2.总体方案确定
根据综合分析,系统设计方案如下:
RDID读写器以AT89S52单片机作为微控制器,采用MF-RC500芯片作为射频卡读/写模块,采用DS1302作为系统时钟,以AT24C64作为不掉电存储器,采用LCD显示,并以RS232接口和计算机通信,组成一套功能齐全的非接触IC卡读写系统。
当IC卡在天线区域经过时,单片机自动需求对IC卡进行读写,再把读/写卡的时间一起存到存储器中,计算机可以通过串口把相关读/写卡信息读到计算机上,再进行统计、报表和打印输出等。
系统框图如图1所示。
图1RFID读写器系统结构框图
3.硬件电路设计
在本章中主要叙述开发的读写器系统的硬件设计方案,对单片机控制部分、射频处理模块、天线以及声音和显示部分电路的设计进行了详细说明。
主要原理是通过单片机AT89S52控制读写芯片MFRC522中的寄存器,从而实现MFRC522对Mifare卡进行读写访问操作。
系统硬件电路分为控制电路,读写驱动电路和液晶显示电路等。
射频识别卡读写设备的基本结构由以下几个部分组成<
如图2所示):
图2系统硬件模块
3.1单片机控制部分
单片机是整个读写设备的核心部分,主要负责数据处理,它不仅要控制射频读卡处理模块完成对射频识别卡的读写,还要负责通过串口接口与上位机或其他应用系统进行通信以及键盘、显示模块等其他外部模块的控制。
本文设计的读写器系统的单片机采用的是AT89S52。
图3单片机部分电路原理图
3.2射频处理模块
射频处理部分是射频识别读写器的关键部件,通过射频处理部分与非接触式IC卡进行数据通信。
射频处理部分的核心部件就是射频基站芯片,本文设计的读写器的射频基站芯片采用了MFRC522芯片。
MFRC522是高度集成的非接触式<
13.56MHz)读写卡芯片。
此发送模块利用调制和解调的原理,并将它们完全集成在各种非接触式通信方法和协议中<
13.56MHz)。
MFRC522的内部发送器部分可驱动读写器天线与ISO14443/MIFARE®
卡和应答机的通信,无需其它的电路。
接受其部分提供一个功能强大和高效的借条和译码电路,用来处理兼容ISO14443/MIFARE®
的卡和应答机的信号。
数字电路部分处理完整的ISO14443A帧和错误检测<
奇偶&
CRC)。
MFRC522支持MIFARE®
Classic<
如,MIFARE®
标准)器件。
更高速的非接触式通信,双向数据传输速率高达424kbit/s。
可实现各种不同主机接口的功能:
①SPI接口;
②串行UART<
类似RS232,电压电平取决于提供的管脚电压;
③I2C接口。
图4射频部分电路原理图
3.3天线部分
天线是一种能够将接收到的电磁波转换为电流信号,或者将电流信号转换为电磁波信号的装置。
13.56MHz射频天线及其匹配电路共有三块:
天线线圈、匹配电路<
LC谐振电路)和EMC滤波电路。
在天线的匹配设计中必须保证产生一个尽可能强的电磁场,以使卡片能够获得足够的能量给自己供电,而且考虑到调谐电路的带通特性,天线的输出能量必须保证足够的通带范围来传送调制后的信号。
图5天线部分电路原理图
3.4声音提示及显示部分
非接触式IC卡读写器进行读写操作时发出提示音,发声的器件选用蜂鸣器,该器件使用方便、价格便宜。
单片机的I/O口驱动能力有限,不能直接驱动蜂鸣器发声,通过三极管来驱动蜂鸣器。
显示部分采用LCD12864液晶显示模块。
图6LCD与单片机接口电路
4.单片机程序设计
读写器应用系统硬件必须在软件的控制下才能工作,第五章主要讲述读写器系统软件设计的原理,读写器和Mifare卡的通信的过程,系统的初始化、防冲撞、密码验证和读/写操作等模块。
软件设计主要包括主控制程序设计,射频处理程序设计以及显示程序设计,编写程序的软件是Keiluv4。
程序的每一部分按模块化设计成一个文件,单独调试通过后,再在Keiluv4环境下加入到工程文件中,然后生成HEX文件,烧录到STC11F32XE单片机芯片中进行调试运行。
4.1Mifare卡操作程序设计
对Mifare卡常用的操作指令分为请求应答、防冲撞、选卡、认证、读/写操作、增/减值、存取和传输。
下面流程图描述Mifare卡的整个操作过程。
图7Mifare卡的操作流程图
1.请求操作
当有Mifare卡进入读写器天线有效扫描范围内时,读写器发出Request命令。
卡上的ATR将启动,Request命令将与Mifare卡进行通信,读取Mifare卡上的第0扇区的第0块上的卡片类型号TagType<
2个字节),由MFRC522传输给单片机进行处理,建立卡片与读写器的第一步通信。
如果不进行以上操作,读写器对Mifare卡的其他操作将无法进行。
charPcdRequest(unsignedchardatareq_code,unsignedchar*pTagType>
{
chardatastatus。
unsignedintdataunLen。
unsignedchardataucComMF522Buf[MAXRLEN]。
ClearBitMask(Status2Reg,0x08>
。
WriteRawRC(BitFramingReg,0x07>
SetBitMask(TxControlReg,0x03>
ucComMF522Buf[0]=req_code。
status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&
unLen>
if((status==MI_OK>
&
&
(unLen==0x10>
>
{
*pTagType=ucComMF522Buf[0]。
*(pTagType+1>
=ucComMF522Buf[1]。
}
else
{status=MI_ERR。
returnstatus。
}
2.防冲撞操作
在查询操作之后,要进行的是防冲撞操作,只取其中一张Mifare卡的序列号。
如果有多张Mifare卡同时处于读写器天线有效作用范围内,读写器首先与每一张Mifare卡进行通信,分别取得其序列号,通过防冲撞功能,读写器将会根据Mifare卡的序列号来选择其中一张Mifare卡,此卡将与读写器进行数据交换,没有选中的卡片继续处于等待状态。
charPcdAnticoll(unsignedchar*pSnr>
unsignedchardatai,snr_check=0。
WriteRawRC(BitFramingReg,0x00>
ClearBitMask(CollReg,0x80>
ucComMF522Buf[0]=PICC_ANTICOLL1。
ucComMF522Buf[1]=0x20。
status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&
if(status==MI_OK>
{
for(i=0。
i<
4。
i++>
*(pSnr+i>
=ucComMF522Buf[i]。
snr_check^=ucComMF522Buf[i]。
if(snr_check!
=ucComMF522Buf[i]>
SetBitMask(CollReg,0x80>
3.选卡操作
当Mifare卡成功完成请求应答,防冲撞操作后,下一步将进行选卡选择。
对指定序列号的卡进行选择操作,选中的卡可以进一步同MFRC522进行通信,其余的卡恢复到初始状态。
选卡操作流程图如图8所示:
图8选卡操作流程图
charPcdSelect(unsignedchar*pSnr>
unsignedchardatai。
ucComMF522Buf[1]=0x70。
ucComMF522Buf[6]=0。
for(i=0。
ucComMF522Buf[i+2]=*(pSnr+i>
ucComMF522Buf[6]^=*(pSnr+i>
CalulateCRC(ucComMF522Buf,7,&
ucComMF522Buf[7]>
status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&
(unLen==0x18>
{status=MI_OK。
4.认证操作
如果要对卡片的存储器中存放的信息进行访问,需要进行卡片认证操作。
通过将存储在MFRC522的RAM中的密码集中得一组密码与Mifare卡上的密码进行匹配认证,如果这组密码匹配,则可以对Mifare卡进行下一步操作,不匹配则不能对Mifare卡进行下一步操作。
charPcdAuthState(unsignedchardataauth_mode,unsignedchardataaddr,unsignedchar*pKey,unsignedchar*pSnr>
unsignedchardatai,ucComMF522Buf[MAXRLEN]。
ucComMF522Buf[0]=auth_mode。
ucComMF522Buf[1]=addr。
6。
{ucComMF522Buf[i+2]=*(pKey+i>
{ucComMF522Buf[i+8]=*(pSnr+i>
status=PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&
if((status!
=MI_OK>
||(!
(ReadRawRC(Status2Reg>
0x08>
5.读操作
Mifare卡通过认证操作后,读操作允许单片机通过MFRC522来读取卡片上的数据,一次只能读取16个字节。
从卡片上读取的数据需要由单片机进行验证,以确保数据信息的有效性。
charPcdRead(unsignedchardataaddr,unsignedchar*pData>
ucComMF522Buf[0]=PICC_READ。
CalulateCRC(ucComMF522Buf,2,&
ucComMF522Buf[2]>
status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&
(unLen==0x90>
16。
{*(pData+i>
6.写操作
在认证指令通过后,Write写指令允许用户将数据写入到Mifare卡指定的扇区或数据块中。
每次写入完整的16B的数据块。
charPcdWrite(unsignedchardataaddr,unsignedchar*pData>
ucComMF522Buf[0]=PICC_WRITE。
||(unLen!
=4>
||((ucComMF522Buf[0]&
0x0F>
!
=0x0A>
ucComMF522Buf[i]=*(pData+i>
CalulateCRC(ucComMF522Buf,16,&
ucComMF522Buf[16]>
status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&
7.值操作
当Mifare卡的块的属性设定为值块时,可以对Mifare卡进行值操作,值操作包括增加、减少、取值、传输。
voidCalulateCRC(unsignedchar*pIndata,unsignedchardatalen,unsignedchar*pOutData>
unsignedchardatai,n。
ClearBitMask(DivIrqReg,0x04>
WriteRawRC(CommandReg,PCD_IDLE>
SetBitMask(FIFOLevelReg,0x80>
len。
{WriteRawRC(FIFODataReg,*(pIn