使用C#创建一个RFID低频卡数据收发

前言

        本章由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低频卡读取数据。数据也是以字节数组的形式返回,你需要将其转换为适合你的应用程序的格式。同样,注意检查读取操作的成功与否,并处理可能出现的错误或异常情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值