interrupt
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2006-02-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4370回复:14

51+SL811+移动硬盘的开发(二)BY interrupt

楼主#
更多 发布于:2004-04-19 23:24
51+SL811+移动硬盘的开发(二)

让单片机找到SL811HS:

做硬件时,建议给片子连48M的有源晶振,笔者使用无源晶振的时候,会产生不稳定的现象,这说明811片子里面的震荡电路不够好。画图的时

候,D+/D-两条线尽量平行,到片子的距离不宜太长。另外,因为某些移动硬盘启动电流比较大,板子的电源应该是1A以上的5V电源,给USB口

供电的VCC可以不串电阻。由于我们对移动硬盘读写的时候对BUFFER要求比较大,需要给单片机扩充XRAM,笔者用的是一片16K的CY62256。

做好板子之后,首先要进行电气检测,然后就插上仿真器,写一个最简单的程序,测试对CY62256读写是否正常,如果没问题,就说明单片机总

线访问OK了。然后测试对SL811HS的读写,写一个数据到SL811HS的BUFFER区,再读出来看是否正确,如果没问题,就可以进行下一步了。

让SL811HS找到USB设备:

首先要设置相应的寄存器,使SL811HS产生帧同步信号,告诉SL811HS从设备是高速设备,控制它在什么情况下产生中断,设完之后对芯片进行软

复位。具体过程不再详述。

在程序的主循环中读取SL811HS的状态寄存器(0DH),查询其(Device Detect/Resume)位,若改位为1,说明有USB设备插/拔动作,到底是设备

插入还是拔出?这就要由系统自己记住了。

通过SL811HS向从机发送数据:

将要发送的的数据写到SL811HS的一块连续BUFFER区。
向SL811HS的(0x01)寄存器写入要传送数据在BUFFER中的起始地址信息。
向SL811HS的(0x02)寄存器写入要传送数据的长度信息。
向SL811HS的(0x03)寄存器写入PID、设备的 Endpoint信息。
向SL811HS的(0x04)寄存器写入设备的Address信息。
清空SL811HS的中断状态寄存器。
向SL811HS的(0x04)寄存器设定开始传送的命令(注意data0/data1之间的轮转)。
读中断状态寄存器,若受到ACK(确认信息),表示此帧传送完毕。

通过SL811HS向从机发送数据的Ping-Pong方式的实现:

若有大量的数据(如以512字节为最小单位的扇区写操作)需要传送,就要考虑到Ping-pong 传送。其具体过程为:1.向BUFFER中同时写入两个

帧,2.发出第一个帧,3.等待确认信息,4.受到确认信息后发出第二个帧,在第一个帧的位置上填充第三个帧,同时开始等待确认信息。如此循

环。Ping-Pong方式利用等待的时隙填充BUFFER.可以极大的提高系统的性能,再不改变其他条件的情况下,提高速度。可以把它上升为一种方

法论。


通过SL811HS向从机接收数据:
向SL811HS的(0x01)寄存器写入要传送数据在BUFFER中的起始地址信息。
向SL811HS的(0x02)寄存器写入要传送数据的长度信息。
向SL811HS的(0x03)寄存器写入PID、设备的 Endpoint信息。
向SL811HS的(0x04)寄存器写入设备的Address信息。
向SL811HS的(0x04)寄存器设定开始传送的命令(注意data0/data1之间的轮转)。
读中断状态寄存器,若受到ACK(确认信息),表示此帧传送完毕。
从BUFFER相应地址中读取刚刚收到的数据。

通过SL811HS向从机发送数据的Ping-Pong方式的实现:
1.发出读第一帧数据的命令,2.收到确认信息后发出读第二个帧的命令,然后读第一帧的数据,进入等待确认信息状态,3,收到确认信息后再进

入2.

让SL811HS和USB设备握手:

a:设备端点 一个端点是一个可唯一识别的USB设备的Portion,它是主机与设备间通信流的一个结束点。一系列相互独立的端点在一起构成了

USB逻辑设备。每个逻辑设备有一个唯一的地址,这个地址是在设备连上主机时,由主机分配的,而设备中的每个端点在设备内部有唯一的端点

号。这个端点号是在设备设计时被给定的。每个端点都是一个简单的连接点,或者支持数据流进设备,或者支持其流出设备,两者不可得兼。
 
b:0端点: 所有USB设备都需要实现一个缺省的控制方法。这种方法将端点0作为输入端点,同时也将端点0作为输出端点。USB系统用这个缺省方

法初始化及一般地使用逻辑设备(即设置此设备)。缺省控制通道支持了对控制的传送,一旦设备接上,并加电,且又收到一个总线复位命令,

端点0就是可访问的了。

USB设备枚举的过程,可以参照USB1.1协议中的相关章节。同时借助BUS HOUND,BUS HOUND 在这个时候非常有效,可以把一个U盘插入到PC机,用BUS HOUND 抓下通信的详细过程。最开始的阶段的数据纪录的就是比较标准的USB设备枚举过程。

(TO BE COUNTINUED)

最新喜欢:

ww7002ww7002
lxlly
驱动牛犊
驱动牛犊
  • 注册日期2003-04-25
  • 最后登录2004-11-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-21 11:24
好样的,顶一个!
boycn
驱动牛犊
驱动牛犊
  • 注册日期2003-11-26
  • 最后登录2010-08-21
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-21 14:00
支持!!
sujmsujm
驱动牛犊
驱动牛犊
  • 注册日期2002-12-08
  • 最后登录2004-07-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-04-26 11:30
 to interrupt

您好!
 
我公司最近需要有一外挂附属产品---优盘替代软驱(720K),用优盘替代原来的软驱(720K)or ( 1.44M)。要求该产品用单片机开发,并能与其他单片机产品通讯。如您公司能开发此产品,请速与我公司联系。
Tel:0512-55662703
苏军民
guli_1982
驱动牛犊
驱动牛犊
  • 注册日期2004-04-26
  • 最后登录2004-06-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-04-26 11:46
支持!
还有哪位有sl811hs的固件编程资料呀?拜托提供一下
不胜感激!!!
interrupt
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2006-02-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-04-27 10:05
To sujmsujm:
    你给我发邮件就行了,在网络上公开电话姓名不好。把帖子删了吧。
interrupt
驱动牛犊
驱动牛犊
  • 注册日期2004-04-12
  • 最后登录2006-02-19
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-04-27 10:06
我的email:xuxili1@msn.com
hoosyman
驱动小牛
驱动小牛
  • 注册日期2002-10-31
  • 最后登录2006-07-14
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-04-27 11:17
好东东!
liumda
驱动小牛
驱动小牛
  • 注册日期2002-01-23
  • 最后登录2012-07-16
  • 粉丝0
  • 关注0
  • 积分76分
  • 威望48点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-04-27 12:14
期待下文!!!
You Happy,So I Happy!
SUNSHANGXIN
驱动老牛
驱动老牛
  • 注册日期2002-11-19
  • 最后登录2009-08-01
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望19点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-04-27 12:43
我真佩服你啊
[b]苍白的,不是文字,是人的思想 虚伪的,不是网络,是人的灵魂 伤心的,不是爱情,是人的心灵 难忘的,不是容貌,是人的思诀 黎明的曙光早已不见了夕日的辉煌 东方的日出早就失去了往日的灿烂 而我也尽脱了昨日的笑容去迎接明天的枯涩 [/b]
fuzziy
驱动牛犊
驱动牛犊
  • 注册日期2003-05-27
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-07-02 13:00
thanks
use_id
驱动中牛
驱动中牛
  • 注册日期2002-03-11
  • 最后登录2006-01-07
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-07-04 03:19
ww7002
驱动牛犊
驱动牛犊
  • 注册日期2004-01-10
  • 最后登录2010-07-13
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望20点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-07-04 20:18
hao
kenneth213
驱动牛犊
驱动牛犊
  • 注册日期2004-05-24
  • 最后登录2004-07-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-07-23 11:22
好贴子,哪位牛人能提供811的固件编程资料,谢谢
aquablue@vip.sina.com
haoyou614
驱动牛犊
驱动牛犊
  • 注册日期2005-05-12
  • 最后登录2005-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-05-13 17:47
你说的CYPRESS的SL811源代码哪里可以下载!能给我发一份吗?
非常感谢!
游客

返回顶部