1、RFID读写器读数据块物联网智能消费系统RFIDRFID测试程序测试程序1读数据块命令格式目录目录4读数据块响应代码2读数据块命令代码3读数据块响应格式第一部分读数据块命令格式CMD字段:为MF_Read(0 x20),集成寻卡,防冲突,选卡,验证密码,读卡等操 作,一个命令完成读卡操作。0 x20读数据块命令格式读数据块命令格式DATA0:读取模式控制 Bit0:Request Mode.0=Request Idle,1=Request All Bit1:Request Mode.0=对 KEYA 进行校验,1=对KeyB 进行校验 0 x20DATA0DATA1DATA2DATA3-8:读
2、数据块命令格式读数据块命令格式0 x20DATA0DATA1DATA2DATA3-8:DATA1:要读的块数长度值,即读多少块取值范围 01-04读数据块命令格式读数据块命令格式0 x20DATA0DATA1DATA2DATA3-8:DATA2:要读的块的起点地址。Mifare s50取值范围:十六进制00-3F即 0块到63块读数据块命令格式读数据块命令格式0 x20DATA0DATA1DATA2DATA3-8:DATA3-8:6 个字节的密钥,低字节在前。读数据块命令格式读数据块命令格式第二部分读数据块命令代码 private void btn_readblock_Click(object
3、 sender,EventArgs e)Byte send_packet=new byte200;int idx;int bcc=0;读数据块命令代码读数据块命令代码读数据块命令代码读数据块命令代码 private void btn_readblock_Click(object sender,EventArgs e)Byte send_packet=new byte200;int idx;int bcc=0;DATA0DATA1DATA2send_packet0=b_packetstart;send_packet1=b_stationid;send_packet3=CMD_MFRead;cur
4、r_cmd=CMD_MFRead;0 x20send_packet4=0;/DATA0send_packet5=1;/DATA1 1 1send_packet6=Convert.ToByte(cmbsecno.SelectedIndex*4+cmbblockno.SelectedIndex);块地址 idx=7;string stringHexSplit=txB_key.Text.Split();foreach(string hex in stringHexSplit)if(!hex.Equals()send_packetidx+=Convert.ToByte(hex,16);send_pac
5、ket2=10;/DATA LENGTH字段表示命令和附带数据的字节数 10 2 0 读数据块命令代码读数据块命令代码 private void button_readblock_Click(object sender,EventArgs e).DATA0DATA1DATA20 x20 1 1块地址 idx=7;string stringHexSplit=txB_key.Text.Split();foreach(string hex in stringHexSplit)if(!hex.Equals()send_packetidx+=Convert.ToByte(hex,16);send_pac
6、ket2=10;/DATA LENGTH字段表示命令和附带数据的字节数 10for(idx=2;idx=4;idx+)sCardNO=sCardNO+Convert.ToString(recv_bufidx,16).PadLeft(2,0);txB_mcardsn.Text=sCardNO.ToUpper();读数据块响应代码读数据块响应代码0 x00 for(idx=8;idx len_packet-2;idx+)sCardData=sCardData+Convert.ToString(recv_bufidx,16).PadLeft(2,0).PadRight(3,);txB_blockdata.Text=sCardData.ToUpper();else 0 x01读数据块响应代码读数据块响应代码 MessageBox.Show(“读数据块发生错误,请确定卡片已正确放置!);RFID读写器读数据块时,最多可同时读取的数据块为几个?思考题谢谢关注!