USB 3.0 Write Blocker Team Dec 1108 Design review presentation Team member Client Info Advisor Chen Zhao Electronic Crime Institution at Des Moines Area Community College Dr. Zhao Zhang Elphas Sang Joe Lane [email protected] Yan Fang Project Plan and High Level Description Problem Statement • USB 3.0 to SATA data adapter • Correct design of a command filter that drops writing commands Conceptual Sketch Use case scenario Conceptual Sketch (cont’d.) Massive Storage Device on USB is complex in firmware organization. They support both USB protocols required for universal USB devices and SCSI standard between computer and peripheral devices. An embedded system that function as a USB massive storage device has the following list of requirements. • A smart microcontroller that manages the system operations • A USB device controller, which is another microcontroller that interfaces to the USB port. This controller can also be integrated with the device’s own CPU into one microcontroller • A generic harddrive (flash drive) interfacing to the device’s CPU • The device effectively responds to generic USB requests on the bus • The device effectively responds to SCSI commands received in USB transfers. These commands are industry standards for storage media. Conceptual Sketch (cont’d.) About embedded hosts An embedded system working as a USB host for a hard drive or flash drive is expected to perform the following functions. 1. Issue USB requests and initiate other events on the bus to identify attached devices and manage traffic and power on the bus 2. Issue USB mass-storage requests that ask for status info or specify actions for the device to perform 3. Issue SCSI commands in USB transfers. The commands read and write blocks of data in the storage media, request status info and control the device operation Functional Requirements • Data Bridge between USB 3.0 and SATA • This device acts as bridge for dataflow. It processes data transfer and controls data package. • Lossless Data Transfer • Data transfer does not allow any information loss. The data transfer should not be affected by the blocker except that no writing operation to hard drive is allowed. • Efficiency and latency issue • Although efficiency depends on specific microcontroller hardware, firmware also plays a great role on the quality and usability of the product. A bad program may lag the hardware efficiency it should have Non-Functional requirements • • • • • • • • • • Product Quality (Reliability) The ability of a system or component to perform its required functions under stated conditions for a specified period of time. Portability The ability for the device to be moved from point A to point B. The device may easily be used on different computers and for different hard drives. Maintainability The product is maintainable which means the hardware configuration is well documented and may be updated and improved for later on projects. Testability Tests are easily performed on the device. And these tests demonstrate the capability of the final product. Usability Ease-of-use requirements address the factors that constitute the capacity of the software to be understood, learned, and used by its intended users. Technical consideration • Choice of device microcontroller Some typical controllers with support for ATA/ATAPI: Texas Instruments TUSB6250 USB 2.0 to ATA/TAPI bridge controller Philips Semiconductor ISP 1583 Hi-Speed Universal Serial Bus peripheral controller SMSC SW6313 Single Chip USB 3.0 to SATA Bridge • Software Development Kits (SDK) for firmware update need extra technical support from the microcontroller manufacturer for example, Symwave also provides a variety of host application Software Development Kits (SDK) for firmware update, Security password and Mass Production Tools Market survey • What makes our project unique? Very few similar product exists around the market for USB 3.0 • There are quite a few products for USB 2.0 with similar functions around the market nowadays. For example, Taleau provides solutions for USB 2.0 to SATA bridge. ForensicPC has a series of Forensic write-block products. • But there is still no USB 3.0 blocker product in the market. In 2009, Fujitsu Microelectronics shipped its first generation of USB 3.0-Serial SATA bridge IC. MB86C30A incorporates USB and SATA signal communication control circuits, protocol and command control circuits with a high-speed encryption/decryption engine on a single device. Potential risks • Schedule Risks Development Board Choice is the first step of the project and is the crucial step. A rational choice should be made considering the difficulty level of implementation and reliability of the final product. • Technical Risks The hardware configuration consists of module implementation and integration. This is a complex procedure and it takes a long time to put a module into work. • Operational Risks Improper operation on the device (especially during the testing process) may cause irreversible hardware damage. Cost Estimate USB3.0 to Sata Bridge Chip About $30 Development Kit For the Chip About $100 Programming Board and Tools to be announced Other Resources About $70 Total Cost About $200 Total Budget $2000 Project Milestones & Schedule System Detailed Design • Hardware platform • Firmware program Functional Decomposition 1. USB 3.0 to SATA adapter 2. Support for Mass-Storage Devices Compatible With the ATA/ATAPI-8 Specification 3. UASP protocol compliant mass storage device suitable for bridging hard disk drives (HDD) 4. Auto-load firmware (boot code and program we write) System architecture • Take the ARM cortex M3 microcontroller based USB 3.0 to SATA bridge board as an example. • It provides various necessary firmware to implement bridging for hard drives, solid disk drives, optical drives and other SATA 3.0G standard drives. What we study is the connection between the host (USB 3.0 PC) and massive storage device, in super speed transfer mode. ARM cortex M3 microcontroller structural diagram Another USB 3.0 microcontroller SW6313 Single Chip USB 3.0 to SATA Bridge a product from Symwave (now part of SMSC) Technical Support • Symwave also provides a variety of host application Software Development Kits (SDK) for firmware update, Security password and Mass Production Tools - everything necessary for rapidly moving through development and into production. • Ordering Information Design materials (schematics, layout, data sheet) are available upon request. Firmware Program • Principles on how the program works an example of a writing command block format bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 WRITE(10) byte 0 Operation code OP=2A byte 1 logical unit number reserved byte 2 byte 3 byte 4 logical block address byte 5 byte 6 byte 7 byte 8 reserved Transfer length (MSB 7, MSB 8) byte 9 reserved byte 10 reserved byte 11 reserved bit 1 bit 0 Some other SCSI command blocks Code Command 00 TEST UNIT READY (mandatory) 01 RECALIBRATE or REWIND 03 REQUEST SENSE (mandatory except RBC) 04 FORMAT UNIT 05 READ BLOCK LIMITS 07 REASSIGN BLOCKS 07 INITIALIZE ELEMENT STATUS 08 READ (6) 0A WRITE (6) 0B SEEK (6) 28 READ (10) 29 READ GENERATION 2A WRITE (10) An example routine • • void MSDWriteHandler() { • • • • • byte *adr; byte flag; word i; dword sectorNum; WORD TransferLength; • • • • • • • • • • • • • LBA.v[3]=gblCBW.CBWCB[2]; LBA.v[2]=gblCBW.CBWCB[3]; LBA.v[1]=gblCBW.CBWCB[4]; LBA.v[0]=gblCBW.CBWCB[5]; • • TransferLength.v[1]=gblCBW.CBWCB[7]; TransferLength.v[0]=gblCBW.CBWCB[8]; • • • • • while(TransferLength._word>0) { • /* • * Read data received from teh USB host and write the contents to the media • */ • • ... • • • • • • • • while(msd_csw.dcswDataResidue>0) { MSDDataOut(); } //check status, if or not successful if(status) { //The sector write failed msd_csw.bCSWStatus=0x01; ... } • • • • • • LBA._dword++; TransferLength._word--; if(TransferLength._word>0) { /* check if more data to receive */ ... } else { //all data received ... } • • } return; • } Testing plan • Simulation: • Writing code that will disable writing commands. We can do this process either in two ways: Simulating a writing error checking on the board Using the host to return valid parameter bits. Testing Test Description Unit testing: • • • • Hardware blocking commands Return request of read operations No modification of requested information Error checking Integration testing: • Develop a prototype of USB 3.0 that is integrated from USB 2.0 Big Storage capacity Faster transfer rate. • • Interface testing: • Host to the blocker interface. • Blocker to the Drive interface. Metrics • Faster Transfer rate: The device should have a higher transfer rate of up to 5Gbps. • Time Delay: The device should have a shorter time delay between the input and output signals in order speed up the performance of the device Basic building block implementations Conclusion Current Project Status • • • • • Regular meetings with the client Analyzed project Decision on the direction for the project Built our group website and kept updating Market survey and contact with microcontroller companies in this field • Completed documentation Task Responsibility/Contributions • Chen Zhao Project manager, System architect, developer, tester • Elphas Sang Developer, tester • Yan Fang Developer, tester, web master Plans for the next semester • Study on specific bridge chip and start programming • Bridge chip simulation • Systematic testing • Keep a good documentation • Present the final project including all deliverables to the client
© Copyright 2024