首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PPS (协议和参数选择)命令-全局平台脚本

PPS (协议和参数选择)命令-全局平台脚本
EN

Stack Overflow用户
提问于 2020-07-23 01:32:12
回答 1查看 1.2K关注 0票数 1

我正试图在智能卡上设置PPS。我使用的环境是基于Global脚本。命令描述:

代码语言:javascript
复制
Boolean pps(Number protocol) 
Boolean pps(Number protocol, Number f, Number d) 

为卡设置物理协议。GP脚本语言通过ISO7816提供对联系人智能卡的支持。其他专有协议可以支持,但依赖于实现GP脚本语言的环境的支持。如果该方法成功执行,则返回一个真正的布尔值。否则,如果参数是有效的,但环境无法对由卡表示的智能卡执行方法,则返回一个假值。如果提供了任何参数协议f或d的无效值(即本规范中未指定的值或环境不支持的值),则使用GPError.INVALID_DATA值生成GPError.INVALID_DATA对象。示例:

代码语言:javascript
复制
// On a card with a contact interface 
this.card.pps(Card.T1, myFrequency, myDivisor); 
// returns false value if the card doesn’t support T=1 protocol

协议

协议参数将包含所需的协议值,该协议值对应于在卡片配置文件中定义为支持的值。联系人卡的有效值(通过ISO7816)为:

Card.T0

Card.T1

Card.T14

如果指定了上述任何值,则还需要f和d参数。对于卡支持的专有协议,可以使用环境支持的唯一协议值,只要它不与为card常量定义的值冲突。以下是表示非标准协议的默认常量:

Card.OTHER

参考ISO7816的国际标准化组织规范。

f -时钟速率转换因子

d -数字波特率调整因子

根据GP平台描述,我对波特率38400的命令如下:

代码语言:javascript
复制
  this.card.reset( Card.RESET_COLD );
  this.card.pps(Card.T1, 372, 4);

我从PPS收到的答复是假的。冷ATR为: 3B680000990200D103042201

问题如下:

  • GP PPS命令参数我不确定波特率是372,4还是10,13,对于波特率38400?
  • ,给定的ATR看起来支持T0协议,我的命令可能需要: this.card.pps(Card.T0,372,4);?
  • ,或者我可能需要做热复位,如果温暖的ATR支持T1协议,那么发送this.card.pps(Card.T1,372,4);?

ATR:

characters

  • TB1:
  • TS: 3B
  • T0: 68 -> TB1,TC1,8 990200D103042201

00 -> Vpp不使用;EEPROM的编程电压是在芯片

  • TC1: 00 -> not time

  • Historical Bytes (T1-T8):990200D103042201

中生成的。

EN

回答 1

Stack Overflow用户

发布于 2020-07-23 07:35:27

由于缺乏Javacard经验,部分回答如下:

如果我理解正确,你想设置你的卡,所以它接受PPS.(读取器必须触发它,所以卡片只能指示功能。)

  • 您的ATR必须提供一个TA1字节来指示它对读取器的PPS支持。对于3.57Mhz的外部时钟,如果需要最大38400位/s,则必须为13。
  • 注意到,PPS只是建立要应用于外部时钟的除法因子。如果读取器提供的时钟与3.57 MHz不同,则通信速率将成正比。(根据ISO 7816-3,对于其他时钟范围,必须改变TA1指示Fi的高比特数)
  • PPS只有在重置后才有可能。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63045519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档