前言
本章由C#作为语言进行编写RFID低频卡程序,RFID低频卡是一种智能卡,使用的频段范围为10Khz~1MHz,常见的主要规格有125Khz/135Khz等。这种卡的特点是小巧、耐用、不退色,防水且耐冲击,易于携带。它们有各种颜色款式可供选择,商标和ID可以印刷在包装上。
低频智能卡广泛应用于公交系统、停车场、门禁系统、员工ID卡、校园一卡通、商场、超市会员消费卡、考勤、物流管理、图书管理或是各种物品跟踪系统。
低频智能卡的优点在于:其标签靠近金属或液体的物品上时标签搜到的影响较小,同时低频系统非常成熟,读写设备的价格低廉。然而,它的缺点包括读取距离短,无法同时进行多标签读取(抗冲突)以及信息量较低,一般的存储容量在125位到512位。
缺点:读写距离相对较短,不适用于需要远距离读取的场景。
目标
1、了解RFID的用途和用C#设计一个APP;
2、使用C#设计一个低频卡APP,可以通过该APP设置串口各个属性(端口号,波特率,数据位,停止位,奇偶校验位);
3、设计串口数据发送和接收数据功能;
一、使用C#设计一个低频卡APP
1、使用C#软件创建一个窗体应用:(如下图)
(1)创建新项目
搜索窗体应用选择下一步
(2)对项目名称命名
创建项目,完成创建,准备编写
2、通过该APP设置串口
端口号,波特率,数据位,停止位,奇偶校验位。文字使用工具箱label窗体写入,选择窗口用comboBox写入即可
二、设计串口数据发送和接收数据功能
1、串口发送的方式
private void btSend_Click(object sender, EventArgs e) //发送数据
{
// 1 、以字符串形式发送
string str = "ABCDEFDG";
com1.Write(str);
com1.WriteLine(str); //发送字符串后发送新一行
// 2、 字节数组发送方式
byte[] buff = new byte[] { 0xff, 0x55, 0x00, 0x00, 0x01, 0x01, 0x00, 0x50, 0x74 };
com1.Write(buff, 0, buff.Length);
// 3、字符数组发送方式
char[] buff1 = new char[] { 'a', 'b', 'c', 'd' };
com1.Write(buff1, 0, buff1.Length);
}
2、串口接收的方式
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 1; i < 13; i++)
{
comboBox1.Items.Add("COM" + i.ToString());
}
comboBox1.Text = "COM1";//串口号多额默认值
comboBox2.Text = "9600";//波特率默认值
serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);//必须手动添加事件处理程序
}
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)//串口数据接收事件
{
if (!radioButton3.Checked)//如果接收模式为字符模式
{
CheckForIllegalCrossThreadCalls = false; //关闭跨线程异常警告
string str = serialPort1.ReadExisting();//字符串方式读
textBox1.AppendText(str);//添加内容
}
else
{ //如果接收模式为数值接收
byte data;
CheckForIllegalCrossThreadCalls = false; //关闭跨线程异常警告
data = (byte)serialPort1.ReadByte();//此处需要强制类型转换,将(int)类型数据转换为(byte类型数据,不必考虑是否会丢失数据
string str = Convert.ToString(data, 16).ToUpper();//转换为大写十六进制字符串
textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");//空位补“0”
//上一句等同为:if(str.Length == 1)
// str = "0" + str;
// else
// str = str;
// textBox1.AppendText("0x" + str);
}
}
总结
1、 调试与测试:在实际部署之前,彻底测试你的应用程序以确保它能够正确地与RFID读写器和卡片进行通信,由于不同的RFID读写器和SDK有不同的API和特性,因此具体的实现细节将取决于你使用的硬件和软件。你应该参考你的RFID读写器和SDK的文档以获取更详细的信息和示例代码。此外,由于低频RFID的通信范围和速度有限,因此在设计应用程序时需要考虑到这些因素。例如,你可能需要确保RFID读写器能够可靠地检测到卡片的接近,并且读取和写入操作能够在合理的时间内完成。
2、 使用SDK/API提供的写函数或方法,将数据发送到RFID低频卡。数据通常以字节数组的形式发送,并且需要符合RFID低频卡的协议和数据格式。注意检查写入操作的成功与否,并处理可能出现的错误或异常情况。
3、使用SDK/API提供的读函数或方法,从RFID低频卡读取数据。数据也是以字节数组的形式返回,你需要将其转换为适合你的应用程序的格式。同样,注意检查读取操作的成功与否,并处理可能出现的错误或异常情况。