SC1000系列读写机函数说明_第1页
SC1000系列读写机函数说明_第2页
SC1000系列读写机函数说明_第3页
SC1000系列读写机函数说明_第4页
SC1000系列读写机函数说明_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、sc1000系列函数使用说明在对非接触ic卡读写机操作之前,请先了解下卡结构。m1 8kbit卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为063,存贮结构如下图所示:扇区块号数 据 区说明块号块000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 数据块0扇区0 块100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00数据块1块200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00数据块2块3a0 a1

2、 a2 a3 a4 a5 ff 07 80 69 b0 b1 b2 b3 b4 b5控制块3 块000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00数据块4扇区1块100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00数据块5块200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00数据块6块3a0 a1 a2 a3 a4 a5 ff 07 80 69 b0 b1 b2 b3 b4 b5控制块7 000 00 00 00 00 00 00 00 00 00 00 00

3、00 00 00 00数据块60扇区15 100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00数据块61200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00数据块623a0 a1 a2 a3 a4 a5 ff 07 80 69 b0 b1 b2 b3 b4 b5控制块631 第0扇区的块0(即绝对地址0块),它用于存放厂商代码,出厂固化信息。2 每个扇区的块0、块1、块2为数据块,可用于存贮数据。3 每个扇区的块3为控制块,包括了密码a、存取控制、密码b。具体结构如下:a0 a1 a2 a3 a4 a5 f

4、f 07 80 69 b0 b1 b2 b3 b4 b5 密码a(6字节) 存取控制(4字节) 密码b(6字节) initport():打开串口 功能说明:此函数用来通过串口与读写器建立通讯链路。传输协议为:波特率为才57600bps,数据位为8 位,1个停止位,无奇偶校验位。 在调用其它函数功能前,一定要先进行串行口的联接。 函数原型:function initport(const iport: integer;out rhandle:thandle): integer;stdcall; 参 数:port: 端口号1 到 9 rhandle: com句柄 返 回 值:返回值为0,表示操作正确

5、;为其它值时表示出错。 举 例:ire:=initport(1,rhandle); closeport():关闭串口 功能说明: 关闭串口 函数原型:function closeport(const handle:thandle):integer;stdcall; 参 数:rhandle: 所要关闭com的句柄 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例:ire:=closeport(rhandle);sc_beep():蜂鸣器控制 功能说明: 控制蜂鸣器的蜂鸣时间 函数原型:function sc_beep(const handle:thandle; icount:i

6、nteger; itimes:integer):integer;stdcall; 参 数:rhandle:com的句柄icount: 固定为0itimes: 1 到 255 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例:ire := sc_beep(rhandle,0,3); /蜂鸣一声 短 报警声实现: ire := sc_beep(rhandle,0,25); sleep(1000); /延时的时间要大于,sc_beep 的时间,否则会造成连续蜂鸣。 ire := sc_beep(rhandle,0,25);sc_led():指示灯控制 功能说明: 控制红色和绿色指示

7、灯、蜂鸣器 函数原型:function sc_led(const handle:thandle; itype:integer; itimes:integer):integer;stdcall; 参 数:rhandle:com的句柄itype: 1 /代表红色led指示灯2 /代表绿色led指示灯3 /代表红色和绿色led指示灯4 /代表 蜂鸣5 /代表 红色led指示灯和蜂鸣6 /代表 绿色led指示灯和蜂鸣7 /代表 红色和绿色led指示灯和蜂鸣8 /代表 红色指示灯常亮9 /代表 红色关闭10 /代表 绿色指示灯常亮11 /代表 绿色关闭12 /代表 红色和绿色指示灯常亮13 /代表 红色

8、和绿色指示灯关闭itimes: 1 到 255 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例:ire := sc_led(rhandle,1,5); /闪红色指示灯 闪烁两下:: ire := sc_led(rhandle,1,5); sleep(300); /延时的时间要大于,sc_led的时间,否则会造成led灯常亮。 ire := sc_led (rhandle,1,5);sc_request():寻卡 功能说明:查询感应区内是否有卡 函数原型:function sc_request(const handle:thandle ):integer;stdcall; 参

9、 数: rhandle:com的句柄 返 回 值: 返回值为:4表示8kbit(1k字节) 返回值为:2表示32kbit(4k字节卡)返回值为:1 表示无卡 举 例:ire := sc_request(rhandle); sc_getsnr():读卡序列号 功能说明:读取卡片的4字节16进制序列号 使用此函数之前先调用 sc_request() 函数原型:function sc_getsnr(const handle:thandle; psnr:pchar):integer;stdcall; 参 数: rhandle:com的句柄 psnr:4个字节16进制的卡片序列号 ,例如:90a0043

10、8 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例:getmem(psnr,16); ire:=sc_getsnr(rhandle,psnr);sc_selectsnr():选择卡 功能说明:选择要操作的卡 ,使用此函数之前先调用sc_getsnr() 函数原型:function sc_selectsnr(const handle:thandle; psnr:pchar):integer;stdcall; 参 数: rhandle:com的句柄 psnr:4个字节的卡片序列号 ,例如:90a00438 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。32kbit(

11、4k字节)的卡片返回1正确 举 例:ire:=sc_selectsnr(rhandle,psnr);sc_encryptauth():核对卡密钥 功能说明:ic卡带有密钥保护,所以 在对卡进行读写前,要进行 核对密钥,核对正确后才可以对卡进行读写,否则无法对卡进行读写操作,但可以读取卡片的物理序列号。 函数原型:function sc_encryptauth (const handle:thandle; isector:integer;imode:integer;pkey:pchar):integer;stdcall; 参 数: rhandle:com的句柄 isector:核对密钥的扇区号0

12、15 imode:卡密钥的类型及a密钥60或b密钥61,通常使用a密钥60,pkey:卡密钥初始为12个ffffffffffff 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例:getmem(psnr,64); imode := 60; isector := 0; pkey := pchar(ffffffffffff); ire:= sc_encryptauth ( rhandle, isector, imode,pkey);sc_enread():读块数据 功能说明:读卡一个块的16字节数据;注意:ic卡带有密钥保护,所以 在对卡进行读写前,要进行 核对密钥,核对正确后才

13、可以对卡进行读写,否则无法对卡进行读写操作,但可以读取卡片的物理序列号。 函数原型:function sc_enread(const handle:thandle; iblock:integer;pdata:pchar):integer;stdcall; 参 数: rhandle:com的句柄 iblock:所要读取的块号,值范围063块pdata :存放读取的16个字节块数据。 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例: getmem(pdata,64);iblock := 1;ire:= sc_rfread(rhandle, iblock, pdata);sc_e

14、nwrite():读块数据 功能说明:写一个块数据,写入数据必须是16个字节的十六进制。注意:ic卡带有密钥保护,所以 在对卡进行读写前,要进行 核对密钥,核对正确后才可以对卡进行读写,否则无法对卡进行读写操作,但可以读取卡片的物理序列号。 函数原型:function sc_enwrite(const handle:thandle; iblock:integer;pdata:pchar):integer;stdcall; 参 数: rhandle:com的句柄 iblock:所要读取的块号,值范围063块pdata :要写入的16个字节块数据。 返 回 值:返回值为0,表示操作正确;为其它值时

15、表示出错。 举 例: iblock := 1;pdata := pchar(11223344556677889900aabbccddeeff);ire:= sc_enwrite ( rhandle,iblock,pdata);安全问题:采用一卡一密,数据进行加密处理,可提高系统的安全性。sc_leddsp():led数码管显示(此函数只对sc1023、sc1024、sc1025三种型号有效) 功能说明:可显示8位 数字和部分英文、字符 函数原型:function sc_leddsp(const handle:thandle; pdata:pchar;idot:integer):integer;

16、stdcall; 参 数: rhandle:com的句柄 pdata :可以显示的数据,空格表示 不显示0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f、b、c、h、h、l、n、n、o、p、p、r、t、u、-、=、y、j idot :小数点的位置,值为0 8 ,0表示不显示 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例: ire:= sc_leddsp( rhandle,12345678,6); 清屏:ire:= sc_leddsp( rhandle, ,0);sc_lcddsp():ascii字符显示(此函数只对sc1026、sc1027、sc1028三种

17、型号有效)功能说明:显示ascii字符函数原型:function sc_lcddsp(const handle:thandle; iline:integer;ilen:integer;sdata:pchar):integer;stdcall;参 数: rhandle:com的句柄 pdata: 可以显示ascii,如英文,标点符号等 iline: 显示在第几行 ilen : 显示字符长度 返 回 值:返回值为0,表示操作正确;为其它值时表示出错。 举 例: ire:= sc_lcddsp( rhandle,91,7,pchar(abcdefg);sc_lcddspcn():ascii字符显示(此函数只对sc1026、sc1027

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论