Design of a flash memory drive
CASTalk.com Forum Index CASTalk.com
Discussion of DSP, FPGA, storage and embedded system.
 
 FAQFAQ   MemberlistMemberlist     RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 
 
Google
 
Web castalk.com
Design of a flash memory drive

 
Post new topic   Reply to topic    CASTalk.com Forum Index -> Computer Architecture
Author Message
Guest






Posted: Mon Dec 20, 2004 7:55 am    Post subject: Design of a flash memory drive Reply with quote

Hi all:

I am an Electrical Engineering student working on the design of a USB
flash drive as part of my Digital Electronics design class. Among the
specifications for the project is that the drive has to work with
Windows XP default drivers (needs to be "Plug and Play"). For doing
this I will need to understand the inner workings of windows default
driver. I am looking at the Microsoft website but still haven't found
anything...

I will appreciate if anyone provides some useful information!
Best Regards,
-Omar
Back to top
Tom
Guest





Posted: Mon Dec 20, 2004 7:33 pm    Post subject: Re: Design of a flash memory drive Reply with quote

<Bungar17@hotmail.com> wrote in message news:1103523560.184636.57780@c13g2000cwb.googlegroups.com...
Quote:
Hi all:

I am an Electrical Engineering student working on the design of a USB
flash drive as part of my Digital Electronics design class. Among the
specifications for the project is that the drive has to work with
Windows XP default drivers (needs to be "Plug and Play"). For doing
this I will need to understand the inner workings of windows default
driver. I am looking at the Microsoft website but still haven't found
anything...

I will appreciate if anyone provides some useful information!
Best Regards,
-Omar

Your flash device needs to implement the Mass Storage class specification

http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf

The default driver is called USBSTOR.SYS

http://www.microsoft.com/whdc/device/storage/usbfaq.mspx

According to this

http://www.centrillium-it.com/Projects/MassStorage.htm

...it looks like the Bulk Only variant, bInterfaceSubClass = 06h (SCSI Transparent command
set) is the way to go. You should probably get hold of a USB flash disk, and some software
which can display the USB protocol to see which SCSI commands are used when the device
is read/written or formatted.

You can get chips that will do this, and also do the logical->physical translation you need
for flash memory -
http://www.metatech.com.hk/datasheet/sonix/pdf/SN11085spec_for%20public.pdf

I've crossposted to comp.os.ms-windows.programmer.nt.kernel-mode where you've got more
chance of reaching someone who's actually done this.

Tom.
Back to top
Guest






Posted: Tue Dec 21, 2004 10:16 pm    Post subject: Re: Design of a flash memory drive Reply with quote

Wow! Thanks Tom... You gave me a great jumpt start!

I will keep asking more questions as my readings opens my curiosity...
Cheers,
-Omar
Back to top
alexi
Guest





Posted: Thu Dec 23, 2004 1:16 pm    Post subject: Re: Design of a flash memory drive Reply with quote

"Tom" <tom.thornhill-REMOVETHIS@freenet.de> wrote in message
news:41c6e294$0$1364$9b622d9e@news.freenet.de...
Quote:

Bungar17@hotmail.com> wrote in message
news:1103523560.184636.57780@c13g2000cwb.googlegroups.com...
Hi all:

I am an Electrical Engineering student working on the design of a USB
flash drive as part of my Digital Electronics design class. Among the
specifications for the project is that the drive has to work with
Windows XP default drivers (needs to be "Plug and Play"). For doing
this I will need to understand the inner workings of windows default
driver. I am looking at the Microsoft website but still haven't found
anything...

I will appreciate if anyone provides some useful information!
Best Regards,
-Omar

Your flash device needs to implement the Mass Storage class specification

http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf

The default driver is called USBSTOR.SYS

http://www.microsoft.com/whdc/device/storage/usbfaq.mspx

According to this

http://www.centrillium-it.com/Projects/MassStorage.htm

..it looks like the Bulk Only variant, bInterfaceSubClass = 06h (SCSI
Transparent command
set) is the way to go. You should probably get hold of a USB flash disk,
and some software
which can display the USB protocol to see which SCSI commands are used
when the device
is read/written or formatted.

You can get chips that will do this, and also do the logical->physical
translation you need
for flash memory -

http://www.metatech.com.hk/datasheet/sonix/pdf/SN11085spec_for%20public.pdf

I've crossposted to comp.os.ms-windows.programmer.nt.kernel-mode where
you've got more
chance of reaching someone who's actually done this.


I am surprised that a project of this scale is assigned as a class task.
Typically this project would take one year of a team of 4-5 seasoned
designers. Assuming they can't design any PHY, so they need to start with
a given PHY chip with UTMI. UTMI is just a byte-streamed interface, so you
need
to implement a USB command decoder/encoder with CRC, all basic control
endpoints,
descriptors, provide enumeration, suspend-resume-reset, etc. Then you need
to
implement the application interface, with some SRAM buffering to handle
block
operations of flash, etc. To make something to simulate, you would need a
USB
test environment, another man-year. I don't think that EE students are up to
this level, sorry.

As a practical option, they need to get an IP, say
http://www.synopsys.com/products/designware/docs/ds/c/dwcore_usb2_device.htm
l
but it is not free. Still, there will be a lot of work.

Alternatively, one may try one of OpenCore projects,
http://opencores.nnytech.net/projects.cgi/web/usb1_funct/
http://opencores.nnytech.net/projects.cgi/web/usb/
to get the general idea.


- aap
Back to top
Marc Reinig
Guest





Posted: Thu Dec 23, 2004 9:48 pm    Post subject: Re: Design of a flash memory drive Reply with quote

First, you don't need to know anything about the internal workings of the
Windows default drivers. You only need to follow the spec. mentioned below.

Second, you don't need a UTMI interface, use a standard full speed USB 1.1
device, available from multiple manufacturers.

If you do use a UTMI interface, CRC is provided by the UTMI chip.

This is a reasonable project for 1 to 2 University students and has been
done many times. In fact, it is one of the more popular choices involving
USB.

Visit the USB-IF developers forum for help, http://www.usb.org/phpbb/ .

Marc Reinig
System Solutions

"alexi" <apredtechenski.no.spam@austin.rr.com> wrote in message
news:w9vyd.3351$wD4.2470@fe1.texas.rr.com...
Quote:
I am an Electrical Engineering student working on the design of a USB
flash drive as part of my Digital Electronics design class. Among the
specifications for the project is that the drive has to work with
Windows XP default drivers (needs to be "Plug and Play"). For doing
this I will need to understand the inner workings of windows default
driver. I am looking at the Microsoft website but still haven't found
anything...

Your flash device needs to implement the Mass Storage class specification

http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf

I am surprised that a project of this scale is assigned as a class task.
Typically this project would take one year of a team of 4-5 seasoned
designers. Assuming they can't design any PHY, so they need to start with
a given PHY chip with UTMI. UTMI is just a byte-streamed interface, so you
need
to implement a USB command decoder/encoder with CRC, all basic control
endpoints,
descriptors, provide enumeration, suspend-resume-reset, etc. Then you need
to
implement the application interface, with some SRAM buffering to handle
block
operations of flash, etc. To make something to simulate, you would need a
USB
test environment, another man-year. I don't think that EE students are up
to
this level, sorry.
Back to top
alexi
Guest





Posted: Fri Dec 24, 2004 12:07 am    Post subject: Re: Design of a flash memory drive Reply with quote

"Marc Reinig" <nospam@nospam.com> wrote in message
news:HFCyd.2127$yV1.318@newssvr14.news.prodigy.com...
Quote:
First, you don't need to know anything about the internal workings of the
Windows default drivers. You only need to follow the spec. mentioned
below.


You need to read with more attention. I never mentioned any internals
of Microsift drivers in my post.

Quote:

Second, you don't need a UTMI interface, use a standard full speed USB 1.1
device, available from multiple manufacturers.

If you go with 1.1 FS small chip, you will need to implement several
additional blocks like NRZI encoder and decoder with bit-stuffing logic,
DLL and data recovery circuitry, multi-phase clock generator, etc.

Quote:

If you do use a UTMI interface, CRC is provided by the UTMI chip.

You are mistaken. UTMI does not provide CRC, your have to have your own
CRC blocks, CRC5 for short packets, and CRC16 for others.
http://developer.intel.com/technology/usb/download/2_0_Xcvr_Macrocell_1_05.p
df

Quote:

This is a reasonable project for 1 to 2 University students and has been
done many times. In fact, it is one of the more popular choices involving
USB.

I'd like to see links to successful projects.

Quote:

Visit the USB-IF developers forum for help, http://www.usb.org/phpbb/ .

Thanks. I don't think I need one.

Quote:

Marc Reinig
System Solutions

"alexi" <apredtechenski.no.spam@austin.rr.com> wrote in message
news:w9vyd.3351$wD4.2470@fe1.texas.rr.com...
I am an Electrical Engineering student working on the design of a USB
flash drive as part of my Digital Electronics design class. Among the
specifications for the project is that the drive has to work with
Windows XP default drivers (needs to be "Plug and Play"). For doing
this I will need to understand the inner workings of windows default
driver. I am looking at the Microsoft website but still haven't found
anything...

Your flash device needs to implement the Mass Storage class
specification

http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf

I am surprised that a project of this scale is assigned as a class task.
Typically this project would take one year of a team of 4-5 seasoned
designers. Assuming they can't design any PHY, so they need to start
with
a given PHY chip with UTMI. UTMI is just a byte-streamed interface, so
you
need to implement a USB command decoder/encoder with CRC, all basic
control
endpoints, descriptors, provide enumeration, suspend-resume-reset, etc.
Then you need
to implement the application interface, with some SRAM buffering to
handle
block operations of flash, etc. To make something to simulate, you would
need a
USB test environment, another man-year. I don't think that EE students
are up
to this level, sorry.


Back to top
 
Post new topic   Reply to topic    CASTalk.com Forum Index -> Computer Architecture All times are GMT
Page 1 of 1

 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum




VoIP Electronics Powered by phpBB