chenzysir 发表于 2016-06-13 21:59

要疯啦!有谁做过cypress公司的CY7c68013在linux上的USB驱动,求大神指点!

本帖最后由 chenzysir 于 2016-06-13 22:01 编辑

手里有一个声阵列传感器(就一黑盒子),数据是通过USB先传出来的。老师要求针对它写出linux下的USB驱动(在ARM上面),把数据读出来。最近刚学ARM-linux,手头一块TQ210开发板。一开始看着这个黑盒子,整个人都懵逼了好吗:这是什么鬼?老师你想要我干嘛??我该怎么办?

师兄让我先把黑盒子拆开,看到了里面的电路板,上面用到了CY7c68013芯片,与USB线相连,一查是一个USB芯片,应该就是它没错了。我把它的USB先接到PC上,使用lsusb命令,虚拟机(红帽企业版6)能读出设备信息,如下图:


说明它能被USB总线驱动所识别,而且能查到设备的ID、接口描述符、端点描述符。有四个端点,都是bulk类型,两个IN两个OUT。

然后设置写个驱动:好吧,其实就是把usb-skeleton.c的两个id改成设备id。把驱动模块移植到板子上,insmod之后,把传感器接到板子上,发现能跟这个驱动程序匹配,/dev目录下也生成了skel0设备文件。如下图:


然后我就不知道怎么办了。我应该怎么去把传感器里的数据读出来?刚才说到该设备有四个端点,我该如何找到特定端点并且读出里面的数据?

网上找了好多关于CY7c68013驱动的资料,说是要先调通固件。我手头的是一个现成的传感器,只不过里面用到了CY7c68013这块芯片,按理说里面的固件应该已经调好了吧,我知道参考里面的固件来写自己的驱动OK吧?这样的话。。。该怎么查询里面的固件?

刚入门linux,现在毫无头绪,哪位大神能指定一下?谢谢!!

qianguozheng 发表于 2016-06-13 23:02

熟悉usb通信协议就好了。
根据idVendor idProduct, 修改usb-serial.c里面的一个结构体,这样就好了,看看/dev/下面有没有生成ttyUSB0或者ttyUSB1 之类的,如果有,直接使用minicom打开设备就行了,有数据就会输出的。

基本就是这个套路。

Vinge 发表于 2016-07-25 15:45

楼上的说的有道理!我猜这种东西多数模拟成usb串口来用的。你可以把这个盒子驱动装到WINDOW上,看看它是否注册成串口这类的东西。如果是串口那就简单不过,直接用串口软件抓包。
否则就用bushund种类的USB抓包软件直接抓USB包,然后在LINUX下重新实现主机的功能吧。

scounixadmin 发表于 2016-09-11 14:34

最好的办法,是向厂家索要官方文档
页: [1]
查看完整版本: 要疯啦!有谁做过cypress公司的CY7c68013在linux上的USB驱动,求大神指点!