孝感定原电子科技有限公司 文 档 编 号 产品名称: 产品版本 密级 共 页 基于 STM32的RFID读卡器软件
软件设计说明书
软件详细设计报告
目 录
摘 要 ...................................................................................................................................................... 3
1
详细设计 ................................................................................................................................. 3 1 .1 1 .2 1 .3 1 .4 1 .5 1 .6 2
软件简述 ..................................................................................................................... 3 软件功能描述 ............................................................................................................. 3 模数转换处理模块 ..................................................................................................... 7 频率脉宽测量模块 ..................................................................................................... 9 SD卡的存储通讯处理 ............................................................................................. 10 PWM脉冲发射控制 ................................................................................................ 12
编程协定 ............................................................................................................................... 13 2 .1 2 .2 2 .3
操作系统 ................................................................................................................... 13 调试工具 ................................................................................................................... 13 编译链接工具 ........................................................................................................... 13
仅供内部使用
2
软件详细设计报告
摘 要
RFID(Radio Frequency Identification)技术即射频识别技术,是兴起于 20 世纪 90 年代的一种非接触式的自动识别技术,是通过射频信号的空间耦合(电磁场或交变磁场) 实现无接触信息传递并通过传递的信息达到识别目的的技术。它无需识别系统与特定目 标之间建立机械或光学接触,自动识别对象并获取相关信息数据,过程操作无须人工干 预,可应用于各种恶劣环境条件,有利于人们在不同状态下对各类物体进行识别与管理。 RFID 技术可识别高速运动物体并可同时识别多个标签,操作快捷方便[1]。 RFID 技术具有如下特点: 1.快速扫描性。RFID 辨识器可同时辨识读取多个 RFID 标签。 2.形状多、体积小。RFID 标签读取时并不受形状与大小的,不必为了通信的 精确度而专门使用固定尺寸的纸张一起提高印刷品质。此外,RFID 标签可往更多样形 态和更小型化发展,以满足不同产品的应用。 3.抗污损力和长寿命性。条形码使用纸张作为载体,因此容易受到污染,但 RFID 对水、油和化学药品等物质具有很强抵抗性。此外,由于条形码是附于塑料袋或外包装 纸箱上,所以特别容易受到折损;RFID 卷标是将数据存在芯片中,因此可以免受污损。 4.可重复使用性。现今的条形码印刷上去之后就无法更改,RFID 标签则可以重复 地新增、修改、删除 RFID 卷标内储存的数据,方便信息的更新。 5.穿透性和无屏障阅读。在被覆盖的情况下,RFID 能够穿透纸张、木材和塑料等 非金属或非透明的材质,并能够进行穿透性通信。而条形码扫描机必须在近距离而且没 有物体阻挡的情况下,才可以辨读条形码。 6.大容量数据记忆性。一维条形码存储数据的最大容量是 50Bytes,二维条形码存 储的最大的容量是 2 至 3000 字符,而 RFID 的最大存储容量可达数 MegaBytes。由于记 忆载体在不断的发展,数据容量也将不断扩大。将来产品携带的信息量也会越来越大, 需要对卷标扩充更大的容量。 7.安全性。RFID 承载的信息是电子式的,所以其数据内容加密保护,使其内容不易被伪造及变造。 关键词
数据采集 频率分析
1 详细设计 1 .1 软件简述
读卡器与 IC 卡的通信过程,就是读卡器与 IC 卡之间进行数据交换和处理 IC 卡内 E 2 PROM 中的数据的过程。在数据交换时,为了保证卡和读卡器之间数据能够同步并且 能正确识别、接收,需要建立系统的通信协议。本系统具有较好的应用价值。
1 .2 软件功能描述
1 .2.1
软件功能介绍
本系统采用 STM32 单片机、MF RC522 集成射频读写芯片,开发了一种 13.56MHz 的 RFID 读卡器,通过 RS232 串口实现了上位机与读卡器的通信。读卡器能够读写距离在0-41mm 范围内的符合 ISO 14443 TypeA 标准的非接触式IC 卡,。 1 .2.2
软件基本框架
本课题采用 STM32 单片机、MF RC522 集成射频读写芯片,开发了一种 13.56MHz 的 RFID 读卡器,并使用 LabVIEW 软件编写上位机界面,通过 RS232 串口实现了上位 机与读卡器的通信。读卡器能够读写距离在 0-41mm 范围内的符合 ISO 14443 TypeA 标 准的非接触
仅供内部使用
3
软件详细设计报告
式 IC 卡,下图是本软件的基本框架图和主程序流程图。
仅供内部使用
4
软件详细设计报告
图一 基本框架图
信号通过高速运放搭建的模拟比较器,比较器的比较电压通过STM32F417的数模转换器提供,用于初始化进行噪声采集,门限自适应,这样可以滤除存在于信道中的噪声。
若开机检测到串口发送指令,则程序切换到USART串口收发模式,可以进行参数设定和数据的导出操作。
信号经过了模拟比较器后得到了一个标准的方波信号,方波信号进入到多路轮询模块中进行通道切换。
仅供内部使用
5
软件详细设计报告
启动初始化串口指令检测YESNONO噪声检测启动UARTYES信号处理启动SDIO开启延时定时器开启PWM脉冲宽度定时器开启脉冲宽度定时器发射脉冲记录结果 图二 主程序流程图
仅供内部使用
6
软件详细设计报告
1 .3 模数转换处理模块
首先利用STM32F417片内的ADC对外部噪声进行采集,由于需要判断的信号频率在100~300kHz,因此采样率需要设定为300kHz的2倍以上。
单个ADC控制器工作的最高频率为36MHz,并且一个采样周期最短为15个工作周期,因此最大的采样率为2.4MHz。不过对于更为高速的信号,STM32F417可以将3路ADC并联使用,形成交错采样,因此STM32F417最高的采样率为7.2MHz。
信号输入信号输入ADC信号输入数据门限判定数据比较器信号输入
1 .3.1
程序流程图
仅供内部使用
7
软件详细设计报告
信号输入多路通道切换指令ADC1采集ADC2采集信号门限判定DAC设定模拟数据比较 1 .3.2 设备侧实现
仅供内部使用
8
软件详细设计报告
为了保证采样的精度,因此采用了2路ADC并联使用,使得采样率达到4.8MHz,保证了在500kHz的噪声频带上也能有10倍的采样率。
将噪声采集后使用DMA传输8192个点的噪声信号,计算噪声的幅度,并根据噪声的最大值与均方根值确定比较器的电压幅度门限,然后通过DAC发出门限电压信号给比较器,形成电压门限。
承载了单频脉冲的待测信号经过了模拟比较器后变成了1个方波信号,方波信号进入了微控制器芯片检测端,该信号会触发中断,从而开始记录信号的脉冲次数以及信号的脉冲长度,通过脉冲长度与脉冲次数的商值可以得到信号的频率、脉宽。当信号的2次脉冲的间隔小于预设区间或者大于预设区间时,就会被判定为无效脉冲或者是噪声脉冲,由此减小信号的虚警概率。
1 .4 防冲突初始化模块
当一个 Type A 型卡到达了阅读器的作用范围内,并且有足够的供应电能,IC 卡就 首先执行相关的预置程序,然后进入闲置状态。此时的 IC 卡不能响应阅读器对其它 IC 卡传输的数据。当处于闲置状态的 IC 卡收到有效的请求 A(REQA)命令时,它会给阅 读器回送应答字组 ATQA。IC 卡应答之后,进入 READY 状态。此时阅读器已发现,在 其识别范围内至少存在一个 IC 卡。它将发送 SELECT 命令启动“二进制检索树”防碰撞 算法,选择出其中一张 IC 卡,对其开始操作。图 4.2 为整个流程。 NVB 是 SELECT 命令的一个参数,其主要作用是描述检索准则的实际长度,一个 简单的序列号长度是 4 个字节。阅读器如果要采用防冲突算法查找一个序列号,则阅读 器需要在发送 SELECT 命令时发送完整的序列号(NVB=40H)。具有查找序列号的 IC 卡采用 SELECT 命令选择应答 SAK 来确认这条命令,并处于 ACTIVE 状态,即选择状 态。 但是有些序列号的长度并不是 4 字节长。标准也允许 7 字节长甚至 10 字节长的序 列号。阅读器如果选择序列号长为 7 字节或 10 字节的 IC 卡,则 IC 卡在应答 SAK 时设 定“串联位”(b3=1)发出信号,并且表示 IC 卡已处于准备好的状态。为了得到序列号 的第二部分,阅读器将再一次启动防冲突算法。对于 10 字节的序列号,系统将多次启 动防冲突算法。通过在 SCLECT 命令中区分为 3 个串联级,来表明每次启动防冲突算法 是为了查找序列号的哪一部分,以使 IC 卡发出对应的信号。这样在查找时,应按照顺 序首先从串联级 1 启动。
仅供内部使用
9
软件详细设计报告
1 .4.1
程序流程图
1 .4.2
设备侧实现
软件防冲突算法中,通过发送 SAK 信号(选择响应)来确认 Type A 卡是否被选择。SAK
中含有如下信息:此卡是否具有权限的协议(Mifare),或者此卡是否符合国际标准 ISO 14443-4 协议。 如果符合 ISO 14443-4 协议,则阅读器发送选择请求命令(RATS)来请求 IC 卡的 选择响应信息(ATS)。其中,RATS 包含通信中的两个重要参数 FSDI 和 CID。FSDI 规 定了卡向阅读器发送数据块允许的最大字节数。CID 为卡识别符,若将一个卡指配给一 个 CID,则可通过 CID 在选择状态中让阅读器与多个 Type A 卡同时交换信息。 由 IC 卡作为对 RATS 命令的应答而发送的 ATS(选择响应)相当于保持连接 IC 卡 的 ATR(清除响应),并描述了 IC 卡操作系统的重要协议参数。
1 .5 SD卡的存储通讯处理
通过微控制器的SDIO的接口进行通信,通过CMD命令进行SDHC卡封控制,实现数据的存储,具体初始化与工作的流程如下图。
仅供内部使用
10
软件详细设计报告
1 .5.1
程序流程图
开始CMD0NOCMD8YESACMD41CMD2CMD3
1 .5.2
设备侧实现
STM32F417有一个SDIO的接口,可以实现4线SD卡存储或者是其他符合SDIO协议的设备工作,
仅供内部使用
11
软件详细设计报告
例如SDIOWIFI设备等。这里采用了基于2.0标准的SDHC卡,这种类型的卡出了容量远远大于第1代标准的卡以外,在初始化的程序上也有所不同,加入了CMD8命令可以确保工作电压的稳定运行。
1 .6 数据读写控制
通过 RS232 串口转 USB 线将读卡器与上位机 PC 连接,并通过稳压电源将系统接 入+5V 直流电源,上电后,系统工作指示灯 D5(红色)点亮,初始化指示灯 D4(蓝色) 点亮 1 秒后熄灭,说明系统初始化成功。设备安装好串口转 USB 驱动程序及上位 机软件后,将会自动识别硬件并安装驱动程序。并且通过设备管理器可以查看当前串口号。 1 .6.1
子程序流程图
仅供内部使用
12
软件详细设计报告
1 .6.2
设备侧实现
系统上电运行后先初始化设备、打开串口,然 后等待操作指令。操作指令分为寻卡指令、读卡指令及写卡指令三种,当执行完各自的 指令后,系统均将返回相应的数据,系统将自动处理数据后返回继续等待指令;若未返 回数据,则操作不成功,系统返回等待操作指令。。
2 编程协定 2 .1 操作系统
Win7 操作系统, keil MDK Uvision5 集成开发环境
2 .2 调试工具
J-link V8仿真调试器
2 .3 编译链接工具
Keil Uvision 5
仅供内部使用
13