4 RFID读写模块软件设计

单片机与RFID模块通信规则制定如下:①通信波特率:19200bps,即每秒传送19200比特。②命令帧格式为:前导头+通信长度+命令字+数据域+校验码。③送命令帧之后,返回值的格式如下:前导头+通信长度+上次所发送的命令字+数据域+校验码。其中,前导头表示0xAA0xBB两个字节,若数据域中也包含0xAA那么紧随其后为数据0,但是长度字不增加。通信长度表示去掉前导头之外的通信帧所有字节数。校验码表示去掉前导头和校验码字节之外,所有通讯帧所含字节的异或值。 RFID命令帧数组cmdsend赋值的核心代码如下:

#define PCD_PN 0x01//设备型号命令字常量被赋初值。

#define AUTOSEARCH 0x13//自动寻卡命令字常量被赋初值。

cmdsend[0] = 0xAA;

cmdsend[1] = 0xBB; //命令帧的前导头由0xAA0xBB 两个字节构成。

switch(m_MODE) //根据命令字在命令表中的序列号分别填充命令帧数组cmdsend。

{case 1://命令表中第1号命令字,作用是获得8个字节的设备型号。

cmdsend[2]=2; //通信长度字段赋值。

cmdsend[3]=PCD_PN; //命令字字段赋值。

CheckSum(&cmdsend[2]); //校验码字段赋值。

break;

case 6://命令表中第6号命令字,作用是设置RFID读写芯片是否工作在自动寻卡模式。

cmdsend[2]=3; //通信长度字段赋值。

cmdsend[3]=AUTOSEARCH; //命令字字段赋值。

cmdsend[4]=1;//数据域字段赋值,值为1表示自动寻卡,值为0表示被动寻卡。

CheckSum(&cmdsend[2]); //校验码字段赋值。

break;

……}

5 结语

本文阐述的这种家用电路系统以单片微型计算机为控制核心,采用RFID射频识别技术进行信息采集,自动地、准确地对房间内情况进行判断,更智能,更精确地对供电电路进行控制,达到节能使用电器的目的。在实验室环境下进行测试运行,工作稳定,性能良好,实现了省电节能的效果,达到节能减排的实用目的。