无锡矽控电子科技有限公司

网站首页 > 技术支持 > 超高频 UHF RFID

Roger和Colt AS3992方案的UHF RFID模块外部mcu硬件复位检测机制

2019-05-27 13:40:41 无锡矽控电子科技有限公司 阅读

Roger和Colt 采用的是AS3992 / ST25RU3992方案的UHF RFID模块,如果使用uart指令控制,外部mcu的P1.1 IO端口可以连接至J4(C2CK)接口,使用如下代码实现硬件复位检测机制。

具体功能如下:

1、串口发送5次读卡指令(内容为16进制的: 43 03 01),发送间隔200ms。

2、判断执行【 P1_1=0  置低】的条件是:

(1)、串口没有返回(响应超时);

(2)、有返回,连续5次返回的都是16进制的:44 05 00 00 00 ;


示例代码如下(假定IO端口初始化已经完成,串口发送接收函数已定义):

U16 send_time_inter = 0; //定时200ms时间标志
U8 Recv_Error_Time = 0;   //接收错误数据次数
U8 Uart_Data_Send_Flag = 0;//数据发送标志
const U8 Send_Func_Data[]={0x43,0x03,0x01};//读卡指令
const U8 Recv_Func_Error[]={0x44,0x05,0x00,0x00,0x00};//未读到卡返回值
void Func_Test(void)
{

    while(1)
    {	
       wdt_clear();

           if(send_time_inter == 0)
           { 
               //每200ms发送一次数据
    	       send_time_inter = 200;
    		      
        	   Send_Uart_Data(Send_Func_Data,3);

               //设置接收超时时间为100ms
			   uart_recv_flag.uart_recv_outtime = 100;
               //置数据发送标志
			   Uart_Data_Send_Flag = 1;
			   
           }   
	        //uart_recv_flag.uart_recv串口接收到数据标志,uart_recv_flag.uart_time接收完成超时时间
           if((uart_recv_flag.uart_recv == 1)&&(uart_recv_flag.uart_time == 0))
           { 
                 //比较接收数据与错误数据
                 if(memcmp((char *)RS422_RX_Buffer,(char *)Recv_Func_Error,5)== 0)
                 {
                     //数据错误,次数加1
                     Recv_Error_Time++;
                 }
    			 else
    			 {
    			     //数据正确或者非设定错误数据,清零
    			     Recv_Error_Time = 0;
    			 }
				 //接收缓存清空
    	         uart1_rx_current = 0;
				 //发送标志清除
				 Uart_Data_Send_Flag = 0;
        		 uart_recv_flag.uart_recv = 0;
        		 memset(RS422_RX_Buffer,'\0',BUFFERSIZE);	
           }
		   else if((uart_recv_flag.uart_recv == 0)&&(uart_recv_flag.uart_recv_outtime == 0)&&(Uart_Data_Send_Flag == 1))
		   {     
		         //串口在超时时间内未接收到任何数据,清空
	    	     uart1_rx_current = 0;
				 Uart_Data_Send_Flag = 0;
        		 memset(RS422_RX_Buffer,'\0',BUFFERSIZE);
				 //重置
				 P1_1=0; 
		   }
		   //错误次数大于5次,重置     
    	   if(Recv_Error_Time >= 5)
    	   {
    	        Recv_Error_Time = 0;
    	        P1_1=0; 
    	   }    
    }//end while

}




矽控电子

矽控电子核心团队拥有十余年的硬件正向研发,生产制程,测试手法,品质控制经验。尤其擅长嵌入式ARM平台的工控物联网产品,以及海思平台的IPC视频类模组开发,为您的产品从创意到落地、批量市场化助力。公司可提供从硬件设计(原理开发及PCB Layout),PCB制板,SMT及接插件焊接,产品测试,产品老化全流程外包服务,收费合理,品质可靠。

垂询电话:0510-83488567-1     业务邮箱:wxdianzi#foxmail.com (#更换为@)


Powered by ElecKits 5.3.15 ©2008-2019 www.silicontrol.com