180 likes | 288 Views
Handheld TFTP Server with USB. Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008. Outline. Project Description Mass Storage Functionality TFTP Server Functionality User Interface Description Project Requirements Platform Overview and Board Discussion
E N D
Handheld TFTP Server with USB Andrew Pangborn Michael Nusinov RIT Computer Engineering – CE Design 03/20/2008
Outline Project Description Mass Storage Functionality TFTP Server Functionality User Interface Description Project Requirements Platform Overview and Board Discussion USB Gadget Interface Implementation Difficulties Systems Testing Questions
Problem Description GE has radio towers that require firmware updates. Install updates by downloading specifically named files from a TFTP server Don’t currently have a convenient way of deploying updates to devices in the field. They want a compact device that can deploy updates to the radio towers on-site.
Solution • Develop a handheld device with an Ethernet port that hosts a TFTP server. • Our handheld device also contains USB and acts as a Mass Storage device when plugged into a PC. • Allows updates to be easily loaded onto the device
Mass Storage Aspect The handheld device is connected to a normal PC through a USB connection It appears to the PC as a mass storage device (like a thumb drive or external hard drive) Files can then be transferred to or from the device
TFTP Aspect TFTP is a simplified version of FTP providing basic GET and SEND functionality GET commands are sent from the radio and received by the handheld device. The handheld device then transfers the required file (or files) to the radio
Step 1: Load Firmware onto device from PC via USB USB Step 2: Travel to on-site location Step 3: Tower hardware downloads firmware file via wired Ethernet and TFTP Ethernet
User Interface • Reset Button • ON LED indicator • Ethernet Status • “Complete Status” LED+Speaker • Indicates that a TFTP transfer has finished with LED and small speaker • On/Off switch
Project Requirements • Storage Capacity: • ~8MB for base Linux system + kernel, • 2-3MB per firmware image • Size - Small enough for an operator to easily transport to radios • USB and Ethernet Support • Batteries • Common batteries that are easy to replace
Platform Overview • ARM920T Processor • Low Power, Small form-factor • Capable of running an operating system like Linux for Ethernet/USB support as well as an FTP server application • USB Device and Host Controller embedded in processor • NAND Flash Memory (file system) • Non-volatile • ARM9 processors contain support for boot-loading from Flash • SDRAM (system memory) • Memory controller for SDRAM included inside ARM9 as well • Linux
Basic System Architecture Arrows Indicate direction of file transfers General Purpose Processor Volatile SDRAM used by operating system Non-Volatile Flash memory used for boot image and file storage Processor interfaces with USB and Ethernet
Samsung S3C2410X Dev Board • ARM920T based Processor • 32MB SDRAM • 64MB NAND Flash • USB Host and Device Ports • RS-232 • 10/100 Ethernet • LEDs and General Purpose Digital I/O pins
USB Host vs USB Device • Majority of computers only have Host Controllers • Devices such as PDAs and thumb drives have a Device controller • The S3C2410X (along with many other ARM boards) contain both host and device controllers • The PC’s Host controller initiates communication with the device controller on the board to access the flash storage
USB Gadget API • USB Gadget API provides a framework for developing USB applications • The File-backed Storage Gadget uses the Gadget API to mimic a USB Mass Storage Device • The Mass Storage gadget is a software layer on the embedded device that provides the host PC with sector-based access to a portion of the Flash storage
Implementation Difficulties • Getting Linux to act as a USB Slave device • Interfacing user-land application (the TFTP server) with the general purpose I/O pins of the processor (LED and Speaker)
Testing Strategy • Functional Testing • USB • Enumerates on PC as mass storage device • Files can be copied to/from the device, files can be deleted. Confirm these operations by looking at the device’s file system via serial terminal and Linux commands. • FTP • Download a file from the device using a TFTP client and a laptop • Performance Testing • Transfer Speeds • Copying files to/from the device with USB and FTP • Battery Life • Robustness • Power failures / interrupted transfers don’t corrupt the system