Specifications

Windows provide an application protocol above TCP/IP called Server Message Block
(SMB) or common internet file sharing protocol (CIFS), as it is called now.
5.3.1.1 The server message block (SMB)
Server message block is a protocol that allows other operating systems to interact with
the Windows file system. It incorporates the same multi-user read-and-write operations,
locking, and file-sharing semantics that are used as if you were operating with the files
from the local machine.
This seemed like a very good solution. It meant that it was possible for the MP3 player
to directly talk to Windows. The main problem was that the Ethernut operating system
did not have this support built in. Consequently, it would have to be integrated into the
operating system as an application layer above TCP. Two options were available: either
develop the layer or find a suitable implementation and port the code to operate with the
Ethernut. A freely available implementation of an embedded version of SMB was found
from CodeFx [21]. It is free to develop with but if it was used in a product that was to
be sold licensing fees would apply. At a glance, it did appear that it was possible to use
this solution but there were two problems. Is the Ethernut fast enough and does it have
enough memory to operate this extra load. At this design stage it was estimated that
there would be about 25Kbytes for MP3 buffering and 40Kbytes per second network
speed might be possible once the MP3 decoder is integrated as well. It was decided at
this stage that a large amount of time could be spent developing this layer but there was
good chance that the resources required were not available on the hardware. An
alternative had to be found.
5.3.1.2 The Server program
After investigating how other embedded networking systems interacted with Windows,
it was found that they most commonly ran a server program on one of the computers on
the network to handle file operations. If the player could not handle these functions
themselves then the processing would have to be done on something with which they
can communicate. A server program was required to convert communication with the
player into the required Windows file operations.
23