手机otg连接扫瞄头方案

目标:手机通过USB OTG连接扫瞄头,手机端通过演示程序演示控制读写扫瞄头


 1. 硬件要求

1) 手机端具备OTG功能芯片,有micro-AB类connector (母头接口)

2) USB OTG连接线,一端为特殊的micro-A类plug(A类公头),另一端为普通常用的micro-B类plug

micro-A类plug的第5个pin脚(ID-pin)与micro-AB类connector的一个接地pin脚连接,这样手机才具备HCD(host)功能


2. 驱动要求

我的扫描头有两种模式,即串口模式和键盘模式,Linux驱动分别对应USB-CDC-ACM和USB-HID

以CDC-ACM为例,编译Linux内核,静态加载CDC-ACM驱动,烧录内核镜像,

启动系统之后便能热插拔识别扫瞄头设备,可以找到 /dev/ttyACM0


3 系统要求

对Android系统没有特别要求,只要在init.rc中放大对/dev/ttyACM0设备节点的权限

chmod 0766 /dev/ttyACM0

或者在其他系统服务里添加 chmod("/dev/ttyACM0", 0766);

adb push进去之后,必须在系统开机启动之前,预先连接扫瞄头,

这样设备节点才能获得普通用户读写权限,并不支持实时热插拔


4 演示程序

NDK开发本地代码,访问读写设备节点

char command[] = {0x16, 'T', 0x0D}

int fd = open("/dev/ttyACM0", O_RDWR);

write(fd, command, sizeof(command));

read(fd, buf, sizeof(buf));


你可能感兴趣的:(手机otg连接扫瞄头方案)