LoopPay的电路原理和其模拟磁条刷卡的机制的简单说明 一,LoopPay的关键电路原理 1,关键电路原理: 以上即为LoopPay的关键电路原理,并以此原理制作了LPay_Test实验板以分析LoopPay的工作机制。 2,电路原理的简单说明: LoopPay的MCU通过AIN1、AIN2、nSLEEP这三个数据/控制线与步进电机驱动芯片DRV8833进行连接,MCU将磁条上储存的特定编码格式数据转换为通过AIN1和AIN2发送的两位数字信号从而控制DRV8833在线圈L1上产生电磁场。 当LoopPay的线圈L1靠近磁条读卡器的磁头时,因为电磁感应的关系,磁头线圈产生感应电势,磁头线圈两端产生电压信号,通过二进制译码,LoopPay发送的数据被磁条读卡器读出。以上即为LoopPay模拟磁条刷卡的过程。 在上图的双路并联控制线圈电路(更大的驱动电流)中,nSLEEP控制DRV8833进入或者退出低功耗睡眠模式,AIN1为AOU1&BOUT1的输出控制信号,AIN2为AOUT2&BOUT2的输出控制信号。 控制逻辑如下表: AIN1 AIN2 AOUT1&AOUT2 0 0 1 1 0 1 0 1 Z L H L BOUT1&BOUT2 Z H L L 二,磁条读写所用的数据的编码格式 三,LoopPay如何模拟磁条卡的刷卡 1,Looppay的工作机制与磁条卡刷卡动作的对应关系 LoopPay的MCU以F2F制编码发送数据信号,从而使线圈产生相应的电磁场,线圈靠近磁头时,LoopPay的线圈与磁头线圈产生互感,这一过程即相当与磁条卡刷卡动作。 2,LoopPay如何发送F2F制编码的数据 写电流改变方向即意味着线圈上的电势改变方向。 LoopPay的线圈由DRV8833控制,当在某一段时间中,AIN1输出1,同时AIN2输出0,则线圈中的AOUT1&BOUT1被接通到电源电平,而AOUT2&BOUT2被接通到地,线圈中产生从AOUT1&BOUT1到AOUT2&BOUT2的电流,并产生对应方向的电磁场; 当在另一段时间中,AIN1输出0,同时AIN2输出1,则线圈中的AOUT1&BOUT1被接通到地,而AOUT2&BOUT2被接通到电源电平,线圈中产生从AOUT2&BOUT2到AOUT1&BOUT1的电流,电势和电流改变了方向,产生反向的电磁场。 根据F2F制编码的要求,当LoopPay发送数据0(二进制)时,需改变一次线圈中的电流方向并保持一段时间不变,该段时间即为位周期。 当LoopPay发送数据1(二进制)时,需改变一次线圈中电流方向并维持1/2位周期时间不变,然后再改变一次线圈中的电流方向并维持1/2位周期时间不变。 以MCU为STM32为例,AIN1使用PA3 IO脚、AIN2使用PA4 IO脚,那么01数据发送可标识为如下的寄存器操作(位周期设定为400us): 先配置PA3、PA4为输出一高一低: GPIO_WriteBit(GPIOA,GPIO_Pin_2,1);//AIN1 Set 1 GPIO_WriteBit(GPIOA,GPIO_Pin_3,0);//AIN2 Set 0 SystemDelay_mS(1); 然后开始发送数据: //Sent 1,两次取反 GPIOA->ODR ^= 0x0c;//AIN1 取反,AIN2 取反 SystemDelay_uS(200); GPIOA->ODR ^= 0x0c;//AIN1 取反,AIN2 取反 SystemDelay_uS(200); //Sent 0,取反保持 GPIOA->ODR ^= 0x0c;//AIN1 取反,AIN2 取反 SystemDelay_uS(400); //Sent 1,两次取反 GPIOA->ODR ^= 0x0c;//AIN1 取反,AIN2 取反 SystemDelay_uS(200); GPIOA->ODR ^= 0x0c;//AIN1 取反,AIN2 取反 SystemDelay_uS(200); 3,位周期和数据信号波形 波形图中颜色的定义: 黄色:磁头线圈一端的电平 绿色:磁头线圈另一端的电平 蓝色:AIN1信号 红色:AIN2信号 粉色:差分信号波形(磁头线圈一端的电平 - 磁头线圈另一端的电平) a),磁条卡刷卡时产生的F2F制编码数据信号的位周期 从以下3张抓取的磁条卡刷卡时的磁头线圈两端电平波形来看,一般速度刷卡时,产生的F2F制编码数据信号的位周期约为500us。