垣宝建设工程集团网站,做电商运营需要具备什么能力,珠海建设工程监督站网站,有哪些做文创产品的网站补充#xff1a;学习路径 一。项目介绍及需求分析
1.酒店智能门禁使用场景介绍 1.客人入住 客人在前台办理入住手续#xff0c;前台管理员通过门禁管理系统为客户开一张门禁卡 客户持卡到相应客房#xff0c;用IC 卡刷卡开门 客人过了入住时间后#xff0c;卡自动失效学习路径 一。项目介绍及需求分析
1.酒店智能门禁使用场景介绍 1.客人入住 客人在前台办理入住手续前台管理员通过门禁管理系统为客户开一张门禁卡 客户持卡到相应客房用IC 卡刷卡开门 客人过了入住时间后卡自动失效刷卡不能再次开门 2.酒店管理 客房服务需要一张没有时间限制且能打开多个房门的卡 酒店经理需要一张没有时间限制且能打开所有房间的卡 2.酒店智能门禁需求 需要两个器件客房门禁读写器需求、前台读写器分析需求。 1.客房门禁读写器需求分析 普通客房卡根据房间号和时间判断是否允许开锁 客房服务卡所在楼层所有房门允许开锁 酒店经理卡所有房门无条件开锁 开锁超过一定时间房门关闭状态下自动上锁 开锁后检测到门打开又关闭后自动上锁 读写器的房间号含楼层由授权卡和普通客房卡设置 读写器的时间由时间卡设置 黑名单由黑名单设置卡设置对名单中的卡一律不响应可选 低功耗的需求 2.前台读写器需求分析 可以发出带房号和入住截至时间的普通客房卡 可以发出酒店经理卡、客房服务卡等管理卡 可以发出门锁时间设置卡、授权卡、黑名单设置卡等功能卡 所有发卡信息均来自上位机 二。项目实现方案门禁读写器
1.硬件实现方案 首先需要读写器天线对鞋芯片需要实时时钟RTC需要存储数据flash存储需要一些响应指示灯蜂鸣器需要一些差错的管理闭门检测。 嵌入式MCU 选主流的通用 MCU 即可比如 STM32F103 STM3F051 系列等内部带 RTC FLASH如果考虑电池供电特点最理想的是 STM32 的低功耗系列。 RFID读写芯片有很多选择比如 NXP 的 RC531 、 RC522 、 CLRC663 、 PN532 等 ST 公司的 ST25R3911B国产的 FM17550 、 Si522 等因为卡使用的是 NXP 的 Mifare S50 选性价比比较高 的RC522 或 Si522 即可结合课程提供的硬件选用 RC522 天线使用 PCB 板载天线。 开锁装置为驱动舵机实现0 度上锁 90 度开锁。 闭门检测使用一个到位开关即可结合课程提供的硬件使用使用一个按键模拟。 2.软件实现方案方案流程图 1主流程 2读写任务流程对卡的读写 3门锁控制任务流程门应答卡的操作 三。项目实现方案前台读写器
1.硬件实现方案 2.软件实现方案 3.前台读写器串口通信协议通信约定 1.通信约定 1波特率115200bps 2数据格式8n1 2.数据基本格式 帧头 PC 到读写器为 55h 读写器应答为 AAh 。 长度长度字段之后所有数据字节数 ECC 校验前面所有字节异或和 3.PC机先发送读写器应答 4.命令列表 块数据解析 房间编号6 字节 ASCII 码格式前 2 字节为楼层号后 4 字节为房间号比如 3 层 18 号房间 “030018”对应 ASCII 码 303330303138h 时间BCD( 二进制编码的十进制 ) 码格式 YYMMDDhhmmss 例如 2030 年 5 月 24 日 15:32:00 编码为300524153200h 授权卡默认密码FFh FFh FFh FFh 校验和前面15 字节的异或和 4.S50卡存储规划 存储区第1 扇区的第 0 块块编号 04 密钥使用方案KeyA 认证将块 7 的控制字修改成 011b KeyB 可修改 ( 实验保险起见 KeyB 仍 保持默认) 修改密钥和存取权限 统一密钥方案KeyA 统一修改为一个固定密钥如 75767778797Ah( 实验中采用的方式 ) 一卡一密方案KeyA 统一使用 4 字节卡 UID 扩展成 6 字节与特殊 6 字节数按字节异或 块7 控制字 75767778797A 7F078869 FFFFFFFFFFFF 四。RC522驱动我对驱动的了解不多目前只能对寄存器做一些操作
1.RC522简介 1MFRC522 是一款高度集成的 13.56MHz 非接触通信读写 IC 1.支持ISO/IEC 14443 A/MIFARE 和 NTAG 2.典型的操作距离可达50 mm 3.支持I2C, SPI, UART 三种接口 4.与卡最高的传输速率可达848kbps 5.有64 字节 FIFO 缓冲区用于收发 6.内部灵活的中断模式 7.硬件复位和低功耗模式 8.有软件模式的低功耗 9.可编程的定时器 10.CRC协处理器 11.2.5V到 3.3V 供电 2硬件结构图 2.RC522Demo板接口介绍 硬件原理图 PB15 对应SPI2_MISO PB14 对应SPI2_MOSI PB13 对应SPI2_SCK PB12 对应SPI2_NSS 3.RC522的SPI接口介绍 SPI接口 1.工作在从模式 2.最高通信速率10Mbit/s 3.字节序MSB 高位在先 4.数据上升沿稳定下降沿可变上升沿采样对应STM32 SPI 极性模式 0 相位模式第一个边沿 采样 5.SPI读时序 4.RC522的寄存器 寄存器总结 CommandReg 启动和停止命令的执行 ComlEnReg, DivIEnReg 中断使能设置 ComIrqReg , DivIrqReg 中断请求标志 ErrorReg 错误标志指示执行的上个命令的错误状态 Status1Reg, Status2Reg 包含各种状态标志 FIFODtataReg 64 字节 FIFO 缓冲区的输入和输出数据 FIFOLevelReg 指示 FIFO 中存储的字节数 WaterLevelReg FIFO水位寄存器 ControlReg 控制定时器等寄存器 BitFramingReg 面向位的帧的调节 CollReg RF 接口上检测到的第一个位冲突的位的位置 ModeReg 定义发送和接收的常用模式 CRCResultReg 储存 CRC 运算结果高 8 位和低 8 位 2 个 TModeReg 设置定时器模式和预分频系数的高 4 位 TxASKReg 发送调制设置 TPrescalerReg 定时器预分频系数的低 8 位 TReloadReg 定时器重载寄存器有高 8 位和低 8 位 2 个 TCounterValReg 存放定时器的当前值有高 8 位和低 8 位 2 个 补充对部分寄存器的介绍 1CommandReg寄存器 RcvOff: 模拟接收部分是否关闭 0 不关闭 1 关闭 PowerDown: 进入 / 退出软件掉电模式 0 退出 1 进入 Command: 4bit 命令字 2ComIEnReg寄存器 IRqInv: IRQ 引脚上的信号是否和 Status1Reg 中的 IRq 位相反 TxIEn~TimerIEn: 1 使能中断对应的中断是否反应到 IRQ 引脚上 3DivlEnReg寄存器 IRQPushPull: 1 IRQ 引脚是标准 CMOS 输出 0 IRQ 引脚开漏输出 MfinActIEn: 1 使能中断允许 MFIN 活动中断反应到 IRQ 引脚 CRCIEn: 1 使能中断允许 CRC 中断反应到 IRQ 引脚 4ComlrqReg寄存器 Set1: 写入时设置选中的位的状态 0 被选中的位复位 1 被选中的位置位 TxIRq~TimerIRq: 对应的中断是否发生 0 否 1 是 5DivlrqReg寄存器 Set2: 写入时设置选中的位的状态 0 被选中的位复位 1 被选中的位置位 MfinActIRq: 1 MFIN 是活动的 CRCIRq: 1 CalcCRC 命令运行且所有的数据已经被处理 6ErrorReg寄存器 WrErr: 认证时向 FIFO 中写数据引发此错误 1 表示出错 0 未出错下同 TempErr: 过热芯片温度超过 125 ℃报警 BufferOvfl: FIFO 溢出错 CollErr: 检测到位冲突 CRCErr: 接收数据的 CRC 错 ParityErr: 接收数据的奇偶校验错 ProtocolErr: 帧格式错 7Status1Reg寄存器 CRCOk: 1 CRC 结果为 0 发送和接收对 CRC 的验证通过 ErrorReg 的 CRCErr 位指示这个状 态位只用于指示 CRC 运算过程计算结果正确置 1 CRCReady: CRC 计算完成 IRq: 有被使能的中断发生使能中断见 ComIEnReg 和 DivIEnReg 寄存器 TRunning: 1 定时器在运行 HiAlert: 1 FIFO 缓冲区中的数据字节数大于等于 (64- 水位字节数 ) 报警 LoAlert: 1 FIFO 缓冲区中的数据字节数小于等于水位字节数报警 8Status2Reg寄存器 TempSensClear: 为 1 时芯片温度在 125 ℃以下会自动清除过热报警 TempErr I2CForceHS : I2C 输入过滤设置 MFCrypto1On : 指示 MIFARE Crypto1 单元开启在认证命令成功后置位 ModemState[2:0] : 指示当前发送接收状态 9FIFODataReg寄存器 10FIFOLevelReg寄存器 FlushBuffer: 写入 1 清除 FIFO 中的数据 FIFOLevel[6:0]: FIFO 中数据字节数 11WaterLevelReg寄存器 WaterLevel[5:0]: 定义水位字节数 12ControlReg寄存器 TStopNow: 写入 1 定时器立刻停止 TStartNow: 写入 1 定时器立刻启动 RxLastBits[2:0]: 接收的最后 1 字节数据有效位如果时 000b 则整个字节有效 13BitFrameingReg寄存器 StartSend: 写入 1 开始数据发送仅在 Transceive 命令有效 RxAlign[2:0]: 基于位防冲突帧中接收的第一位的位置 TxLastBits[2:0]: 发送最后 1 字节的位数 000b 意味着发送所有位 14CollReg寄存器 ValuesAfterColl: 0 所有接收到的位在发生冲突后被清零 CollPosNotValid: 1 没有发生冲突或者发生冲突的位置超出 CollPos[4:0] 的范围 CollPos[4:0]: 第一个发生位冲突的位置。例如 00h 表示在 32 位发生位冲突 08h 表示在第 8 位 发生位冲突 15ModeReg寄存器 MSBFirst: 1 CRC 计算时 MSB 在先 TxWaitRF: 1 仅在 RF 场产生后才发送 PolMFin: 定义 MFIN 脚有效极性 0 低有效 1 高有效 CRCPreset[1:0]: 定义 CRC 协处理器预置值 00b 表示 0000h, 01b 表示 6363h, 10b 表示 A671h 11b 表示 FFFFh 16CRCResultReg寄存器 CRC 计算结果的高、低两个字节仅在 Status1Reg 寄存器的 CRCReady 位置 1 时有效 17TModeReg寄存器 TAuto: 1 在发送完成后定时器自动启动 TGated[1:0]: 定时器工作在何种门模式设定 00b 不启动门模式 01b 由 MFIN 脚启动门模 式 10b 由 AUX1 脚启动门模式 11 保留 TAutoRestart: 1 当定时器倒计时到 0 以后自动重新按重载寄存器中的值计数 0 定时器倒 计时到 0 后 ComIrqReg 寄存器的 TimerIRq 位置 1 TPrescaler_Hi[3:0]: 预分频值的高 4bit 与 TPrescalerReg 寄存器中的 8bit 组成 12bit 的预 分频值 TPreScaler 。当 DemodReg 寄存器的 TPrescalEven 位为 0 则 定时器的分频后频率 为 ftimer 13.56 MHz / (2 TPreScaler1) 如果 TPrescalEven 位为 1 则 ftimer 13.56 MHz / (2 TPreScaler2) 18TxASKReg寄存器 Force100ASK: 1 强制 100% ASK 调制 19TPrescalerReg寄存器 20TReloadReg寄存器 21TReloadReg寄存器 5.RC522的命令 RC522主要命令介绍 1.IDLE 命令 MFRC522 处于空闲模式。该命令也用来终止实际正在执行的命令。 2.CALCCRC 命令 FIFO 的内容被传输到 CRC 协处理器并执行 CRC 计算这个命令必须通过向命令寄 存器写入任何一个命令如空闲命令来软件清除。 3.TRANSMIT 命令 发送 FIFO 的内容。在发送 FIFO 的内容之前必须对所有相关的寄存器进行设 置。该命令在 FIFO 变成空后自动终止。 4.RECEIVE 命令 该命令在接收到的数据流结束时自动终止。 5.TRANSCEIVE 命令 该循环命令重复发送 FIFO 的数据并不断接收 RF 场的数据。第一个动作是 发送发送结束后命令变为接收数据流。 6.MFAUTENT 命令该命令用来处理 Mifare 认证以使能到任何 Mifare 普通卡的安全通信。在命令 激活前以下数据必须被写入 FIFO 认证命令码块地址秘钥序列号。该命令在 Mifare 卡被 认证且 Status2Reg 寄存器的 MFCrypto1On 位置位时自动终止。 7.SOFTRESET 命令 所有寄存器都设置成复位值。命令完成后自动终止。 6.RC522的操作方法 1. 清除相关的状态位和错误标记位 2. 待发送的数据放入 FIFO 3. 如果最后 1 字节不是全部发送设置发送位的数目 4. 启动 TRANSCEIVE 命令 5. 查询状态等待接收结束 6. 从 FIFO 中取出卡反馈的数据 五。RC522如何操作S50卡
1.Mifare S50卡操作回顾 首先响应数据之后防冲突选卡最后数据的传输。
补充S50卡操作命令 2.RC522的驱动组成 使用分层结构用户使用的是卡操作命令接口 1.14443-A命令MF1卡命令 2.RC522命令 3.通用寄存器读写 4.SPI驱动收发数据 3.RC522操作实例
1.Cubemx配置 时钟SPI接口打印串口 2.寄存操作驱动分析
3.底层命令驱动分析 PcdComMF522函数 4.应用层操作接口函数分析 PcdRequest函数 PcdAnticoll函数 总之 在keil工程中使用公司提供的库调用。 根据上述设定的流程图书写代码 六。PN532驱动
1.PN532简介 1.一款基于 8051 单片机核心高度集成的非接触式收发模块 2.它支持 6 个不同的操作模式 ( 手机既能做读卡器也能模拟卡的秘密 ) ISO/IEC14443A/MIFARE 读 / 写器 FeliCa 读 / 写器 ISO/IEC 14443B 读 / 写器 ISO/IEC14443A MIFARE卡模拟模式 FeliCa卡模拟模式 ISO/IEC 18092 ECMA 340点对点 3.对外支持3 种接口 I2C SPI HSU, (Serial High Speed UART) 高速 UART 口 原理图 2.PN532操作Mifare卡的正确方法
HSU交互的帧格式 1.前序 PREAMBLE 1 字节 00h 2.开始码 START CODE 2 字节 00h FFh 3.数据长度 LEN 1 字节 数据区字节数 (TFI and PD0 to PDn) 最大 255 4.长度校验 LCS 1 字节 LEN 的校验和 [LEN LCS] 00h 5.帧 ID TFI 1 字节根据消息方向取值 D4h 表示 主机 PN532 D5h 表示 PN532 主机 DATA 6.包数据 Package Data LEN-1 字节的包数据 PD0 是命令码 7.数据校验码 DCS 1 字节 [TFI PD0 PD1 … PDn DCS] 00h, 尾序POSTAMBLE 1 字节 00h 扩展帧格式 和标准帧有区别的地方 数据区长度 LENGTH LENM x 256 LENL 长度校验 LCS: [LENM LENL LCS] 00h ACK帧 NAK帧 初始化流程 交互流程刷卡时的数据交互 PN532的命令 PN532的唤醒 上电后PN532 会自动进入低功耗状态所以发送的第一条命令必须使用加长的数据帧头来唤醒。 SAMConfiguration InListPassiveTarget 列出射频场中的卡 —— 询卡、防冲突、选卡可同时操作多张 InDataExchange 七。如何驱动舵机
1.什么是舵机 舵机是一种位置角度伺服的驱动器适用于那些需要角度不断变化并可以保持的控制系统。舵机是 融合了多项技术的科技结晶体它由直流电机、减速齿轮组、传感器和控制电路组成是一套自动控制 装置用一个闭环反馈控制回路不断校正输出的偏差使系统的输出保持恒定。 2.舵机驱动方式 PWM信号的占空比来控制的该 PWM 信号的周期位 20ms 宽度在 0.5ms——2.5ms 之间驱使舵机转 动角在0——180 度之间 3.舵机驱动代码分析 1.STM32Cubemx配置 目标将定时器的通道配置成PWM 输出模式周期 20ms 占空比可调 0.5ms~2.5ms 2.重点代码 启动定时器的PWM 输出 修改占空比 八。前台读写器实现
1.实现方案回顾
2.读写器代码设计 九。门禁读写器实现
1.实现方案回顾
2.硬件需要注意的地方
3.参数区的设计
4.读写器代码设计 十。项目展示