当前位置:文档之家› IC卡读写

IC卡读写

IC卡读写
IC卡读写

13.3 IC卡应用

IC(Integrated Circuit)卡,也被称作智能卡(Smart Card),具有写入数据和存储数据的功能,IC卡内存储器的内容可以根据需要有条件地供外部读取,完成信息处理和判定。由于其内部具有集成电路,不但可以存储大量信息,具有极强的保密性能,并且还具有抗干扰、无磨损、寿命长等特性。因此在各个领域中得到广泛应用。下面通过两个实例介绍IC卡的简单应用。

实例422向IC卡中写入数据

实例说明

IC卡是携带应用信息和数据的媒体,空白IC卡是不能立即使用的,必须对IC卡应用系统进行初始化,写入系统IC卡和个人密码,个人专用信息和应用数据。下面介绍如何向IC卡中写入数据。运行本例,在“数据”文本框中输入要存入IC卡中的数据,单击“写数据”按钮,即可将输入的数据写入IC卡中。如图13.6所示。

技术要点

本例使用的是深圳明华生产的明华IC卡读写器,用户在使用时将驱动程序安装完毕后,即可正常使用本系统。

本例通过调用Mwic_32.dll链接库,进行IC卡的读写工作。下面介绍与IC卡写操作相关的几个函数。

(1)auto_init函数

该函数用于初始化IC卡读卡器。语法如下:

public static extern int auto_init(int port, int baud);

参数说明如下。

l port:标识端口号,Com1对应的端口号为0;Com2对应的端口号为1,依此类推。

l baud:标识波特率。

l 返回值:如果初始化成功,返回值是IC卡设备句柄;如果初始化失败,返回值小于零。

(2)setsc_md函数

该函数用于设置设备密码模式。语法如下:

public static extern int setsc_md(int icdev, int mode);

参数说明如下。

l icdev:标识设备句柄,通常是auto_init函数的返回值。

l mode:标识设备密码模式,如果为0,设备密码有效,设备在加电时必须验证设备密码才能对设备进行操作。如果为1,设备密码无效。

l 返回值:如果函数执行成功返回值为零,否则小于零。

(3)get_status函数

该函数用于获取设备的当前状态。语法如下:

public static extern Int16 get_status(int icdev, Int16* state);

参数说明如下。

l icdev:标识设备句柄,通常是auto_init函数的返回值。

l state:用于接收函数返回的结果。如果为0表示读卡器中无卡,为1表示读卡器中有卡。

l 返回值:如果函数执行成功返回值为零,否则小于零。

(4)csc_4442函数

该函数用于核对IC卡密码。语法如下:

public static extern Int16 Csc_4442(int icdev, int len,

[MarshalAs(UnmanagedType.LPArray)] byte[] p_string);

参数说明如下。

l icdev:标识设备句柄,通常是auto_init函数的返回值。

l len:标识密码长度,其值为3。

l p_string:标识设置的密码。

l 返回值:如果函数执行成功返回值为零,否则小于零。

(5)swr_4442函数

该函数用于向IC卡中写入数据。语法如下:

public static extern int swr_4442(int icdev, int offset, int len, char* w_string); 参数说明如下。

l icdev:标识设备句柄,通常是auto_init函数的返回值。

l offset:标识地址的偏移量,范围是0~255。

l len:标识字符串长度。

l w_string:标识写入的数据。

(6)ic_exit函数

该函数用于关闭设备端口。语法如下:

public static extern int ic_exit(int icdev);

参数说明如下。

l icdev:标识设备句柄,通常是auto_init函数的返回值。

(7)dv_beep函数

该函数使读卡器嗡鸣。语法如下:

public static extern int dv_beep(int icdev, int time);

参数说明如下。

l icdev:标识设备句柄,通常是auto_init函数的返回值。

l time:标识嗡鸣持续的时间,单位是10毫秒。

实现过程

(1)新建一个项目,命名为Ex13_05,默认窗体为Form1。

(2)在Form1窗体中,主要添加两个Button控件,用于执行向卡中写入数据和退出程序的操作,添加一个TextBox控件,将TextBox中数据写入IC卡中。

(3)主要程序代码。

将程序所使用的操作IC卡的函数,封装在类IC中。代码如下:

[StructLayout(LayoutKind.Sequential)]

public unsafe class IC

{

//对设备进行初始化

[DllImport("Mwic_32.dll", EntryPoint = "auto_init", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]

public static extern int auto_init(int port, int baud);

//设备密码格式

[DllImport("Mwic_32.dll", EntryPoint = "setsc_md", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]

public static extern int setsc_md(int icdev, int mode);

//获取设备当前状态

[DllImport("Mwic_32.dll", EntryPoint = "get_status", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]

public static extern Int16 get_status(int icdev, Int16* state);

//关闭设备通讯接口

[DllImport("Mwic_32.dll", EntryPoint = "ic_exit", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]

public static extern int ic_exit(int icdev);

//使设备发出蜂鸣声

[DllImport("Mwic_32.dll", EntryPoint = "dv_beep", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]

public static extern int dv_beep(int icdev, int time);

//向IC卡中写数据

[DllImport("Mwic_32.dll", EntryPoint = "swr_4442", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]

public static extern int swr_4442(int icdev, int offset, int len, char* w_string);

//核对卡密码

[DllImport("Mwic_32.dll", EntryPoint = "csc_4442", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = true, CallingConvention = CallingConvention.Winapi)]

public static extern Int16 Csc_4442(int icdev, int len,

[MarshalAs(UnmanagedType.LPArray)] byte[] p_string);

}

下面代码主要用于将TextBox中数据写入到IC卡中。代码如下:

private void button1_Click(object sender, EventArgs e)

{

//初始化

int icdev = IC.auto_init(0, 9600);

if (icdev < 0)

MessageBox.Show("端口初始化失败,请检查接口线是否连接正确。","错误提示",MessageBoxButtons.OK,https://www.doczj.com/doc/d116112667.html,rmation);

int md = IC.setsc_md(icdev, 1); //设备密码格式

unsafe

{

Int16 status = 0;

Int16 result = 0;

result = IC.get_status(icdev, &status);

if (result != 0)

{

MessageBox.Show("设备当前状态错误!");

int d1 = IC.ic_exit(icdev); //关闭设备

return;

}

if (status != 1)

{

MessageBox.Show("请插入IC卡");

int d2 = IC.ic_exit(icdev); //关闭设备

return;

}

}

unsafe

{

//卡的密码默认为6个f(密码为:ffffff),1个f的16进制是15,两个f的16进制是255

byte[] pwd = new byte[3] { 255, 255, 255 };

//byte[] pwd = new byte[3] { 0xff, 0xff, 0xff };

//char[] pass=new ch{0xff,0xff,0xff};

Int16 checkIC_pwd = IC.Csc_4442(icdev, 3, pwd);

if (checkIC_pwd < 0)

{

MessageBox.Show("IC卡密码错误!");

return;

}

char str = 'a';

int write=-1;

for (int j = 0; j < textBox1.Text.Length; j++)

{

str = Convert.ToChar(textBox1.Text.Substring(j, 1));

write = IC.swr_4442(icdev, 33 + j, textBox1.Text.Length, &str);

}

if (write == 0)

{

int beep = IC.dv_beep(icdev, 20); //发出蜂鸣声

MessageBox.Show("数据已成功写入IC卡中!");

}

else

MessageBox.Show("数据写入IC卡失败!");

}

int d = IC.ic_exit(icdev); //关闭设备

}

举一反三

根据本实例,读者可以实现以下功能。

在图书借阅中使用IC卡。

利用IC卡控制上网。

实例423读取IC卡中的数据

实例说明

向IC卡写入数据后,就可以进行读卡操作了。运行本例,将写入数据的IC卡插入读卡器,单击【读卡】按钮,IC卡中的数据将显示在文本框中。如图13.7所示。

技术要点

本例中主要调用srd_4442函数读取IC卡中的数据,相关函数介绍请参考实例“向IC卡中写入数据”中的“技术要点”部分。这里只介绍读卡函数。

q srd_4442函数

该函数用于读取IC卡中的数据。语法如下:

public static extern int srd_4442(int icdev, int offset, int len, char* r_string);

参数说明如下。

l icdev:标识设备句柄,通常是auto_init函数的返回值。

l offset:标识地址的偏移量,范围是0~255。

l len:标识字符串长度。

l r_string:用于存储返回的数据。

实现过程

(1)新建一个项目,命名为Ex13_06,默认窗体为Form1。

(2)在Form1窗体中,主要添加两个Button控件,用于读取卡中的数据和退出程序,添加一个TextBox控件,显示卡中的数据。

(3)主要程序代码。

private void button1_Click(object sender, EventArgs e)

{

//初始化

int icdev = IC.auto_init(0, 9600);

if (icdev < 0)

MessageBox.Show("端口初始化失败,请检查接口线是否连接正确。", "错误提示", MessageBoxButtons.OK, https://www.doczj.com/doc/d116112667.html,rmation);

int md = IC.setsc_md(icdev, 1); //设备密码格式

int i = IC.dv_beep(icdev, 10); //发出蜂鸣声

unsafe

{

Int16 status = 0;

Int16 result = 0;

result = IC.get_status(icdev, &status);

if (result != 0)

{

MessageBox.Show("设备当前状态错误!");

int d1 = IC.ic_exit(icdev); //关闭设备

return;

}

if (status != 1)

{

MessageBox.Show("请插入IC卡");

int d2 = IC.ic_exit(icdev); //关闭设备

return;

}

}

unsafe

{

char str = 'a';

int read = -1;

for (int j = 0; j < 6; j++)

{

read = IC.srd_4442(icdev, 33 + j, 1, &str);

textBox1.Text = textBox1.Text + Convert.ToString(str);

}

if (read == 0)

MessageBox.Show("IC卡中数据读取成功!");

}

int d = IC.ic_exit(icdev); //关闭设备

}

举一反三

根据本实例,读者可以开发以下程序。

读取IC卡电话系统。

公交车刷卡系统。

实例424利用IC卡制作考勤程序

实例说明

IC卡广泛应用于各行业,包括银行卡、公交车刷卡系统、读书卡等。下面介绍使用IC卡制作简单的公司考勤系统。运行本例,单击【刷卡】按钮,即可对员工进行考勤。实现效果如图13.8所示。

技术要点

有关IC卡的操作函数请参考实例“向IC卡中写入数据”和“读取IC卡中的数据”中的“技术要点”部分。

下面主要介绍通过IC卡如何实现员工考勤。主要将写入IC卡中的卡号读取出来,然后从数据表中查询员工信息。具体代码请参考实现过程。

实现过程

(1)新建一个项目,命名为Ex13_07,默认窗体为Form1。

(2)在Form1窗体中,主要添加5个TextBox控件和6个Label控件,用途如图13.7所示,添加一个Button控件,执行刷IC卡命令。

(3)主要程序代码。

private void button1_Click(object sender, EventArgs e)

{

//初始化

int icdev = IC.auto_init(0, 9600);

if (icdev < 0)

label6.Text = "端口初始化失败,请检查接口线是否连接正确。";

unsafe

{

Int16 status = -1;

Int16 result = IC.get_status(icdev, &status);

int md = IC.setsc_md(icdev, 1); //设备密码格式

if (result < 0)

{

int d1 = IC.ic_exit(icdev); //关闭设备

return;

}

else if ((result == 0) && (status == 0))

{

int d2 = IC.ic_exit(icdev); //关闭设备

label6.Text = "请插入IC卡";

return;

}

}

unsafe

{

char str = 'a';

int read = -1;

string ic = "";

for (int j = 0; j < 6; j++)

{

read = IC.srd_4442(icdev, 33 + j, 1, &str);

ic = ic + Convert.ToString(str);

}

textBox1.Text = ic;

if (read == 0)

label6.Text = "刷卡成功!";

int beep = IC.dv_beep(icdev, 20); //发出蜂鸣声int d3 = IC.ic_exit(icdev); //关闭设备

}

int d = IC.ic_exit(icdev); //关闭设备

//根据卡号,查找相应数据

OleDbConnection con = new

OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "price.mdb" + ";Persist Security Info=False");

OleDbDataAdapter dap = new OleDbDataAdapter("select * from worker where ICID='"+textBox1.Text+"'", con);

DataSet ds = new DataSet();

dap.Fill(ds, "table");

if (ds.Tables.Count > 0)

{

textBox2.Text = ds.Tables[0].Rows[0][0].ToString();

textBox3.Text = ds.Tables[0].Rows[0][1].ToString();

textBox4.Text = ds.Tables[0].Rows[0][2].ToString();

textBox5.Text = ds.Tables[0].Rows[0][3].ToString();

}

else

{

label6.Text = "不存在该用户!";

}

}

IC卡读写

IC卡应用 IC(Integrated Circuit)卡,也被称作智能卡(Smart Card),具有写入数据和存储数据的功能,IC卡内存储器的内容可以根据需要有条件地供外部读取,完成信息处理和判定。由于其内部具有集成电路,不但可以存储大量信息,具有极强的保密性能,并且还具有抗干扰、无磨损、寿命长等特性。因此在各个领域中得到广泛应用。下面通过两个实例介绍IC 卡的简单应用。 实例422 向IC卡中写入数据 实例说明 IC卡是携带应用信息和数据的媒体,空白IC卡是不能立即使用的,必须对IC卡应用系统进行初始化,写入系统IC卡和个人密码,个人专用信息和应用数据。下面介绍如何向IC 卡中写入数据。运行本例,在“数据”文本框中输入要存入IC卡中的数据,单击“写数据”按钮,即可将输入的数据写入IC卡中。如图所示。 技术要点 本例使用的是深圳明华生产的明华IC卡读写器,用户在使用时将驱动程序安装完毕后,即可正常使用本系统。 本例通过调用链接库,进行IC卡的读写工作。下面介绍与IC卡写操作相关的几个函数。 (1)auto_init函数 该函数用于初始化IC卡读卡器。语法如下: public static extern int auto_init(int port, int baud); 参数说明如下。 l port:标识端口号,Com1对应的端口号为0;Com2对应的端口号为1,依此类推。 l baud:标识波特率。 l 返回值:如果初始化成功,返回值是IC卡设备句柄;如果初始化失败,返回值小于零。

(2)setsc_md函数 该函数用于设置设备密码模式。语法如下: public static extern int setsc_md(int icdev, int mode); 参数说明如下。 l icdev:标识设备句柄,通常是auto_init函数的返回值。 l mode:标识设备密码模式,如果为0,设备密码有效,设备在加电时必须验证设备密码才能对设备进行操作。如果为1,设备密码无效。 l 返回值:如果函数执行成功返回值为零,否则小于零。 (3)get_status函数 该函数用于获取设备的当前状态。语法如下: public static extern Int16 get_status(int icdev, Int16* state); 参数说明如下。 l icdev:标识设备句柄,通常是auto_init函数的返回值。 l state:用于接收函数返回的结果。如果为0表示读卡器中无卡,为1表示读卡器中有卡。 l 返回值:如果函数执行成功返回值为零,否则小于零。 (4)csc_4442函数 该函数用于核对IC卡密码。语法如下: public static extern Int16 Csc_4442(int icdev, int len, [MarshalAs] byte[] p_string); 参数说明如下。 l icdev:标识设备句柄,通常是auto_init函数的返回值。

非接触IC卡读写器Demo程序使用说明

非接触IC 卡读写器Demo 程序使用指南 1. 概述 DEMO 程序是用户使用RF 系列读写器时随机配备的一个演示测试程序,通过它用户可以了解设备功能和卡片的性能。在操作DEMO 程序时关于各个指令的详尽说明请参看用户使用手册。下面仅列出DEMO 程序的功能说明。 2. 功能 2.1 设备操作 1. 当你按下“设备操作”按钮时,在产品信息栏里将显示出API 函数的版本号。如果正确连接了设备,同时还会显示出硬件版本号和产品序列号。 2. 如果连接读写器成功,按下“设备操作”按钮时,DEMO 程序将按照你上次连接成功的串口和波特率来连接设备。如果你这是第一次使用读写器,初始化串口和波特率是 COM 1 和 115200 bps ,这是我们设备出厂时的缺省设定。在端口设置信息栏里也可以自己123 4 5

设定串口和波特率,然后点击“连接”按钮。如果想断掉读写器,释放串口,就点击“断开连接”按钮。 3. 当按下“执行鸣响”按钮时,读写器将按照“鸣响时间”里设定的值来鸣叫。“鸣响时间”的值越大,读写器鸣叫的时间越长,反之亦然。. 4. 选择要操作的卡片类型。 5. RF500系列读写器配有8位数码管显示。可以根据自己的需要设置“计算机控制”和读写器控制。 如果选择了“计算机控制”,请在文本框里输入8位字符串(16进制表示),如果包含小数点,则要输出9位。输完字符串请按下“刷新显示按钮”,所输入的信息就会显示在读写器的数码管上。 如果选择了“读写器控制”选项,你还要选择显示时间还是日期,你可以通过改变文本框里的值来修改读写器的的时间和日期。按下“刷新显示”按钮,新设定的值就会被传到读写器上,读写器以后就会按新的时间或日期来显示。其初始值是和所连接的PC机的系统时间相匹配的。LED的亮度可以通过“亮度”的上下箭头来改变。 2.2 密码设置

接触式IC卡读写器使用手册

目录 第一章 DP系列接触式IC卡读写器简介 (3) 1.1概述 (3) 1.2读写器型号 (3) 1.3装箱清单 (4) 1.4读写器连接方式.... (4) 1.5指示灯 (4) 1.6程序安装 (4) 1.7用户软件 (4) 1.8技术指标 (5) 第二章演示系统使用说明 (6) 第三章 IC卡读写器驱动程序函数说明 (9) 3.1 安装程序主要目录和文件 (9) 3.2 函数使用规则 (9) 3.3 各种库函数说明 (9) 3.3.1 C语言接口函数库 (9) ●通用函数库 (10) ●AT24C01A/24C02/24C04/24C08/24C16/24C64 (13) ●AT45D041 (14) ●AT88SC102/1604/1604B (15) ●AT93C46/93C46A (22) ●SLE4404 (23) ●SLE4406 (26) ●SLE4418/4428 (28) ●SLE4432/4442 (30) ●CPU卡 (30) 3.3.2 FOXPRO FOR DOS函数库 (33) 3.3.3 WINDOWS 16位和32位动态库 (34) 3.3.4 FOXBASE函数库 (35) 3.3.5UNIX函数库 (38) 3.3.6LINUX函数库 (38)

3.4 VFP、VB、Delphi和PB调用动态库的方法 (38) 3.4.1 VFP调用16位动态库的方法 (38) 3.4.2 VFP调用32位动态库的方法 (39) 3.4.3 VB调用动态库的方法 (40) 3.4.4 Delphi调用32位动态库的方法 (41) 3.4.5 PB调用32位动态库的方法 (42) 3.4.6 VC调用32位动态库的方法 (42) 3.5 IC卡类型代码 (43) 3.6 函数错误类型代码 (43) 3.7自动卡型测试函数原理说明 (44) 附录一几种常用IC卡的特性 (45) [2000/05/10] DP-R-XXX

IC卡读写系统的单片机实现

天津大学网络教育学院 专科毕业论文 题目:IC卡读写系统的单片机实现 完成期限:2016年1月8日至 2016年4月20日 学习中心:选择一项。 专业名称:电气自动化技术 学生:国良 学生学号:3 指导教师:娜娜

IC卡读写系统的单片机实现 第1章绪论 本章介绍了IC卡的发展历史和应用情况,说明了现代IC卡技术的基础知识,最后分析了目前常见的IC卡读写器终端,并提出了本课题中IC卡读写器的设计目标。 1.1 IC卡的发展和应用使用情况 卡片是作为个人身份识别的手段而引进的,而作为交易凭证的卡片则早在19世纪80年代就萌芽于英国了,1950年,美国商人设计了第一现代的塑料信用卡,1951年美国富兰克林银行作为金融机构率先发行了信用卡,到60年代中期,人们在塑料金融交易卡的背面贴上磁条,发展成为能够自动读取信息进行在线处理的磁卡,磁卡因为结构简单,价格低廉,得到迅速推广。 IC卡是近年从欧洲开始出现的,IC卡具有突出的3S特点,即Standard(国际标准化)、Smart(灵巧智能化)、和Security(安全性)。因而发展迅速,在金融、通讯、交通等众多领域中后来居上,即使那些磁卡已经普及应用的围也将被取而代之。IC卡不仅改变了现有多种卡的使用方法和功能作用,还不断开创出新的应用领域。将IC卡和其他设备组成系统就能提供非常丰富的服务功能,把这些功能与生产或流通领域有机地结合起来,将出现令人意想不到的奇迹,创造出巨大的经济和社会效益。随着信息技术的发展,IC卡作为一种先进的信息存储介质,它的应用己经渗透到各国的经济、社会生活、军事等各个方面,将来更有着广阔的发展空间。 1.2 IC卡应用技术 IC卡比磁卡存储容量大,可靠性和安全性高,在应用上除了覆盖磁卡的全部应用围以外,还提供了许多磁卡所不具备的应用特性。正是这些特性,使IC 卡在脱机业务处理和联网数据一致性等方面表现出前所未有的优势。IC 卡虽然有很强的功能,但仅当IC卡加入到应用系统中,构成发行商、应用系统和持卡人之间的数据传输媒介时,才能有效地发挥其优势。一个好的IC卡应用系统,应具备良好的应用特性和性能价格比,还要有好的安全特性。 1.3 课题中IC卡的设计目标 读写器是IC卡应用系统的终端设备,只有通过读写设备才能和IC卡建立联系,读写IC卡中的数据;读写器一般还要求和信息网络中的上位机进行通讯,把IC卡中的数据融入到上层数据库。设计选择读写器是建立IC卡应用系统的关键。本文是就设计IC卡读写器展开的,课题的设计目标是一种通用的接触式IC卡读写终端,要求读写器能够单独工作。 预期目标:

IC卡读写器使用说明

IC 读写器使用说明 一、读写器连接 1.1 把通讯线“DB9”端插到PC 机的串口1/2 上 1.2 把通讯线2510端插到读写器的插座,使读写器和PC 机的串口良好连接 1.2 把电源线的“圆柱”端插到读写器的电源座子上 1.3 读写器上电以后可以听到一声风鸣器的响声,如果没有听到风鸣器声,表明读写器没有正常上电. 二、启动Demo 软件 2.1 双击启动测试软件 2.2 如果串口良好连接的话可以听到一声风鸣器的响声,如果启动测试软件以后并没有听到风鸣器声表明串口通讯没有连接好,请检查串口连接线是否连接正确 三、M1卡片读写测试 3.1 把一张Mifare One 卡片放在天线区域范围内

3.2 进入功能选项“低级操作”里面点击“寻卡”,如果出现“寻卡成功!”表明寻卡正常,如果出现“执行失败!”表明出现异常,请检查卡片是否在寻卡范围内,如果确认卡片没有问题,那读写器有异常 3.3 点击“防冲突”,如果出现“执行成功”表明防冲突正常,如果出现“执行失败”表明读写器出现异常或者卡片没有在天线区域 范围内

3.4 点击“选择”,如果出现“执行成功”表明选择正常,如果出现“执行失败” 表明读写器出现异常或者卡片没有在天线区域范 围内 3.5 进入功能选项“密码下载”里面下载卡片密码,比如需要测试卡片扇区1 数据的读写,那么就在扇区1 后面填上密码A/B(注:卡片的初始密码A/B 均为全‘F’),然后选择“A 组密码”或者“B 组密码”,最后点击“下载”,如果出现“密码下载成 功”表明密码下载成功,如果出现异常请按照错误提示更改后再下载一次,直至“下载成功”为止

IC卡和IC卡读写器常识

IC卡和IC卡读写器常识 人们常说的IC卡,其实际的概念是怎样的呢? IC是英文集成电路的缩写,其含义是指集成电路芯片。由于法国人的发明,使集成电路芯片嵌入一张PVC之类的材料制成的卡内变成了现实,这就是今天人们所说的IC卡。 IC卡由于其功能可以认为有3个分支: 1、IC 存贮卡,包括加密存贮卡。读写器对卡的读写为接触式,因而称这种卡为接触式IC卡。 2、CPU卡,即IC卡内含有至少一个运算芯片CPU的IC卡。读写器对卡的读写为接触式,因而称这种卡为接触式IC卡。 3、RF射频卡,射频卡内包括有加密逻辑电路,有的带有CPU芯片,读写器对卡的读写为非接触式,因而称这种IC卡为非接触式IC卡。 IC卡在使用中,有一些参数在卡型选择时是需要认真考虑的。 1)、如果IC卡的使用环境低于0℃时,最好不要选用CPU卡,因CPU卡的工作温度在0℃时以上。而MemoryCard 可以工作在-20℃的低温下工作。 2)、IC卡是有工作电压指标的,西门子公司的IC卡一般工作电压在4.75V~5.25V之间。ATMEL公司的IC卡工作电压约在2.7V~5.5V之间,用户在自己设计读写电路时应加以注意。特别指出的是现在AT MEL新出的45DB041芯片由于工艺变化,已不能在5V电压环境正常工作,我司(深圳庆通科技)针对这种情况研发生产了低电压IC卡读写器和双电压切换的IC卡读写器。 3)、IC卡是有寿命的。它的寿命是由对IC卡的擦写次数决定的,对于西门子的IC卡,指标为1万次擦写寿命;ATMEL的IC卡,指标称擦写寿命为10万次。 4)、IC卡读写器的使用寿命主要由两个因素决定。 a、读写器本身器件的选择; b、卡座的寿命;卡座的寿命分别有10万次,20万次和50万次。国内一些个体经济也生产了相当数量的少于7000次寿命的卡座,主要用于IC卡收费的终端表内,如IC卡电表,IC卡民用水表,IC煤气表等。我司(深圳庆通科技)所标配的卡座为10万次的卡座。 5)、专业厂家的IC卡读写机具配有各种上层接口函数,对于其用户是免费发放的,可以免去用户自己开发的时间。另外,专业厂家提供的产品由于其用户较为广泛,或许已经过一些系统的考验,这些情况,用户可以通过向经销商或厂家提问,得出一些正确的结论。 6)、读写器对IC卡的上电操作,仅在接到软件发出的指令以后才能进行,并且,在IC卡没有插入的情况下,应给出上电出错的返回代码。

射频IC卡读写器简析

一、简介 射频IC卡读写器,属于读写IC卡的RFID射频技术机具设备,根据卡片类型的不同,分为接触式、非接触式、双界面读卡器。接触式IC卡读写器基本遵循ISO7816协议的国际标准,非接触式的则遵循ISO14443或者15693协议接口标准。读写器一般通过通讯线连接接到电脑,通讯方式以USB接口为主(分有驱和无驱),RS232和RS485接口的读卡器,仍然具有一定的用户数量。 二、技术参数举例 型号:LTXHFUSB-02 工作频率:13.56MHz; IC卡读写器支持协议:ISO14443A; 通讯接口:USB接口,操作简单,可以当作串口操作; 读卡距离:小于10cm; 支持卡类型:mafare 1 S20,mafare 1 S50, mafare 1 S70,ISO14443 TypeA等; 工作电压:直流5V(USB直接取电); 工作电流:<100mA; 工作模式:用户可自己设置成主动读卡模式和被动读卡模式; 功能:支持读卡号ID,读写卡,扇区加密,增值减值(钱包)等; 工作温度:-30℃-80 ℃; 外观尺寸:143×110×28mm; 串口波特率:可选,默认9600Bit/S; 操作系统:Windows 98、2000、2003、XP、Windows 7/8、Linux、Andriod等; 显示:双色LED; 蜂鸣器:内置。 三、使用说明 1、通讯接口要满足项目的需求; 2、读卡器设备的频率,要满足项目使用的频率规范; 3、了解读距和防碰撞指标,读距指标要明确什么天线和标签下测试的;防碰撞要明确什么标签在什么排列方式下多长时间内全部读完;

4、模拟情况下连续测试设备的稳定性,确保能长时间的稳定工作; 5、了解读卡器的最大发射功率和配套选型的天线,是否辐射超标; 6、看读卡器具备的天线端口数量,根据应用是否需要多接口的读写器; 7、一个RFID应用系统除了和读写器有关外,还和标签、天线、被贴标物品材质、被贴标物品运动速度、周围环境等相关,在确定设备前最好能模拟现场情况进行测试和验证,确保产品真是能满足应用需求。 四、读卡距离 影响射频IC卡读写器读卡距离的因素较多,因采用不同的协议,不同的天线设计、周围的环境(主要是金属物)和不同的卡片等,都会影响到实际的读卡距离。如果读卡器读卡距离过长,会造成读卡不稳定或失败。同时过近的两个读卡器也会互相干扰,读卡器之间的距离保持在25cm以上。读卡的方式,建议用卡片正对着读卡器自然靠近,用卡片从侧面快速划过的读卡方法不可取,不保证刷卡成功。 五、实物图举例

基于单片机的IC卡读写器设计

石家庄铁道大学毕业设计 基于单片机的IC卡读写器设计The Design of the IC Card Read-Write Device Based on single chip microcomputer 2012 届电气工程系 专业 学号 学生姓名 指导教师陈东阳 完成日期 2012年 5月 15日

毕业设计成绩单 学生姓名学号班级专业毕业设计题目基于单片机的IC卡读写器设计 指导教师姓名 指导教师职称 评定成绩 指导教师得分 评阅人得分 答辩小 得分 组组长 成绩: 院长(主任)签字: 年月日

毕业设计任务书 题目基于单片机的IC卡读写器设计 学生姓名学号班级专业自动化 承担指导任务单位石家庄铁道大学导师 姓名 陈东阳 导师 职称 副教授 一、主要内容 设计一款读写器,能通过与计算机通信,由计算机发送新数据到单片机,完成对卡的读/写。 IC卡应用于消费电子产品对IC卡的管理,如电卡,饭卡,购物卡,娱乐消费卡等其他消费费系统充值与管理。这里设计的读写器能实现简单的读写与显示功能。 二、技术参数和要求 1、使用SLE4442卡,密码用123456。 2、33-36区域放置AA 55 80 FE四个字节作为卡片识别代码。 3、37区域放置能消费值MN(钱包值MN<=99) 4、38区域放置MN的备份NN, 5、39区域放置工作时间TT(TT<=99) 6、读取卡信息上传到计算机 7、注册有效卡并对其进行充值管理。 8、其他要求: 写卡成功失败都要有声光提示;有写卡状态指示; 电路原理图设计,protel印刷电路图设计。 提出系统设计框图,提出相应的解决方案。 论文正文不少于1.5万字,查阅文献资料不少于15篇,其中外文文献2篇以上,翻译与课题有关的外文资料不少于3000汉字。 一、结构框图 ◆整体分三部分单片机部分,读写卡模块,232模块部分。 ◆接口电路部分属于IC卡槽和上位机相连的部分,也是IC卡能与单片进行通话的部分。 ◆数码显示部分是显示IC卡存储器内数值的部分。 ◆单片机与IC卡完成通信,对卡进行写操作。并将数据通过232部分与计算机通信。 ◆232模块部分,电平转换,通过这部分完成计算机与单片机的通信。 ◆编程提示:计算机将要写的数据先发送到单片机,单片机再完成对卡的读写操作 三、应收集的资料及参考文献 1、参考及查阅资料 ◆RS232,数码显示 ◆I2C总线

IC卡读写器原理图

IC卡读写器原理图 图为IC卡及其读写器硬件电路图。其中读写器由单片机、键盘、显示、监控电路等部分组成。IC卡采用XICOR公司的X76F100Y。 2.1 IC卡及卡座 X76F100为128×8位的保密串行FLASH E2PROM,其中读密码和写密码分别为6 4位。图2为其智能卡Smart Card封装的引脚图。把芯片封装在一个卡片上,将卡片插入IC卡读写器的卡座中,读写器就可以对它进行读写,实现加密、查询、存款、取款等功能。 IC卡座有8个引脚,当X76F100Y插入时,正好同这几个引脚相连。另外还有两个固定端,其中一个固定端同卡座上一个弹簧片相连,两个触点和簧片就相当于一个常闭开关。当卡未插入时,簧片闭合,P3.2脚保持低电平;当卡插入时,簧片被顶开,P3.2脚变为高电平。当单片机检测到P3.2脚变高,通过P1.3 使X76F100 的RST引脚变高,使其复位。 2.2 单片机 单片机采用LG公司的GMS97C52。它有8K字节的ROM,256个字节的RAM以及3 2个I/O口,P1口与串行器件X25045和X76F100连接,P0、P2口用于键盘和显示,P3口中P3.2用于检测IC卡是否插入,其余7个口,可作其它功能扩充。 2.3 监控电路 监控电路采用X25045芯片,它包括看门狗定时器、电压监控电路和E2PROM存贮器。其功能是:上掉电时对GMS97C52产生RESET信号;看门狗对系统进行监控,

防止死机。 2.4 键盘电路 为了方便,键盘接口电路用I/O口实现,它为4×4结构,16个键。其中数字键11个,功能键4个,回车键1个。 数字键:0、1、2、3、4、5、6、7、8、9、←(退格)。 功能键:查询?、存储+、取款-、改密码* 。 查询?:用户通过读密码可以查询卡中所存的款额。 存款+ :用户通过写密码可以将款存入卡中。 取款-:用户通过写密码可以从卡中取款。 改密码*:分为修改读密码和写密码。为方便起见,令读密码和写密码一 致,按此键将同时修改读密码和写密码。 回车键:8位密码或存取款数输入完确认,以及新密码输入完确认。 2.5 显示电路 显示部份采用LED显示器,也用I/O口实现。用于显示系统状态、输入的密码或所要存取的款额以及出错信息等。 由于GMS97C52的驱动电流有限,在P0、P2口加反向器SN74F04,增加驱动能力。它的吸入电流为64mA,输出电流为15mA,可以保证位选所需的吸入电流。 相关资料连接

ic卡读写器怎么写

ic卡读写器:非接触式IC卡的读写程序怎么写? 关IC卡没有任何关系,主要是读卡器的问题,看你的是串口,还是USB啊,如果是USB的应该就有相应的动态库,如果说是串口就按相关的协议进行串口读写即可. 有windows32位动态库,不知道是干什么用,在哪里用的。发出来大家帮帮看看怎么用。ic卡读写器参考:[https://www.doczj.com/doc/d116112667.html,/] RF 系列非接触式 IC 卡6 2.2 库函数一览表 序号函数说明备注 1 rf_init () 初始化串口 2 rf_exit () 关闭串口 3 rf_card () 寻卡 4 rf_authentication () 验证卡中某一扇区密码 5 rf_halt () 中止卡操作 6 rf_read () 读数据(字符) 7 rf_read_hex () 读数据(十六进制) 8 rf_write () 写数据(字符) 9 rf_write_hex () 写数据(十六进制) 10 rf_intival () 初始化块值 11 rf_increment () 加值 12 rf_decrement () 减值 13 rf_readval () 读值 14 rf_restore () 将块数据传到卡的内部寄存器 中 15 rf_transfer () 将寄存器的数据传到块中 16 rf_load_key () 向读写器下载授权密码 17 rf_load_key_hex () 向读写器下载授权密码(十六进 制) C 语言库中未提供 此函数 18 rf_beep () 蜂鸣器鸣叫 19 rf_disp () 数码管显示数据 20 rf_request () 寻卡请求 FoxPro For Dos 库 中未提供此函数 21 rf_anticoll () 防止卡冲突 FoxPro For Dos 库 中未提供此函数 22 Rf_select () 选取一个给定序列号的卡 FoxPro For Dos 库 中未提供此函数 23 Rf_encrypt () DES 加密算法 24 Rf_decrypt () DES 解密算法 25 Rf_get_status () 读取读写器的版本号 26 Rf_reset () 射频头复位 27 Rf_initval () 高级初始化值 28 Rf_HL_decrement () 高级增值操作 29 Rf_HL_inctement () 高级减值操作

基于51单片机的IC卡读写器的设计于实现

哈尔滨师范大学 学年论文 题目基于51单片机的IC卡读写器的设计与 实现 学生徐连超 指导教师邢恺讲师 年级 2008级 专业计算机工程与应用 系别计算机科学与信息系 学院计算机科学与信息工程学院 哈尔滨师范大学 2011年6月

论文提要 近年来,近年来,随着科技的发展,人们日益增长的物质文化需要,IC卡应运而生(IC 卡是集成电路卡(Integrated Circuit Card)的简称,有些国家和地区称之为微芯片卡(Microchip Card)或微电路卡(Microcircuit Card)),特别是在IC卡的设计与应用上更是日新月异。随着这种潮流的发展,C51单片机下面的开发项目日益增多,IC卡成为了一个主流项目,设计与实现IC卡的读写也成为了一项重要的项目。随着项目的发展国际化的变准也发展起来,更多的要求也出现了,为了方便后来人的开发,本文介绍了一种新型的IC卡读写终端的设计并介绍了实现IC卡数据存储的控制方法,IC卡读写软硬件的实现。

基于51单片机的IC卡读写器的设计与实现 徐连超 摘要:本文主要介绍了一种新型的IC卡读写终端的设计并介绍了实现IC卡数据存储的控制方法,IC卡读写软硬件的实现,SLE4442接口电路的设计,89C51软件模块设计。 关键词:89C51;IC卡;嵌入式;串口。 近年来,随着科技的发展,人们日益增长的物质文化需要,IC卡应运而生,特别是在IC卡的设计与应用上更是日新月异。 一、前言 IC卡是集成电路卡(Integrated Circuit Card)的简称,有些国家和地区称之为微芯片卡(Microchip Card)或微电路卡(Microcircuit Card)。IC卡的大小和磁卡相同,它把集成电路镶在塑料卡片上,芯片一般是数据不易丢失的存储器(ROM,EPROM.EPROM),保护逻辑电路,或者GPU。IC卡最初是为了解决金融交易中的安全性问题而设计的,它带来全新的交易概念与巨大的优势。很快,这一优势也为其他应用部门所看重,是指广泛应用于电话,医疗保健,路禁控制和门锁控制等等系统中。随着时间的推移,应用范围还在不断扩大,使用IC卡的数量呈几何级数增长。同时,为了不同应用场合的需求,IC卡制造商们仍在不断地向市场推出新的IC卡,IC卡的价格将随着使用量的增加而逐年下降,所有这些,无疑又会大大推进IC卡在各个领域的普及。 按照IC卡与读写设备的数据交换方式,IC卡可分为接触式IC卡和非接触式IC卡。接触性IC卡就是在使用时,通过有形的电极触电将卡的集成电路与外部接口设备直接接触连接来进行数据交换的IC卡。非接触式IC卡是通过无线电波或电磁场感应的方式,将卡集中成电路内的数据与外部设备接口设备通信,卡片不用直接接触接口设备的电极就可以进行数据读写。按照IC卡的功能和结构又可以把IC卡分为存储型IC卡和智能型IC卡。存储型IC卡是属于被动型,它只能实现数据的各种输入/输出。这种类型IC卡内部电路可分为两大功能部分,数据存储部分和数据加密操作控制部分。而且不是所有IC卡都必须具有这两大功能。我们把只有数据存储功能的IC卡称为非加密型存储卡(Memory Card)。把具有数据存储功能和数据加密操作控制的IC卡称为加密型存储卡(Memory Card with Security Logic),它们有暂时或永久的数据存储能力,其内容可供处理或判断之用。只能型IC卡就是在IC卡的集成电路中带有微处理器电路的IC卡。它是一种主动型IC卡,不仅能够管理各种数据的I/O操作,效验来自接口设备的个人密码,而且能够根据应用系统的要求主动识别与之连接的接口设备。因此,在智能型IC卡中能够建立各种应用系统的授权,存放多个应用系统的相关数据,并实现对数据信息存储的高可靠性,高安全性控制,可以进行复杂的信息处理和计算。

网络IC卡读写器技术规范

网络IC卡读写器ETH-M-RW技术手册 ——13.56MHz Mifare系列卡读写器 科星互联出品

简介 ETH-M-WR是一款基于TCP/IP协议的IC卡读写器,支持全系列mifare读写操作;能便捷的实现以太网(局域网,广域网,外网)接入。支持TCP服务器、TCP客户端、UDP全协议栈。可以选择TCP或者UDP协议进行传输。。利用网络的优势实现便捷组网,安装,远程读写卡片。在物联网发展的大背景下,网络读卡器更符合物联网的发展需求。 特性 10/100M以太网接口,支持自动极性转换(MDI/MDIX) 支持TCP Server、TCP Client、UDP、DHCP等网络协议。支持局域网内多对一访问。 支持internet、跨网段局域网传输。 支持命令驱动蜂鸣器。 刷卡间隔短,实时传输。 完全支持Mifare系列兼容卡 工作频率:13.56MHZ 有效距离5cm以上 直流5V供电,功耗少于300MA 工作温度-15~75℃,储藏温度-25~85℃

接口描述 RJ45内部集成了网络滤波器和两个状态指示灯。RJ45内部管脚如下: Mifare读写指令集 的卡片块3授权,验证A密码。 说明:新卡片的KeyA和KeyB默认都是FF FF FF FF FF FF

说明:读取前必须授权 写入数据FE FE FE FE FE FE FF 07 80 69 FF FF FF FF FF FF 说明:写数据前必须通过授权 注意:每次加减值必须是4字节,低字节在前,进行加减值前必须严格按照mifare卡数据块格式先格式化数据块,具体参考《Mifare技术说明》。 说明: 加减值操作后必须进行命令才能确保加减后的数值写入卡片存储块内。 枚举卡号命令:4A 01 00 卡片操作完成命令:4B 01 00 说明:读卡器上电默认在主动上发卡号状态,在这个状态下,只要有卡片靠近,读卡器即主动上发卡号提示远程客户端进行有卡操作,当远程客户端发指令操作卡片后,读卡器不再主动上传卡号,并且切换到卡读写状态,读写完成后需要客户端发卡片操作完成指令(4B)通知读卡器切换到主动上发卡号状态。

相关主题
相关文档 最新文档