导图社区 NFC刷卡机制软件梳理
这是一篇关于NFC刷卡机制软件梳理的思维导图,nfc一般指近场通信。近场通信是一种新兴的技术,使用了NFC技术的设备(例如移动电话)可以在彼此靠近的情况下进行数据交换,是由非接触式射频识别及互连互通技术整合演变而来的。
通常,我们把物联网设备分为三类:①无需移动性,大数据量(上行),需较宽频段,比如城市监控摄像头。②移动性强,需执行频繁切换,小数据量,比如车队追踪管理。③无需移动性,小数据量,对时延不敏感,比如智能抄表。NB-IoT正是为了应对第③种物联网设备而生。
社区模板帮助中心,点此进入>>
英语词性
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
法理
刑法总则
【华政插班生】文学常识-先秦
【华政插班生】文学常识-秦汉
文学常识:魏晋南北朝
【华政插班生】文学常识-隋唐五代
民法分论
NFC刷卡机制软件梳理
init注册函数
touchboard_gesuture_touch_fuc() = nfc_on()
nfc_on()
经测试,每次卡贴近touch面板,都会进触发这个函数
互斥管理
if: nfc处于不工作状态,允许重新on,避免on的处理执行多次
发送NFC_DEVICE_ON_CMD
该情形会触发“NFC摸一摸逻辑”
else: nfc处于工作状态,会清空polling计数,让nfc持续工作
NFC摸一摸逻辑
当前处于非NFC卡认证模式,进入等待卡输入状态
nfc_task
优先级:high
回调函数执行nfc_status_handle()
如果nfc在休眠,且当前指令不为ON_CMD、ON_INTERRUPT_CMD、DEFAULT_CMD直接忽略
通过查gNFCModuleCMDMap表的方式,执行msg_size
gNFCModuleCMDMap
NFC_DEVICE_ON_CMD
if: nfc正在sleep,退出
else: nfc没有sleep
sleep置为成true
关闭touch接近唤醒
msp430没有该功能,这里不实现
硬件唤醒nfc,开始开始轮询检卡:MANUAL_POLLING_CMD
MANUAL_POLLING_CMD
清除polling计数
开始polling:POLLING_CMD
POLLING_CMD
检测到数字键 忽略polling
pollingj计数,3次机会,超出:继续下一步
延时100ms后,重发POLLING_CMD
激活卡片并检卡:fm17550_active_card_process()
if: 检卡失败
7次机会,超出:清除polling计数,NFC进入休眠
延时500ms后,重发POLLING_CMD
else: 检卡得到有效处理
doorbell_nfc_detected_flag置成true
开始选卡:SELECT_CMD
SELECT_CMD
选卡操作并处理
只有鹿客卡才有选卡流程,其他的卡当作成功处理
if: 选卡失败
3次机会,超出:发送SLEEP_CMD
延时100ms后,发送MANUAL_POLLING_CMD,重新检卡
else: 选卡成功
选卡成功后处理:AFTER_SELECT_CMD
AFTER_SELECT_CMD
获取卡信息
根据不同的operation_mode进行处理
if: operation_mode非认证模式且操作成功
nfc休眠,发送SLEEP_CMD
else:
if: 超出三次机会card_after_select_retry_count
取消选卡
SLEEP_CMD
if: reader已经进入off,则直接关闭nfc
else: reader还未进入off,需要检查保证卡不在reader上面,才允许进入off
operation_mode
认证模式:MODE_VERIFY
默认模式就是认证模式
选卡成功后
进入认证流程
认证完成后执行回调
如上文所述,摸一摸逻辑中,如果不是认证模式,会进入一个等待读卡的状态
卡片认证
认证流程
外部认证
内部认证
认证后的回调
检查锁定标志
if: 认证卡成功,检查卡是否在白名单中
白名单,执行开锁动作,熄屏
不在白名单,UI交互-叮咚
else: 认证卡失败
if: 通讯错误
三次机会(card_after_select_retry_count),超出:UI交互-叮咚
else: UI交互-叮咚