这里只介绍一下ccid Linux 开发过程中遇到的一些问题,仅供参考。

在网上搜了一些相关东西,按照下篇说的装了一下,libusb、ccid、pcsc-lite

Linux 平台下Libusb & ccid & pcsc-lite & OpenSC 通用安装步骤

遇到问题:

先开启一个终端执行 : /usr/local/sbin/pcscd -adf  , 再开启一个终端:在pcps-lite/src/ 目录, 执行 ./testpcsc , 打印日志如下:

MUSCLE PC/SC Lite unitary test ProgramTHIS PROGRAM IS NOT DESIGNED AS A TESTING TOOL FOR END USERS!
Do NOT use it unless you really know what you do.Testing SCardEstablishContext  : Command successful.
Testing SCardIsValidContext : Command successful.
Testing SCardIsValidContext : Invalid handle. (don't panic)
Testing SCardListReaderGroups   : Command successful.
Group 01: SCard$DefaultReaders
Testing SCardFreeMemory     : Command successful.
Testing SCardListReaders    : Cannot find a smart card reader. (don't panic)
Testing SCardGetStatusChange
Please insert a working reader  :

尝试解决方法一:

打开ccid-1.4.22/readers/supported_readers.txt 文件,添加 ccid设备的pid,vid

注:这个supported_readers.txt文件是用来生成/usr/local/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Info.plist 文件的。

1)用这种方法测试了一个其他公司的key,没有问题。

2)确定这把key也没有问题(在Windows平台能正常传输)

解决方法二:

在windows平台,用bus hound 抓包,对照 ccid协议分析抓到的包,用libusb 直接发命令,OK, 此方法解决我的问题了。

Device  Phase  Data                                                                                                    Description                       Cmd.Phase.Ofs(rep)
------  -----  ------------------------------------------------------------------------------------------------------  --------------------------------  ------------------25.2  OUT    <span style="color:#33cc00;">63 00 00 00  00 00 0c 00  00 00</span>                                                                         c.........                               1.1.0        25.2  IN     81 00 00 00  00 00 0c 01  00 00                                                                         ..........                               2.1.0        25.2  OUT    <span style="color:#33cc00;">62 00 00 00  00 00 0d 02  00 00</span>                                                                        b.........                               3.1.0        25.2  IN     80 16 00 00  00 00 0d 00  00 00 3b ed  00 00 81 31  fe 45 03 41  01 88 88 01  04 08 18 10  25 14 00 91  ..........;....1.E.A........%...         4.1.0        25.2  OUT    <span style="color:#33cc00;">61 07 00 00  00 00 0e 01  00 00 11 10  00 45 00 fe  00</span>                                                  a............E...                        5.1.0        25.2  IN     82 07 00 00  00 00 0e 00  01 00 11 10  00 45 00 fe  00                                                  .............E...                        6.1.0        25.2  OUT    <span style="color:#cc0000;">6f 05 00 00  00 00 0f 00  00 00 00 84  00 00 08</span>                                                         o..............                          7.1.0        25.2  IN     80 0a 00 00  00 00 0f 00  00 00 81 17  17 9f 5e 0e  85 aa 90 00                                         ..............^.....                     8.1.0        

这个包中其实绿色指令可能是发实际指令的准备工作吧,只有红色标注部分是我发的命令。

63、62、62、6f都啥含义,手册中都有详细的介绍,有兴趣的也可以对照一下ccid 手册分析一下上边的包。

注:

本人第一次看到手册时(英文版),也是一头雾水,抓了一个包以后,再对照手册看,简单多了。

手册在csdn可以找到下载

ccid 设备通讯(Linux)相关推荐

  1. CCID 设备通讯 (Windows 平台)

    ccid 协议下载 1. Windows提供了一套完整的接口,供ccid设备开发调用: 头文件:Winscard.h lib库:   Winscard.lib dll库: Winscard.dll 2 ...

  2. 嵌入式Linux(5):驱动开发网络调试驱动设备的Linux系统移植

    驱动开发之网络调试驱动设备的Linux系统移植 1.Uboot移植到开发板 uboot移植 2.开发板网络通讯 nfs命令 tftp命令 3.Linux移植到开发板 4.BusyBox 构建根文件系统 ...

  3. linux 触摸屏在dev的那个目录下,各硬件设备在Linux中的文件名

    原标题:各硬件设备在Linux中的文件名 选择好你的硬件设备以后,接下来得要了解一下各硬件在Linux当中扮演得角色.再次强调一下:"在Linux系统中,每个设备都被当成一个文件来对峙&qu ...

  4. OpenWrt项目:针对嵌入式设备的Linux操作系统

    欢迎来到OpenWrt项目 OpenWrt项目是针对嵌入式设备的Linux操作系统.OpenWrt不会尝试创建单个静态固件,而是提供具有包管理功能的完全可写文件系统.这使您从供应商提供的应用程序选择和 ...

  5. linux下各种文件设备,各硬件设备在Linux中的文件名

    选择好你所需要的硬件配置后,接下来得要了解一下各硬件在Linux当中所扮演的角色.这里鸟哥再次强调一下:在Linux系统中,每个设备都被当成一个文件来对待.举例来说,IDE接口的硬盘的文件名即为/de ...

  6. linux下看pcie的设备id,linux lspci查看pci总线设备信息

    linux lspci查看pci总线设备信息 linux中lspci是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具,比如查看网卡.存储等信息. 参数 -v 使得 lspci 以 ...

  7. Linux操作系统的设备独立性,Linux的设备管理

    一 设备管理 在计算机系统中,除了CPU和内存之外,其余的大部分硬件设备称为外部设备.外部设备包括常用的I/O(输入/输出)设备.外存设备以及终端设备等. 1.I/O设备的类型 ●按设备的所属关系可以 ...

  8. 使用P/Invoke来开发用于与串行设备通讯的.NET基类

    这篇文章可以帮助你熟悉于用C#开发与RS232的通讯. 难易程度 1.2.3   本文相关代码下载:NetSerialComm.exe (89KB) http://download.microsoft ...

  9. QT使用串口与RS485设备通讯

    QT使用串口与RS485设备通讯 背景 开始 小结 背景 近期才开始接触QT编程,以前都是使用MFC编写上位机软件,经常需要通过串口与RS485设备通讯.之所以开始学习QT,是因为看到网上有个人说自从 ...

最新文章

  1. MapReduce: Simplified Data Processing on Large ...
  2. 0x0000007F蓝屏问题摸索解决-没有完成
  3. asp.net core源码飘香:从Hosting开始
  4. python mysql dbutils_python操作mysql数据库增删改查的dbutils实例
  5. RabbitMQ consumer的一些坑
  6. SQL case when then end根据某列数据内容在新列显示自定义内容
  7. html页面酷炫,5个酷炫、实用的HTML标签和属性介绍
  8. 计算机专业基础 -- Java语言相关基础知识
  9. 拒绝充钱!教你一招避开网盘限速
  10. java遍历map集合_Java中遍历Map集合方式
  11. Android之仿小米便签程序
  12. cocos creator制作微信小游戏
  13. 我们整理了20个Python项目,送给正在求职的你
  14. 高斯-勒让德求积公式及Matlab实现
  15. javascript原生脚本代码 飘浮广告
  16. 大胖子走迷宫(蓝桥杯真题)
  17. 修怪曹操杀了华佗_拔剑-浆糊的传说_新浪博客
  18. 钉钉自定义机器人python_钉钉自定义机器人demo
  19. 作业:从键盘输入10个浮点数,求其和及其平均值
  20. ETL工具简单操作文档

热门文章

  1. 一切业务数据化,一切数据业务化
  2. java三色球问题_三色球问题,Java,算法
  3. 2017年大数据从业者又要涨工资了!
  4. HDMI热拔插电路举例说明
  5. Docker 镜像仓库 Harbor 部署 及 跨数据复制
  6. 错误:‘Series‘ objects are mutable, thus they cannot be hashed
  7. u盘中毒文件为html文档,u盘中毒文件被隐藏了?教你如何快速恢复隐藏文件
  8. 【Godot 插件】获取编辑器上所有的节点
  9. 【深度学习】目标检测算法 YOLO 最耐心细致的讲解
  10. 如何打破双亲委派机制