PROTOCOL SOLUTIONS GROUP 3385 SCOTT BLVD SANTA CLARA, CA 95054 Conquest USB 2.0/1.x Analyzer/Exerciser/DC Verification User Manual Version 7.45 For Software Version 7.
Trademarks and Servicemarks LeCroy and Conquest are trademarks of LeCroy Corporation. Universal Serial Bus and On-The-Go are registered trademarks of USB-IF. Microsoft and Windows are registered trademarks of Microsoft Corporation. Intel and Pentium are registered trademarks of Intel Corporation. AMD Duron and AMD Athlon are trademarks of Advanced Micro Devices Inc. All other trademarks and registered trademarks are property of their respective owners.
Contents Table of Contents Conquest Versions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Conquest M2 versus Conquest - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Common Software - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 Conquest M2 (SBAE30) and Conquest Supported Features - - - - - - - - - - - 2 Introduction- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 3 Overview - - - - -
Contents Installing the Analyzer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 Hardware Setup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10 Exerciser Configuration Connections - - - - - - - - - - - - - - - - - - - 11 OTG Analysis Connections - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 OTG Exerciser as DRD A-Device Connections - - - - - - - - - - - - - - - - - - - - 12 OTG Exerciser as DRD or Peripheral Only B-Devic
Contents Protocol Analysis - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33 Easy Mode (Pre-Defined Setups) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33 Easy Data Capture - - - - - - - - - - - - - - - - - - - - - - - - - - - - 34 Trigger on Data - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 36 Data Capture Options - - - - - - - - - - - - - - - - - - - - - - - - - - 43 Custom Transaction - - - - - - - - - - - - - - - - - - - - -
Contents Creating a Data Block - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 86 Naming a Data Block - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 87 Creating and Editing Data Blocks as Text - - - - - - - - - - - - - - - - - - - - - 91 Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 92 Running the Project - - - - - - - - - - - - - - - - - - - - - - - - - - - 93 Set Data Capture Options - - - - - - - - - - - - - - - - - - - - -
Contents Timing Analysis (Optional) - - - - - - - - - - - - - - - - - - - - - - - - - - - - 123 Easy Mode Timing Analysis - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 123 Advanced Mode Timing Analysis - - - - - - - - - - - - - - - - - - - - - 125 Device Emulation (Optional) - - - - - - - - - - - - - - - - - - - - - - - - - - - 129 Device Emulation (Easy Mode) - - - - - - - - - - - - - - - - - - - - - - 130 Programming the Device - - - - - - - - - - - - - - - - - - - - - - - - - - -
Contents Current Measurement (Optional) - - - - - - - - - - - - - - - - - - - - - - - - 155 Unconfigured Current Measurement - - - - - - - - - - - - - - - - - - - 156 Operating Current Measurement - - - - - - - - - - - - - - - - - - - - - 158 Making the VBus Measurement - - - - - - - - - - - - - - - - - - - - 161 VBus Droop Measurement - - - - - - - - - - - - - - - - - - - - - - - 163 Inrush Current Measurement - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 165 Inrush Current Display Featu
Contents Appendix A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 203 Advanced Script Language (ASL) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 203 Document Conventions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 203 Language Elements - - - - - - - - - - - - - - - - - - - - - - - - - - 204 ASL Script Structure - - - - - - - - - - - - - - - - - - - - - - - - - - 206 Protocol Extraction Section - - - - - - - - - - - - - - - - -
Contents x
Conquest Versions Conquest Versions Conquest M2 versus Conquest Conquest M2 supersedes all SBAE-30 versions. Conquest supports a subset of features of Conquest M2. Conquest does not support the following: • Device Emulation • OTG Analysis and Exercising • Timing Analysis • VBus Measurement • Automatic Bus Speed Detection • Performance Analysis Common Software This manual describes the use and operation of all available Conquest options.
Conquest Versions Conquest M2 (SBAE30) and Conquest Supported Features Low Speed (1.5 Mb/s) and Full Speed (12 Mb/s) High Speed (480 Mb/s) Trace Memory Size Upload to Host via USB 2.
Introduction Introduction This manual describes the installation and operation of the LeCroy Conquest™ and Conquest M2 USB Analyzer/Exerciser. Conquest has a subset of features of Conquest M2 (see “Conquest Versions” on page 1). Conquest – The Conquest is LeCroy’s entry-level USB analyzer, designed for easy setup with time-saving features like predefined trigger settings. The Conquest Advanced adds multi-state sequential triggering to provide sophisticated triggering debugging intermittent problems.
Introduction The comprehensive Advanced Mode incorporates a powerful easy to use programming capability that allows you to design projects with sophisticated data capture and triggering. In the Advanced Mode, you can program the Analyzer/Exerciser to: • Capture all bus traffic or specific packets • Trigger on specific packets or events as programmed in a 32 state sequencer. • Generate more flexible host traffic with the Host Exerciser.
Introduction Conquest M2 Options You can expand Analyzer capability with the following options: Host Exerciser The Host Exerciser option allows you to generate bus traffic as a host for analysis. Device Emulation This option allows you to operate Conquest M2 as a Device for testing the USB development system. You can define each Device to include up to 3 configurations with 2 interfaces each and assign up to 7 endpoints to these interfaces.
Introduction Conquest M2 Interface Status LED Function Description PWR When illuminated indicates that Analyzer is powered up. TRG When illuminated indicates that the Analyzer has triggered. Manual Trigger Manual trigger is activated by a push button switch on the front panel. External Signals (Ext. Out, Ext. Trig In, and Ext. Clk) The Conquest M2 Analyzer can output a unique 8-bit, user-defined CMOS level when triggered.
Introduction Ports Main Analyzer This port supports Analyzer using 8 packets and a 32 state sequencer that are used in Easy Mode or Advanced Mode for data capturing and triggering, operating and unconfigured current measurement and timing analysis. InRush A dedicated connector to allow the measurement of USB Device Inrush current. Host Exerciser A dedicated connector to exercise a USB Device and capture and trigger data in conjunction with the Analyzer port.
Introduction Analyzer/Exerciser Connection Identification Inrush/Suspend Current Measurement Connector External Signals (See Note 1.) USB 2.0/1.x Analyzer Connectors External Clock Input Device Emulation Connector Manual Trigger Button Status LEDs OTG Exerciser Connector Host Exerciser Connector Note 1 For External I/O connector pin assignment, see page 15.
Receiving the Analyzer Receiving the Analyzer Conquest M2 The Conquest M2 Analyzer includes the following components: • • • • • • • • • • • • • Carrying Case Conquest M2 identified in the packing list Software on the CD Rom DB-25 -> SCSI II 26, Parallel Port connection Two USB 2.0 Cables, 1.8 meter USB 2.0 Cable, 4” (10 cm) Two USB 2.0 Cables, 2 meter Standard - A to Mini - B One Mini - A to Standard - B.
Installing the Analyzer Installing the Analyzer This section covers hardware and software setup. Hardware Setup You can set up the Analyzer/Exerciser in any of the following configurations: • As an Analyzer to analyze USB Host and Device transactions. • As an Exerciser to exercise a USB Device. • As an Analyzer/Exerciser for OTG Device testing. • As an Analyzer/Exerciser in Hub testing.
Installing the Analyzer Exerciser Configuration Connections Figure 3 shows Conquest M2 used to exercise a USB Device. In this configuration, Conquest M2 acts as the USB Host. Host Interface Cables Windows Based System With Analyzer Software 100V - 240V In USB Device Exercised Figure 3 Conquest M2 Configured as an Exerciser 1. Connect Conquest M2 to a Parallel, USB, or Ethernet Port on a system running the Conquest Protocol Suite analysis software, with the appropriate cable. 2.
Installing the Analyzer OTG Exerciser as DRD A-Device Connections Host Interface Cables OTG Mini-A to Standard-B Cable Windows Based System With Analyzer Software 100V - 240V In DUT OTG B-Device Figure 5 OTG Exerciser as DRD A-Device OTG Exerciser as DRD or Peripheral Only B-Device Connections Host Interface Cables OTG Standard-A to Mini-B Cable Windows Based System With Analyzer Software 100V - 240V In DUT OTG A-Device Figure 6 OTG Exerciser as DRD or Peripheral Only B-Device 12
Installing the Analyzer Device Emulation Connections Host Interface Cables Windows Based System With Analyzer Software 100V - 240V In System Exercised Figure 7 Conquest M2 Connections for Device Emulation 13
Installing the Analyzer Conquest Analyzer Connections Host Interface Cables Windows Based System With Analyzer Software 100V - 240V In USB Device Under Test USB Host Figure 8 Conquest Connected as an Analyzer Conquest Exerciser Connections Host Interface Cables Windows Based System With Analyzer Software 100V - 240V In DUT Figure 9 Conquest Connected as an Exerciser Note: The Exerciser option is no longer available on the Conquest platform. Exerciser is offered on the Conquest M2 system only.
Installing the Analyzer Conquest M2 External I/O Connector Pin Assignment The external I/O connector provides the means for accepting a CMOS level input trigger and 8 CMOS level outputs that represent an 8-bit value.
Installing the Analyzer Software Installation On systems operating under Windows® 2000, Windows XP, and Windows Vista. Note: Do not connect the Analyzer to the host system until software installation is complete! 1. Insert the CD Rom in the CD Rom drive. 2. The installation automatically starts the setup, unless the Auto Run is turned off. In this case, select the CD Rom from “My Computer” and click setup. 3.
Installing the Analyzer Manual USB Driver Installation To manually install the USB driver, perform the following: 1. Power up Conquest. 2. Connect the USB cable between the Conquest USB Port interface and the Host Computer USB port. 3. After Windows detects the new Device, select the Search For Suitable Driver for My Device option button. 4. Click Next. 5. Choose the Specific location option button and deselect all other option buttons. • Click Next.
Installing the Analyzer Directory Structure on Windows XP and Vista The Conquest Protocol Suite application stores files in a specific directory structure under the C:\Program Files\LeCroy\Conquest directory. It also stores files in Windows-specific locations that differ for Windows® XP and Windows Vista (which uses UAC). In particular, Windows XP has a Documents and Settings\All Users folder, and Windows Vista has a Users\Public folder, which are not equivalent.
Installing the Analyzer Windows Vista User-modifiable Files For Conquest Protocol Suite on Windows Vista, user-modifiable files are in the Windows Explorer \Users\Public\Public Documents\LeCroy\Conquest 7.40.xx folder, which is the same as the Command Tool \Users\Public\Public Documents\LeCroy\Conquest 7.40.xx folder and Desktop\Public Documents\LeCroy\Conquest 7.40.xx folder. The Command Tool name is the correct folder name when using scripts.
Launching the USB Analyzer Launching the USB Analyzer To launch the software, select LeCroy > Conquest in the Start menu or double-click the Conquest Suite button in the Program Manager Window. Each time you run the software, it searches for a default host interface and, if it is found, the software launches. If no interface is found, the software launches in simulation mode. Establish Interface If no interface is detected initially, then establish an available interface and relaunch the software.
Launching the USB Analyzer If Conquest is not detected, the software displays the Hardware Not Detected message. Multiple Analyzers If you have multiple Analyzers installed, you get the following message. In such cases choose the Analyzer and click Attach. Connecting via Ethernet You can use the ethernet connection using any one of the following three supported configurations: 1. Conquest connected to a network via a hub, switch, or similar device. 2.
Launching the USB Analyzer Connecting to a Network When connected to a network, Conquest must communicate with the DHCP server to establish a connection. The DHCP server continually sends the next available IP address to Conquest until the Conquest Protocol Suite software starts. When you start the software, the system may prompt to automatically use the offered IP address or use an assigned IP address. (The assigned IP address must be on the same network segment as the host computer.
Launching the USB Analyzer Connecting via Hub, Switch or Similar device When connected to the host machine via a hub, switch, or other similar device, or directly using a crossover cable, the board must communicate with the host computer to establish a connection. The host computer continually broadcasts the next available IP address to the board until the Conquest Protocol Suite software starts.
Launching the USB Analyzer Authorization An authorization code is required to activate features not originally included and purchased at a later time. To enter the authorization code, click Configuration on the main toolbar and then select Authorization. The Authorization Code dialog opens. Enter the authorization code for the product(s) purchased and click OK.
Launching the USB Analyzer Example Projects Conquest includes a number of pre-defined example projects that you can use to perform an immediate analysis without any setup. The Conquest Protocol Suite software comes with a pre-defined folder (directory) structure for storing all files. All example files are stored in the Examples folder. It is strongly recommended that you open some of these files to get an introduction to project types.
Launching the USB Analyzer Project File Types The various Conquest configurations may have the following file types (see the next page for which configurations support which file types): *.acp Advanced capture project file *.ade Advanced emulation example *.adm Device Emulation project file *.aoe OTG Exerciser file *.app Advanced performance analysis project file *.asl Advanced Script language file *.bin Binary file *.cfg Viewer Display Configuration settings *.cpr Custom project file *.
Launching the USB Analyzer Conquest Standard and Advanced configurations do not support all project types. The table below outlines which project and report types can be created, opened, executed by each of the Conquest configurations. Table 3 File Types in Conquest Models File Types Conquest Standard Conquest Advanced Conquest M2 Pro Conquest M2 Pro with Exerciser *.ecp Easy capture project file x x x x *.cfg Viewer Display Configuration settings x x x x *.
Launching the USB Analyzer Run an Example Project To run a project: 1. On the menu bar, select File > Open. 2. Choose the example type from the Files of Type Combination box, choose an example, and click Open. 3. Click Run to execute the example.
Launching the USB Analyzer Default Capture The default capture offers you one button activation of a default project. The software includes a pre-defined default capture. However, you can define your own default capture by creating a new capture project and setting it to be the Default Project for immediate capture. Click the Default Capture button on the main toolbar to perform an immediate data capture and trigger. After a short time, current bus activity displays.
Launching the USB Analyzer Creating Projects The Conquest M2 Analyzer allows you to create projects using Easy and Advanced mode capabilities in any combination. Click the New Project button on the main toolbar to display the Project Setup dialog. Click the project type and configure the project to define Easy and/or Advanced mode operation as applicable. Capture and Timing Analysis Projects See page 33 for setup of an Easy Mode Capture. See page 55 for setup of an Advanced Mode Capture.
Launching the USB Analyzer Performance Analysis Projects Check a Performance Analyzer, Exerciser option and click the Create Project button to display the corresponding project setup dialog. See page 109 for setup of an Easy Mode Performance Analysis. See page 112 for setup of an Advanced Mode Performance Analysis. Device Emulation & OTG Advanced Exerciser Check the Emulation to use to open the corresponding project setup dialog. See page 130 for setup of an Easy Mode Device Emulation.
Launching the USB Analyzer 32
Protocol Analysis Protocol Analysis Easy Mode (Pre-Defined Setups) This mode allows you to operate Conquest with a minimum of setup. You can perform a Trigger and Data capture only, or program an Exerciser to generate bus traffic for triggering and data capture. Figure 10 shows a functional Capture and Trigger setup. SBAE-30 - Timing and Clock Distribution - Real Time Protocol Error and Event Recognition - High Speed State Machine (Sequencer) MEMORY MEMORY ALL SPEED USB 2.
Protocol Analysis Easy Data Capture Make sure that the configuration is set to use Easy Analyzer. See “Creating Projects” on page 30. Click the project. Green button on the main toolbar to open the last saved New Project To start a New project: 1. Select File > New and choose Analyzer Host Exerciser Project. Figure 11 Trigger and Capture Data Dialog Box 2. Click the drop-down arrow next to the Trigger drop-down list box and choose a trigger. Table 4 on page 42 lists the available trigger selections.
Protocol Analysis 3. If known, you can specify a Device address (in hex) and an endpoint address (in binary) by making the appropriate entries in the Dev Addr and Endpoint text box. Figure 12 Trigger Choices in High Speed Mode 4. Choose up to three Data Capture selections from the three available Data Capture drop-down list boxes. Table 5 on page 44 lists the available selections. The capture selections are different for High speed and Full/Low speed operation.
Protocol Analysis For ways to enhance results analysis in the results display, see “Display Manipulation” on page 175. Note: After completion of data capture, the system uploads a 64-kilobyte page for each screen view. The system saves uploaded 64-kilobyte pages in the \Temp folder as temporary files with extension .smp_. If you Save the data capture, the system saves the whole recorded capture on a hard disk. Saving data replaces the temporary extension .smp_ with extension .smp.
Protocol Analysis Trigger on a Data Packet This is the default setting when trigger on Data is selected. Figure 15 Trigger on a Data Packet Dialog Choose Packet Type Click the down arrow next to the Type list box and select a packet type on which to trigger. Trigger on a Data Pattern To trigger on a data pattern, check the Pattern button. A pattern can be across up to eight similar transaction types by checking the Multiple Transaction check box.
Protocol Analysis Multiple Transactions To trigger on a pattern over multiple transactions, check the Multiple Transaction and define the transaction types for triggering in the Advanced Trigger dialog. Figure 17 Advanced Trigger Setting Dialog Set Address Specify a Device Address and an Endpoint Address to prevent mis-triggering by different devices. Trigger on Data Length To trigger on Data Length, check the Length button.
Protocol Analysis Sample Capture Result for trigger on data pattern Figure 18 shows a capture result with a trigger on a data pattern identified. Figure 18 Trigger on Data Pattern To view details of the trigger, click the Data Pattern Triggered On button to open the Triggering Transactions dialog as shown in Figure 19.
Protocol Analysis Manual Trigger To perform a manual trigger, select Manual from the Trigger drop-down list and choose a Data Capture transaction. Figure 20 Enabling Manual Trigger Push the Manual Trigger button on the front panel to trigger the Analyzer. External Trigger To trigger on an external signal, select External from the Trigger drop-down list box.
Protocol Analysis To trigger on Protocol Error Select Protocol Error from the Trigger drop-down list. For a definition of protocol errors see page 104. Figure 21 Triggering on Protocol Errors Exclude Protocol Errors To exclude specific protocol errors from triggering, define a Protocol Error mask. To mask protocol errors, click the Protocol Errors button on the toolbar to open the Protocol Errors Dialog box. Uncheck the protocol errors to exclude and click OK.
Protocol Analysis Table 4 Pre-Defined Trigger Selections 1 Snap Shot (Note 1) 16 Split Setup Transaction* 2 Any Transaction 17 Split Bulk IN Transaction* 3 Data 18 Split Bulk OUT Transaction* 4 Bus Reset 19 Split Interrupt IN Transaction* 5 Resume 20 Split Interrupt OUT Transaction* 6 Suspend 21 Split Isochronous IN Transaction* 7 Chirp* 23 Split Isochronous OUT Transaction* 8 HNP (OTG event) 24 Setup With Preamble Transaction# 9 SRP (OTG event) 25 Asynchronous IN With Preamble Transaction
Protocol Analysis Data Capture Options Memory Display You can limit the captured data display to a specific number of samples by checking Partial Memory and entering the number of Samples to capture or, you can check entire memory to allow the capture for the entire memory. Pre-Trigger Pre-Trigger is set by default at 50%, which defines the percentage of data to capture before and after the triggering event. You can change this percentage by dragging the slider to a value.
Protocol Analysis Auto Run To repeat the current capture and trigger setup automatically, check the Auto Run checkbox and enter the number of times in the Times text box. The capture and trigger repeat automatically for the specified number of times and the results saved in consecutively numbered Out.smp files.
Protocol Analysis Custom Transaction This mode allows a quick setup to perform a capture that includes or excludes a specific transaction type. To set up a custom capture: 1. Select Custom Transaction from the Data Capture dropdown list. Figure 23 Custom Transaction Dialog 2. Click the down arrow next to the Transaction Type drop down list box and choose a transaction. 3. Click either the Capture or Exclude button to define the capture. 4.
Protocol Analysis Exercise and Capture (Optional) To perform Exercise and Capture you must connect the Exerciser to the port that is used for analysis with the external cable provided. Figure 24 shows a functional Exercise and Capture setup for a High Speed Device. SBAE-30 - Timing and Clock Distribution - Real Time Protocol Error and Event Recognition - High Speed State Machine (Sequencer) MEMORY INRUSH & SUSPEND CURRENT DIGITIZER & MEASUREMENT DEVICE MEMORY ALL SPEED USB 2.
Protocol Analysis Programming the Exerciser in Easy Mode Click the Exerciser Program tab to open the Exerciser Programming dialog box as shown in Figure 25. Figure 25 Exerciser Easy Mode Programming Dialog Box Set up the Device You must use Find Device first to enumerate the device automatically. After enumeration is complete, the system sends SOF or Keep Alive packets to prevent the device for entering a suspended state. Click Find Dev.
Protocol Analysis After a short time the connected USB Device identification appears in the Attached Device list box as shown in Figure 26. Figure 26 Device Identified At this point you are ready to create an exerciser program for the identified Device. As an example, choose Control as the Endpoint Type, Get Descriptor as the command and Device as the Descriptor Type from the corresponding list boxes and click Add. Repeat for additional program steps.
Protocol Analysis Define Loops To define program loops, click under Loops in the program line in which to start the loop and click Start. Similarly click under Loops in the program line in which to end the loop and click End. See page 50 for setting the number of times to run the loop. Enable Exerciser Make sure that the Run Exerciser check box is checked.
Protocol Analysis Settings Click the Settings tab to open the Project settings dialog box as shown in Figure 30. Figure 30 Project Settings Dialog Box Analyzer Speed The default is Auto Speed for automatic speed detection, however, you can force the speed by choosing Full/Low or High for special testing needs. Looping You can specify the number of times to loop the command line(s) or you can run them continually. You can set the number of times from 2 to a maximum of 1,048,575 times.
Protocol Analysis High Speed Test Mode When a High Speed USB Device is set into a Test_Packet mode it must respond with a standard Data0 packet with pre-defined data. Selecting this option allows capture of this packet. High Speed Test Mode Usage 1. Set Test Mode on the Device (the exerciser can do this). 2. On the Settings tab, set Analyzer Speed to High Speed instead of Autospeed and select the High Speed Test Mode. 3. Press Run to capture the test packet.
Protocol Analysis Partial Data Payload Capture To refine the capture check the Partial Data Payload Capture check box, choose a transaction type. You can further enter a Device and Endpoint address, set a limit of the number of bytes to capture or to capture from an offset.
Protocol Analysis Auxiliary Port To perform Hub testing using the Auxiliary port, connect as shown in Figure 31. SBAE-30 - Timing and Clock Distribution - Real Time Protocol Error and Event Recognition - High Speed State Machine (Sequencer) MEMORY MEMORY INRUSH & SUSPEND CURRENT DIGITIZER & MEASUREMENT DEVICE ALL SPEED USB 2.0 ANALYZER HOST MEMORY TIMING ANALYZER MEMORY IC IU MEMORY MEMORY ALL SPEED USB2.0 AUX.
Protocol Analysis Auxiliary Port Data Capture Figure 32 Auxiliary Port Data Capture Selection Analyzer Only When used for Hub testing, the Conquest M2 Auxiliary Port performs as an Analyzer only with pre-defined data capture options and has no triggering capability. Triggering is limited to the Main Analyzer Port. Project Note To enter a note about the current project, click the Project Note tab and enter the data to associate with this project.
Protocol Analysis Advanced Mode (User-Defined) This mode expands Analyzer capability by allowing you to program complex triggering and data capture projects. Such projects are programmed by defining USB transaction packets and then including them for data manipulation and trigger in a sequencer. Additionally, you have the capability to exercise the bus with pre-determined data by programming and invoking the exerciser. Capture Data Project Make sure that the configuration is set to use Advanced Analyzer.
Protocol Analysis Defining Packets You can define up to eight different packets. To define a packet, click the Packet tab to display the packet definition dialog on top.
Protocol Analysis 1.
Protocol Analysis Packet Payload Data For packet types that include payload data, Conquest M2 offers a set of predefined or user-defined data blocks. Data Enter data directly into the data edit box, define a data block by clicking the Data Blocks... button, or open a previously created data block file. For detailed instructions on creating Data Blocks, see “Creating a Data Block” on page 86.
Protocol Analysis Overlap Warning In the event that you make user-defined packet choices that result in overlaps, you get the following warning message. Figure 36 Overlap Warning If you proceed with overlapping selections, you cannot edit the results, because of “don’t care” entries. For example, combining 1101 with 1001 results in 1X01.
Protocol Analysis The Sequencer The Sequencer is for data capture manipulation, generating complex triggering, and starting the exerciser. Sequencer operation at each state controls the Analyzer capture functions in response to specified bus activity. The USB Analyzer Sequencer allows you to define up to 32 states. The Sequencer always starts at “State0”. You can program each state to go to any other state, depending upon the occurrence of packets or events in that state.
Protocol Analysis Programming the Sequencer To program the Sequencer, click the Sequencer tab to display the sequencer programming dialog as shown in Figure 37. Set initial actions: Set trigger, set external bit pattern or start exerciser Define what to capture Set Start or Stop data capture Choose condition for state transition Choose next state Figure 37 Sequencer Programming Dialog The sequencer programming dialog opens with default settings and all of the programmable parameters displayed in blue.
Protocol Analysis Counters The sequencer incorporates two counters each of which you can configure as a timer or an event counter, with the following commands: • Set_Timer1 • Set_Counter1 • Enable_Timer1 • Enable_Counter1 • Set_Timer2 • Set_Counter2 • Enable_Timer2 • Enable_Counter2 Set the counters with the Set_Timer and Set_Counter commands, with corresponding timer or counter values in any state.
Protocol Analysis To define what to capture, click Every_Event to display the capture choices. Every_Event is the default, however, you can choose every packet, a specific packet or event or create a boolean expression from the available choices. Create Boolean Expression You can create a boolean expression by clicking the left mouse button immediately after entering the first parameter, to open the boolean list box. 1.
Protocol Analysis 3. Choose the next state by clicking the blue State1 to display the available states, then choose the next state. 4. Conquest starts capturing all bus activity at start by default. To delay the start of capture until some occurrence, click the blue While button to toggle it to Stop. 5. Define the operation of each additional state similarly. 6. If you are testing for receipt of an expected packet, such as Data or Handshake, select Timeout.
Protocol Analysis Add Else If You can include Else If statements in your program, to allow transition to additional states. Click the Add Else If button to add an else if line to the program. To remove the added Else If, double-click it and choose Delete from the open list box. To Delete a Parameter Highlight it and push the Delete key on the keyboard.
Protocol Analysis Protocol Errors You can set the sequencer to trigger on protocol errors at any state by clicking Packet and then choosing Protocol_Error. To exclude some protocol errors, set the protocol mask as described in the following section. For a description of the detected protocol errors, see page 104. Setting a Protocol Error Mask To mask protocol errors, click the Protocol Errors button on the toolbar to open the Protocol Errors Dialog box.
Protocol Analysis Host Exerciser (Optional) Note: To perform data capture and triggering with exerciser generated data, you must use the Exerciser Port as shown in Figure 3. Programming the Exerciser In Advanced Mode To program the exerciser, click the Exerciser Program tab to open the exerciser programming dialog box, as shown in Figure 39 Figure 39 Exerciser Programming Dialog Box Set the Host Speed First! Click the down arrow for the speed selection drop-down box and choose an operating speed.
Protocol Analysis Insert Program Lines You can insert additional program lines by positioning the cursor on an existing line. Click Add/Insert to toggle to the insert state, enter the number of lines to insert, and click the appropriate line-type button and select the line type to insert. The specified number of lines inserts above the line where you positioned the cursor. Delete Program Lines To delete a program line, position the cursor in the line to remove and click the Delete button.
Protocol Analysis Add a Control Transfer(s) To add a control transfer line, click the Add/Insert Transfer button and choose Control from the drop-down list. Figure 41 Adding a Control Transfer in High Speed Protocol Control Transfers Control Transfers transfer specific requests and commands to a Standard, Class or Vendor Device, Interface or Endpoint. Other user-defined setups are available. The most commonly used is the selection of a request or command for a Standard Device.
Protocol Analysis Transfer Type The default transfer type is Standard. However, you can choose Class, Vendor, or user-defined by clicking the down arrow under Type and choosing from the drop-down list. To choose a Class, click the down arrow under Type and select Class to open the select class dialog. Figure 42 Choosing Class Figure 43 Select Class Dialog Click the down arrow for Select class name, choose a pre-defined class, click OK, then click in the blank program entry area to register the choice.
Protocol Analysis Non Control Transfers Non Control transfers provide for writing data to and reading data from a Device, Interface, or Endpoint. Non Control transfers are provided for Bulk, Interrupt, or Isochronous data transferring. Add a Data Transfer(s) Click the Add/Insert Transfer button and choose a data transfer from the drop-down list, for example, Bulk Out.
Protocol Analysis Define Endpoint Settings 1. Click the Define/Modify endpoint settings button to open the endpoint setting dialog. Figure 47 Endpoint Setting Dialog 2. Highlight the Device Address, highlight each endpoint, enter a packet size value in the Max Packet Size text box (for a value other than the default 8), and click the Add button until all endpoints appear in the Endpoint Properties box. 3. Click OK.
Protocol Analysis Specifying a New Class 1. Click the Classes button on the Select Class dialog to open the Class & Class Requests Definition Dialog. Figure 48 Class & Class Requests Definition Dialog 2. Click the Add Class button, enter the new class name in the Enter Class Name dialog, and click OK.
Protocol Analysis 3. Highlight the new class name and click the Add button to open the Request Specification dialog. 4. Enter a request name, request type code and a data default value, and click OK. 5. Repeat for all requests for the new class. 6. To modify a previously entered request, click the Modify button, enter the new parameters in the Request Specification dialog, and click OK. Specifying Data for Transfer You can define data for transfer at the Transfer layer or at the Transaction layer.
Protocol Analysis Specify data in Transaction layers Transfers specified in Transaction layers are a flexible way to set up a Transfer with different data patterns in each transaction for that transfer. 1. Insert a Transfer type, click Transactions No, and enter a number of transactions. (The following example shows three entered). 2. Expand the transfer to display the created transactions. 3. Expand each transaction and enter data to transfer by that transaction.
Protocol Analysis Zoom In/Zoom Out Clicking a Zoom button on the toolbar optimizes the size of the displayed code lines. Zoom In Zoom Out Forcing Errors You can introduce errors for any field of a packet by highlighting the field to change and making the change directly in the field. Bit Stuff error (unchecked has Bit Stuff) and force no EOP (unchecked has EOP) are available by right-clicking the packet.
Protocol Analysis Set up Loops To set up a loop in the exerciser program, right-click next to the line to start the loop and choose Start Loop. Similarly right-click next to the line to end the loop and choose End Loop. Figure 53 illustrates a programmed loop.
Protocol Analysis Deleting Loops To delete a loop, right-click the Start Loop or End Loop symbol and click the appropriate Start Loop or End Loop in the menu to remove the check marks. Loop count Loop count is the number of times to execute a loop. You can set the loop to execute a fixed number of times or to run continually, on the Settings tab, as described on page 92.
Protocol Analysis Reduced Bit Width Full/Low Speed Mode Only The reduced bit width feature is available for the Full/Low speed mode only. Adjustable bit width of 40, 60, 80, and 100% is allowed for all packet fields, except data, for Device response testing. You can reduce bit width for all bits in a packet or individual bits in a packet. To set the Bit Width Right-click in a packet field and choose Bit Width to open the Set Bit Width dialog.
Protocol Analysis Exerciser Programming Shortcuts You can quickly create an exerciser program from an existing *.smp file. There are two ways to quickly create an exercise program. You can import a complete *.smp file or open an *.smp file and copy the lines. Creating an Exerciser Program by Importing Right-click in an open Exerciser Program window and choose Import from SMP file to open the File Import dialog. Figure 55 Import Exerciser Program Figure 56 File Import Dialog Choose an *.
Protocol Analysis Refresh the Program Click the Refresh Timing button on the Exerciser Program toolbar. For Full/ Low speed projects you must choose the operating speed from the refresh button’s drop-down list. Refresh Timing button Auto Refresh Choosing Auto Refresh adjusts the starting time of packets, transactions, and splits automatically after a paste operation. Manual Refresh Choosing Manual Refresh requires you to adjust start times yourself.
Protocol Analysis Advanced Refresh Advanced Refresh specifies the refresh range and changes device addresses and endpoint numbers for all selected transactions. Right-click in the exerciser program area and choose Advanced Refresh to open the advanced refresh dialog.
Protocol Analysis Creating an Exerciser Program by Copying and Pasting To create an exerciser program by copying and pasting: 1. Open an *.smp file, hold down the left mouse button, draw a rectangle around a group of data lines with the mouse cursor, and then release the mouse button to select them. Figure 58 Lines Selected Note: The appearance of red check marks next to the lines indicates that they have been selected. 2. Click the Copy. Copy button, or right-click the data area, and choose 3.
Protocol Analysis 4. Click the Paste button, or right-click the exerciser program area, and select Paste. Figure 59 New Exerciser Program Refresh When copying and pasting program lines from different projects, it is recommended that you refresh the program window prior to running the program. This is required to ensure correct start time computation, which is dependent on consistent project speed definition.
Protocol Analysis To Refresh the Program Click the Refresh button on the Exerciser Program toolbar. For Full/Low speed projects, choose the operating speed from the Refresh button’s drop-down list. Auto Refresh Choosing Auto Refresh adjusts the starting time of packets, transactions, and splits automatically after a paste operation. Manual Refresh Choosing Manual Refresh requires you to adjust start times yourself.
Protocol Analysis Creating a Data Block You can create the following four types of data blocks for use wherever data fields are used: • Custom data pattern specifically for your application • Random data pattern • Counter • Walking “1” or “0” pattern. 1. To create a data block, click the Default Data Block button on the Main toolbar to open the Data Block dialog box, as shown in Figure 60. Figure 60 Default Data Block Dialog Box 2.
Protocol Analysis Naming a Data Block Each new data block is automatically assigned a sequential data block number as it is created. To assign a unique descriptive name to a data block, right-click the data block name to open the data block edit menu. Choose Rename. Enter a descriptive name in the New Name edit box and click OK. Figure 62 Sample Active Data Block Hub Port Power You can enter data in the defined cell structure by choosing one of the four available methods.
Protocol Analysis Define Your Own Pattern To define a pattern: 1. Click the Generate button and choose Pattern to open the Define Pattern dialog box, as shown in Figure 63 2. Enter a data pattern in the Data Pattern edit box. 3. Choose the number of times to repeat that pattern and click OK. Figure 63 Define Your Own Data Pattern Address The cell address starts at 0 for the first data entry and automatically increments to the next available address as data is written.
Protocol Analysis Counter To use a counter as data, click the Generate button, choose Counter, enter a Starting Number for the counter, enter the data address to which to count, and click OK. Figure 64 Set Counter as Data Random Data Pattern To use a random data pattern, click the Generate button, enter the number of times to repeat the pattern, and click OK.
Protocol Analysis Walking Bit Pattern To use a walking bit pattern, click the Generate button. Choose a walking bit of “0” or “1”, the walk direction, the start position, and the number of times to repeat the pattern.
Protocol Analysis Creating and Editing Data Blocks as Text You can create and edit data blocks using a text editor such as Windows® Notepad. To create a data block in Notepad, launch Notepad and enter the data in space-delimited Hex format. Save as a *.txt text file. Import from Text File To import Text Editor created data, click the Import button in the data block definition dialog and choose Import from Text File to open the Open dialog. Choose a file and click Open.
Protocol Analysis Settings Click the Settings tab to open the Settings dialog. See “Settings” on page 50 for descriptions of settings options. Analyzer Only When used for Hub testing, the Conquest M2 Auxiliary port performs as an analyzer only. Project Note To enter a note about the current project, click the Project Note tab and enter the data to associate with the project.
Protocol Analysis Running the Project Set Data Capture Options Capture to Memory You can limit the captured data display to a specific number of samples by checking Partial Memory and entering the number of Samples to capture. Alternatively, you can check Entire Memory to allow capture for the entire memory. Choosing Partial Memory results in less time to display results. Pre-Trigger Pre-Trigger is set by default at 50%, which defines the percentage of data to capture before and after the triggering event.
Protocol Analysis Reports When a data capture is in the sample viewer, you can view either a packet data summary Statistical Report or a Data Report. To View a Report Right-click in the right side display area and choose Report. You can also access the reports from the sample viewer toolbar. View Statistical Report Choose Statistical Report to open the Select Statistical Report Range dialog. Select a report range and click OK to display the result as shown in Figure 70.
Protocol Analysis View Data Report Choose Data Report to open the Select Report Type dialog. Figure 71 Select Report Type Dialog Make selections to view the report on Transaction or Endpoint type Device Address(es), Handshake, or all. You can specify to report on all samples, between specific cursors, or between specific events. Make a choice and click OK to display the result as shown in Figure 72.
Protocol Analysis Data Report Settings You have a number of choices to set up the way the data report is displayed. To set up a data report view, right-click in the data report, then select View Setting and Setting Dialog to open the Data Report Setting dialog. Figure 73 Data Report Setting Dialog Data Format You can display the data in the report as Binary or ASCII, instead of the default Hex, by checking the appropriate button.
Protocol Analysis View Data Report Statistics Click the Data Report Statistics button on the data report toolbar to display the data report statistics. Linked display Data Report Statistics Figure 74 Data Report Statistics Displayed Linked Displays Clicking a Transaction/Transfer type in the Report Statistics window causes a cursor to go to the first instance of that Transaction/Transfer type in the Data Report window.
Protocol Analysis Customize the Display You can select for display only specific items for a specific project. To set up the display, click the Report Display Settings button on the Data Report Statistics Toolbar. Figure 76 Report Display Settings Dialog Uncheck the items to exclude from the display.
Protocol Analysis Search a Data Report for a Pattern When a data report displays, you can quickly search for a data pattern in Hexadecimal, Binary, or ASCII, or a pre-defined data block. To search for a data pattern or a data block in a data report, click the Search button on the toolbar to open the Search for Data Pattern dialog. To search for a data pattern, enter the data pattern in the Data Pattern text box and click OK.
Protocol Analysis Interpret Data You can display a decoded descriptor or request data by selecting Interpret Data. Click the Interpret Data button on the toolbar to display the data interpretation for all transfers. Figure 78 Interpret Data Configuration Display To close a data interpretation for a transfer, click the Device Descriptor field. Click the field again to open it.
Protocol Analysis High Level Interpretation Assignment High level interpretation assignment is a results analysis tool that allows decode and identification of upper level protocols used by a known device. Standard requests are interpreted automatically. However, Class requests require assignment of an appropriate protocol. To assign a protocol for a High Level interpretation in an open results window, click the NCX HLD button on the main toolbar to open the High Level Interpretation Assignment dialog.
Protocol Analysis To view the interpretation for a transaction, click the down arrow for the interpretation flag on that transaction. Interpretation flag Figure 80 Upper Level Interpretation Result User-Defined Decodes The user-defined decode feature allows you to create custom Upper Level interpretation tables by using a text based scripting language and to save them as *.asl files. For a syntax definition of the scripting language, see “Appendix A” on page 203.
Protocol Analysis Click Add to access previously created protocol script files. Figure 81 Choosing a Custom Script File Choose a script file from the Select Script File dialog, then click Open to add this file to the Defined Protocols list. Repeat for additional protocols. You can now assign this protocol as described on page 101.
Protocol Analysis Protocol Errors Conquest monitors and captures a variety of real time protocol errors every time that a data capture is made. The Conquest Protocol Suite software also detects post-process protocol errors.
Protocol Analysis Protocol Errors Detected Post-Process Packet Protocol Errors Detected Err16 SOF at Low speed. Start of frame packet, SOF, cannot be used in low speed mode. Instead of this packet, a keep-alive event is expected. Err17 Packet Size is big. Indicates that the total number of bits received for a given packet exceeds the expected number. Err18 Truncated Packet. Indicates that the total number of bits received for a given packet is less than the expected number.
Protocol Analysis Transfer Protocol Errors Detected Err43 Invalid Data payload. Data payload of the transaction during this transfer is invalid. Err44 Status Stage has error. Err45 Status Stage for this Transfer not found. Err46 Data Payload Speed Error. Speed for Data Payload has error. Err47 Status Stage Speed Error. Speed for Status Stage has error.
Protocol Analysis Pre-Trigger You can set the amount of data to capture before and after the trigger as a percentage of pre-trigger, between 1% and 99%, by positioning the pre-trigger slider. This feature allows evaluation of bus activity leading up to and after the triggering event. The operation of the pre-trigger in the data memory is conceptually illustrated in Figure 82. Capture of the specified percentage of data prior to the triggering event cannot be guaranteed and may in some cases be 0.
Protocol Analysis 108
Performance Analysis Performance Analysis Conquest has two modes of operation: • An Easy Mode for immediate Performance Analysis with a minimum of setup. • An Advanced Mode allowing you to program a custom performance analysis. Note: The Performance Analyzer attempts to present an accurate view of data performance. In some small time intervals, due to sampling issues, it is possible that incorrect values will occasionally be presented.
Performance Analysis Set up 6. Click the Performance Options tab to display the Performance Options dialog box. Figure 83 Performance Analysis Options Dialog Box 7. Choose a Performance Option by clicking the appropriate option button and then check an appropriate item check box in the Items List. Note: Calculation Formula - The relationship used for the selected Performance Option and Item is displayed in blue in the Calculation Formula box. 8.
Performance Analysis Run Exerciser Note: Make sure to check the Run Exerciser check box. Click the Settings tab to open the settings dialog box and click the Infinite option button to loop continually or the Number option button and enter the number of times to run the program. Figure 84 Settings Dialog Box Click Run.
Performance Analysis Performance Analysis (Advanced Mode) Conquest M2 has two ways to do Performance Analysis: Real-time and Statistical Trace analysis. Real Time analysis uses hardware counters and dual ported FIFOs. These counters continually count the events and interface with the CPU via the FIFO to pass the results. This method results in the most accurate measurement, since the counters never stop for reading. Advantage Continuous Real-Time measurement.
Performance Analysis Perform a Pre-defined Analysis To analyze: 1. Select File on the main toolbar and choose Open. 2. Select a pre-defined analysis file and click Open to load the project. 3. Click Run to perform the analysis. Create a New Analysis Click New Project button on the main toolbar to open the Project Setup dialog and click Performance Analyzer. Check the Performance - Advanced option and then the Create Project button to open a Performance Analysis Project.
Performance Analysis Define Packets Select the Packets tab. Figure 86 Performance Analysis Dialog Box Define the packet types to use in the analysis from the Packet Type list box for each packet. See “Defining Packets” on page 56. Program The Exerciser To use the exerciser, click the Exerciser program tab. Program the Exerciser as described in “Programming the Exerciser in Easy Mode” on page 47 or “Programming the Exerciser In Advanced Mode” on page 67 to match the Exerciser mode selected.
Performance Analysis Creating Analysis Expressions The Analyzer includes four counters and four timers to use to create Analysis expressions. To create an analysis expression, you must first assign a packet, event, or a logical expression to a counter and/or timer included in the Analysis expression. To perform the assignment: 1. Click the Performance Options tab to view the Performance Options setting dialog box. Figure 87 Performance Options Setting Dialog Box 2.
Performance Analysis To Define a Logical Expression 1. Choose EXPRESSION in the drop-down list next to a counter or timer to open the logical Expression dialog box. 2. Double-click the Name that to include in the logical expression, click the OR operator, double-click the next name for the expression, and click OK. 3. Click the Expressions tab to view the analysis expression dialog box and create an analysis expression using the counters and/or timers set up with parameters.
Performance Analysis Create an expression Click the Add button to open a blank expression line. You can enter the expression by double-clicking the event’s name and an operator or by double-clicking the blank expression line to open the Expression Dialog and typing an expression directly. Name the Expression Double-click the New Expression name field, enter an expression name in the Expression dialog, and click OK. Repeat for additional expressions.
Performance Analysis Choose Results Display Click the Performance Options tab to view the Performance Options setting dialog box. Figure 89 Choosing Display Options 4. Choose the counters, timers, or expressions for display and the type of display, for example, report, chart, or both. 5. Click the Setting tab to view the Performance Analysis settings dialog box. Figure 90 Performance Analysis Project Settings Run Exerciser Click the Run Exerciser check box if you are using an exerciser program.
Performance Analysis Choose Time Interval Drag the Time interval scroll bar to set the time interval for the performance analysis. Loop Exerciser Choose exerciser looping by checking infinite or number with a number of loops entered in the adjacent edit box. Project Note To attach a descriptive note to the project, click the Project Note tab and enter information about the project.
Performance Analysis Run Click Run to start the analysis and the real time results display. Figure 92 Performance Analysis Real Time Display To stop the performance analysis, click the toolbar. Stop button on the main Alternate Display Format You can choose to display the result as 2D, 3D, and so on, by clicking the corresponding Graphics Setting on the Performance Analysis display toolbar.
Performance Analysis Saved Performance Analysis Review Conquest M2 can review the results of previously performed and saved performance analyses. Click View on the toolbar and then select Performance Analyzer Review. The Open dialog box opens.
Performance Analysis Select a previously generated performance analysis file *.paf and click OK to open the performance analysis window for the saved analysis. Figure 93 Review of Previously Saved Performance Analysis To perform the review, you can drag the scroll bar on the Play Control Panel to a location, or command it to step through the analysis automatically.
Timing Analysis (Optional) Timing Analysis (Optional) Note: High Speed Timing Analysis is not available in Conquest. It is available in Conquest M2 (see “Conquest M2 versus Conquest” on page 1). Easy Mode Timing Analysis You can perform a timing analysis only or together with a protocol analysis. To perform a Timing Analysis: 1. Define a trigger on the Data Capture and Trigger Page or check the Trigger on Timing Pattern and specify pattern parameters. 2.
Timing Analysis (Optional) 4. Click Run. Figure 95 Timing Analysis Result Using Cursors You can use the cursors to make measurements within the display. For a description of using the cursors, see “Using the Cursors and Bookmarks” on page 186. Saving the Result To save the timing analysis result for later review, click File on the main toolbar and choose Save As to open the Save As dialog. Enter an appropriate file name and click Save.
Timing Analysis (Optional) Advanced Mode Timing Analysis You can perform a timing analysis only or together with a protocol analysis. To perform a Timing Analysis: 1. Define a trigger on the Sequencer Page or check the Trigger on Timing Pattern and specify pattern parameters. 2. Click the Timing Analyzer tab and check either the Timing Analyzer or Both Analyzers button in the Enable area, as shown in Figure 96. 3. Click the Run button.
Timing Analysis (Optional) Results Display You can customize the results display by adding or removing signals from the display and using cursors and bookmarks to make timing measurements and mark results for later review. For ways to customize the results display, see “Timing Analysis Display” on page 183. For filtering, see “Filter” on page 180. For using cursors and bookmarks, see “Using the Cursors and Bookmarks” on page 186. Timing Analyzer Errors Invalid EOP FS/LS: Detected short EOP or long EOP.
Timing Analysis (Optional) Saving the Result To save the timing analysis result for later review, click File on the main toolbar and choose Save As to open the Save As dialog. Enter an appropriate file name and click Save.
Timing Analysis (Optional) 128
Device Emulation (Optional) Device Emulation (Optional) This mode allows you to operate Conquest M2 as a Device for testing the USB host operation. Conquest M2 can be a Low, Full, High, or a High/Full speed Device. Each Device can include up to three configurations with two interfaces each. You can assign a total of seven endpoints to these interfaces. Figure 98 shows a functional connection for the Conquest M2 operating as a Device.
Device Emulation (Optional) Device Emulation (Easy Mode) Programming the Device To open a new Easy Device Emulation project, select File > New and choose Easy Device Emulation. You can also open a default Easy Device Emulation Project. To open the default project, click the New Project button on the main toolbar to open the Project Setup dialog and then click Device Emulation & OTG Exerciser. Click the Easy Device Emulation icon to launch the default device emulation.
Device Emulation (Optional) The Device Emulation dialog opens with a default hierarchy as shown in Figure 99. Figure 99 Device Mode Setup Dialog You can add configurations to a total of three. Each configuration by default opens with one interface. You can add interfaces to total two per configuration. Each interface by default opens with one Alternative Setting with one endpoint. You can add Alternative Settings to total four for each interface, but no more than seven total for the Device.
Device Emulation (Optional) 3. Define Device Descriptors. Click the Device Descriptor button and enter the parameters for the Device in the Descriptor dialog, as shown in Figure 100. Figure 100 Defining Device Descriptors Define Configuration A Device initially opens with one configuration. You can add additional configurations, up to a total of three, by clicking a Device then the Add Configuration button.
Device Emulation (Optional) Define Endpoint A Device allows up to a total of seven endpoints under defined alternative settings. You can add endpoints by clicking an alternative setting then the Add Endpoint button. To define the endpoints, select an endpoint and click the Endpoint Descriptor button to display the Endpoint Definition dialog, shown in Figure 101.
Device Emulation (Optional) Error Types Check error type boxes from the available errors listed in the Error Types group box for errors to introduce. Loopback Checking this option for OUT endpoint causes the data received from the Host for the OUT endpoint to return to the Host on the IN endpoint with the same endpoint number. The IN endpoint is automatically selected when you check Loopback. Do not define another IN Endpoint, because checking Loopback does it automatically.
Device Emulation (Optional) Independent Descriptors To define Independent descriptors, enter a binary Descriptor Type, click the check box for that Descriptor Type, and enter the data (up to 256 bytes) to return in response to a Get Descriptor request. Responses support requests with index 0. Note: You can set only the six most significant bits of the Descriptor Type. Do not set the descriptor type to the same value as any standard USB descriptor.
Device Emulation (Optional) Activate Device Click the Deactivate Device button to activate the Device. Note the “Device: Active” indication on the taskbar displays green. Note 1 After setup is complete, you do not have to activate the device immediately. You can close the dialog, perform other tasks, and then activate the device. Note 2 To make the just-defined Project the Default Project, click the Save button on the main toolbar.
Device Emulation (Optional) Endpoint Errors Generated by OTG DRD & Device Emulation Synch Generates the KJKJKJJJ pattern for Synch field. Not available in HS Pid Check field contains the same bits as PID field. Invalid Pid Uses Reserved PID field value of 0000b and Check field value 1111b. Bit stuffing Disables bit stuffing. Not available in HS CRC Incorrect CRC for data packets Not available in OUT endpoints EOP Length FS/LS: The transmitted SE0 is approximately 1 bit time in width.
Device Emulation (Optional) Device Emulation (Advanced Mode) To overcome some limitations of Easy Device Emulation, such as constant data payload for In endpoints, Advance Device Emulation provides Command Sets to respond with different pre-defined data to host requests. Each command MUST start with Out or Setup Transaction, along with a unique data pattern defined in its Data Payload. Each command acts as a State machine and works as in the following example: 1.
Device Emulation (Optional) Test Mode Test mode is used for working with a host without performing the enumeration phase and setting the device address. • • Set Address is not needed. SetConfiguration and SetInterface commands are required to select proper configuration and interface within the device. Programming the Device To open a new Advanced Device Emulation project, select File > New and choose Advanced Device Emulation. You can also open a default Advanced Device Emulation Project.
Device Emulation (Optional) Click the Advance Device Emulation icon to launch the default Advanced device emulation. Figure 104 Advanced Device Mode Setup Device structure and supported class requests are defined in the same manner as Easy Device Emulation as described starting on page 131. Note however that all of the endpoint behavior settings are grayed out because the endpoint responses are programmed in the supported commands page. Define Command sets on the Supported Commands page.
Device Emulation (Optional) 1. Click the Supported Commands tab to open the Supported Commands Entry dialog, as shown in Figure 105. Figure 105 Supported Commands Entry Dialog 2. Click the Add button to open the command name dialog. Figure 106 Adding a New Command 3. Enter the command name and click OK. 4. You can also select the default New Command and rename it. 5. Click the transaction button on the dialog toolbar to display the transaction drop-down list. 6.
Device Emulation (Optional) 9. You can define additional command sets by repeating the above steps. Note To make the just defined Project the Default Project, click the Save button on the main toolbar. To leave a previously defined Default Project intact, click File on the main toolbar and choose Save As to save the project with a new name. Data Toggle Selection 1. To handle HS traffic as described in the USB 2.0 specification, select Manual Toggle. 2.
Device Emulation (Optional) Importing a Pre-defined Project 1. Click the Import button to open the Import from dialog. 2. Choose a previously defined Project and click OK. Figure 107 Previously Defined Command Set Click the Auto Data Toggle button on the main toolbar and choose Auto Toggle to toggle sent data per specification or Manual Toggle to send data as programmed.
Device Emulation (Optional) 144
OTG Exerciser (Optional) OTG Exerciser (Optional) This option provides for testing OTG development devices. The OTG Exerciser essentially is a Full/High speed OTG Dual-Role Device that can act as a host or a peripheral. OTG Exerciser as an A-Device To operate the OTG Exerciser as a DRD A-Device, connect it with a DUT OTG B-Device as shown in Figure 108. To operate as an A-Device, plug the Mini-A side of the cable into the OTG exerciser port.
OTG Exerciser (Optional) Programming the Device To open a new Advanced OTG Dual-Role Device Project, select File > New and choose Advanced OTG Dual-Role Device Project. You can also open a default Advanced OTG Dual-Role Device Project. To open a default project, click the New Project button on the main toolbar to open the Project Setup dialog and click Device Emulation & OTG Exerciser.
OTG Exerciser (Optional) Click the Advance OTG Exerciser icon to launch the OTG Exerciser. Figure 109 OTG DRD Setup Dialog Define the Device 1. Enable/Disable OTG Exerciser response to SRP by checking or unchecking the A-Device SRP Support check box (Normally enabled). 2. If SRP is enabled, choose the response type as either Data Line Pulsing or VBUS Pulsing. 3. Assign the Device speed from the Device Speed drop down list as Full, or High. Note that the speed selection must match that of the DUT.
OTG Exerciser (Optional) 3. The OTG Exerciser loop counter is set in the Exerciser Program dialog. Set_Feature HNP Event Figure 110 Inserting a Setup Transaction Note: To enable HNP in the exerciser program, you must incorporate program lines as shown in Figure 110. The exerciser code example shown in Figure 110 specifies the DUT SetFeature(b_hnp_enable) and sets up a role switch (HNP Event).
OTG Exerciser (Optional) Define OTG Device Configuration Programming the OTG device is performed in the dialogs of the Device Structure and Class Request\Other Descriptors tabs. The procedural steps for programming is identical to that described for Device Emulation starting on page 130. Differences from Device Emulation The OTG DRD Setup dialog opens with a default hierarchy as shown in Figure 109. You can add configurations to total 3. Each configuration by default opens with one interface.
OTG Exerciser (Optional) Dropping a Session A-Device controls the VBus and may drop it at any time. A session for the OTG Exerciser in this mode ends when the exerciser program completes. When a session is in progress and VBus is asserted, the Drop Session button can be active. Stop a session by clicking this button. Note: There may be cases where the Drop Session button appears never to be enabled. This occurs in cases where a session is completed in a very short time.
OTG Exerciser (Optional) Define the Device You can define the OTG Exerciser to be an SRP only capable peripheral or to include HNP support as well. To define the device: 1. Enable/Disable OTG Exerciser B-Device SRP and/or HNP response by checking or unchecking the corresponding check boxes in the Device Mode Dialog. You can alternatively set these responses in the OTG Descriptor dialog by changing the bit assignment directly.
OTG Exerciser (Optional) Define OTG Device Configuration Programming the OTG device is performed in the dialogs of the Device Structure and Class Request\Other Descriptors tabs. The procedural steps for programming is identical to that described for Device Emulation starting on page 130. Differences from Device Emulation The OTG DRD Setup dialog opens with a default hierarchy as shown in Figure 109. You can add configurations to total 3. Each configuration by default opens with one interface.
OTG Exerciser (Optional) Requesting a Session Once you have configured the device and completed an exerciser program (if required), you must activate the device by clicking the Activate Device button. If at this time the OTG Exerciser does not detect presence of VBus, the Request Session button is enabled. You can now click the Request Session button and wait for DUT (A-Device) to initiate SRP.
OTG Exerciser (Optional) Session Request Protocol (SRP) To conserve power, the OTG supplement allows an A-device to leave VBUS turned off when the bus is not being used. If the B-device wants to use the bus when VBUS is turned off, the B-device can use the OTG-supplement Session Request Protocol (SRP) to request the A-device to supply power on the VBUS. The SRP has two methods that the B-device uses to request that the A-device begins a session: data-line pulsing and VBUS pulsing.
Current Measurement (Optional) Current Measurement (Optional) Current measurements are performed using the USB 2.0/1.x Analyzer, Exerciser, and Inrush Current connector and require unplugging and reconnecting the Device cable in accordance with on-screen commands. Figure 113 shows the functional connection used for measuring Unconfigured and Suspend current.
Current Measurement (Optional) Unconfigured Current Measurement The Unconfigured current measurement requires the interaction of the exerciser to place the Device in the unconfigured state. Prior to making the measurement you must connect the external cable provided between the USB 2.0/1.x Analyzer Host connector and the Exerciser Port. See Figure 113 on page 155. Click the black current measurement button in the Current & Voltage Measurements project selector to open the Unconfigured Current dialog.
Current Measurement (Optional) The system performs the measurement and displays the result. Figure 115 Unconfigured Current Measurement Results Display Stop the Measurement In the graphical display, to stop the display from scrolling, click the Stop button in the Measurement Results dialog. Figure 116 Unconfigured Current Chart Display Print Result You can print a summary of the current measurement by clicking Print in the Measurement Results dialog.
Current Measurement (Optional) Operating Current Measurement To perform this measurement, connect the USB Device and PC to the USB 2.0/1.x Analyzer port SBAE-30 - Timing and Clock Distribution - Real Time Protocol Error and Event Recognition - High Speed State Machine (Sequencer) MEMORY INRUSH & SUSPEND CURRENT DIGITIZER & MEASUREMENT DEVICE MEMORY MEMORY ALL SPEED USB 2.0 ANALYZER TIMING ANALYZER HOST DEVICE HOST CONTROLLER MEMORY IC IU MEMORY MEMORY MEMORY ALL SPEED USB2.0 AUX.
Current Measurement (Optional) Click the Green button in the Current & Voltage Measurements project selector to open the Operating Current Measurement dialog. Figure 118 Operating Current Measurement Dialog Box To display the suspend current as a function of time, check the Show Chart check box. Click Start.
Current Measurement (Optional) Connect, click OK, and wait for the measurement result to appear. Figure 119 Operating Current Measurement Results Display Stop the Measurement In the graphical display, to stop the display from scrolling, click the Stop button in the Measurement Results dialog. Figure 120 Operating Current Chart Display Print Result You can print a summary of the current measurement by clicking Print in the Measurement Results dialog.
Current Measurement (Optional) Making the VBus Measurement Make sure that the host is plugged in the Analyzer port. Click the blue VBus button in the Current & Voltage Measurements project selector to open the VBus Measurement dialog. Figure 121 VBus Measurement Dialog Box To display the VBus measurement as a function of time, check the Show Chart check box. Click Start.
Current Measurement (Optional) Click OK, and wait for the measurement result to appear. Figure 122 VBus Measurement Results Display Stop the Measurement In the graphical display, to stop the display from scrolling, click the Stop button in the Measurement Results dialog. Figure 123 VBus Measurement Chart Display Print Result You can print a summary of the VBus measurement by clicking Print in the Measurement Results dialog.
Current Measurement (Optional) VBus Droop Measurement The VBus droop measurement determines the VBus voltage drop when a new device (load) is attached to the USB bus. The VBus droop measurement is performed with the analyzer and a USB host connected as shown in Figure 124.
Current Measurement (Optional) To start test, click Run. This opens a reminder prompt to make sure that the initial test setup is in place. Click OK to continue the test. A flashing prompt asks you to connect the Standard Load #2 to the Analyzer. Once the Standard Load #2 has been connected the test proceeds to display the measurement result.
Current Measurement (Optional) Inrush Current Measurement This test measures inrush current for the connected Device over the first 10 milliseconds of Device activation. The current measurement result is saved in a default file “Out.irc” which is overwritten every time that you perform a measurement unless you specify a new file name for each measurement made. Figure 126 shows the functional connection for inrush current measurement.
Current Measurement (Optional) Click the Run button and follow the on-screen prompts. Plug the Device into the Inrush port, click OK, and wait for the next prompt. Unplug the Device from the inrush port, click OK, and wait for the next prompt. Plug the Device back into the Inrush port. If this action does not open the result display, the inrush current is below the minimum threshold detected by Conquest M2. In this case, you can perform the measurement again by clicking Run.
Current Measurement (Optional) This is not an error, but an indication that Conquest M2 needs to switch range. To continue with the measurement, click OK followed by Run. Figure 128 Inrush Current Measurement Result Display Inrush Current Display Features A number of display features allow a detailed examination of the inrush current display. Click the cursors button on the inrush current display toolbar to enable the cursors.
Current Measurement (Optional) Inrush pass/fail The Inrush pass/fail is determined by the area under the curve and above the Y=100 mA horizontal line. If the area is less than 50 uC, the test is reported as a pass. Show/Hide curve information button Figure 129 Inrush Current Display With Cursors Enabling the cursors allows you to make precise measurements in the display.
Current Measurement (Optional) Optimize the Display To optimize the display for viewing, click the Best Fit button on the display toolbar. Zoom In/Zoom Out To zoom in or out around the cursor position, click the Zoom In or Zoom Out button. Grid Click the Grid button to enable a grid in the display.
Current Measurement (Optional) Suspend Current Measurement The Suspend current measurement requires the interaction of the exerciser to place the Device in the suspended state. Prior to making the measurement you must connect the external cable provided between the USB 2.0/1.x Analyzer Host connector and the Exerciser Port.
Current Measurement (Optional) Connect, then click OK. The system performs the measurement and displays the result. Figure 131 Suspend Current Measurement Results Display Stop the Measurement In the graphical display, to stop the display from scrolling, click the Stop button in the Measurement Results dialog. Figure 132 Suspend Current Chart Display Print Result You can print a summary of the current measurement by clicking Print in the Measurement Results dialog.
Current Measurement (Optional) Current Measurement Calibration Board The Current measurement calibration board is provided to verify the current measurement functionality of Conquest M2. Figure 133 Current Measurement Calibration Board Table 6 shows the connections to the Analyzer, calibration board switch settings and pass/fail criteria for the tests.
Current Measurement (Optional) Note: When performing inrush current measurements, use the 4” (10cm) supplied cable and repeat the measurement until you get a clean result without any extra spikes, as shown in Figure 134. Figure 134 Clean Inrush Measurement Result Note: There is a ±10% tolerance on the measurements limited by the components on the calibration board.
Current Measurement (Optional) 174
Display Manipulation Display Manipulation You can configure the captured data display test and viewing preferences. Figure 135 Captured Data Display Simplify Tool Bar To simplify the working area, you can temporarily hide toolbars for features that you are not using. Click View > Toolbars Uncheck the toolbars to temporarily hide. You can restore them by following the same procedure and checking them for display.
Display Manipulation Results Display Viewing Preferences You can vary the level of detail presented by using some of the following display modification features: The Full Screen button expands hides the main toolbar and increases the data display area on the screen. The Show/Hide Splits button expands or collapses a data line to show or hide splits. The Show/Hide transfers button hides or displays transfers. The Show/Hide transactions button expands or collapses a data line to show or hide transactions.
Display Manipulation Compact View You can view the results display in a more compact form by hiding the headers in the results display. Clicking the down arrow on the Show/Hide Headers button allows you to Show all Headers, Hide All Headers, or to Hide Repeated Headers. Figure 136 shows a results display with all headers hidden.
Display Manipulation Display Idle Time Click the Show/Hide idle time button on the toolbar to display time between events. The button is shown in the Hide Idle time state. Figure 137 Time Between Events Display Enabled Click the Show/Hide idle time button on the toolbar to remove the time display between events. The button is shown in the Show Idle time state.
Display Manipulation Waveform Display You can open a Waveform display that corresponds to the packet at the X-cursor position by right-clicking in the data display area and choosing Show Wave. Figure 139 Wave Display Selected Clicking the waveform display.
Display Manipulation Filter Filtering allows you to modify data in the display to exclude a set of user-defined patterns and save the result in a new file. Available filtering patterns include Fields, Packets, Transactions and Events. Click the patterns. Filter button on the display toolbar to set up the filtering Figure 140 Filter Setup Dialog Click OK and note that the selected filtering patterns are not in the data display.
Display Manipulation Smart on Screen Filtering In addition to the normal filtering function, Conquest M2 offers a quick way to filter the result. You can quickly filter out Device-related-, Keep Alives, SOF, and NAK transactions. To perform Smart filtering, right-click the results area and choose a filtering action.
Display Manipulation Filter from Toolbar You can quickly filter SOF, NAK, Keep Alive, and Device Transactions by clicking the corresponding button on the main toolbar. Only Transactions Present Filtering buttons are enabled only for the transactions that occur in the results display. Save Display Settings Once you have set all display settings, you can save them in a file for use later on similar applications.
Display Manipulation Timing Analysis Display All USB signals are always captured and stored on disk, but may not be displayed in the results display, unless you select them for display. Click the Setup Screen button on the timing results display toolbar to open the Active Signals Dialog box. Figure 143 Active Signals Dialog Box Select a signal in the Active Signals or the Remaining Signals list and use the Add-> and <-Remove buttons to set up signals for display.
Display Manipulation Set Timing Display Viewing Options The Active Signals Dialog allows you to set up additional options for viewing the timing analysis result. Show Differences in Time/Clock Click the Show differences in Time button to display cursor position in time units or the Show differences in Clock button to display cursor differences in number of clocks. Show Grid Lines Click the Show Grid Lines check box to enable grid lines in the results display.
Display Manipulation Zoom around cursors To zoom around either the X or Y cursor, click the cursor to make it active and then slide the zoom slider right or left for a magnification. For incrementing or decrementing the magnification, click the right or left arrow on the zoom slider, respectively. To quickly access additional zoom options, right-click the zoom slider to display the additional zoom choices.
Display Manipulation Using the Cursors and Bookmarks The captured data display incorporates three cursors labeled X, Y and T (See Figure 135). All of the cursors are initially overlaid and positioned at location 0, which is the trigger position of the display. The Trigger, or T, cursor is the measurement reference and is always locked at location 0 in the display. Positioning the X Cursor To position the X-Cursor within the captured data display, click the line in which to place the cursor.
Display Manipulation Bookmarks Bookmarks is a convenient way to mark a point in the results display by name such that you can rapidly return to that point by that name. To create a bookmark: Right-click the mouse in the signal display area in which to place the bookmark. Click Bookmarks to open the Bookmark Comment Dialog. Enter an identifying name for the bookmark and click OK. Repeat for additional bookmarks.
Display Manipulation Finding a Bookmark Click the Go To Bookmark button on the display toolbar to open the Go to Bookmark dialog. Figure 144 Go To Bookmark Dialog Box Highlight the bookmark to which to go and click OK.
Display Manipulation Search The search option permits you to examine any captured data output file and to quickly locate packets or bus conditions including search patterns that are defined as Mnemonics. Note: Search operations include online software and hardware search and offline search in saved files. Whenever an output file is displayed, the toolbar also displays the additional Search Next and Search Previous buttons.
Display Manipulation You can continue to search the output file using Next Match or Previous Match for the same pattern until you redefine the search parameters. To continue the search for the same pattern, click the Next Match or Previous Match buttons on the results display toolbar. Search for Protocol Errors To search for protocol errors, check the Protocol Errors box and check the protocol errors to search for.
Display Manipulation Search for Data Pattern Choose Data Pattern, choose the data format, enter the data pattern for which to search, and click OK. You can also search for data packets of payload length jointly or independently of the data pattern. Note: A data pattern is found only if it is within a data packet boundary. However, if the data is in multiple Data packets, perform the search in the Data Report, as described on page 99.
Display Manipulation Search a Timing Analysis Result You can perform a search in a timing analysis results display for Packets, Packet Fields, Errors and Events that have been captured. To perform an initial Timing Result search, click the Search button to open the search pattern definition dialog box as shown in Figure 148 Figure 148 Timing Result Search Note that only items present in the current data capture are enabled for selection.
Display Manipulation Additional Search Options You can access additional search options by right-clicking the right side of the results display. Search for Bookmark Choose Search for Bookmark to open the Go to Bookmark dialog, highlight the bookmark to find, and click OK. Access from toolbar You can quickly access the Search for Data Patterns or Search for Bookmarks by clicking the corresponding buttons on the main toolbar.
Display Manipulation Display Configuration Conquest M2 ships with a default display font and color configuration. You can, however, define your own fonts and color scheme for a particular testing scenario. You can set different foreground (Text color) for each cell type in the display. To customize your display, click the Configuration button on the main toolbar to open the Display Configuration dialog box.
Display Manipulation To Change Cell Color 1. Select a Cells group and highlight the item for which to set the color. 2. Click the Foreground button to open the color palette dialog box. 3. Choose an appropriate color and click OK.
Display Manipulation To change Display Fonts 1. Click the Font button to open the Font dialog box. Figure 150 Display Font Definition Dialog Box 2. Choose a font, font style, and size, then click OK. 3. When finished, click OK to save changes and close the Display Configuration dialog.
Mnemonics Mnemonics Mnemonics is a convenient debugging tool that allows you to assign names to data packet types. You can use these names: • In the captured data display next to matching patterns for quick identification. • In a search for a pattern. • To filter previously generated data files to include or exclude certain data patterns. To define mnemonics, click the Mnemonics button on the toolbar to open the Mnemonics Definition Dialog box.
Utilities Utilities Self Test You can perform two levels of self test on the Conquest M2 hardware. A Quick Test performs a RAM check with a cursory algorithm. The Advanced Test performs a RAM check with a more thorough algorithm. Click Utility and then choose Self Test to open the self test dialog. Choose the type of test to perform and click Start to run the test.
Utilities View Scan Descriptors You can view all the Device Descriptors of all the Devices that are connected to the Exerciser port of Conquest M2. Click Utility and then choose View Scan Descriptor. The View Scan Descriptors dialog opens. Figure 153 View Scan Descriptor Display Click the Find Devices button to display the scan descriptors.
Utilities Attach/Detach Device This feature allows you to attach and detach a device from the Analyzer without physically disconnecting the cable. Click Utility and then choose Attach Device, Detach Device or Detach And Attach to perform an action. You can alternatively perform the same actions by clicking the corresponding buttons on the main toolbar.
Utilities Capture Screen You can perform a screen capture at any time and save it as a *.pcx graphics file for later review or inclusion in a report. To perform a screen capture, click Utility and choose Capture Screen. Position the crosshair cursor at a point from which to define the capture area and, with the left mouse button depressed, drag the cursor to define the capture area. Release the mouse button to open the Save As dialog. Assign a file name to the screen capture to save and click Save.
Utilities 202
Appendix A Appendix A Advanced Script Language (ASL) The Advanced Script Language (ASL) is an extension of the Upper Level Protocol Decodes that allows you to define custom upper level protocol decodes in addition to those provided with the product. The ASL enables you to extract and interpret arbitrary data from the USB stream by creating custom scripts.
Appendix A Language Elements Integers ASL accepts integer values in decimal, binary, or hexadecimal formats. Floating point and negative numbers are not accepted. Examples: Hexadecimal: 0x21, 0x0001, 0xA5A5 Binary: 0b00100001, 0b1, 0b101001011010010110100101 Decimal: 33, 1, 42405 Strings Strings in ASL can be static character strings or can contain variable values that are calculated at runtime.
Appendix A Operators The following lists the operators accepted by ASL. Operator precedence is that same as in C. Operator Function () Associative and Logical And or Logical Or not Logical Not > Greater than < Less than <> Equal to = Assignment + Arithmetic Addition - Arithmetic Subtraction * Arithmetic Multiplication / Arithmetic Division Expressions The expressions consist of one or more Integers, Functions, or Operators. For more detail about functions see page 229.
Appendix A ASL Script Structure An ASL Script file includes three types of sections: • Protocol Extraction Section • Protocol Decoding Section • USB Descriptor Section Each ASL script can include only one of each section type. Not every script file requires both Protocol Decoding and USB Descriptor sections, however as minimum each script file must contain a Protocol Extraction section, and one of Protocol Decoding or USB Descriptor sections.
Appendix A Block Type Function Section(s) ProtocolTransferRequirement Defines the device endpoints used by the protocol. ProtocolTransferDefinition Specifies the mechanism that is Protocol Extraction utilized for data transfer. Main Splits the data stream into protocol fields. DefineOptions Assigns interpretation values to Protocol Decoding, the protocol or descriptor fields. USB Descriptor ValidRange Specifies valid ranges of values Protocol Decoding, for the protocol fields.
Appendix A Protocol Extraction Section The ProtocolExtraction Section specifies how the data is extracted from traffic to one or more endpoints. This section is required in every script file and must precede all other sections. The ProtocolExtraction section begins with the [ProductName=] and ends with the End keywords. Two blocks are contained in this section, ProtocolTransferRequirement and ProtocolTransferDefinition.
Appendix A ProductName The product name for ASL files must be SBAE. This statement is required in every .asl file. ProtocolName The string NameString is the name of the implemented protocol that is shown in the User-defined page of the Upper Level Interpretation assignment dialog. This statement is required in every .asl file. ProtocolTransferRequirement Block This block identifies all endpoints involved in the transfer of the high-level protocol data.
Appendix A MaximumPacketSize This statement identifies the value of the “wMaxPacketSize” parameter associated with this endpoint. Direction This statement describes the direction of the endpoint, one of In or Out. Note that In and Out endpoints with same endpoint address must be two distinct endpoints using two Endpoint statement groups. ProtocolTransferDefinition In general, the mechanism by which high-level protocols are transferred over USB can consist of Command, Data, and Status stages.
Appendix A Notes on Protocol Extraction Section • If the stages have a clearly defined limitations in sizes, it is preferred to mention these sizes using the MCS, MDS, MSS keywords. This assists the decoder in detecting these stages correctly. • It is valid to assign the same EndpointId to more than one stage. For example, both Data and Status stage.
Appendix A Example 1 [ProductName = SBAE] ProtocolName = "Audio Class" ProtocolTransferRequirement { USBControlTransfer { ControlType = Class } } ProtocolTransferDefinition { ProtocolCommand = USBControlTransfer } End Example 2 [ProductName = SBAE] ProtocolName = "CBI-SCSI" ProtocolTransferRequirement { Endpoint = Out2 { EndpointNumber = 2 EndpointType = Bulk MaximumPacketSize = 64 Direction = Out } Endpoint = In2 { EndpointNumber = 2 EndpointType = Bulk MaximumPacketSize = 512 Direction = In } USBControl
Appendix A Example 3 [ProductName = SBAE] ProtocolName = "Blutooth HCI-Command" ProtocolTransferRequirement { USBControlTransfer { ControlType = Class ControlRequest = 0xE0 } } ProtocolTransferDefinition { ProtocolCommand = DataStageOfUSBControlTransfer } End 213
Appendix A Protocol Decoding Section The ProtocolDecoding Section details the decoding of the data stream into protocol fields. The section may include DefineOptions and ValidRanges blocks and must include the Main block. The beginning of this section is delimited by the [Decode] and End keywords.
Appendix A DefineOptions Block This optional block allows you to assign meaningful interpretations of values in each field, to help you interpret the raw value by assigning a string that describes that value. The block consists of one or more DefineOptions statements. DefineOptions fieldId1 = ( "DescriptionString1", Value1 < - Value2> ; < "DescriptionString2", Value3 < - Value4> ; < …. >> ); . . . fieldIdN= ( "DescriptionString3", Value5 < - Value6> ; < "DescriptionString4, Value7 < - Value8> ; < ….
Appendix A ValidRanges Block This optional block specifies the legal range of values for the field. At run time, if the values of the field do not fall within the valid range, a Protocol Error is generated. The block consists of one or more ValidRanges statements that applies to all fields and subfields added in the Main block. ValidRanges fieldId1 = ( Value1 - Value2 ); . . . fieldIdN = ( Value3 - Value4 ); EndValidRanges ValidRange Statements Remark: Specifies the ranges of values expected for the field.
Appendix A Main Block This block contains the statements that break the raw data stream into protocol fields, allowing the decode of a wide range of protocols. Using branching statements, you can decode “dynamic” protocols, the fields for which, such as size or encoding, depend on the value(s) of other field(s). { Statement1; Statement2; . . .
Appendix A AddField fieldId = AddField ( StartBit, Length, "Name", "Description", "Abbreviation", < MSBLEFT | LSBLEFT >) ; Remark: This statement adds a field to the packet with the given specification. The value returned by the CURPOS function is automatically increased by the value of Length parameter. For more details about CURPOS function see page 229. Output Parameter: fieldId: Identifier assigned to the field.
Appendix A BitStuff BitStuff (fieldId, bit); Remark: This statement preforms a bit-unstuffing algorithm on the field before the field is interpreted. This statement is only required for high-level data of some protocols. Do not confuse it with the low-level bit-unstuffing of USB. The hardware bit-unstuffs USB traffic before presenting the data stream to the decoder. Input Parameters: fieldId: This is the identifier that specifies the field. This identifier is the output of a AddField statement.
Appendix A GetData DataId = GetData(StartBit, Length); Remark: This statement assigns an identifier to a block of data from the data stream. You can reference the complete data block elsewhere in the script using the returned identifier. Unlike the AddField statement, this statement does not increase the value returned by CURPOS function. Typically this statement is used to retrieve the value of a field without adding that field to the decode.
Appendix A If, Else If, Else If Expression1 then Main block 1 < Else If Expression2 then Main block 2 > < Else If Expression3 then Main block 3 > … Remark: If, Else If, If statements, collectively known as branch statements, permit the execution of different blocks of statements based on the evaluation of the expressions. Following the convention of other programming languages, if the expression evaluates to true the immediate block is executed.
Appendix A Repeat Repeat Expression Main block Remark: This statement repeats all statements in the block while Expression evaluates to TRUE.
Appendix A Repeat Count Repeat Count = Expression Main block Remark: This statement repeats all statements in the block Expression number of times.
Appendix A SubFieldOf SubFieldOf ( fieldId <, Separated > ) Main Block Remark: This statement adds subfield(s) to the previously added field. All AddField statements that exist within the body of this statement are relative only to the specified field. Up to 8 levels of nested subfield statements is permitted. Input Parameters: fieldId: This is the identifier that specifies the parent field. This identifier is the output of a AddField statement.
Appendix A SetTableHeader SetTableHeader ("Title" | OptionalfieldId); Remark: This statement sets the header title of the Interpreted Data table in the Viewer. Either a string constant or the value from a previously defined field can be the title of the table. Input Parameters: Title: Specifies the string to show in the header of the table. OptionalfieldId: This identifier specifies the field from which to get the header string.
Appendix A SetFieldTableHeader SetFieldTableHeader ( fieldId,"Title" | OptionalfieldId ); Remark: If you specified a subfield to use a separate table, this statement sets the header title of the Interpreted Data table for that subfield. Either a string constant or the string from a previously defined field can be the title of the table. Input Parameters: fieldId: Specifies the subfield with a dedicated table. This identifier is the output of a AddField statement.
Appendix A USB Descriptor Section The USBDescriptor Section simplifies the decoding of non-standard descriptors. Any class or vendor-specific descriptor that is returned by the standard GetDescriptor or SetDescriptor USB requests, is decoded in this section. The section may include DefineOptions and ValidRanges blocks and must include the Descriptor block. The beginning of this section is delimited by the [USB Decode] and End keywords.
Appendix A Descriptor Block This block is similar to the Main block of the ProtocolDecode Section in that it allows you to assign meaningful interpretations of values in each field, to interpret the raw value by assigning a string that describes that value. The block consists of one or more statements that have the same usages as those in the Main block of the ProtocolDecode section. Notice that this block has a Type input parameter.
Appendix A Functions CURPOS CURPOS Remark: This function returns the current position of the decoder cursor in bits. CURPOS is initialized to zero at the beginning of the decode and increases by Length parameter in each instance of AddField statement. CURPOS has a local scope within the SubFieldOf statements. In each SubFieldOf statement the CURPOS is a local variable that is initialized to zero, and the incremented value applies only within the braces of that block.
Appendix A INPUTDATA INPUTDATA Remark: The INPUTDATA is a symbolic representation of the entire data stream that is passed to the decoder. Find Find (StartBit, Pattern) Remark: The function searches for a data pattern in the data stream. It returns the bit location of the first instance of the data pattern, or the value equivalent to LengthOf(INPUTDATA+1) if the data pattern is not found. Input Parameters: StartBit: Specifies a zero-based start position of the field in the data, in bits.
Appendix A StartOf StartOf (fieldId) Remark: The function returns the starting bit position of given field. Input Parameters: fieldId: This is the identifier that specifies the field. This identifier is the output of a AddField statement. ValueOf ValueOf (Identifier) Remark: The function returns the value of the field or data. Input Parameters: Identifier: Specifies the field or the data block. The identifier the output of a AddField statement or the output of a GetData statement.
Appendix A Samples Sample1: Portion of Communication Class [ProductName = SBAE] ProtocolName = "Communication Class" ProtocolTransferRequirement { USBControlTransfer { ControlType = Class } } ProtocolTransferDefinition { ProtocolCommand = USBControlTransfer } End [Decoding] DefineOptions bRequest = ("SEND_ENCAPSULATED_COMMAND", 0x00; "GET_ENCAPSULATED_RESPONSE", 0x01; "SET_COMM_FEATURE", 0x02; "GET_LINE_PARAMS", 0x35; "GET_ATM_VC_STATISTICS", 0x53; "RESERVED ", 0x54-0xFF); CallStateValue = ("Call is idle.
Appendix A { wInfoLength = AddField(64,16," wInfoLength" ," Size of this structure"," wInfoLength",MSBLEFT); dwRingerBitmap = AddField(80,32," dwRingerBitmap", "Ringer Configuration bitmap for this line.", "wInfoLength",MSBLEFT); dwLineState = AddField(112,32," dwLineState" ,"Define current state of the line.","wInfoLength",MSBLEFT); SubFieldOf(dwLineState) { Index = AddField(0,8,"Index" ," Index of active call on this line.
Appendix A Sample2: LCP (PPP) [ProductName = SBAE] ProtocolName = "LCP" ProtocolTransferRequirement { USBControlTransfer { ControlType = Class } } ProtocolTransferDefinition { ProtocolCommand = USBControlTransfer } End [Decoding] { /* The script of other protocols goes here. */ Repeat (not EOD) { Data1 = GetData(CURPOS, 16); /* 0xc021 is the LCP code in PPP Protocol.
Appendix A } If (ValueOf(TypeLength) > 32) then { Tag = AddField(CURPOS, ValueOf(TypeLength)-32,"Tag", "Tag", "Tag"); } } } /* Here are the remaining protocols.
Appendix A Sample3: HID Class [ProductName = SBAE] ProtocolName = "HID" ProtocolTransferRequirement { USBControlTransfer { ControlType = Class } } ProtocolTransferDefinition { ProtocolCommand = USBControlTransfer } End [USB Descriptors] DefineOptions bDescriptorType = ("HID",0x21; "Report",0x22; "Physical",0x23; "Reserved",0x24-0x2F); bCountryCode = ("Not Supported",0; "Arabic",1; "Belgian",2; "Canadian-Bilingual",3; "Canadian-French",4; "Czech Republic",5; "Danish",6; "Finnish",7; "French",8; "German",9
Appendix A "Taiwan",30; "Turkish-Q",31; "UK",32; "US",33; "Yugoslavia",34; "Turkish-F",35; "Reserved",36-255); Bias = ("Not applicable",0; "Right hand",1;"Left hand",2;"Both hands",3; "Either hand",4;"Reserved",5-7 ); Qualifier = ("Not applicable",0;"Right",1; "Left",2;"Both",3; "Either",4; "Center",5;"Reserved",6-7); EndOptions bDesignator =("None",0x00; "Hand",0x01; "Eyeball",0x02; "Eyebrow",0x03; "Eyelid",0x04; "Ear",0x05; "Nose",0x06; "Mouth",0x07; "Upper lip",0x08; "Lower lip",0x09; "Jaw",0x0A; "Nec
Appendix A Descriptor (0x21) { bLength = AddField(CURPOS,8,"bLength","Numeric expression that is the total size of the HID descriptor","bLength"); bDescriptorType = AddField(CURPOS, 8,"bDescriptorType", "Constant name specifying type of HID descriptor", "bDescriptorType"); bcdHID = AddField(CURPOS, 16,"bcdHID", "Numeric expression identifying the HID Class Specification release", "bcdHID"); bCountryCode = AddField(CURPOS, 8,"bCountryCode", "Numeric expression identifying country code of the localized hardw
Appendix A dPhysical = AddField(CURPOS,16,"dPhysical","dPhysical", "dPhysical"); SubFieldOf(dPhysical) { bDesignator = AddField(0, 8, "bDesignator","Designator value; indicates which part of the body affects the item","bDesignator"); bFlags = AddField(CURPOS,8,"bFlags","bFlags", "bFlags"); SubFieldOf(bFlags) { Effort = AddField(0, 5, "Effort","The Effort field indicates how easy it is for a user to access the control. A value of 0 identifies that the user can affect the control quickly and easily.
Appendix A Script Editor The following example illustrates the creation of a Mass Storage Class request script. Table 7 shows the Class request descriptor field interpretation that is used in the script example. Table 7.
Appendix A Creating the Script 1. Select File > New and choose Script to open the script generator dialog. 2. Enter a Name for the Script, enter a path to a location in which to save it, and click Next.
Appendix A 3. Chose USBControlTransfer as protocol command and Class as Script Type, then click Next. Figure 155 Defining Field Options 4. Define the Field Options listed in Table 7 . • Select Add New Field from Tree and define proper ID name and option Value (or Value range)+ Description. • To add a new option to a field, select the field from the tree, define a value and a Description, and then click the Add button.
Appendix A Note: The command is placed at the cursor location in the decoding area. If the cursor is above the decoding area, the command is placed at the top. If it is under the decoding area, it is added at the end of the decoding area.
Appendix A China Restriction of Hazardous Substances Table The following tables are supplied in compliance with China’s Restriction of Hazardous Substances (China RoHS) requirements: 244
Index Index A activate device mode 136 additional requests in device emulation 134 advanced refresh in exerciser program 82 Advanced Script Language 203 analysis new 113 pre-defined 113 real time 112 analysis Expressions creating 115 analyzer options 5 analyzer speed 50 ASL functions 229 language elements 204 protocol decoding 214 protocol extraction 208 script structure 206 USB descriptor section 227 authorization code for upgrades 24 auxiliary Port 53 B bit width adjustable 79 bookmarks 187 finding 188 b
Index device attach/detach 200 configuration define 132 definition 131 emulation 129 mode 129 device emulation 5 advanced mode 138 connections 13 device interface define 132 display cell color 195 fonts 196 inrush current 167 viewing preferences 176 display Configuration 194 display manipulation 175 E easy mode pre-defined setups 33 enable exerciser easy mode 49 endpoint define 133 settings 72 endpoint errors definition of 137 error message startup 16 errors forcing 76 in user defined scripts 103 protocol
Index insert line in exerciser program 48 installing your analyzer 10 interface establishing 20 interpretation high level assignment 101 interpretstion assignment 101 L loops in exerciser program 49, 77 M Manual Driver installing 17 manual Trigger advanced mode 65 manual trigger 6, 40 with sequencer 65 mnemonics 197 multiple analyzers 21 N new analysis advanced mode 113 new class specifying 73 new project advanced mode 55 easy mode 34 O operating speed for refresh 85 options 5 OTG analysis connection 11 OT
Index S saving performance analysis result 119 SBAE versions 1 SBAE-30 1 included components 9 SBAE-30 external I/O Connector pin assignment 15 scan descriptors viewing 199 search access from menu bar 193 data report 99 for bookmark 193 for data pattern 191 for protocol errors 190 using mnemonic 191 search data report for data pattern 99 select components for installation 16 self test 198 separate systems 10 sequencer description 60 operation overview 60 programming 61 serach data report for data block 99