目录第一章 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第一章DP系列接触式IC卡读写器简介1.1 概述深圳市明华澳汉科技有限公司是以生产IC卡及开发IC卡相关设备为主导产品的高新科技企业。
继1996年第一台接触式IC卡读写器问世以来,本公司经不断改进、提高,已相继推出数千台不同型号的读写器。
DP读写器是明华公司最新推出的读写设备,它功能齐全、性能稳定,在原有RD系列读写器的基础上增加了对SAM卡操作的功能。
可方便地应用于工商、邮电、税务、银行、保险、医疗及各种收费、储值、查询等管理系统中。
可读写的卡型a.存贮器(Memory)卡●美国ATMEL公司的AT24C01A/24C02/24C04/24C08/24C16/AT24C64,AT88SC102,AT88SC1604/1604B,AT45D041,AT93C46/93C46A卡●德国SIEMENS公司的SLE4432/4442,SLE4418/4428,SLE4404,SLE4406卡●以及其他公司的兼容卡片(ISSI 24C01A/16)b. CPU卡(符合T=0/T=1通讯协议) 、SAM卡特点●可读写多种Memory卡和支持T=0、T=1通讯协议的CPU卡;●支持对SAM卡操作的功能;●与PC机通讯采用RS232串口,波特率为1200 115200BPS;●对于使用SAM卡的用户,可以选择内置于读写器的小卡座,也可以选择通过卡槽操作的大卡座。
●提供诸多开发平台的接口函数和应用范例。
1.2 读写器型号DP系列1.3 装箱清单读写器一台串口线一条安装盘一张用户手册一本(根据需要提供)产品保修卡一张1.4 读写器连接方式DP读写器有两个PS/2接口和一个串口,PS/2接口中的一个与计算机的PS/2口连接,另一个与键盘/鼠标相连,串口直接接至计算机的串口上。
1.5 指示灯三色指示灯:绿色用户卡已插入,闪烁时表示正在对用户卡操作红色未插用户卡或SAM卡橙色用户卡未插入,SAM卡已插入,闪烁时表示正在对SAM卡操作1.6 程序安装步骤:●将读写器连接在计算机通讯口上;●将随机软盘插入驱动器A:或B:中●在WINDOWS95/98环境下双击MWDP.EXE;●按照安装程序的提示和要求进行安装;注意:安装程序在根目录下建立MWDP的目录(缺省),所有驱动软件均在此目录下。
安装完毕后请仔细阅读README.TXT文件。
1.7 用户软件(V1.0)用户软件包括三部分:演示系统、驱动程序、应用范例和兼容库a.演示系统提供WINDOWS版演示程序DEMO.EXE。
b.驱动程序●C语言接口函数库(Borland C3.1)●FOXPRO FOR DOS(2.5/2.6) 接口函数库●WINDOWS 16位动态库●WINDOWS 32位动态库●FOXBASE(2.0/2.1)接口函数库●UNIX函数库(SCO UNIX5.0)●LINUX函数库(Red hat 6.0)c.应用范例随盘应提供VB5、VB3、PB5、DELPHI3、VFP3、FORPRO FOR DOS(2.5/2.6)、BC3.1、FOXBASE(2.0/2.1)、UNIX(SCO5.0)、LINUX(Red hat6.0)等的应用范例。
1.8 技术指标●通讯接口:RS232串口●串口的波特率:1200 ~ 115200BPS●电源:由键盘取电,不外带电源●最大功耗:100 mW●环境温度:商业级 0°~ 70 °C工业级 -25°~ 85 °C●相对湿度:30% ~ 95%●抗静电干扰:15KV●抗磁场干扰:19奥斯特●抗振动能力:振幅0.35mm,频率10-55Hz,三个轴方向扫频振动●绝缘电阻:湿热情况下(40°,95%)绝缘电阻应不小于5MΩ。
●外型尺寸:长⨯宽⨯高110mm⨯85mm⨯60mm●重量:约475克第二章演示系统使用说明该演示系统可对ATMEL、SIEMENS等Memory卡和符合T=0/T=1通讯协议的CPU卡读写操作。
图1 演示系统主界面1.演示系统主界面分五个功能区,分别说明如下:●设备信息提示可显示用户软件版本号、硬件版本号。
●卡片选择卡片选择分手动选择卡型和自动检测卡型两种,卡片选择完成以后,按下卡片操作按钮,进入相应的Memory卡或CPU卡操作界面,实现各自的功能操作。
●建立连接初次运行系统时,系统按自动测试方式建立连接,并将成功连接的参数保存在系统文件中。
下次运行时系统将自动按保存的参数建立连接。
也可以指定通讯口和波特率建立连接。
连接成功后,用户可以更换读写器端口和波特率值,指定连接方式后,执行更改连接。
自动测试将按照串口1~串口4的顺序自动测试并连接。
●提示信息提示信息显示各项操作的结果或出错信息。
鼠标双点框内文字可清空该区域。
●帮助文件按F1键或在卡片操作界面单击?图标,则弹出DP读写器帮助系统。
该帮助系统功能十分详尽,包括如何使用演示软件、明华读写设备介绍、支持卡型介绍、库函数介绍和读写器常见问题解答五大部分。
第三章 IC卡读写器驱动函数说明3.1安装程序主要目录和文件README.TXT 版本说明MWRDP\MWRDP1.00A\ DRVER\: DP系列读写器驱动程序\C.LIB\*.* C.DOS静态函数库\FOXPRO.DOS\*.* FOXPRO FOR DOS 接口函数库\WINDOWS.DLL\*.* WINDOWS32位和16位动态库\UNIX\*.* UNIX动态库\LINUX\*.* LINUX动态库\FOXBASE\*.* FOXBASE函数库\DEMO.WIN\DEMO.EXE WINDOWS下操作演示软件\EXAMPLES\*.* 各种平台的应用范例MWRDP\MWRD5.4\DRVER\: RD系列读写器驱动程序\C.LIB\*.* C.DOS静态函数库\FOXPRO.DOS\*.* FOXPRO FOR DOS 接口函数库\WINDOWS.DLL\*.* WINDOWS32位和16位动态库\DEMO.WIN\DEMO.EXE WINDOWS下操作演示软件UNWISEEXE 卸载安装程序3.2函数使用规则(1) 首先调用通讯口初始化函数ic_init()或auto_init();(2) 在串口通讯方式下,调用WINDOWS 16位/32位动态库或UNIX 函数库时,程序退出之前要执行ic_exit() 函数,关闭串口,释放句柄icdev;否则再次初始化串口将出错。
(3) 函数调用错误类型,请参照函数错误类型代码。
所有函数的错误代码均以负数形式返回;Foxpr For Dos和Foxbase例外。
注意:函数详细的使用方法,请参考EXAMPLES目录下提供的范例。
3.3 各种库函数说明3.3.1 C语言接口函数库包括:a.通用函数库b. AT24C01A/24C02/24C04/24C08/24C16/24C64函数库c. AT45D041函数库d. AT88SC102/1604/1604B函数库e. AT93C46/93C46A函数库f. SLE4404函数库g. SLE4406函数库h. SLE4418/4428函数库i.SLE4432/4442函数库j. CPU卡函数k. SAM卡函数a. 通用函数库(1) int ic_init(int port, long baud)说明:初始化通讯接口调用:Port: 通讯口号0、1、2、3分别代表串口1、2、3、4;baud: 通讯口为串口时代表波特率,其值可为1200-115200返回: <0 错误>0 通讯设备标识符举例: icdev=ic_init(0,9600);初始化串口1,波特率为9600icdev=ic_init(0x378,0);初始化并口,半字节通讯方式(2)int auto_init(int port, long baud)说明:自动初始化通讯接口调用:同ic_init()返回:同ic_init()注:无论使用串口通讯还是并口通讯,读写器都可保持最近一次设置的波特率值。
上面的Ic_init()函数是用给定的串行波特率与读写器通讯,如果读写器保存的串行波特率与上位机的进行初始化的串行波特率不同,将会出现初始化失败;而auto_init()函数在出现不同的情况下,它可自动测试读写器当前的串行波特率值,然后重新设置成上位机要求的串行波特率并建立好连接。
(3) int ic_exit(int icdev)说明:关闭通讯口调用: icdev: 通讯设备标识符返回: <0 错误=0 正确举例: st=ic_exit(icdev);注:C库中本无此函数,在此仅作为其它函数库的参考(4) int get_status(int icdev,int *state)说明:返回设备当前状态调用: icdev: 通讯设备标识符state: 插卡状态state=1读写器插有卡;state=0读写器无卡返回: <0 错误=0 正确,举例: int status;st=get_status(icdev,&status);(5) int turn_on(int icdev)说明:对卡上电调用: icdev: 通讯设备标识符返回: <0 错误=0 正确举例: st=turn_on(icdev);(6) int turn_off(int icdev)说明:对卡下电调用: icdev: 通讯设备标识符返回: <0 错误=0 正确举例: st=turn_off(icdev);(7) int srd_ver(int icdev,int len,unsigned char *databuff)说明:读取设备版本号调用: icdev: 通讯设备标识符len: 版本号字符串长度,其值为18databuff: 存放读取的版本号字符串返回: <0 错误=0 正确举例: unsigned char databuff[18];st=srd_ver(icdev,18,databuff);(8) int set_baud(int icdev,long baud)说明:设置串口方式下的波特率,设置完毕后,必须重新初始化通讯口。