华昌HCE-201IC卡读写器驱动6.5 一键安装版

系统:WinXP 大小:1.7M

类型:系统增强 更新:2014-05-16 08:43

介绍 相关 评论(0)

 1、版本说明


      本RD读写器软件的版本号为version6.5

      该驱动软件适用RD系列接触式IC卡读写器,SRD系列(45D041)专用读写器。


  2、RD读写器的软件组成


      a. Driver    驱动软件

      b. Demo      演示软件

      c. Examples  函数调用例范


  3、安装盘安装后的主要目录和文件 


    README.TXT                        版本说明

    MWRD6.5\DRVER\:                     RD系列读写器驱动程序

           \C.LIB\*.*             C.DOS静态函数库

           \FOXPRO.DOS\*.*         FOXPRO FOR DOS 接口函数库

           \WINDOWS\*.*         WINDOWS32位和16位动态库

           \UNIX\*.*               UNIX动态库

           \FOXBASE\*.*           FOXBASE函数库

           \DEMO.WIN\DEMO.EXE           WINDOWS下操作演示软件

           \EXAMPLES\*.*                各种平台的应用范例

    MWRD5.4\:                           RD读写器兼容库

           \C.LIB                       C.DOS静态函数库

           \FOXPRO.DOS                  FOXPRO FOR DOS接口函数库

           \WINDOWS.DLL                 WINDOWS32位和16位动态库

           \Ref5X.TXT                   使用说明

    SRDUSER.DOC                         SRD-E*P-45D041读写器用户使用手册



  4、RD读写器软件Ver6.5与Ver6.0相比修改和增加说明


   a. 函数库修改和增加说明

  (1) 102卡的擦除函数ser_102(icdev,zone,offset,le),要求其偏移地址offset和

        擦除长度le必须为偶数。

  (2) 增加auto_init ()自适应式初始化函数。只要通讯口选择正确,该函数将按照

        输入的波特率(或并口模式)与读写器建立连接。如果输入的波特率与读写器

        内部保存的设置值不同,则第一次初始化将需要数十秒的等待时间,且读写器

        伴有弹卡动作。

  (3) 增加对设备读写的两个函数:swr_eeprom();srd_eeprom() 。利用该函数可

        以将系统编号等信息直接存放在读写器中,便于系统的设备管理。

  (4) 增加三个工具函数(C、Unix库除外),用于ASCII码和十六进制数据之间的转换。

            asc_hex ();

            hex_asc ();

            asc_asc ();

  (5) 增加了CPU卡专用读写器的驱动函数:

            int cpu_reset();

            int cpu_protocol();

            在 FOXPRO FOR DOS 库中 cpu_protocol() 更名为 CPU_PTL();

        注意:CPU卡读写器不支持115200和38400波特率。

   (6) 另更正了Version6.0 版库函数中的错误。

   (6) 测卡函数增加了测厂商代码为1A77的102卡。

   b. 兼容库

       为了保持与旧读写器的兼容性,version6.5驱动程序中增加了对version5.x旧

  读写器的兼容库。用户只要用此兼容库替代旧的函数库,不必更改原程序代码,即可

  使用RD系列的新型读写器。


   c. DEMO演示程序

      增加了对CPU卡的操作演示功能


 

  5、新增加的库函数使用说明 (以32位库为例)


  (1) HANDLE auto_init(_int16 port,unsigned long baud);     

  [说明]:初始化通讯口;

         其入口参数和出口参数与ic_init( )相同。


  (2)_int16 swr_eeprom(HANDLE icdev,_int16 offset,_int16 length, 

                                     unsigned char *databuff);

  (3)_int16 srd_eeprom(HANDLE icdev,_int16 offset,_int16 length,

                                     unsigned char *databuff);

   [说明]  向读写器中写入或读取数据信息

   参数:  icdev:   设备标识符

           offset:  偏移地址 0--383

           length:   数据长度 1--384

           databuff:存放读、写的数据

   返回:  = 0       正确

          〈 0       错误  

   注:请参考Examples\VB5\Mc32_gl目录下的使用范例。


  (4) _int16  asc_hex(unsiged char *asc, unsigned char *hex , 

                                             unsigned long length);

  [说明]    将ASCII码转换为十六进制数据

   参数:   asc:     输入要转换的字符串

            hex:    存放转换后的字符串  

            length:  为转换后的字符串长度

   返回:    = 0     正确

            〈 0     错误  


  (5) _int16  hex_asc(unsigned char *hex, unsigned char *asc, 

                                             unsigned long length);

  [说明]   将十六进制数据转换为ASCII码

  参数:   hex:     输入要转换的字符串

           asc:    存放转换后的字符串  

           length:  为要转换的字符串长度

  返回:    = 0      正确

           〈 0      错误  

  注:转换后的字符串长度为2*length


  (6) _int16  asc_asc(unsigned char *source, unsigned char *dest,

                                               unsigned long length);

  [说明]   字符串转换成字符串。专为VB5 ByRef传址方式提供的赋值函数

   参数:  source:  要转换的ASCII码字符串(声明:Byval source as string)

           dest  : 转换后的ASCII码字符串(声明:ByRef dest as byte)

           length:  字符串的长度

   返回:  = 0      正确

          〈 0      错误  

   注意:VB5环境下,对于ASCII值码大于128的情况,不能正常转换。上述三个函数中

         相应的参数须声明为ByRef传址方式。asc_asc()是专为VB5 ByRef传址方式提

         供的赋值函数。该特殊情况下的应用请参考Examples\VB5\Mc32_gl目录下范例。      

         对于其它开发环境如DELPHI3、PB5等,可以直接利用上述工具函数,将ASCII

         转换为十六进制数据,然后再写入卡中。 


  (7)__int16 __stdcall cpu_reset(HANDLE icdev,unsigned char *data_buffer);


   [说明]  对CPU卡复位操作

   参数:  icdev:          初始化返回的设备标识符

           data_buffer:   复位响应返回的字符串           

   返回:    = 0           正确

            〈 0           错误(见错误代码)  

                            


  (8)__int16 __stdcall cpu_protocol(HANDLE icdev,int len, 

                       unsigned char *send_cmd, unsigned char *receive_data);


   [说明]  按照CPU卡T=1的传输协议向读写器发送命令串

   参数:  icdev:          初始化返回的设备标识符

           send_cmd:      发给卡操作的命令串(T=1格式) 

           len:            命令串的长度  

           receive_data:   CPU卡返回的数据串    

   返回:    = 0           正确

            〈 0           错误(见错误代码) 


   举例:请参考Examples目录下的unix、VB5、VFP、VB3、C.DOS 和Foxpro.dos等例范。


  6、新增CPU卡读写器的错误代码(负数):


       错误代码    错误类型   

  

        0xcf       通讯超时         

        0xce       校验位错误

        0xcd       操作码错误

        0xcb       长度错误

        0xca       校验和错误

  

  7、有关 chk_card() 函数的说明:

         对于有厂商代码的卡片,测卡的过程是调用读卡函数,读出厂商代码,并与已

     知的厂商代码作比较来确定卡型。所以当使用新的厂商代码后,测卡将失败。故此

     建议用户自行编写此类卡片的测卡函数。举个例子:

AT88SC1604卡片原来的厂商代码是 313a ,现为 303a 。则新的测卡函数如下:

short new_chk_card(icdev)

{

shor st;

unsigned char str[30];


st=srd_1604(icdev,0,0,2,str);

if(st==0)

{

if(str[0]==0x30 && str[1]==0x31)

return CARD_1604;

}

return chk_card(icdev);

}

如果用户的系统只使用AT88SC1604卡,则return chk_card(icdev)可改为

     return CARD_UNKNOWN(未知卡型); 效率更高。

         有厂商代码的卡片包括:AT88SC102,AT88SC1604,AT88SC1604B,SLE4404,

     SLE4406,SLE4418,SLE4428,SLE4432,SLE4442.

         


展开全部

应用信息

猜你喜欢

    相关文章

    玩家留言 跟帖评论
    查看更多评论
    其它版本