qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
480楼#
发布于:2005-03-14 16:39
299~~~
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
481楼#
发布于:2005-03-14 16:39
.............
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
482楼#
发布于:2005-03-15 07:55
回一个
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
483楼#
发布于:2005-03-15 08:00
目标:十月不沉~
号召所有――有毅力,有耐心,有学文,有时间,有男人味的,
将礼貌,爱卫生,尊师长,护老幼,献爱心,和一切没病的人们,都来加砖啊!吼~吼~ :mad: :mad:
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
484楼#
发布于:2005-03-15 08:02
必须处理RBC的必选命令,包括Inquery,Read CAPACTITY、Read10、Write10等,Windows要根据这些返回的数据判断设备的情况,如容量大小等
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
485楼#
发布于:2005-03-15 08:02
必须处理RBC的必选命令,包括Inquery,Read CAPACTITY、Read10、Write10等,Windows要根据这些返回的数据判断设备的情况,如容量大小等 :mad:
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
486楼#
发布于:2005-03-15 08:03
必须处理RBC的必选命令,包括Inquery,Read CAPACTITY、Read10、Write10等,Windows要根据这些返回的数据判断设备的情况,如容量大小等 是不是我能正确处理Reduced Block Command set,我的设备可以出现在“我的电脑”里面吗?这样就可以和PC传输文件数据吗?我的flash卡要不要有什么格式的处理,比如说要不要有一个FAT表?
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
487楼#
发布于:2005-03-15 08:03
但是windows没有对FLASH的底层的一些命令的支持,比如说,WINDOWS来一个删除命令,但是WINDOWS没有搽除FLASH的命令,所以在固件程序中必须在底层相应的处理中把这些处理给加上。
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
488楼#
发布于:2005-03-15 08:03
我在98下面开发U-DISK驱动该如何下手,.pdr完成什么?是接下SCSI的命令做相关处理后再发IRP_MJ_SCSI给.sys(USB传输)做进一步处理吗?

dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
489楼#
发布于:2005-03-15 08:05
void outportb(unsigned int nPort, unsigned char nVal)
{
volatile unsigned char *exAddress;
exAddress =(volatile unsigned char *) nPort;
*exAddress = nVal;
}

unsigned char inportb(unsigned int nPort)
{
unsigned char nVal;
volatile unsigned char *exAddress;

exAddress =(volatile unsigned char *) nPort;
nVal = *exAddress;

return nVal;
}


在hal.h有以下代码
#ifndef __HAL_H__
#define __HAL_H__

#define IC_D12_COMMAND 0x7F00
#define IC_D12_DATA 0x7E00

void outportb(unsigned int nPort, unsigned char nVal);
unsigned char inportb(unsigned int nPort);

void Delay(unsigned char nFactor);
void DelayMs(unsigned char nFactor);

#endif /*__HAL_H__*/


在这个project中的其他部分有调用这两个函数(outportb,inportb)的地方


dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
490楼#
发布于:2005-03-15 08:05
void outportb(unsigned int nPort, unsigned char nVal)
{
volatile unsigned char *exAddress;
exAddress =(volatile unsigned char *) nPort;
*exAddress = nVal;
}

unsigned char inportb(unsigned int nPort)
{
unsigned char nVal;
volatile unsigned char *exAddress;

exAddress =(volatile unsigned char *) nPort;
nVal = *exAddress;

return nVal;
}


在hal.h有以下代码
#ifndef __HAL_H__
#define __HAL_H__

#define IC_D12_COMMAND 0x7F00
#define IC_D12_DATA 0x7E00
void outportb(unsigned int nPort, unsigned char nVal)
{
volatile unsigned char *exAddress;
exAddress =(volatile unsigned char *) nPort;
*exAddress = nVal;
}

unsigned char inportb(unsigned int nPort)
{
unsigned char nVal;
volatile unsigned char *exAddress;

exAddress =(volatile unsigned char *) nPort;
nVal = *exAddress;

return nVal;
}


在hal.h有以下代码
#ifndef __HAL_H__
#define __HAL_H__

#define IC_D12_COMMAND 0x7F00
#define IC_D12_DATA 0x7E00

void outportb(unsigned int nPort, unsigned char nVal);
unsigned char inportb(unsigned int nPort);

void Delay(unsigned char nFactor);
void DelayMs(unsigned char nFactor);

#endif /*__HAL_H__*/


在这个project中的其他部分有调用这两个函数(outportb,inportb)的地方


void USBD12_SetEndpointEnable(unsigned char bEnable)
{
if(bAvrUsbFlags.bits.bIN_ISR == 0)
DISABLE_INTERRUPTS;

outportb(IC_D12_COMMAND, 0xD8);
if(bEnable)
outportb(IC_D12_DATA, 1);
else
outportb(IC_D12_DATA, 0);

if(bAvrUsbFlags.bits.bIN_ISR == 0)
ENABLE_INTERRUPTS;
}
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
491楼#
发布于:2005-03-15 08:09
d
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
492楼#
发布于:2005-03-15 08:09
dd
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
493楼#
发布于:2005-03-15 08:09
dd当从PC向U盘,写数据时,数据先写入PDIUSBD12的缓冲区,如果满了以后。对单片机产生一个外部中断。告诉单片机,可以从PDIUSBD12中去读数据了,当数据从PDIUSBD12读到单片机后,就要向FLASH去写了,但是Flash 读写的特点是,
写之前必须先擦除,而一擦又必须擦一个Block,因此在擦除某Block 之前必须保存同一个Block 中有关扇区的数据。
这就需要一个BLOCK大小的缓冲区啊,可是如果单片机没有这么大缓冲区,那该怎么吧 。我看大家单片机用89c52有作成功U盘的帖子,我想请教一下,如何解决缓冲区的问题啊,还有小弟有这么一个想法,如果在向FLASH写入数据一次就把整个U盘写满或是不写满,但是在下次写入时,以前写入U盘的数据,我都不用了,这样的话,是不是就可以不需要缓冲区和block一样大了吧,因为我在写入新数据时,以前的数据。我不用保留了,所以就可以毫无顾忌的在写之前擦除一整个Block了。
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
494楼#
发布于:2005-03-15 08:14
这就需要一个BLOCK大小的缓冲区啊,可是如果单片机没有这么大缓冲区,那该怎么吧 。我看大家单片机用89c52有作成功U盘的帖子,我想请教一下,如何解决缓冲区的问题啊,还有小弟有这么一个想法,如果在向FLASH写入数据一次就把整个U盘写满或是不写满,但是在下次写入时,以前写入U盘的数据,我都不用了,这样的话,是不是就可以不需要缓冲区和block一样大了吧,因为我在写入新数据时,以前的数据。我不用保留了,所以就可以毫无顾忌的在写之前擦除一整个Block了。
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
495楼#
发布于:2005-03-15 08:23
最近想学下USB技术,于是有了做个U盘的念头,看了一些资料,决定用MCU+PDIUSBD12+FLASH来做。不过看完USB的协议后又有点茫然,要实现PC到USB的数据传输和FLASH的数据存储还要了解哪些方面的知识?看到前面的帖提及了好多协议,哪位大侠能大概的讲解一下。谢谢~~~
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
496楼#
发布于:2005-03-15 08:24
96
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
497楼#
发布于:2005-03-15 08:25
497
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
498楼#
发布于:2005-03-15 08:25
498
dxyldl
驱动老牛
驱动老牛
  • 注册日期2004-11-17
  • 最后登录2008-07-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
499楼#
发布于:2005-03-15 08:25
499
游客

返回顶部