480楼#
发布于:2005-03-14 16:39
299~~~
|
|
481楼#
发布于:2005-03-14 16:39
.............
|
|
482楼#
发布于:2005-03-15 07:55
回一个
|
|
483楼#
发布于:2005-03-15 08:00
目标:十月不沉~
号召所有――有毅力,有耐心,有学文,有时间,有男人味的, 将礼貌,爱卫生,尊师长,护老幼,献爱心,和一切没病的人们,都来加砖啊!吼~吼~ :mad: :mad: |
|
484楼#
发布于:2005-03-15 08:02
必须处理RBC的必选命令,包括Inquery,Read CAPACTITY、Read10、Write10等,Windows要根据这些返回的数据判断设备的情况,如容量大小等
|
|
485楼#
发布于:2005-03-15 08:02
必须处理RBC的必选命令,包括Inquery,Read CAPACTITY、Read10、Write10等,Windows要根据这些返回的数据判断设备的情况,如容量大小等 :mad:
|
|
486楼#
发布于:2005-03-15 08:03
必须处理RBC的必选命令,包括Inquery,Read CAPACTITY、Read10、Write10等,Windows要根据这些返回的数据判断设备的情况,如容量大小等 是不是我能正确处理Reduced Block Command set,我的设备可以出现在“我的电脑”里面吗?这样就可以和PC传输文件数据吗?我的flash卡要不要有什么格式的处理,比如说要不要有一个FAT表?
|
|
487楼#
发布于:2005-03-15 08:03
但是windows没有对FLASH的底层的一些命令的支持,比如说,WINDOWS来一个删除命令,但是WINDOWS没有搽除FLASH的命令,所以在固件程序中必须在底层相应的处理中把这些处理给加上。
|
|
488楼#
发布于:2005-03-15 08:03
我在98下面开发U-DISK驱动该如何下手,.pdr完成什么?是接下SCSI的命令做相关处理后再发IRP_MJ_SCSI给.sys(USB传输)做进一步处理吗?
|
|
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)的地方 如 |
|
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; } |
|
491楼#
发布于:2005-03-15 08:09
d
|
|
492楼#
发布于:2005-03-15 08:09
dd
|
|
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了。 |
|
494楼#
发布于:2005-03-15 08:14
这就需要一个BLOCK大小的缓冲区啊,可是如果单片机没有这么大缓冲区,那该怎么吧 。我看大家单片机用89c52有作成功U盘的帖子,我想请教一下,如何解决缓冲区的问题啊,还有小弟有这么一个想法,如果在向FLASH写入数据一次就把整个U盘写满或是不写满,但是在下次写入时,以前写入U盘的数据,我都不用了,这样的话,是不是就可以不需要缓冲区和block一样大了吧,因为我在写入新数据时,以前的数据。我不用保留了,所以就可以毫无顾忌的在写之前擦除一整个Block了。
|
|
495楼#
发布于:2005-03-15 08:23
最近想学下USB技术,于是有了做个U盘的念头,看了一些资料,决定用MCU+PDIUSBD12+FLASH来做。不过看完USB的协议后又有点茫然,要实现PC到USB的数据传输和FLASH的数据存储还要了解哪些方面的知识?看到前面的帖提及了好多协议,哪位大侠能大概的讲解一下。谢谢~~~
|
|
496楼#
发布于:2005-03-15 08:24
96
|
|
497楼#
发布于:2005-03-15 08:25
497
|
|
498楼#
发布于:2005-03-15 08:25
498
|
|
499楼#
发布于:2005-03-15 08:25
499
|
|