International Journal of Engineering Research and Development is an international premier peer reviewed open access engineering and technology journal promoting the discovery, innovation, advancement and dissemination of basic and transitional knowledge in engineering, technology and related disciplines.
1. International Journal of Engineering Research and Development
ISSN: 2278-067X, Volume 1, Issue 6 (June 2012), PP.25-34
www.ijerd.com
USB TO USB Data Transfer without PC
Aniket Gundecha1, Milap Patel2, Saurabh Mehta3
1,2,3
E&TC Department, Maharashtra Academy of Engineering, Alandi (D), Pune.
Abstract—The Computer has become an inseparable part of life for many people in the world. Its innumerable uses have
changed the life of many, not only in technical field but also in non-technical field. Moreover, now-a-days, with
increasing use of the computer, people are getting well aware of the peripherals that are associated with it. These
peripherals give additional features to the already existing functionalities of the computer, while some enhance them.
Along with the advancements in capabilities of the Computer, the capabilities of these peripherals have also been
improved, thus, making it simpler and more user-friendly for the user. Gradually, using the computer has become very
easy these days. To make it even more simple, the interfacing of the peripherals with the computer have also changed and
improved a lot. The main idea of this project is related to one such peripheral the USB. This user friendly device is
actually recognized by its Connection type- the BUS; called the Universal Serial Bus. It comprises of just four connection
wires between the Host (Computer) and the Device, governed by a set of rules called the Protocol. The aim of this project
is to transfer data without using a computer, from one USB flash disk to another.
Keywords— USB, FAT, Flash disk, NTFS, VNCL1
I. INTRODUCTION
Several data and application are developed daily which common computer user has to transfer from one USB
Flash device into another, with the minimum wastage of time. For this user has to first find a computer then wait for it to
boot up, then plug in his device, and then transfer the data. Different types of USB ash devices are used now-a-days. It is
not necessary that all of these devices are supported by the computer and the operating system and their device drivers
are available and installed.
Carrying a computer or a laptop just for the sake of data transfer is not affordable these days in the age when
people want all devices to be handy. More- over, transferring data via a computer involves a lot of power to be wasted,
since the computer has to be entirely functional before it can transfer data. Also, the threat of viruses and malware has
made the life of computer users more complicated. These viruses get activated as soon as the device is plugged into the
system and get copied along with other data from one ash device into another. Our project here can provide a valuable
solution to all problems faced by person in above situations. Our aim is to build a small and handy device to transfer data
from one USB Flash device to another.
The device will have following features:-
1. Small, lightweight and handy device
2. Powered by 9V battery
3. Support for all USB Flash devices formatted with FAT32 file System
4. Support for USB 2.0
5. Plug and Go function
1.1 Universal Serial Bus (USB)
USB was initially designed to be an interface for communicating with many types of peripherals without the
limits and frustrations of older interfaces. Every recent PC includes USB ports that can connect to standard peripherals
such as keyboards, mice, scanners, cameras, printers, and storage drives. It is a very useful protocol designed for a
computer to communicate with almost any type of peripheral.
Some of its benefits for users include:
1. Single Interface for many devices.
2. Considerably high Data rate.
3. Automatic Configuration.
4. Easy connection.
5. Hot Pluggable.
6. No user Settings.
7. Frees Hardware Resources for other devices.
8. No extra Power Supply needed.
9. Low Cost and Low Power consumption.
Benefits for Developer include:
Versatility.
25
2. USB TO USB Data Transfer without PC
Operating system support.
Peripheral support.
Open source support available online.
1.1.1 Inside USB
As mentioned above, the connection comprises of four Connecting Lines viz.
1. Vcc
2. D-
3. D+
4. Ground
The VCC and Ground are the power supply signals to the device. D+ and D- are the data lines through which
actual data transfer takes place. Both D+ and D- are bidirectional lines, both carrying data in a single direction at a time
and data is modulated into deferential voltage levels to be transferred over them. The directions of D+ and D- are
reversed in TDM manner to transmit and receive data. It is connectivity with peer-to-peer communication.
Table I: USB Variants
Version Introduced Supported Speeds Compatibility
1.0 January1996 Low Speed --
1.1 September1998 Low speed, Full Backward
speed
2.0 April2000 Low Speed, Full USB 1.1, USB
Speed, High Speed 1.0
3.0 December2008 Super Speed USB 2.0
Low Speed has data rate of 1.536Mbits/s, Full Speed has 12Mbits/s, High Speed has 480Mbits/s, Super Speed
has 5Gbits/s[3].
II. LITERATURE REVIEW
A core team from Compaq, Hewlett Packard, Intel, Lucent, Microsoft, NEC and Philips leading the
development of the USB Speciation, version 2.0, that has in-creased data throughput by a factor of 40. This backwards-
compatible extension of the USB 1.1 speciation uses the same cables, connectors and software interfaces so the user will
see no change in the usage model. They will, however, benefit from an additional range of higher performance
peripherals, such as video-conferencing cameras, next-generation scanners and printers, and fast storage devices, with the
same ease-of-use features as todays USB peripherals [1] [2].
1. USB supports three bus speeds: high speed at 480 Megabits/sec., full speed at 12 Megabits/sec., and low speed
at 1.5 Megabits/sec. The USB host controllers in recent PCs support all three speeds [2].
2. The USB Host Controller is in charge of asking every USB device if it has any data to send. Because of this
topology, Device cannot start sending data without being prompted.
3. This justifies the need for a USB Host Controller and its Configuration.
2.1 Idea Innovation
The idea of this project was taken, looking at the problems faced in daily life of Flash Drive Users to transfer the data
from one disk to another. Carrying a computer or a laptop just for the sake of data transfer is not affordable these days in
the age when people want all devices to be as small and handy as possible. Moreover, transferring data via a computer
involves a lot of power to be wasted. There are numerous types of data transactions that are being carried out through
these devices. However to operate these devices most of the times an operating system is required which calls for the
hosts to be extremely complicated system hence accessing these devices requires complicated hardware, hence a
controller that can handle the data transfer and initiates the USB transactions was searched.
III. IMPLEMENTATION DETAILS
3.1 System Block Diagram
The study of block diagram of any system greatly simplifies its design construction so as to understand the
working of the system. The study of the block diagram is very helpful to the designer.
26
3. USB TO USB Data Transfer without PC
Fig. 1 System Block Diagram
ARM (LPC 2138): It is the heart of the system. It is important unit of the system because it reads data which we
programmed and stored into its ROM, then it execute it and controls the display as well as Vinculum VNC1L Embedded
USB Host controller. When key is press it read the data from source pen drive and writes to destination pen drive [5][7].
LCD Display: Frequently, a C program must interact with the outside world using input and output devices that
communicate directly with a human being. One of the most common devices attached to an ARM7 is an LCD display.
Some of the most common LCDs connected to the ARM7 are 16x2 and 20x4 displays. This means 16 characters per line
by 2 lines and 20 characters per line by 4 lines, respectively. It displays events taken into microcontroller step by step
alphanumerically. So it is convenient us to know what is currently running in the system. It displays the start and finish of
the data transfer.
Host Controller (VNC1L): It recognizes the input peripheral as host or slave according to firmware loaded in it. The sub
module physically interfaces with the USB flash drives and is responsible for converting raw data and information to
their proper NRZI encoding as specified by the USB technical specifications. Further-more, the sub module is capable of
encoding or decoding the incoming NRZI data from the USB flash drives and forwards it to their respective sub modules
for further processing. It handles all types of transfer between source destinations. We have USB Host controller which
has two independent USB 2.0 low speed/high speed USB Host ports. Individual ports can be configured as host or slave.
USB Connectors: There are two types of USB connector are available in market, here we use a Type-A USB connector
which is more popular use in almost all application. Another reason to use it is USB flash drive has Type-A USB male
connector.
3.2 USB Host Controller IC - VNC1L
To begin with, selection of the USB host controller IC is to be done. Host controllers can be found in market, in
two types viz. Dedicated IC for USB Host, Slave and device operations, and USB Host controllers included in
microcontrollers. The second most important criteria to look for is the presence of two USB ports on the Host Controller
to avoid the use of buffer and extra hardware. One more feature to look for was support for FAT-32 file system included
hardwired on the Host controller to avoid complications in microcontroller code to decode it. A dedicated USB Host
Controller from Vinculum was found- VNC1L. It has got following features over host controllers included on chip of
General Purpose Microcontrollers:
Two independent USB 2.0 Low speed / Full speed USB Host / Slave ports
Entire USB protocol handled on the chip
8/32bit MCU core
Twin DMA controllers for hardware acceleration
64kB embedded Flash ROM Prog. Memory, 4kB Data SRAM
Interface to MCU / PLD / FPGA via UART/ FIFO/SPI interface
Upto 28 GPIO interface pins for data I/O and command monitor interface
3.3V operation with 5V safe inputs
Selection criteria for VNC1L:
Twin Host Controllers inbuilt
Availability of Twin DMA controllers
Availability of ready VDAP
NCU- 32bit Numeric Co-processor Unit for handling of FAT32 file system
Handles entire USB protocol On Chip
27
4. USB TO USB Data Transfer without PC
3.3 VNC1L Block Diagram
Fig. 2 VNC1L Block Diagram, This IC is works as USB host. It can interface with the ARM processor and with help of
that we transfer data through one pen drive to other
USB Flash Disk: These are source and target Devices. They will be connected to the USB Host Controller IC via the
USB interface. Both the devices can be accessed simultaneously. The memory on them is in the form of Flash which is
accessed by an on board hardware. These devices have also got protocol handling hardware included on device.
Before making the devices available for use, the Operating system formats the device with a file format. FAT-8,
FAT-16, FAT-32, NTFS, are some file systems available in Microsoft Operating Systems. Majority of USB Flash
devices are formatted in FAT-32 file system. There may sometimes be Partitions on the drive. Data encrypted with all
above formats can be accessed with an efficient Firmware on the USB Host Controller.
USB Host Controller IC: This is a microcontroller which has an interface to connect a USB device. It has a Central
Processing Unit of its own. The requirement here is of 2 USB ports. It is the main device that handles the USB protocol
and does the jobs of the USB host. It may contain an Operating System and also device drivers to interact with the device.
It will be responsible for creation of endpoints, establishment of pipes, initiating transfers, enumeration etc. We can
preferably look for capability like DMA so that CPU remains free while Data transfer [8].
IV. METHODOLOGY
USB interfaces are everywhere today, with low cost ash memory drives and all kinds of USB peripherals being
readily available, but these are very much focused on the pc market. Attempt however to make use of these peripherals in
the 8-and 16bit embedded market, and you find that implementation, cost and power consumption become major
considerations.
Part of this is down to the embedded controllers that are used in such systems. Devices such as the LPC2138
family of controllers from PHILIPS are widely used with a broad range of memory densities and peripherals, but they
lack the interfaces, resources and performance to incorporate a USB host controller.
In this example application, a VNC1L Vinculum controller provides the interface between the LPC2138 as the
system controller and a USB2.0 full speed port. This allows a USB flash memory drive connection.
Vinculum is specifically targeted at the embedded USB controller market and requires a minimum of external
support components. One key feature of the Vinculum core is that its code length is significantly reduced compared with
common MCU cores. Reducing the code overhead of the core allows much more functionality to be squeezed into the on-
chip e-flash memory.
Using Vinculum to link a small LPC2138 MP to a USB A and USB B connector and hence to a USB flash
drive. Commands and data are sent via TXD (pin 6) to the VNC1L RXD (pin 32). VNC1L handles the FAT 12/16/32 file
creation and data storage on the USB flash drive communicating with the drive via USB2DM and USB2DP on pins 28
and 29. Data is read from the flash drive via the same pins, and sent from the VNC1L TXD (pin 31) to the RXD (pin 5)
of the LPC2138 for use by the system firmware.
The system is controlled by the firmware on the LPC2138, with the transfers controlled by instructions issued
by the LPC2138 and interpreted by the standard firmware on the Vinculum. Whilst that is a simple description of the
system, more is required to complete the design. The devices need power, crystals to control their clocks, and they need
to be programmed. Using a 12MHz crystal on pins 61and 62 of the LPC2138 allows for higher baud rates of up to
28
5. USB TO USB Data Transfer without PC
9600bits/sec in its UART interface as opposed to the maximum 9600 bits/sec achievable by using the internal 8MHz
oscillator, thus improving the performance of the system.
LPC2138 I/O pins10(RXD) and 11(TXD) are used by their firmware to simulate RTS/CTS handshake signals
with the VNC1Ls UART interface.
The VNC1L is shipped as a blank device. It must be programmed (when in boot loader mode) with firmware
before use. It can be programmed either pre-assembly, using the VPROG-1 standalone programmer or programmed in-
circuit via the UART interface. The VNC1L boot loader uses the UART interface to load new firmware into the
Vinculum Flash memory. To enable the boot loader, the PROG pin must be driven low and VNC1L must then be reset by
driving the RESET pin low then high. Run mode can be enabled by driving the PROG pin high and then resetting
VNC1L by driving the RESET pin low then high.
When VNC1L firmware is updated via a microcontroller with a UART, the microcontroller must be capable of
at least 115200 baud. The firmware can be upgraded in to the Flash memory via the UART interface or via a USB
interface.
A 5V regulated PSU at 250mA is required, providing up to 200mA at the USB A connector, 25mA to power
the VNC1L and 25mA to power the LPC2138 VNC1L requires a 3.3V supply which is provided by a 3.3V LDO
regulator, and has 5V tolerant I/O pins which enable it to connect to the LPC2138 without using level shifters.
For low-power applications the VNC1L can be put into a 2mA sleep mode when not required. To wake up the
device, strobe the ring indicator pin ( pin 16) of the UART interface. If this is connected to the RXD line, as here, it can
be triggered by an incoming dummy command to wake up the device. This design also includes a bi-color status LED
indicator powered from pins 16 and 18. This indicates successful enumeration of the USB flash drive and access to the
file system. The VNC1L is programmed with standard firmware, called VDAP (Vinculum Disk and Peripheral) that
interprets the commands coming from the LPC2138. These VDAP commands are DOS-like instructions such as DIR, RD
and WR. The command set also support single byte hex commands which are more suited to control by a microprocessor
[4][6].
For our project point of view we have to use VDFC firmware which enhances the transfer capabilities between
two BOMS type device further details about it explain below.
VDFC Firmware: Figure demonstrates using the VNC1L to connect two BOMS devices using the VDFC Firmware.
The monitor port allows access to either disk and the facility to copy between the disks.
Fig. 3 VNC1L with source and target disks, Figure indicates how source and target disks are connected to VNC1L
4.1 System Flow
The USB Slave to Slave File Transfer Device is a device that facilitates file and folder/directory transfers from
one flash drive to another flash drive using the USB 1.1 interface without the need for a Personal Computer (PC) to act as
mediator.
Figure shows the system setup while figure shows the general block diagram of the system. The system allows
the user to select files or folders/directories for copying from a source flash drive to a user selectable directory in the
destination flash drive. The device also supports a copy all function, which works the same way. Contents of the flash
drives are displayed in their 8.3 filename format thru a twenty character by four lines - sized dot-matrix character liquid
crystal display (LCD). The system is also able to check for identical le/folder/directory names and requests for a user
confirmation to either proceed and overwrite a file/folder/directory or not. In addition, the system is able to check if ther e
is sufficient memory space for the file/folder/directory to be copied onto the destination flash drive; if not, the system
requests the user to delete some files or folder/directories to free some memory in the destination flash drive. The user
may or may not opt to delete anything.
29
6. USB TO USB Data Transfer without PC
Fig. 4 System flow Diagram, Figure contains user block, USB Controller block, System memory, User Interface control
and File system control blocks are present for entire operation
4.2 User interface Controller Module
This module is responsible for obtaining user input and displaying user requested information through an LCD.
It consists of three sub modules namely the LCD Controller, Navigation and Screen Display Formatter. User input is
received through this module; however only two out of the six buttons are interpreted and executed within the User
Interface Module. These buttons are the Left and Right navigation buttons whose function are to scroll through the
displayed path or Long File Name (LFN) format of a file or directory. The input from the Up and Down navigation
buttons and Command Buttons 1 and 2 are converted to their corresponding command codes and are forwarded to the
File System Controller module for execution. All information to be displayed is received from the File System Controller
module.
4.3 File system controller
The File System Controller is responsible for all file management processes and FAT file system access for the
system. It mediates between the display/user interface and USB communications module. A large percentage of the
systems software is found in this module since it contains most of the systems core functions. Figure shows the block
diagram. The major commands handled by the sub module include the up and down navigation buttons and the different
functions attributed to command button 1 and 2 (i.e., copy, delete, browsing through files/folders.)
Fig. 5 User interface Diagram, It has LCD sub module, Navigation sub module, File system module etc.
30
7. USB TO USB Data Transfer without PC
Fig.6 File system controller Diagram, It used for controlling different file transfer operations and files/folders access
4.4 USB controller module
The USB Controller module is responsible for starting-up the system, handling the packets, computation and
checking of error checking bits, packet encoding, conversion of packets from parallel to serial and vice versa and NRZI
decoding and encoding. This module accepts the commands to either read or write onto a USB ash drive as requested by
the File System Controller Module. Input from the USB ash drives is the result of an earlier request for data. These
requests include content information (i.e. file names), actual content (i.e. files) or identification signals (i.e. the connected
USB device is checked if it falls under the Mass Storage Class (MSC) or Human Interface Device (HID)). Block diagram
is shown in figure.
Fig.7 USB control module Diagram, to check all USB operation or process
The module also governs the data that needs to be transmitted to the USB Flash Drives, as well as process and
send the results of the transaction to the File System Controller Module. In addition, the module also sends notifications
to alert the user of the status of the system or the operation (i.e. the status of a copy or delete command).
4.5 Data Transfer
Data transfer is unidirectional. That means that data can only be written, it cannot be read again. In contrast to
other displays, a busy query is not necessary with this display. The clock-pulse rate of the SCL line can be up to 20 MHz,
depending on the supply voltage.
Fig.8 Data Transfer, It shows how data is transfer on LCD. In that CSI,SI and clock signals are present
31
8. USB TO USB Data Transfer without PC
V. EXPERIMENTATION
5.1 System Flowchart
Fig.9 System Flowchart, This is giving us entire system working and how the system goes from one stage to other
5.2 Components Used
1. ARM processor
2. USB host controller IC- VNC1L
3. Power supply unit
4. Computer interface
5. Graphical LCD
5.3 Hardware Prototype
32
9. USB TO USB Data Transfer without PC
Fig.10 Device displaying name of the project:' ARM based data transfer system
Fig.11Requesting to insert source and target pendrives
Fig.12 Displaying transfer of data has been completed
VI. RESULT ANALYSIS
Problems are stepping stones towards success. Once we start working with the hardware we are bound to face
some obstacles in our way to reach our goal. While working on the hardware of the project we initially had opted for an
ARM board combined with the general purpose board. The idea was opted because we were new with the use of the
VNC1l IC and so the method we opted was the try and error method. We opted the general purpose board so that we can
easily demount the components if something goes wrong. Also it was used so that future modifications could be made
easier if required or necessary. We initially mounted all the circuit components related to the ARM board and so far the
work was going as we had planned. The problem arised as we mounted the VNCL1 IC, the board became bulky and it
became difficult for us to mount all the components that were to be interfaced between ARM and VNCL1. Size of the
33
10. USB TO USB Data Transfer without PC
board became the reason behind the bulkiness. We had to compromise with the spacing of the components and that made
the work very untidy and difficult for us to distinguish between various components. So finally we decided to switch the
boards. We then designed a board using ORCAD 9.0. This board was very specific with what we needed and was the
correct decision which leads us to the perfect working of our project.
VII. CONCLUSION
Transferring the data through USB in today’s scenario is the most common task. But the problem is that for
transferring the data to a personal computer or laptop is difficult if u don’t have any of them. It is affordable to purchase a
USB data drive than purchasing a laptop or PC. Therefore we came up with a handled battery operated affordable device
which can transfer the data between two USB data drives without the help of PC or laptop.
The advantage of this device is that it is battery operated so there is no need of power supply connection and
data transfer can take place at any place. Currently we have design the system for tranfer of data upto 2GB only, but it
can be increased by proper selection of the bus.
VIII. FUTURE SCOPE
While working on the development of the system and exploring the peripherals that can be interfaced with the
ARM 7 we found that with little modification in the project several new features could be added. Following are the things
that can be done with few modifications.
1. Add USB host capability to embedded products.
2. Interface USB Flash drive to MCU/PLD/FPGA.
3. Using Bluetooth in our device, We can connect with any Bluetooth enable devices making the data transfer
wireless.
4. Keypad and Graphical LCD could be replaced by touch screens which could make human work easier by drag
and drop method.
REFERENCES
[1]. JAN AXELSON, USB Complete, Penram Publications, 2nd edition, pp. 5-7. Nov 1999.
[2]. JAN AXELSON, USB mass storage, Lakeview Publications, @2nd edition, chp. 4, pp 57-69. 2000.
[3]. John Hyde, USB design, a technical introduction to USB 2.0, white papers.
[4]. USB Implementers Forum Inc, www.usb.org/ interoductionusb-2.0papers/
[5]. www.alldatasheets.com
[6]. FTDI Inc, www.ftdichip.com/document Reference No.: FT-000006v. Vinculum Firmware User Manual Version 2.05.
[7]. www.techpubs.sgi.com
[8]. USB Implementers Forum Inc, www.usb.org/ interoductionusb-2.0papers/
34