通用IC卡读写器开发使用说明文档格式.docx
《通用IC卡读写器开发使用说明文档格式.docx》由会员分享,可在线阅读,更多相关《通用IC卡读写器开发使用说明文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
三.函数调用说明
该读写器附带的动态连接库符合标准WIN32的API函数标准,各种WIN32环境下的编程语言都可以像调用标准WIN32API函数一样声明和调用本读写器提供的动态连接库函数。
本读写器附带的动态库,静态库,头文件如下表:
Hg_ic_head.h串口操作,读写器操作方面的函数。
AT_24CXX.hAT24Cxx系列以及兼容IC的读写函数。
At_1604_102.hAT88SC1604,AT88SC6601,AT88SC102卡读写函数。
At_1608_153.hAT88SC1608,AT88SC153卡读写函数。
At_45d041_card.hAT45D041,AT45DB041卡读写函数。
Sle_4442_4428.hSLE4442,SLE4428以及兼容卡片的读写函数。
HG_IC_READER.lib读写器静态调用库文件(C++,C语言调用时使用)。
HG_IC_READER.dll读写器动态调用库文件(要拷贝至目标PC的系统目录下)
四.基本通用函数说明
1.通讯及读写器操作函数说明
(1)打开通讯端口
函数原形:
intWINAPISerialPort_Open(shortintPortName,longDataRate)
函数功能:
打开并按照指定的波特率配置通讯端口。
在使用读写器之前必须调用该函数与读写器建立连接。
打开端口时的波特率和读写器当前工作速率可能不一致,这时在调用该函数以后要调用HG_Change_Baudrate(从新设置读写器的工作速率),HG_Check_Baudrate(检测读写器的工作速率)。
一个应用程序只须在开始调用时打开一次,已经打开的端口是全局有效的,直到应用程序退出或调用SerialPort_Close关闭端口。
参数说明:
PortName使用的通讯端口名称,在通用PC上可以使用的通讯端口一般有4个分别为:
COM1,COM2,COM3和COM4对应这里调用,该参数应该设置为1,2,3,4分别指定一个主机串口资源。
每个应用只能打开一个串口资源。
DataRate通讯用的波特率。
本公司出品的读写器支持的波特率有:
19200BPS,38400BPS,28800BPS,57600BPS和115200BPS。
该参数设置打开端口时默认的通讯波特率,可以取值的范围为:
19200,38400,28800,57600,115200。
返回信息:
返回0表示串口成功打开,返回其他信息表示在申请串口资源的过程中有错误发生,具体的错误列表见本说明的第五部分。
相关函数:
SerialPort_Close,HG_Change_Baudrate,HG_Check_Baudrate
(2)关闭通讯端口
intWINAPISerialPort_Close()
关闭已经打开的通讯端口,释放该端口的各种资源。
无
返回0表示串口成功关闭,返回其他信息表示在操作过程中有错误发生,具体的错误列表见本说明的第五部分。
SerialPort_Open
(3)检测读写器通讯波特率
intWINAPIHG_Check_Baudrate(long*Baud_Rate)
检测读写器的工作频率。
应用程序启动时可以以任何一种系统支持的波特率打开通讯端口,而读写器以上次复位后的状态工作。
两者的通讯速率可能不一致所以系统提供该函数测试读写器的工作速率。
调用函数返回正确后,Baud_Rate指示读写器的工作频率,同时将系统的当前工作频率设置的与读写器一致。
Baud_Rate一个LONG型数据的地址或一个指向一个LONG型变量的LONG型指针。
在调用该函数前要确认已经给Baud_Rate分配足够的空间(sizeof(long))。
函数返回正确信息后,Baud_Rate存储当前波特率。
同时系统设置自身的工作频率与读写器一致。
返回0表示成功,Baud_Rate存储当前波特率。
返回其他信息表示在操作过程中有错误发生,具体的错误列表见本说明的第五部分。
SerialPort_Close,HG_Change_Baudrate,SerialPort_Open
(4)设置读写器通讯波特率
intWINAPIHG_Change_Baudrate(longBaud_Rate)
设置读写器的通讯波特率,使读写器使用指定的波特率与PC机交互信息。
调用该函数前必须使读写器与系统的波特率保持一致。
可以调用HG_Check_Baudrate函数实现。
Baud_Rate通讯用的波特率。
返回0表示成功。
SerialPort_Close,HG_Check_Baudrate,SerialPort_Open
(5)插卡器状态检测
intWINAPIIF_Card_IN()
检测读写器中是否已经插入IC卡。
该函数只作为检测使用不是必须调用的函数。
读写器进行任何与卡相关的操作时会自动检测插卡器的状态。
-21插卡器中有卡。
-22插卡器中无卡。
Card_Power_Off,Card_Power_On
(6)IC卡上电
intWINAPICard_Power_On()
控制IC卡座的电源,调用该函数给卡座中的IC卡上电。
本读写器自带短路,反接保护电路,但为提高读写器的使用寿命和保护IC卡,建议对IC卡插拔的时候不给卡座供电(调用Card_Power_Off函数实现)。
在检测到IC后再给卡座供电。
参数说明;
Card_Power_Off,IF_Card_IN
(7)IC卡下电
intWINAPICard_Power_Off()
控制IC卡座的电源,调用该函数切断卡座的电源。
本读写器自带短路,反接保护电路,但为提高读写器的使用寿命和保护IC卡,建议对IC卡插拔的时候不给卡座供电在检测到IC后再给卡座供电(调用Card_Power_On函数实现)。
Card_Power_On,IF_Card_IN
(8)指示灯状态控制
intWINAPILed_Option(shortintOptions)
控制读写器上的绿色指示灯的状态(熄灭或点亮)。
IC卡座上电后指示灯自动点亮,这时调用本函数(使用参数0)将强行关闭指示灯,但不给插卡器下电。
Options1:
点亮指示灯。
0:
关闭指示灯。
Led_Op,Beep_Option
(9)指示灯闪烁
intWINAPILed_Op()
读写器提供一个固定频率闪烁绿灯的功能,可以通过调用本函数实现。
如果需要其他频率的闪烁可以通过间断调用Led_Option函数来实现,频率的下限受限于操作系统的要求。
一般情况下本函数可以很好的完成提示的功能。
调用Led_Option
(1)点亮指示灯后调用本函数回关闭指示灯。
Led_Option,Beep_Option
(10)蜂鸣器鸣叫
intWINAPIBeep_Option()
调用本函数会使读写器自带的蜂鸣器鸣叫一声,作为操作提示使用,可以在程序的任何位置调用本函数,以及指示灯控制函数。
达到提示操作的作用。
Led_Option,Led_OP
(11)卡片复位,并读取卡片复位应答信息
intWINAPICard_Ask(char*Aor)
给卡座中的IC卡复位信号,并读取卡片的复位应答信息(四个字节)。
该函数只对支持IS07816同步协议的IC卡有效,对于其他的卡片执行该命令将的不到任何有用的信息(函数返回的数组会是全FF)。
对于支持IS07816同步协议的卡片函数可以读出卡片的应答信息,可以用来区分不同类型的卡片,常见的卡片有:
SLE4442,SLE4428,AT88SC1608和AT88SC153卡支持该命令(另外国内生产的与SLE4442,SLE4428兼容的卡片也支持该命令)。
Aor一个缓冲区的指针,该缓冲区用来保存从IC卡获得的应答信息。
在调用该函数之前要确认已经为缓冲区申请足够的空间(大于4个)。
几种典型卡片的应答信息如下:
SLE4442:
A2131091
SLE4428:
92231091
AT1608:
2CAA55A0
AT153:
2CAA55A1
其他国产兼容芯片的应答信息和原厂产品略有出入这里不一一列举,应当以厂商的说明为准。
2.24CXX系列IC卡读写函数
(1)24Cxx系列IC卡简介
24CXX系列IC卡是一种最为常见的存储卡,根据卡的容量可以将其分为:
24C01,24C02,24C04,24C08,24C16,24C32,24C64等多种。
这些卡的功能基本相同。
支持字节操作和页写操作,所不同的是每种卡的页的大小不同。
详细情况见下表:
卡类型
卡容量(BYTE)
页大小(BYTE)
页数(页)
24C01
128
8
16
24C02
256
32
24C04
512
24C08
1024
64
24C1