Linux下USB—Key通讯库的研究与实现.docVIP

  • 31
  • 0
  • 约2.97千字
  • 约 6页
  • 2016-11-22 发布于北京
  • 举报
Linux下USB—Key通讯库的研究与实现.doc

Linux下USB—Key通讯库的研究与实现   摘 要 UKey在Linux下被枚举成Mass Storage类的SCSICD-ROM,通过发送SCSI指令进行设备操作。UKey的功能指令遵从ISO7816-4规范在SCSI中以APDU方式与设备通讯。Linux下采用基于libusb的无驱设计,以此与设备进行数据传输。文章基于MSC Bulk-Only协议,研究并实现一套与UKey通讯的封装库。   关键词 MSC Bulk-Only;SCSI;APDU;libusb库;无驱设计   中图分类号:TN918 文献标识码:A 文章编号:1671-7597(2013)20-0077-02   在Linux系统下,并没有实现与UKey通讯协议的封装并提供简易的API接口。在此背景下,本文研究如何在Linux下实现与UKey的通讯,作为Linux系统下的对协议的封装库,并提供简易的接口以供上层应用调用。   1 研究内容   1.1 MSC Bulk-Only   1.1.1 主机/设备包传输顺序   主机先发送CBW包,再传输相关的输出数据;设备在接受到CBW包后,先发送输入数据,再发送CSW包。主机可以在发送CBW包之前,请求输入数据或者CSW包。   1.1.2 命令块封装包   依据协议对CBW的定义(协议5.1),实现CBW的结构体定义如下。   structcommand_block_wrapper   {   uint8_t dCBWSignature[4];   uint32_t dCBWTag;   uint32_t dCBWDataTransferLength;   uint8_t bmCBWFlags;   uint8_t bCBWLUN;   uint8_t bCBWCBLength;   uint8_t CBWCB[16];   };   其中CBWCB字段就是SCSI指令部分。   1.1.3 命令状态封装包   依据协议[0]关于CSW的定义(协议5.2),实现CSW结构体的定义如下:   structcommand_status_wrapper   {   uint8_t dCSWSignature[4];   uint32_t dCSWTag;   uint32_t dCSWDataResidue;   uint8_t bCSWStatus;   };   1.2 SCSI指令   USBBulk-Only协议中规定的CBW中的SCSI指令集字段CBWCB中的内容即为命令块描述符。   本项目将主要用到Write指令向设备发送信息;Read指令接收设备的信息。下面是将用到的指令。   1)自定义Write: 0XE2h。   2)自定义Read: 0XE1h。   1.3 ISO7816-4规范   该规范定义了数据传输的命令格式和响应格式,本文将按照该格式组织报文。   1.4 libusb库   libusb设计了一系列的API,通过这些API应用程序可以操作硬件,libusb更加接近USB规范。使得libusb的使用也比开发内核驱动相对容易的多。关于libusb请参看该项目的网站。   2 结果展示   综合以上内容,本项目实现了一套Linux下通用的与Ukey通讯的封装库。下面将介绍接口提供的数据结构与API,以及调用方法。   2.1 数据结构   //最顶层的包结构   //对应于接口send_receive_data   structdata_send_receive   {   uint8_t buffer[1024];//1K数据缓冲区   uint32_t data_length;//数据长度   uint32_t time_out;//超时时间   };   //用于SCSI封装   //封装与协议有关的内容   structcommand_packet   {   structdata_send_receivedsr;//数据   uint8_tcdb[16];//命令描述块   uint8_t cdb_length;/实际长度   uint32_t ret_tag;//CBW和CSW的对应关系标签   uint8_t expected_endpoint;//传输方向   uint8_tlun;//为0   uint32_tactual;//实际长度   };   2.2 通用API接口   int   inquiry(libusb_device_handle* handle,   structdata_send_receive* dsr

文档评论(0)

1亿VIP精品文档

相关文档