文号
t42568
阅读
29611
回复
11
收藏
8
51调用USB2.0实现高速传输
2012/04/02
IP:广东
转自 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  有修改

USB2.0带宽有480M,而且传输稳定,误码率低。
这是一个最简单的驱动程序,配合CY7C68013芯片,可以大大简化USB操作
目前已经实现了在linux下,调用libusb,进行异步fifo方式传输,大约有12MB/s的带宽

接线:
68013连接USB、晶振,EEPROM不需要接,但是I2C两条线必须上拉。
SLWR(26脚)=时钟线,PB0-7 PD0-7(2-10,12-20脚)=数据线,接到单片机
FIFOADR0、FIFOADR1、SLOE(34,35,37)接3.3V,SLCS悬空

数据发送程序(51):
send_16_bits:
CLR P3.0 ;拉低SLWR
MOV R1,P1 ;送数据到PB0-7
MOV R2,P2 ;送数据到PD0-7
SETB P3.0  ;拉高SLWR
;此时已经发送了2个字节到68013,发送数据超过512字节之后,电脑就能读取到数据了
;68013内部有1024字节的缓存
;SLWR频率不要超过6MHz
RETI

PC端程序:


---windows下也可以调用libusb,记得去掉#define LINUX 和deatch_np函数
---同步模式能用到2.0的全部带宽,以后做了再传
+40
科创币
科学人
2012/04/02
牛!
+200
科创币
ry7740kptv
2012/04/02
很好的方案!
+200
科创币
ehco
2012/04/02
比D12神马的骚多了!赞一个!
+200
科创币
我说要有光
2012/04/02
2.0
+50
科创币
caoyuan9642
2012/04/03
看起来很高级~
+50
科创币
jrcsh
2012/04/03
高质量发帖
+50
科创币
拔刀斋
2012/04/05
USB编程从此易用
+20
科创币
celeron533
2012/04/22
高质量发帖
11
2
warmonkey作者
14年9个月前IP:未同步
382811
1楼
【9127】是 i/n/t/e/r/f/a/c/e
引用
评论
14年9个月前IP:未同步
382856
2楼
比D12神马的骚多了!赞一个!
引用
评论
14年9个月前IP:未同步
383695
3楼
刚好去年玩过一段时间这个。
这个尺寸可以刚好装在塑料盒子里。
attachment icon NANDReader V001 sch.pdf 88.45KB PDF 235次下载 预览

attachment icon NANDReader V001.pdf 1.01MB PDF 270次下载 预览
未命名.jpg
+1
科创币
飞线大师
2012/04/06
刚好可以装到塑料盒里……多大的塑料盒
引用
评论
14年9个月前IP:未同步
383706
4楼
回 2楼(ehco) 的帖子
当年D12的驱动程序几乎要占满一片51单片机的资源才能塞下。
引用
评论
14年8个月前IP:未同步
389209
5楼
版主做了件大善事。
[s:319]
引用
评论
14年7个月前IP:未同步
405981
6楼
正在利用CY7C68013做一个u盘之间数据传输的,刚好用到,不知如果利用ARM用于两个U盘传数据的话,速度能有多少?以前利用AVR和CH375实现U盘之间数据传输只能达到数K每秒。
引用
评论
warmonkey作者
14年7个月前IP:未同步
405986
7楼
最好用ARM本身的USB接口加上系统来实现
引用
评论
14年7个月前IP:未同步
407117
8楼
回 7楼(warmonkey) 的帖子
最近在学习USB编程。手头上有个USB设备,网上查到了对应的GUID编号,请教怎么编写PC侧的软件?我只需要读取USB上传的数据。
若版主有空指导,不胜感激!
引用
评论
14年7个月前IP:未同步
407123
9楼
Re:回 7楼(warmonkey) 的帖子
引用第8楼okingkoom于2012-06-14 04:52发表的 回 7楼(warmonkey) 的帖子 :
最近在学习USB编程。手头上有个USB设备,网上查到了对应的GUID编号,请教怎么编写PC侧的软件?我只需要读取USB上传的数据。
若版主有空指导,不胜感激!


usb编程比较麻烦些。如果只是抓数据,可以用usb串口线,串口编程简单多了。
引用
评论
warmonkey作者
14年7个月前IP:未同步
407143
10楼
回 8楼(okingkoom) 的帖子
libusb直接抓数据块就可以了
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的