Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
VAB
For the TI DSK
Starters Guide
7 January 2000
6RIWZDUH/LFHQVH$JUHHPHQW
Hyperception, Incorporated and its subsidiaries, and any applicable licensers grant to you a non-exclusive, nontransferable license to use the software program and related documentation in this package (collectively referred to as the "Program") on a single-user computer. Any attempted sub-license, assignment or other transfer of the Program or the rights or obligations of this Agreement without the prior written consent of Hyperception shall be void. Failure to comply with these terms will result in termination of this license. Use of the Program on a multiple-user system requires payment of additional fees. A single-user system is defined as having input/output ports for no more than one log-in terminal (including the system console, if any); A single user system can have only a single operator using the system at any one time. Source Code Files may be modified and/or merged into another program for your use on a single machine. Any part of the Source Code merged into another program will continue to be subject to the terms and conditions of this Agreement. The program and documentation are copyrighted. You may make two (2) copies of the program for backup and archival purposes. Unauthorized copying, or reverse compiling and disassembling of the programs in object format are prohibited. Title to the program is not transferred to you by this license.
3URJUDP/LPLWDWLRQV
Hyperception does not warrant that the Program will be free from error or will meet your specific requirements. You assume complete responsibility for decisions made or actions taken based on information obtained using the Program. Any statements made concerning the utility of the Program are not to be construed as expressed or implied warranties. Hyperception makes no warranty or condition, either express or implied, including but not limited to, any implied warranties of merchantability and fitness for a particular purpose, regarding the program and makes the program available solely on an "as is" basis. Due to the ongoing development nature of the software, all specifications are subject to change at any time without notice.
/LPLWHG:DUUDQW\RQ0HGLDDQG'DPDJHV'LVFODLPHU
The media (not the Program) is warranted to the original purchaser against defects in material and workmanship for a period of ninety (90) days from the date of original purchase. Defective media under warranty will be replaced when it is returned postage-paid with a copy of the purchase receipt to Hyperception located in Dallas, Texas. The replacement media is warranted for ninety (90) days from date of replacement. Other than the postage requirement (when allowed by law), no charge will be made for the replacement. This paragraph expresses Hyperception's sole liability and your exclusive remedy. Neither Hyperception nor any applicable licenser shall be responsible for incidental or consequential damages. This warranty gives you specific legal rights and you may also have other rights which vary from state to state. Some states do not allow the exclusion or limitations of incidental or consequential damages or limitations on how long an implied warranty lasts so the above limitations or exclusion may not apply to you.
([SRUW&RQWURO
The re-export of United States origin software is subject to United States laws under the Export-Administration Act of 1969 as amended. Any further sale of the program shall be in accordance with United States Department of Commerce Administration regulation. Compliance with such regulation is your responsibility and not the responsibility of Hyperception.
&RS\ULJKWDQG7UDGHPDUN1RWLFHV
Copyright1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 by Hyperception. All rights reserved worldwide. Reproduction or use, without permission, of editorial or illustrative content, in any manner, is prohibited. No patent liability is assumed with respect to the use of the information contained herein. While the utmost care and every precaution has been taken in the preparation of this book, Hyperception assumes no responsibility for errors or omissions. Neither is any liability assumed for damages resulting from the use of the information contained herein. Hyperception is a trademark and VAB is a trademark of Hyperception, Inc. Intel is a trademark of Intel Corporation. Microsoft and MS-DOS are registered trademarks and Windows and Windows NT are registered trademarks of Microsoft, Inc.
*HWWLQJ6WDUWHGZLWK9$%
The starting point for your DSP development
&KDSWHU
Congratulations! With your copy of Visual Application Builder (VAB) software, you will soon be introduced to a powerful visual DSP design environment. This software is intended to allow you to easily create your own DSP algorithms for use on Texas Instruments DSK hardware.
VAB allows you to easily create your own designs for real-time use on the TI DSK hardware without ever having to write any C or assembly source code!
Visual DSP design is a methodology of developing DSP algorithms and systems graphically by simply connecting functional block components together with point-andclick methods. As you will see from the use of VAB, algorithms can be built-up extremely quickly and efficiently. For those of you who are using a the DSK DSP board, you will be able to create real-time DSP implementations and experience an incredibly efficient means of graphical programming without having to write any source code at all! Imagine actually programming a DSP without having to use C or assembly language. This is the power that VAB gives to you. This user manual will provide the basic information needed to run VAB. This chapter provides software installation instructions, steps to take first, and an overview of the VAB tools that are available. Further chapters will provide tutorial and reference information, including block component descriptions.
,QVWDOODWLRQ
Installation of the VAB software requires a CD-ROM drive and a hard drive partition with approximately fifty megabytes of available space. Follow these directions to install the VAB software onto your hard disk. To install VAB 1. Make sure that your computer and monitor are turned on and that you have installed Microsoft Windows (95/98/NT). Insert the Hyperception VAB installation CD-ROM into your CD-ROM drive. The VAB installation will be invoked automatically unless the CD-ROM Autorun option has been disabled.
2.
After installation is complete, you can select the VAB icon from the Start Programs Hyperception folder, or select the VAB button from the HyperLAB toolbar.
If the Autorun feature has been disabled you can begin manual installation by following steps 3 & 4 below: 3. Move the mouse pointer to the Run... on the Start menu and click once to choose the Run command. The Run dialog box will appear on your screen. Use the Browse option to select the VAB Setup.exe program from the VAB CDROM Disk1 folder. As the VAB is installed, follow the instructions on your screen. The installation program will automatically detect whether or not you have enough space available on your hard drive.
4.
5.
5XQQLQJ9$%IRUWKH)LUVW7LPH
After you have completed the VAB installation you can select the VAB icon from either the newly installed HyperLAB Taskbar located at the top of your computer screen or directly from the Start Menu Hyperception folder. HyperLAB is a taskbar that appears on your Windows desktop after installation of the VAB software. It contains shortcut buttons to various tools/programs included with the VAB application. This taskbar will appear each time Windows is started. When you run the VAB software for the first time the program will attempt to detect the DSK hardware. If the VAB cannot locate the DSK at the default location of LPT1, or if the DSK is not connected, or a problem is encountered, then VAB will issue a warning message. Next, VAB will perform a one-time build of its block components (this will occur regardless of whether or not VAB has located the DSK). VAB initially will expect the DSK to be connected to LPT1. If you do receive a warning message and the VAB software cannot locate the DSK, then you should take steps to verify VABs LPT selection options (see next section). For example, if your DSK is connected to LPT2 then the VAB will initially not be able to communicate with it. You will need to take a moment to setup VAB and DSK communication settings. Information on doing this is described in the next section.
9HULI\LQJ'6.2SHUDWLRQ
Remember that VAB has been designed to run on the DSK hardware. This means that you will need to have the DSK setup and connected to your computers parallel port in order for VAB to communicate to the DSP hardware. Please refer to the DSK documentation for information on properly connecting the DSK hardware to your computer.
Verify VABs LPT setting if the C31 DSK hardware does not respond.
VAB will not operate correctly if it cannot communicate to the DSK hardware. To verify that VAB can communicate to the DSK hardware you should select the VAB DSP Target Driver Setup... menu command. Selection of this command will result in the appearance of a dialog box that will allow you to select the proper LPT setting for your DSK.
VAB Driver Setup dialog box You can determine whether or not the DSK is responding at the chosen LPT setting by using the Test button. This feature will attempt to find the DSK hardware at the LPT
:KDWWR'R)LUVW
After you have installed VAB onto your computer and verified that the DSK is responding, you are ready to get started. There are several ways in which you can begin using VAB. You can jump right in and start by running some of the sample worksheets that have been provided with the software. You might even feel more comfortable by working your way through the tutorial section in Chapter 5 to become acquainted with VABs features. If you are using VAB with the DSK DSP board you will probably want to check out Chapter 2 (VAB Design Environment) and Chapter 4 (Block Components) for information about creating your own real-time algorithms on the DSK hardware. These chapters provide some useful instructions and explanations for using the real-time block components with the DSK hardware. No matter which method of beginning suits your style, you will still want to read through the remaining chapters of the user manual for additional information and tips. It is advised that you read these chapters to facilitate your use of the VAB software.
Start by trying the example worksheets provided, or create your own by following the tutorial section.
6\VWHP5HTXLUHPHQWV
The VAB software program has been developed to run under Microsoft Windows 95, 98, and NT. The exact amount of extended memory required to run the application depends upon the particular application being run, the number of other applications being run, and the complexity of the work being done. In general, the following requirements must be met to correctly use VAB software with Microsoft Windows.
A personal computer with Intel 80386 processor (or higher) with 4 MB or more of memory Microsoft Windows 95, Windows 98, or Windows NT A hard disk drive with ~5 MB of free space A CD-ROM Drive
7HFKQLFDO6XSSRUW
The VAB software package has been designed to provide you with a powerful method of implementing real-time design algorithms on the Texas Instruments DSK hardware. The VABs easy-to-learn working environment allows an efficient means of implementing these algorithms. However, this visual design environment is a comprehensive tool with many user options available. If you have any questions concerning the use of VAB, please refer to the on-line Help and this Users Manual. We are committed to providing you with the best development platform available, and to making your experience with Hyperception software a positive one. Hyperception maintains a web site, www.hyperception.com/vab, which allows our customers to obtain and exchange new block function libraries, and to receive the latest information regarding VAB. The web site is the primary source of support other than the on-line Help and this Users Manual. Comments may also be sent to vab.support@hyperception.com.
9$%'HVLJQ(QYLURQPHQW
Becoming familiar with the VAB visual design environment is the first step towards getting the most out of its powerful capabilities.
&KDSWHU
This chapter will discuss the user interface of the VAB visual design environment. This material is presented because a thorough understanding of how the VAB environment works is essential if you are to fully gain the benefits of this powerful development tool. Follow-on chapters will briefly discuss the VAB main menu and toolbar commands that are used to control the application. Some of the key components discussed in this section are the VAB Work Area, the Toolbar, the Status Line, the Block Worksheet, and the Hierarchy Block Worksheet.
:RUN$UHD
The VAB Work Area is a workspace that holds many different block worksheets.
The VAB Work Area is used to organize individual block worksheets. The work area is located between the menu toolbar located at the top of the application and the status bar located at the bottom of the application. It is important to remember that the work area is used as a means of organizing worksheets, and is not an area to connect block component icons. (Connecting block components is performed in the worksheet.)
When you first run VAB, the program will automatically create an empty worksheet and place it into the work area for you.
9$%7RROEDU
The VAB menu commands are located beneath the VAB window caption bar and are arranged as selectable pull-down menus, each of which has a list of submenu commands. In addition to these menu commands, a toolbar with selectable button commands is available. The toolbar commands will perform exactly as their menu command counterparts, but provide an alternative method of VAB command selection. The toolbar is initially located directly beneath the VAB menu commands, but can be repositioned anywhere in the VAB Work Area by simply dragging the toolbar into a new position. The toolbar can easily be docked by dragging it to the edge of any VAB window boundary.
The VAB Toolbar can be positioned anywhere in the Work Area by simply dragging it into position.
VAB Toolbar
0(18 &200$1'6
select VAB menu commands through use of a convenient right-click of the mouse as opposed to using either the VAB menu or toolbar.
Customize right-mouse button command (after user-selectable menus have been entered)
6WDWXV/LQH
The VAB Status Line is located at the bottom of the applications main window and is used to provide status information to you. The status line is organized into three areas each of which provides environment status messages. The first section of the status line is used to show the current operational state of the application. When a block worksheet is run, a status message for each block component will be displayed when the block is processed. This status will indicate whether the block component is running, or if the block component has a warning message associated with it. When a block component is chosen from the Block Function Selector, a status message will indicate whether the block function was loaded successfully. In addition, clicking on a block icon in a worksheet will display a brief description of that particular block function. This section of the status display will be used for most general information and messages. The second section of the Status Line is used to keep track of the number of PC-side frames that have been processed by VAB.
%ORFN:RUNVKHHW
The VAB visual design environment allows you to create individual Block Worksheets. A Block Worksheet is a window that serves as a workspace for your simulations, and may be thought of as being like a piece of paper in which an algorithm may be drawn. Each worksheet can contain many block components arranged in a structured algorithm. Also, each worksheet is capable of incorporating other block worksheets to provide a hierarchical1 design approach. Block worksheet windows can be sized by dragging the corners of the worksheet, minimized by selecting the minimize box in the worksheets upper-right corner, restored by double-clicking the minimized block worksheet icon, and closed by selecting the worksheets system menu close command. Each block worksheet contains a caption bar, which will distinguish it from other worksheets in the work area. When the VAB application is first run, an empty worksheet is automatically created in the work area. The worksheet will contain the name Worksheet 1 in its caption bar. The figure above shows an empty block worksheet.
A block worksheet is used to hold the block components that make up the algorithm.
7KH$FWLYH:RUNVKHHW
The VAB visual design environment supports the use of multiple worksheets. However, only one worksheet can be active at a given time. When you select the Run command only the active worksheet will be processed. It is important to keep track of which worksheet is active. The active worksheet caption bar will be painted the same color as the work area caption bar. To select a worksheet as the active worksheet you can simply select the desired worksheets caption bar with a single-click of the left mouse button.
0(18 &200$1'6
When a worksheet is active, all block components, including hierarchy block, (see below) can run. If however, you select a hierarchy block as the active worksheet and then try to run the application, only the hierarchy block will run. You may find it helpful to always be aware of which worksheet is active by checking the VAB caption bar.
+LHUDUFK\%ORFNV
Any VAB block worksheet that has been inserted into another block worksheet is referred to as a hierarchy block worksheet or hierarchy block. The hierarchy block must have been created (typically with external inputs/outputs) and saved as a worksheet with file extension .LSS. At the time the worksheet is saved it is added to the VAB block component menu under a user-selected library, group, and function menu name. This block may then be used in worksheets in the same fashion as non-hierarchical block components. Hierarchy block worksheets must be designed with external connections if data is to be passed to/from other block components. Conditional execution of hierarchy block components allows the hierarchy block to execute based on a user-specified expression. Hierarchy blocks can evaluate if, while, and for statements to determine if and how many times to run before returning control. To access this feature, create a hierarchy block as normal, and insert it into a worksheet, then right click on the hierarchy block and select the Set Condition menu option. A dialog box will then be displayed and allow a condition to be entered. The condition can be composed of any combination of project variables and the conditional and mathematical operators. The syntax for the execution condition is the standard C syntax for if and while statements. The for statement is very similar to C syntax. The for statement is broken into three parts, the initialize statement, the loop condition statement, and the increment statement. The initialize statement is optional, but if present, it should be of the form <var>=<equation> where equation may be a single value or an expression. The loop condition is required, and can be any valid boolean expression supported. The increment statement is optional, but if present should be of the form <var>++, <var>--, <var>+=<equation>, <var>-=<equation>, or <var>=<equation> where <var> is a defined project variable and equation is a combination of project variables and/or constant values. With this feature it is possible to cause a hierarchy block to never run or to never stop running. In either case the Stop command will terminate the worksheet even if the hierarchy block has been set to run in an infinite loop. In addition to the functions and operators listed in Appendix A, the following relational operators have been added greater than (>), greater than or equal (>=), less than (<), less than or equal (<=), equal (==), and not equal (!=). Examples: for(index=0; index<10; index++) - This statement causes the hierarchy block to execute 10 times each cycle. As the hierarchy block runs, the value of variable index ranges from 0 to 9. if(index<5) This statement causes the hierarchy block to run if and only if the value of variable index is less than 5. while(index != 3) This statement causes the hierarchy worksheet to execute while the variable index does not equal 3. Please note, if the hierarchy worksheet does not modify
Hierarchy blocks can be setup to evaluate if, while, and for statements to determine the number of times to run before returning control. NOTE: This conditional execution feature is not available in VAB. Please contact Hyperception for information on products that do provide this capability.
0(18 &200$1'6
0HQX&RPPDQGV
VAB Menu Commands
&KDSWHU
Not all menu commands listed here are active in VAB. Some menu items will appear as grayedout. These menu commands are available in other Hyperception software products. Please feel free to contact Hyperception for additional information on these products.
The VAB menu commands are located beneath the main window caption bar and are arranged as selectable pull-down menus. Each of these menus contains a list of submenu commands. This starters guide will list some of the common commands and include File, Edit, View, Control, Blocks, DSP Target, Tools, Options, Project, Window, and Help. Selection of the menu names or use of the keyboard accelerator controls (pressing the Alt key and the letter shown underlined) will also allow you to access the commands. In addition to the menu commands, a toolbar with selectable button commands is available. The toolbar is initially located directly underneath the VAB menu, but you can move it to any location by simply dragging it to a new position with the mouse. The toolbar commands perform exactly as their menu command counterparts, but provide an easier method of selection. To select a command from the toolbar place the mouse cursor over the desired command button and choose it with a single-click of the left button of the mouse. You will notice that a description of the command will be displayed on the VAB Status line whenever the mouse cursor is placed over a toolbar button.
Note: Not all menu commands are active in VAB. Some menu items will appear grayed-out and will not be user-selectable. Hyperception does offer other software products that do provide access to these commands. If you would like to receive information on these products please contact Hyperception.
)LOH0HQX&RPPDQGV
The file menu is shown either by clicking on the VAB File menu name or by pressing Alt+F.
1HZ
New (Ctrl+N, Toolbar button): The New command will create a new (empty) worksheet. The new block worksheet will become the active worksheet and will be displayed as the top-most worksheet window. No filename is associated with the new worksheet until it is saved. Its caption bar will be shown as: Worksheet x where x is the assigned number of the block worksheet.
2SHQ
Open (Ctrl+O, Toolbar button): The Open command will load an existing worksheet file into the work area. After selecting the Open command a dialog box labeled Open will appear. After selecting a file and clicking the OK button the application will load the chosen worksheet file. Its caption bar will be shown as: filename.ext where filename.ext is the selected worksheet filename.
0(18 &200$1'6
&ORVH
Close: The Close command will close the current worksheet. If you have made any changes to the worksheet you will be prompted to save the worksheet; otherwise, the worksheet will be closed immediately.
6DYH
Save (Ctrl+S, Toolbar button): The Save command will save the active block worksheet to a file. Upon selection of this command a dialog box labeled Save will appear. You will be able to specify a path and filename for the worksheet (.LST or .LSS) file. If the worksheet you are saving is a Hierarchy worksheet (has external inputs or outputs) then VAB will prompt you to enter a library, group, and menu name of the hierarchy worksheet.
6DYH $V
Save As: The Save As command allows you to specify a path and a new filename for an existing worksheet. Upon selection of this command, a dialog box labeled Save As will appear. After selecting the name of the worksheet and clicking the OK button, VAB will save the new worksheet.
3ULQW
Print (Ctrl+P, Toolbar button): The Print command will print the active worksheet. When choosing this command, a basic menu is presented where you may customize the following fields: Print Quality ( High / Medium / Low / Draft ): Specifies the printing quality to be used. Copies: Specifies the number of copies of the worksheet to be printed. The Print Range and Collate Copies commands cannot be changed since the Print command only prints one worksheet at a time.
3ULQW 3UHYLHZ
Print Preview: Switches to a preview screen where the worksheet is displayed as it will appear as hardcopy.
3ULQW 6HWXS
Print Setup: The Print Setup command allows you to select the printer to where the active worksheet will be printed. Parameters that can be changed include the orientation, size and source of the paper.
6HQG
Send: The Send command is available if a compatible electronic mail system is in place. With this command, you can send the current worksheet to another user electronically.
5HFHQW )LOHV
[Recent Files]: This part of the File Menu lists the four most recent worksheets that have been active. The Recent Files list will initially appear empty until you have loaded some worksheets.
([LW
Exit: Exits the application and returns to the Windows desktop or the most current application.
(GLW0HQX&RPPDQGV
The edit menu commands are used to cut, copy and paste block(s) and data line connections between the active worksheet and other opened worksheets. You can quickly duplicate a single block or several blocks by using the edit commands Copy and Paste. An Undo command is also provided to reverse the last edit menu commands action. To select an object or group of objects, you simply draw a box around the objects of interest. Drawing the selection box is accomplished by positioning the mouse cursor and then holding the left mouse button down while dragging to a desired location. Upon releasing the left mouse button, all objects completely within the selection box will be highlighted. The highlighted objects can then be moved into a new position, copied, or cut. Individual objects can be selected by left-clicking on the object. Both drawing boxes and selecting individual objects are done in Setup Mode.
8QGR
Undo (Ctrl+Z): The Undo command reverses, or undoes, the last commands action.
5HGR
Redo (Ctrl+Y): The Redo command reverses, or undoes, the last Undo commands action.
&XW
Cut (Ctrl+X): The Cut command removes the selected object(s) and places them in the edit/paste buffer.
&RS\
Copy (Ctrl+C): The Copy command places a copy of the selected object(s) and places them in the edit/paste buffer.
3DVWH
Paste (Ctrl+V): The Paste command places the object(s) saved in the edit/paste buffer with the Cut or Copy commands on the active worksheet.
9LHZ0HQX&RPPDQGV
The view menu commands are used to customize the user interface to show and remove the status bar and tool bars. The status bar is located at the bottom of the screen, and the toolbars are initially located at the top.
0(18 &200$1'6
7RROEDU
Selecting this menu command will cause the toolbar to be hidden or displayed.
6WDWXVEDU
Selecting this menu command will cause the status bar to be hidden or displayed.
'LPHQVLRQDO ,FRQ
3-Dimensional Icon (Ctrl+3, Toolbar button): The 3-Dimensional Icon command toggles icon display between two and three dimensional icons. Repeated selection of this command will alternate between the two icon styles. This command option does not affect the performance of any block, but allows for customizing the application. In addition to its keyboard accelerator control, the 3-D icon command can be accessed through the pull down menu or through its toolbar button.
&KDQQHO $UURZV
Channel Arrows: The Channel Arrows command toggles channel arrow display between triangular shaped arrows and rectangular connection pads.
&KDQQHO /DEHOV
Channel Labels: The Channel Labels commands toggles the display of tool-tip controls that appear over the block when the application is in one of the connect modes. The channel labels are defined in each individual blocks resource file and assist in determining which channel is being connected.
%ORFN /DEHOV
Block Labels: The Block Labels commands toggles the display of the block labels which appear beneath each block in the worksheet.
/LQH /DEHOV
Line Labels: The Line Labels command toggles the display of the line labels, which appear along the longest segment in the line.
8VHU &RQWUROV
Maximize User Controls: The Maximize User Controls command will toggle user control blocks between maximized and iconic representations.
3URMHFW 7DEV
Project Tabs: Toggles the display of the project's tab view of the active worksheet. The Project Tab for a worksheet contains information on the block components used and lists hierarchy information.
=RRP
Zoom : The zoom command displays a dialog box and allows the user to select the zoom size used by the print and print preview commands.
/D\HUV
The Layers command is used to perform various layer-related functions. There are several commands in a sub-menu displayed by the Layers command. The following sections describe each of the commands. View All Layer: The View All Layers command activates all the layers available to be seen. A check-mark will appear by all the layers being displayed. All Layers Off: The All Layers Off command deactivates all the layers available from being seen. The check-mark will be removed from all the layers being displayed. Send to Layer: The Send to Layer command allows the user to highlight a block or group of blocks and send them to another layer. A dialog box will appear and the user can choose which layer or layers to receive the highlighted block or blocks. AND/OR Layer: The AND/OR Layer command appears as either AND Layer or OR Layer. Selecting AND Layer activates all layers containing a chosen block or set of blocks to be seen. Selecting OR Layer activates all layers to be seen. Customize: The Customize command allows the user to select the number of layers to be used. This command also allows for labeling each layer.
&RQWURO0HQX&RPPDQGV
The Control menu is used to control the mode and execution of the VAB environment. The Control menu has four sections that control the mode, compilation, execution, and execution options for the VAB environment.
6HWXS
Setup (Alt+Shift+S, Toolbar button): The Setup command places the environment in setup mode. The mouse cursor will be shown as an arrow. This allows you to doubleclick or right-click on an abject to modify its parameter setup and also to establish the placement of individual or groups of block functions within the block worksheet. Block functions can be relocated in the worksheet by selecting the block(s) with the mouse cursor and while holding the left button of the mouse down move the block into the desired position.
&RQQHFW
Connect (Alt+Shift+C, Toolbar button): The Connect command places the environment in Connect mode. This will allow for the connection of individual block functions within the worksheet. The mouse cursor will be shown as a cross-hair cursor labeled either SOURCE or DEST and is dependent upon whether the next connection is for a source block or a destination block. It is important to follow the correct connection scheme. For example, an input signal generator block connected to an output single-channel display block would use the SOURCE cursor to select the signal generator block, and the DEST cursor to select the single-channel display block. When connecting from a source or to a destination block with more than one channel, the distinction among channels is accomplished by proximity (vertically oriented) to the
You can connect to multiple destination blocks by first using a left-click to select the source block, and then use a right-click on each of the destination
0(18 &200$1'6
desired channel. For example (see diagram), if there are two channels to select between, the cursor should be located within the block icon boundaries, vertically closest to the desired channel arrow. The process of establishing the Data Flow Relationship among blocks is typically referred to as connecting blocks. You will need to enter the Connect mode when attempting to connect block components together. After selecting the Connect mode, the cursor will change to a target cursor with the label Connect. As the name implies, you should connect (by clicking once) on either the source or destination channel of the desired block component. After the source channel is selected, the cursor immediately changes to a target with the word Dest under the target. Now the user should connect, by clicking once, to the destination channel of the particular destination block. A line will be drawn immediately to indicate the data flow relationship that has just been established. This process should be repeated until all channels are connected. As the figure below shows, each block icon, or bitmap, is split into the source side (left half) and the destination side (right half). You can connect from source to destination or from destination to source and this is dependent upon which half of the block is first clicked. The cursor will change and be labeled either SOURCE or DEST; this is dependent upon whether the next connection is for a source block or a destination block. It is possible to connect to multiple destinations by first left-clicking on the source block and then using the right mouse button to click on the intended destination blocks.
BLOCK CHANNEL CONNECTIONS
Source Region Destination Region Channel 1 Region Block Icon Channel 2 Region Channel 3 Region
A block component can be resized to provide for easier connection. Simply drag the block into the desired position with the mouse.
Channel 1 Region
Channel 2 Region
'LVFRQQHFW
Disconnect (Alt+Shift+D, Toolbar button): The Disconnect command places the VAB environment into a disconnect mode. This will allow for the disconnection of individual block functions within the worksheet. The mouse cursor will be shown as a cross-hair cursor labeled either SOURCE or DEST depending on whether the next disconnection is for a source block or a destination block.
The Conditional Connect mode is a very powerful feature that allows a block functions data output to control whether or not another block (or group of blocks) will be executed in a worksheet.
&RQGLWLRQDO &RQQHFW
Conditional Connect (Ctrl+Shift+C, Toolbar button): The Conditional Connect command connects a block as an operator such that the first element in the source output frame determines the run state of the destination block. Conditional connections are red
&RQGLWLRQDO 'LVFRQQHFW
Conditional Disconnect (Ctrl+Shift+D): The Conditional Disconnect command removes a conditional connection.
3DUDPHWHU &RQQHFW
The Parameter Connect mode allows any blocks data output to directly modify any other blocks function parameters. Parameter Connect (Ctrl+Alt+Shift+C, Toolbar button): The Parameter Connect command controls a blocks parameters such that the first element in the source output frame determines the run state of the selected parameter of the destination block. Parameter connections are initially green (default) in color and connect to the bottom of destination blocks to distinguish them from standard data connections and conditional connections. When you have established a parameter connection, a dialog box will appear in which you can select which of the connected blocks setup parameter to affect.
3DUDPHWHU 'LVFRQQHFW
Parameter Disconnect (Ctrl+Alt+Shift+D): The Parameter Disconnect command removes a parameter assignment (green) connection.
'HOHWH
Delete (Delete or DEL depending on keyboard, Toolbar button): The Delete command places the environment in Delete mode. This will allow for the removal of individual block functions from the block worksheet. In addition to deleting blocks, any connection between blocks may also be deleted. When in the delete mode, the mouse cursor will appear as an arrow and a pair of scissors. To remove a block or connection, place the mouse cursor over the object to be removed and select the left button of the mouse. Any highlighted objects selected in Delete mode will be removed to the Paste buffer.
7H[W %R[
Text Box (Toolbar Button): The Text Box command allows you to create a text box object that can be placed anywhere in the worksheet. The text box allows you to select the font, color, and size of the text and can be moved anywhere in the worksheet. This command is useful for providing a means of adding annotation to the worksheet.
&RPSLOH
Compile (Ctrl+F8, Toolbar button): The Compile menu command will re-sequence the block functions of the active block worksheet. Re-sequencing is necessary after adding block functions to a worksheet or after changing data flow relationships within a worksheet.
0(18 &200$1'6
5HVHW
Reset (Shift+F5, Toolbar button): The Reset command resets all time dependent parameters of the active block worksheet. Parameters such as file and frame position will be set to their respective beginning locations.
5XQ
Run (Ctrl+F5, Toolbar button): The Run menu command will cause the VAB environment to run the active worksheet. The environment will continue to run the active worksheet until halted with the Stop command or the Escape key on the keyboard. If the Show Status menu option has been selected, then each block will be highlighted as it is executed. A red highlight indicates that the block has all the input data and the function of that block is being performed properly. A yellow highlight indicates that at least one input channel has no valid data or an error occurred in the blocks algorithm and the operation is suspended for this execution cycle.
)UDPH 6WHS
Frame Step (F12, Toolbar button): The Frame Step command will cause the execution of N frames of the active block worksheet and then halt. Continuing to select the Frame Step command will result in the next N frames of data to be processed. This command can be thought of as a Run N Frames command, and is useful for monitoring the algorithm in closer detail (frame-by-frame analysis when the frame step is set to 1 [default]). The frame step can be changed from its initial value of 1 through the Set Frame Step command described below. The framesize used during frame stepping is determined by the framesize parameter setup of the block functions used in the worksheet.
6LQJOH 6WHS
Single Step (F10): The Single Step command will cause a single block function in a worksheet to be executed. The initial use of this command will only highlight the first block to execute (a yellow line will be drawn around the block) without actually executing the block function. Subsequent single step commands will execute the highlighted block function, and then highlight (without executing) the next block to be executed. Hierarchical blocks are executed completely.
6WRS
Stop (Esc, Toolbar button): The Stop command allows you to interrupt the execution of the worksheet when it is running.
%ORFNV0HQX&RPPDQGV
The Blocks menu is used to select blocks for placement on the active worksheet, add a new block to the Block Function Selector, and provide an auto-build of the block function list.
6HOHFW %ORFNV
Select Blocks (Ctrl+B, Toolbar button): The Select Blocks command activates the Block Function Selector tool. This allows blocks to be selected for placement on the active worksheet or on the hot list toolbar. In addition to using the Block Function Selector, you can also create your own floating tool palettes that contain block components of your choice. This allows you to conveniently select those block components that you use most frequently. The Block Function Selector allows you to choose from several function libraries. Some of these libraries include Simulation, Real-time, Matrix, Image Processing, Instrumentation, and User Controls. Optional libraries are available for those products that do not include libraries you may want, including Advanced Transmission, Advanced Speech, and Image Processing. Please contact Hyperception should the need arise for additional libraries. Users can create their own function libraries as well by making their own custom block components with the Block Wizard tool. The Block Function Selector tool provides several function groups, each containing block functions. You can scroll through the group and function lists. If the left mouse button is clicked on a group, then all the functions in that group will appear in the function list. A function can also be selected with a single mouse click. There are several ways to select groups and functions in addition to a single mouse click. If you hold the mouse button down and scroll through either list, you can select multiple items at one time. You can select multiple items individually by holding the Ctrl key down while you click on an item. You can also use the Shift key to select all items from the last highlighted item to the selected item. If you double-click on a function, that functions block is placed in the upper left corner on the active worksheet. If you choose, you may also Drag and Drop functions from the Block Function Selector window directly to the worksheet and place the blocks where they need to be. Highlighted functions can also be added to the worksheet by clicking on the Add to Worksheet button. The list of highlighted function groups can be cleared with the Clear Group List button, and all function groups can be selected to display all available block functions with the Select All Groups button.
0(18 &200$1'6
'637DUJHW0HQX&RPPDQGV
The VAB DSP Target menu provides several commands that allow you to control and observe any of the DSP resources in your system. This section identifies and describes the commands that are available for use with DSP hardware. The DSP Target menu is shown either by clicking on the DSP Target menu name or by pressing ALT+D. The following is a short summary of the DSP Target menu commands. Default Driver Selects the default DSP driver used for subsequent commands
DSP-Based Variables Defines any DSP-based variables used in a worksheet design Driver Files Help Initialization Output Revision History Driver Globals Driver Utilities Driver Setup Displays driver-related files Displays real-time driver on-line help Displays real-time driver initialization Displays several types of real-time driver output files Displays drivers revision history Selects global options for specific DSP or all DSPs Selects utilities provided by default driver Setup the selected DSP board driver with the current system configuration Selects files used by the drivers internal linker Imports external executable, object and symbol files into DSP memory Exports the real-time application to an executable DSP COFF file Various DSP memory options Copies DSP memory range to specified address Dumps DSP memory range to screen or file Fills DSP memory with specified data pattern
Export Application
The following sections provide detailed descriptions of these DSP Target menu commands.
'HIDXOW 'ULYHU
The Default Driver menu command is used to select the default DSP board driver that will be used by all functions in the DSP Target menu and all real-time blocks. When this command is selected, a dialog box similar to the one below will appear:
Selection of the Default DSP Board Driver The dialog box contains a single combo box that allows you to select the default DSP board driver for all other DSP Target menu functions In addition to the DPS Target menu functions, new blocks added to a worksheet will use this default DSP driver. The default DSP driver may be overridden at the block level by changing the block functions selected DSP driver.
0(18 &200$1'6
'63%DVHG 9DULDEOHV
Selecting this VAB menu command will bring up a dialog box that lists all currently defined DSP-based variables available for use in a worksheet. You can enter variable names, initial values, data type, and data size. You can reference these DSP-based variables with individual block components in your worksheet design.
'ULYHU )LOHV
The Driver Files command is used to display driver-related driver files including on-line help, initialization, output and revision history files. The ability to display various drivers files directly from VAB is useful because it eliminates the need to leave the VAB environment to display or print the files. The following sections describe each of the menu items.
+HOS
The Help command invokes the Windows help engine with the on-line help file for the currently selected VAB real-time driver. Help can also be invoked from VABs Help menu.
,QLWLDOL]DWLRQ
The Initialization command displays the current drivers initialization file, which provides all DSP board configuration information for that driver.
2XWSXW
The Output command displays various types of real-time driver output files such as interrupt table, memory map, profile, system statistics, symbol table, sync table and memory map usage files for user analysis. The comprehensive system statistics are not displayed on the screen, so this it is helpful to be able to display statistics files directly from VAB.
5HYLVLRQ +LVWRU\
The Revision History command displays a list of the default drivers revision history. This information is useful because it quickly identifies recent driver enhancements and problem fixes.
'ULYHU *OREDOV
The Driver Globals command is used to select options that are global to a specific DSP resource. When this command is selected, a dialog box similar to the one below will appear (DSP drivers may support different global options):
Driver Global Configuration The Driver Globals dialog box provides several options that can be applied to a single DSP resource or all DSP resources controlled by the selected default DSP board driver. A single DSP resource is selected by scrolling through the Board and DSP numbers. The scrolling will automatically limit your selection to your system configuration, so if you have only one board installed, the board number will not scroll. Similarly, if a board only has one DSP, then the DSP number will not scroll. If the All checkbox is selected, all global options will be applied to all the DSPs in the system controlled by the driver. When the Force Interrupt checkbox is selected, the complete VAB worksheet running on the selected DSP resource can be tied to a specific interrupt so that it only executes when an the interrupt occurs. The interrupt is selected with the adjacent combo box that provides a list of all DSP interrupts. When the Profile DSP checkbox is selected, the complete DSP algorithm will be profiled. This profile information can be obtained from any blocks DSP Information dialog box or from the Real-time Profile... command. When the Force Block Profile checkbox is selected all blocks will be profiled without having to activate each blocks profile mode individually. This profile information can be obtained from the blocks Block Information dialog boxes or from the Real-time Profile... command. The Compilation Target can be selected to be DSP memory or PC memory. When DSP memory is selected, a DSP board must be installed in the system because all memory accesses will be attempted to the DSPs memory. When PC memory is selected (Virtual DSP mode), all memory accesses will be to a DSP memory image stored in the PCs memory, so a board is not required. Other global options that may appear are driver-dependent and are described in the specific drivers documentation.
'ULYHU 6HWXS
The Driver Setup menu command allows you to select the proper configuration for each DSP resource in your system. A memory test option is also provided for a
0(18 &200$1'6
convenient method of determining whether or not the DSP board is responding at the chosen settings. Upon selection of the DSP Target Driver Setup menu option, a dialog box similar to the one shown below will appear.
Driver Setup Dialog Box The Driver Info button can be pressed to determine the drivers version number and date.
/LQN )LOHV
The Link Files command is used to select the files used by the DSP board drivers built-in linker to allocate memory and resolve external references. When this command is selected, a dialog box similar to the one below will appear:
Link File Configuration Link files can include object, library, and linker command files. These files can be selected for a specific DSP resource or for all DSP resources managed by the default DSP board driver. Since each DSP resource is handled independently you may have one DSP
,PSRUW )LOH
The Import File command is used to import executable, object, and symbolic information files. When this command is selected, a dialog box similar to the one below will appear:
Import File Dialog Box You can load an external executable or object file into the selected DSPs memory allowing external applications that were not created with VAB to be executed and tested. Note that this may require that you modify the real-time memory-map for the selected target DSP board in order to provide correct segment names and addressing (see Memory Map section which follows). The external application can be controlled using the Realtime Control functions to run, stop and reset the selected DSP. You can also load ASCII symbolic information files containing symbol names and symbol values to resolve external symbols in special cases.
([SRUW $SSOLFDWLRQ
The Export Application command is used to export the current real-time VAB design to an executable DSP application that can be ported to an embedded system or other platform. The output COFF file can be used to program a PROM, load a DSP target via a host, loaded into a simulator or loaded into target hardware with a emulator/debugger.
0(18 &200$1'6
Note - The Export Application... command is a very powerful feature of Hypersignal RIDE. Real-time algorithms can be created within RIDE and then exported to a COFF output file. This DSP executable file is produced just as if you had written the source code yourself, and then used a DSP assembler/linker/compiler to create it.
Because the real-time memory map is user-configurable, and the real-time driver supports virtual DSP mode with no DSP board in the system, applications can be exported to any target hardware.
The application export capability eliminates the need for the intermediate C code generation step, which is required to export non-real-time designs. The following figure shows that the only user input required to export an application is a filename. By clicking on the Export button, the complete real-time VAB application is export for external use.
0HPRU\
The Memory command is used to perform various DSP memory-related functions. There are several commands available in a sub-menu displayed by the Memory command. The following sections describe each of the memory commands.
&RS\
The Copy command is used to copy a range of DSP memory to another area of DSP memory. When this command is selected, a dialog box similar to the one below will appear:
Memory Copy Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The source and destination addresses and the length of the block of memory to copy are selected.
'XPS
The Dump command is used to dump memory from the specified DSP resource to the screen or a file. When this command is selected, a dialog box similar to the one below will appear:
0(18 &200$1'6
Memory Dump Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The destination of the memory dump can either be the screen or a file. If a file is the destination, a browse box is activated to allow the filename to be selected. ASCII, binary, and COFF filenames default to .ASC, .BIN, and .OBJ file extensions respectively. Six types of data formats are supported: hexadecimal, unsigned integer, integer, float, character and instruction. The start address and length of the memory dump must also be specified. The following is an example memory dump. Note that the data format can be user modified from within the memory dump display.
)LOO
The Fill command is used to fill a range of the specified DSP resources memory with a selected data pattern. When this command is selected, a dialog box similar to the one below will appear:
0(18 &200$1'6
The specific DSP resource is selected by choosing the board and DSP numbers. The remaining parameters define the memory fill operation. The memory type (if applicable for the specific DSP) can either be program or data memory. The data type can be integer, float or instruction (if applicable). The address is where the fill will start. The fill value is the data value that will be written into the DSPs memory. The length defines the size of the memory fill.
/RDG
The Load command is used to load a file of data at a specified address in a DSP resources memory. When this command is selected, a dialog box similar to the one below will appear:
Memory Load Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The file format for the source data can be ASCII, binary or COFF format. The file data will be imported and stored in the selected DSPs memory at the specified address.
3ORW
The Plot command is used to plot a range of the DSP resources memory. When this command is selected, a dialog box similar to the one below will appear:
Memory Plot Dialog Box The DSP memory range is defined with a starting memory address and length. The data type of the memory region must be defined as integer or float. The update mode can be manual or automatic. In manual mode, the plot will only update when selected by the user from the plots menu. In automatic mode, the plot updates as fast as it can. Automatic mode is useful for monitoring a data that is constantly changing. If the DSP is not running, or the data is not changing, manual mode is sufficient. There are several different types of plots available which are user-configurable. The following is an example memory plot.
0(18 &200$1'6
6HDUFK
The Search command is used to search the DSP resources memory for a specified data pattern. When this command is selected, a dialog box similar to the one below will appear:
Memory Search Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. You can choose the search criteria applicable to the selected DSP such as the memory type (data or program), data type (integer or float), address range and search value. A search can be initiated by clicking on the First Match or Next Match buttons to find the first occurrence or next occurrence of the search value within the selected address range. The result of the search is displayed in the Search Result area of the dialog box.
0DS
VAB maintains a memory map for the target DSP. VAB uses the memory map is used when the real-time algorithm is executed by the target DSP. The Map memory command allows you to display and modify the DSPs current memory map. When this command is selected, a dialog box similar to the one below will appear:
Memory Map Dialog Box The specific DSP resource is selected by choosing the appropriate board and DSP target numbers. The memory map output lists the available system memory including memory section names, start addresses, end addresses and memory types. Any of the memory segments listed in the memory-map can be modified. By doubleclicking on a segment name, a dialog box will appear in which the modifications would be made. The memory-map does not allow you to overlap segments. It is quite helpful to calculate the desired address locations first, clear the memory map, and then make the new changes. The memory map dialog boxs File menu allows a memory map to be saved to a file and read from a file. This can be quite convenient for situations where individual real-time worksheets require unique memory-maps. For example, a worksheet that requires a very large delay value might assign the HEAP segment to be much larger than normal. Also, if the target DSP hardware has more memory, you can take advantage of it by adding it to the memory-map. The Edit menu allows memory segments to be added, cleared, deleted and modified. Additionally, a default memory map can be selected.
8VDJH
The Usage memory command displays a DSP resources current memory map usage. When this command is selected, a dialog box similar to the one below will appear.
0(18 &200$1'6
Memory Usage Dialog Box The memory map usage shows each memory segments name, start address, size, and amount of memory used in both absolute addresses and percent. A summary of total memory is displayed at the bottom of the dialog box.
6\PEROV
The Symbols command is used to display the symbolic information for all of the blocks that are selected in the real-time block worksheet. When this command is selected, a dialog box similar to the one below will appear:
Symbol Table Dialog Box The symbol table includes a list of symbol names along with their values and memory segments in which they were defined. A summary of the total number of symbols and user-defined symbols is provided at the bottom of the display. This symbolic information can be used in conjunction with a DSP debugger to analyze code at the assembly level. The memory content of a referenced symbol can be displayed by double-clicking on the symbols name. This is convenient for viewing assembly language op-codes or checking on variable contents.
3URILOH
The Profile command is used to display the profiling information for all of the blocks selected for profile. Each block can be selected to operate in profile mode; this allows you to determine the processing time of the block. Additionally, the Driver Globals... command can be used to force a profile of all blocks and the complete DSP algorithm. When the Profile... command is selected, a dialog box similar to the one below will appear:
0(18 &200$1'6
Profile Dialog Box The specific DSP resource is selected by choosing the board and DSP numbers. The profile information provides the total number of times that each block has been executed, the number of DSP clock cycles for a single block execution, and the total number of DSP clock cycles that each block executed. The profiling mode is useful in calculating how many clock cycles a particular block function requires. This information can be helpful in determining how much processing time is available.
6\QFV
The Syncs... real-time menu command is used to display the use of all synchronization flags that are active on the selected DSP. Synchronization flags allow blocks to run at different rates allowing VAB to support multi-rate processing. In each blocks parameter dialog box, the block can be selected to control a SYNC OUT signal and/or monitor a SYNC IN signal. Blocks may use the SYNC OUT signal to notify other blocks when output data is valid. Blocks may use the SYNC IN signal to monitor the output syncs from other blocks. There are numerous sync flags from which to choose. Currently the only VAB supplied real-time block functions that provide SYNC OUT signals are the hardware-specific A/D block functions. Users can create their own real-time blocks that allow for SYNC OUT flag generation.
Example Sync Table The name of the sync flag is obtained by a block function from the respective drivers initialization file. The sync names are arbitrary, so you can rename them if desired by editing the appropriate real-time driver initialization file. The direction of a sync flag can either be an output (O) or and input (I). In the case of an output sync, the block must be written to provide output sync information. For example, A/D conversion and buffer blocks provide output sync information because their outputs are only available at certain times. In the case of an input sync flag, the associated functions will only execute when the selected sync flag is set active by another block that sets the SYNC OUT flag.
,QWHUUXSWV
The Interrupts... menu command is used to display the list of block functions that are tied to DSP interrupts on the selected DSP resource. In each blocks parameter dialog box,
0(18 &200$1'6
the block can be selected to execute only when a specific interrupt occurs. A single block or several blocks can be tied to a single interrupt to form an interrupt service routine. The interrupt table includes the DSPs interrupt number and name, the interrupt handler entry address, the block functions that are tied to the specific interrupt, and the address of the code associated with each block. The number and names of interrupts are processordependent, but the interrupt table maintains a consistent format regardless of the DSP type.
6WDWLVWLFV
The Statistics... real-time menu command can be used to display statistical information about the selected DSP resource such as its memory map, memory allocation, block allocation and miscellaneous DSP-specific information. When this command is selected, a dialog box similar to the one below will appear:
'63 &RQWURO
The DSP Control... real-time menu command provides the ability to control the selected DSP resource by placing it in the reset, run, or hold mode of operation. These DSP control functions are intended to control execution of external COFF files that are loaded into DSP memory using the Import File... command. When the DSP resource is selected, a control dialog box such as the one below will be displayed. When a specific DSP resource is selected via the OK button, a floating palette of DSP control buttons is displayed, which allows direct control of the DSP resource. These control buttons will vary depending on the driver selected.
7RROV0HQX&RPPDQGV
The Tools menu contains commands that allow you to run other applications directly from within the VAB environment. The default Tools menu includes the Stand-alone Application Builder, Block Wizard, Filter Design utility, the ANSI C Source Code Generator, and the Windows Calculator applications. If any of the tools are not installed, the application menu entree will be grayed out. Otherwise, if you select a tool from the Tools menu, the tool will be invoked.
%ORFN :L]DUG
The Block Wizard is included as a standard tool with all editions of the Hypersignal visual design environments and allows you to create your own block functions.
6FLHQWLILF &DOFXODWRU
The Windows calculator can conveniently be selected from this menu command.
&XVWRPL]H 7RROV
Choosing this menu command will allow you to customize the Tools menu with the insertion of additional applications.
0(18 &200$1'6
2SWLRQV0HQX&RPPDQGV
The Options menu contains commands that allow you to add external I/O connections for hierarchy block creation, change the user interface configuration, and add new functions to the Function menu.
6WRS 2Q :DUQLQJ
Stop on Warning (Ctrl+W, Toolbar button): The Stop On Warning command allows you to decide whether you want the environment to notify you when there is a block function warning. For example: If you try to add a ramp generator and a sine generator, the program will stop on the ADD block if the framesize or the sample rates of the two blocks are non-equal. The ADD block will show a yellow border around its icon and a warning message will be displayed in the status area. The following is a list of warning messages that the environment might display: end of file error executing user algorithm arithmetic error in user algorithm data conversion error overflow data type error sampling frequency error data precision not supported initialization error framesize mismatch Warning in User Block
6QDS 7R *ULG
Snap to Grid (Ctrl+G, Toolbar button): The Snap To Grid allows for placing (or removing) a positioning grid from the active worksheet. To alternate between Snap To Grid and free form block placement, you may use the pull-down menu, press Ctrl+G, or click on the grid toolbar button.
6ROLG *ULG
Solid Grid: The Solid Grid command toggles between having solid grid lines and just pixels at each intersection of a line. The default setting for Solid Grid is set to off.
&XVWRPL]H 7RROEDUV
Customize Toolbars: The Customize Toolbars command allows for customizing a new or existing toolbar with block functions. When this menu command is chosen, a dialog box appears in which you can select from all function library groups. By grabbing a block functions icon with the left mouse button, you can drag it into the work area. By placing the selected icon onto a toolbar and then releasing the left mouse button, you will cause the corresponding block function to appear in the toolbar. Placing the icon outside of a toolbar will cause a new toolbar to be created. This menu command is useful for creating toolbars that contain the block functions that you most commonly use.
0(18 &200$1'6
3URMHFW
The following menu commands are contained in the Project menu: Undo Buffer Size, Variables, Previous Level, Security/Permissions, and Properties. Each of these menu options is discussed below:
3&%DVHG 9DULDEOHV
Variables: The Variables command allows for adding, modifying, and viewing the global variables defined for the current project.
3UHYLRXV /HYHO
Previous Level: The Previous Level command takes you up a level in hierarchy and makes the parent worksheet the active worksheet.
6HFXULW\3HUPLVVLRQV
Security/Permissions: The Security/Permissions command allows for setting passwords for Read/Write protection. This option is useful in situations where you do not want worksheets (which may be a top-level worksheet or hierarchy file) to be modified.
3URSHUWLHV
Properties: The Properties command allows for accessing the worksheet properties. If the block is a hierarchy block, the library, group, and block name information is displayed in the dialog box.
:LQGRZ0HQX&RPPDQGV
The Window menu commands control the display of the worksheet windows. Every toplevel and hierarchy worksheet has its own window which can be displayed in various ways. You can cascade, tile and close all the open worksheets using these Window menu commands.
&DVFDGH
Cascade: The Cascade command cascades all the open windows so that the are placed on top of one another with their title bars showing for selection. The active worksheet is shown with a highlighted title bar.
7LOH +RUL]RQWDOO\
Tile Horizontally: The Tile Horizontally command tiles all the open worksheet windows horizontally so that they can all be displayed simultaneously. The active worksheet is shown with a highlighted title bar.
7LOH 9HUWLFDOO\
Tile Vertically: The Tile Vertically command tiles all the open worksheet windows vertically so that they can all be displayed simultaneously. The active worksheet is shown with a highlighted title bar.
$UUDQJH ,FRQV
Arrange Icons: The Arrange Icons command aligns all the minimized worksheets icons at the bottom of the work area. When a worksheet is minimized, it is represented as an icon on the work area. This command is useful to organize worksheet icons.
5HIUHVK 'LVSOD\
Refresh Display: The Refresh Display command forces the environment to repaint the current worksheet.
&ORVH $OO
Close All: The Close All command closes all the open worksheet windows. If a worksheet has been modified without being saved, the environment prompts whether to save the worksheet file before closing the window.
2SHQHG )LOHV
Opened Files: At the bottom of the Window menu, a list of currently opened worksheets is displayed. You can move from one worksheet window to another quickly by selecting from this list. If the windows are cascaded, the selected worksheet is brought to the top and becomes the active worksheet. If the windows are tiled, the selected worksheet becomes the active worksheet.
+HOS0HQX&RPPDQGV
The Help Menu commands provide on-line help for VAB application. There are various levels of help available and includes the standard product help, block component reference, upgrade information, and other relevant information about the environment. This comprehensive help system is composed of several individual help files.
&RQWHQWV
Contents: This menu selection brings up the main help page for the environment. From this main help page, a variety of top-level help areas using the Hot Key text (typically green colored) may be selected. In turn, these top level help areas will provide further information and possibly additional Hot Key text fields allowing you to navigate to an appropriate section regarding a particular question.
0(18 &200$1'6
3URGXFW 8SJUDGHV,QIR
Product Upgrades/Info: The Product Upgrades/Info brings up detailed information regarding additional products and upgrades that might be found useful in certain applications. This is a good source for determining which optional block function libraries exist, and the procedure one would follow to upgrade or purchase further products from Hyperception.
$ERXW
This menu selection brings up a modal dialog box that provides information regarding the product name, version number, the user name, serial number, and other relevant details regarding this particular software application. This is useful for determining the serial number and product name when contacting Hyperception Technical Support.
2WKHU&RPPDQGV
There are other commands available that are not located in the menu or toolbar commands. This section briefly describes those commands.
%ORFN $QQRWDWLRQ
By pointing to a blocks label or line connection in a worksheet, and double-clicking the left mouse button or single-clicking the right mouse button, the user may modify the text label associated with that block. If the worksheet is then saved, any modified block labels will also be saved. This is useful for documenting a worksheet to be more meaningful with respect to a particular application.
%ORFN 'HVFULSWLRQ
By pointing to a block icon in a worksheet, and single-clicking on the left mouse button, a brief description for that block is obtained. This description will show up in the status line, and may give some aid to the user regarding the function of that block.
0(18 &200$1'6
:RUNLQJZLWK%ORFN &RPSRQHQWV
Some suggestions for using the basic building blocks in your design
&KDSWHU
When you are using VAB to create your own real-time designs for use on the Texas Instruments DSK hardware you will find that working with block components will become a common aspect to building-up a worksheet. Therefore, you will need to understand some basic issues with regard to using block components in your design. This chapter is not intended to cover such items as connecting blocks, or setting a blocks user-parameters (you can refer to other chapters of this manual for this type of information). Rather, its purpose is to help you understand how best to use the block components in the construction of your VAB designs. There are several useful guidelines to follow (or at least keep in mind) when building your worksheets, and these suggestions will be presented here.
'6.0HPRU\
First, it is important to keep in mind memory limitations of your particular DSK hardware. For the purpose of this section, lets use the C31 DSK as an example. The C31 DSK hardware contains a limited amount of memory. In fact, the only memory available on the DSK is that of the on-chip memory of the TMS320C31 DSP chip. This memory space is what the VAB program uses when building your algorithm for use by the DSP. To best take advantage of this memory, you will need to understand how VAB uses the available memory space. [Note: You can purchase a SuperDSK board that will provide your C31 DSK hardware with lots of external memory; this allows you to create much larger programs within VAB. Please check VABs on-line Help for information about the SuperDSK.] You should be aware that the on-chip memory is a fixed size of 2K words of memory. Of this space, the VAB program requires that an on-board program, or kernel, be resident in memory. This allows VAB to transfer data to and from the DSK hardware. While this is important it does come at a cost of a reduced available amount of memory on the DSK hardware. Each DSP-based block component that you use in your worksheet design takes up some memory of the DSK. For example, a block component has associated with it a section of code that is executed by the DSP. Also, a block component may allocate a region of memory for storage of any of its unique working parameters (e.g. a Sine generator contains information on such parameters as amplitude and frequency settings). Some blocks may require a region of memory for data storage. All of this memory use adds up especially quickly when you consider the memory limitation imposed by the DSK hardware. So, how can we best take advantage of the limited amount of memory left over for creating real-time algorithms? You will find that there are tradeoffs you can make when making a VAB worksheet. Here are several ideas to consider when constructing a worksheet:
The C31 DSK contains only on-chip DSP memory. This places some restrictions on the way you build-up a VAB worksheet when designing for the C31 DSK hardware.
A framesize can be associated with a block component. Typically block components that are of a signal generator nature (e.g. Sweep Generator, DSK A/D, etc.) will require that a framesize be specified. The blocks framesize determines the size of the blocks memory buffer output. The framesize can be chosen to be a value of 1 (point-by-point processing), or it can be chosen to be larger. It is important that you understand the consequences of selecting the framesize parameter in your worksheet design. When you specify a block component to have a certain framesize, the VAB program will allocate a region of memory based upon the chosen value. Most block components that are designed to perform some process (blocks that require an input connection and will generate a desired output based upon the blocks function) will operate on the framesize that has been specified by a block component that serves as its input. (This is not the case for Native block components - they operate on a framesize of 1 [see below].) What this boils down to is that every block component in your worksheet will allocate memory for its output buffer. The size of this buffer is determined by the blocks framesize. For example, if a Sine Generator uses a framesize of 100 points and is connected to five vectorbased block components then you will quickly exceed the amount of memory VAB provides for buffer storage. Remember: each process-type block will try to allocate a buffer of data that is based upon the framesize of the input block component.
A common VAB Error Message if too much memory is used If you choose to use a framesize of 1 and would like to also upload data for display in VAB, you may wish to consider using a buffered approach to transferring data to the host PC. This can be accomplished by using a buffer hierarchy block component.
VAB does not allow you to modify the memory map used. Hyperception does offer other products that do provide this capability. If you are interested in this feature please contact Hyperception for information.
'63%DVHG1DWLYH%ORFNV
The VAB program includes several powerful block components that are referred to as Native block functions. The native blocks have been designed to provide fast execution on the DSP with no overhead associated with using them in your design. In addition to their inherent speed, these blocks take up very little memory space. Both of these features make the use of native block components ideal for the DSK and the VAB program. When using native blocks it is important to understand that these blocks only operate on a single data point. That is, they expect to operate on a framesize of one. If larger frames of data are passed to a native block only the first data point will be processed. If you are using native block components with vector block components (see below) you should take care to make sure that the vector-based block components have been setup to operate on a framesize of 1.
5HDG (OHPHQW $W
This block component reads the element at the specified address and offset of a variable array. This block outputs a single value located at the address, specified in the first input, plus the offset, specified in the second input. Most commonly, this block is used to access an element within an array of data where the array address is connected to the first input and the array index is connected to the second element. Note - the inputs and outputs of this block are treated as scalar values and not as vectors.
9DULDEOH 5HDG
This function provides the value of a particular real- time global variable. The current value of the variable is available from this block, and when the block is running, changing this value causes an instantaneous one- time download of the new value. The initial value of the variable is also accessible from this block. Note - the outputs of this block are treated as scalar values and not as vectors.
9DULDEOH :ULWH
This function stores the input value in the variable specified. This block can be thought of as an assignment operator, as it replaces the current value of the variable with whatever is connected to the input channel. Note - the inputs of this block are treated as scalar values and not as vectors.
:ULWH (OHPHQW $W
This function stores the value, at the first input, at the address created from the second and third input channels. The second input is a base address and the third input is an offset from the base address. Note - the inputs of this block are treated as scalar values an not as vectors.
'63%DVHG9HFWRU%ORFN&RPSRQHQWV
Vector-based block components allow you to specify a framesize parameter, and are capable of operating on frames of data larger than (or equal to) a size of 1. Typically these block components will take up more memory space than their Native block counterparts, but will allow you to work on arrays of data (as opposed to operating on a sample by sample basis). If you specify the framesize of a Vector-based block component to be equal to a value of 1 then you will be able to combine them with VABs Native block components.
3&%DVHG%ORFN&RPSRQHQWV
PC-based block components rely upon the host PC to perform the algorithm processing. These block components cannot be used directly with DSP-based Native and Vector block components. However, VAB does allow you to transfer data from the DSP-side up to the PC-side for subsequent PC-based processing and display. Examples of PC-based block components include VABs Display blocks.
'6.+DUGZDUH6SHFLILF%ORFNV
There are two block components that are specific to the DSK hardware. These blocks are the DSK A/D and DSK D/A block components. These block functions are located in VABs DSP-Based Vector Library in the RT DSK Hardware Functions group. You can use a single A/D block in a worksheet, a single D/A block in a worksheet, or a combination of an A/D block and a D/A block in a worksheet. The maximum framesize for these blocks has been set to 32.
7UDQVIHUULQJ'DWDIURPWKH'6.WR9$%IRU'LVSOD\RU 3&EDVHG3URFHVVLQJ
You may wish to upload data from a DSP-based block component for subsequent PC-based processing or display in VAB. However, VAB will not allow you to directly connect a DSPbased block component to a PC-based block component.
3URILOLQJ\RXU'HVLJQ
The VAB design environment allows you to find out exactly how much time your algorithm takes to run on the DSK. There are two methods of obtaining the number of instruction cycles used by your design. The first method is to use the DSP Target menus Profile command to display relevant information about your design. The second method is to use the RT Profile block component to display the profile information.
$7XWRULDO
Getting up to speed with VAB
&KDSWHU
This chapter is designed to get you up and running with the VAB software as quickly as possible. You may find it helpful to follow the tutorial along and actually re-create the demonstrations presented here with your VAB software and DSK hardware. This way you will actually be able to learn how to use VAB more easily and quickly. If you desire to re-create the demonstrations shown in this tutorial you should verify that your DSK is properly communicating with VAB before proceeding (see Chapter 1 for information on verifying VAB / DSK communications). Several of the more commonly used commands will be presented in this chapter as are some of the common steps used in creating your own worksheets. Its recommended that in addition to this section, you read through the rest of this user manual for further information and additional suggestions. The steps listed in this tutorial show how to: 1. 2. 3. 4. 5. 6. 7. 8. 9. Start a new VAB worksheet session Select block components Establish data flow connections Change a blocks parameters Run the worksheet Using a Parameter Connect Use edit cut/copy/paste/undo functions Use hierarchy in a worksheet Save the Worksheet
6WDUWLQJD9$%6HVVLRQ
The first step in creating a block diagram real-time design with VAB is to start a new worksheet. A worksheet is a window which serves as a work space for your applications, and may be thought of being like a piece of paper in which a block diagram may be drawn. Each worksheet can contain many different block components that are arranged in a structured block diagram algorithm. Many worksheets can be opened and maintained while in the VAB environment, but only the worksheet chosen as the active worksheet can be executed. The active worksheet filename is displayed in the VAB application caption bar. Choosing the File menu New
$ 78725,$/
command will cause an empty worksheet to be loaded. It is in this window where you will place your block components. If you desire to re-create the demonstration shown in this tutorial you should select the VAB File New menu command to bring-up an empty worksheet. This will produce a VAB worksheet similar to the figure shown below:
6HOHFWLQJ%ORFN&RPSRQHQWV
Block components can be placed onto the active worksheet by using the Block Function Selector tool, or by using VABs block component Toolbars. Choosing the VAB Blocks menu Select Blocks... command will cause the Block Function Selector dialog box to appear. The Block Toolbars will appear as dockable toolbars in the VAB work area. Block components are arranged into many different group categories. These categories are shown in the Group List box. Choosing a function group will cause all functions within that group to be added to the Function list box. De-selecting the group will remove all corresponding block functions from the Function list. By selecting the Add to Worksheet button all blocks in the Function List will be added to the active worksheet. Single block functions can be selected into the worksheet by double-clicking the block function name, or by simply dragging the name of the block component into the worksheet. Upon selection of the desired block components their associated icons will appear in the worksheet. When you are done selecting blocks, you should click on the close button. You may add more blocks later so you do not have to choose all blocks at once. In the figure below we
First position the block components in the worksheet, and then connect them together to establish the data flow.
(VWDEOLVKLQJWKH'DWD)ORZ
Using the right mouse button during connection will allow you to connect a single source block to many destination blocks without re-establishing the source block.
Once you have selected the block components onto the worksheet you will need to establish the block diagrams data flow. This is accomplished by using the mouse to arrange the block icons in the worksheet to form an algorithm or process. The business of establishing the data flow relationship among blocks is typically referred to as connecting blocks. When the blocks have been positioned on the worksheet, you need to connect the blocks to form the algorithm. This is done while operating in the Connect mode. VAB can be placed into Connect mode by selecting the Mode menu connect command. When this mode is selected, the mouse cursor will change to a target cursor labeled either SOURCE when choosing a source block icon, or DEST when choosing a destination block icon. Positioning the target cursor over a block component and clicking the mouse button will cause a connection to be made. Placing the mouse cursor in the right-half of a block will specify a Source connection; a cursor placed into the left-half of a block will define a destination connection. Once the blocks in the worksheet have been connected, the worksheet needs to be compiled. Compilation determines the order in which individual blocks will execute, and can be performed through use of the Compile menu command. Compilation of the
$ 78725,$/
worksheet should be done after all block components have been positioned and connected.
BLOCK CHANNEL CONNECTIONS
Source Region Destination Region Channel 1 Region Block Icon Channel 2 Region Channel 3 Region
Channel 1 Region
Channel 2 Region
Block showing source/destination regions with multiple block input/output channels As the figure above shows, each block icon, or bitmap, is split into the source side (left half) and the destination side (right half). You may connect from source to destination or from destination to source; this is dependent upon which half of the block is clicked first. The cursor will change and be labeled either SOURCE or DEST depending on whether the next connection is for a source block or a destination block. It is possible to connect to multiple destinations by first left-clicking on the source block and then using the right mouse button to click on the destination side of each block intended to be a destination. It is important to follow the correct connection scheme. For example, an input signal generator block connected to an output single-channel display block would use the SOURCE cursor to select the signal generator block, and the DEST cursor to select the single-channel display block.
Block connections can be made from both Source-Destination and Destination-Source directions.
&KDQJLQJD%ORFNV3DUDPHWHUV
Using the Parameter Connect feature is another way to change a blocks parameters.
In most cases you will want to select the setup parameters for the block functions in your worksheet. You can modify the setup parameters for a block function by first doubleclicking the block function icon with the left mouse button. This will cause the blocks setup parameter dialog box to appear (if the box has any parameters which can be changed). The parameters that can be entered are dependent upon the block function chosen. Selecting the dialog box OK button will keep any changes made.
5XQQLQJWKH:RUNVKHHW
After you have arranged the block icons and established the data flow by connecting the blocks together you can run the worksheet. The VAB run commands can be located in the Run menu. The Run menu command will cause the active worksheet to be executed. VAB will continue to run the active worksheet until you halt its execution through use of the Stop menu command. If the Show Status selection has been made, then each block function in the worksheet will be highlighted as it is executed. A red highlight box around a block function is used to indicate a successful execution of the block. A yellow highlight box is used to indicate a warning message; for example, when a block has not been connected and the worksheet is run, a warning yellow highlight is issued. Running the worksheet demonstration built in the previous section will result in the graphical display of a sine waveform, and the continuous generation of a tone at the
$ 78725,$/
DSKs D/A output. If you have a speaker connected to your DSK then you will hear the output as the worksheet is running.
8VLQJD3DUDPHWHU&RQQHFW
Sometimes it is useful to modify the setup parameters of a block component as the algorithm is actually running on the DSP. VAB provides this capability by allowing you to Parameter Connect one block component to other block components with the capability of adjusting their individual setup parameters. Well add the use of a Parameter Connect to the demonstration worksheet built in the previous sections. First, stop VAB if it is currently running. Next select the Horizontal Slider from the Block Function Selector to place the user control block component onto the worksheet. This particular block has two parts associated with its use: the block component icon, and a horizontal slider window. The slider window will only be displayed if VABs Maximize User Controls menu toolbar button has been selected. The first thing to do is to adjust the setup parameters for the controlling block (i.e. the Horizontal Slider block) component. This is accomplished by double-clicking on the block icon to bring up the blocks setup parameter dialog box. Enter the desired parameter information. For our demonstration we will use the slider to control the Sine blocks frequency parameter. Well want the Sine blocks frequency to range between 0 Hz and the Nyquist rate (half of the Sine blocks sample rate). Sine the Sine block has previously been setup to use a global variable named Sample Rate well use this in the setup of our slider block (as shown below).
Horizontal Slider Setup Parameters After you have selected the controlling blocks setup parameters you should enter the VAB Parameter Connect mode via the VAB menu or toolbar command. Once you have chosen Parameter Connect mode you can select the Horizontal Slider as the Source block. Note that the source block will be used as the controlling block component. The first data value output from this block will be used to adjust the setup parameters of the block to be controlled. Now select the Sine Generator block component as the block to be controlled. This is accomplished by using a mouse click to select the Sine Generator block icon in the worksheet. Doing this will cause a dialog box to appear. This dialog box lists all of the setup parameters for the Sine Generator block component. For this example select the Frequency parameter name from the dialog box.
$ 78725,$/
After you have chosen the Frequency parameter from the dialog box the Horizontal Slider block component will be Parameter Connected to the Sine Generator block. This is indicated by a green line connection between the Horizontal Slider icon and the underside of the Sine Generator block icon. Now you are ready to run the worksheet. Select the Run menu command or toolbar counterpart. The algorithm will begin running as before. However, this time you have direct control over the frequency being generated by the Sine Generator block component. Use the mouse to adjust the slider bar. In addition to seeing the waveform data update you will actually hear the frequency change on a speaker if your DSK is connected to a speaker. This is just a simple example of how to make a parameter connection between two block components. You can use parameter connect logic with the output of real-time block components (native or vector-based) in addition to the PC-side component method demonstrated here.
8VLQJ(GLW&XW&RS\3DVWH8QGR
The VAB Edit commands are used to cut, copy, and paste block components in a worksheet. You can quickly duplicate a single block or group of blocks (with line connections intact) by using the edit commands Copy and Paste. An Undo command is also provided to reverse the last edit menu commands action. You can select any object in a VAB worksheet by highlighting it with the mouse. You can do this by selecting the objects individually (if you hold the Ctrl key down while clicking you can
8VLQJ+LHUDUFK\LQD:RUNVKHHW
Hierarchical design is allowed within the VAB environment. This provides for a worksheet of block components to be used itself as a block component in a higher-level worksheet. And that higher-level worksheet could in turn be used within an even higherlevel worksheet, and so on. This effectively allows for n-level hierarchical design. You can make a hierarchy worksheet by adding external I/O connections to a worksheet. This is accomplished by using VABs External I/O Options menu command.
Creating a Hierarchy Worksheet with 2 External Inputs, and Selecting 1 External Output You will need to save the hierarchy worksheet before you can use it as its own block component in a new worksheet design. See the next section for information on saving a worksheet.
6DYLQJWKH:RUNVKHHW
When you have finished with a block worksheet you may want to save it for retrieval at a later date. Youll probably find it convenient if you create a special directory to hold your block worksheets. This way, youll know were to find them when you need them.
$ 78725,$/
VAB contains its worksheet examples in the default location of the C:\Program Files\Hyperception\VAB\Examples directory. You can save your worksheets through use of the File menu Save command and Save As... command. When you select either of these commands while working with an unsaved worksheet a dialog box will appear in which you can provide a name and path for your worksheet. You will not need to provide a filename extension when saving a worksheet. The default filename extension of .LST is used. VAB supports the use of long filenames (see figure below).
Saving a VAB worksheet When saving a Hierarchy worksheet you will need to provide some additional information.
$ 78725,$/
6DPSOHG'DWD$FTXLVLWLRQ 6\VWHPV
A brief overview of some basic Digital Signal Processing concepts for beginners
&KDSWHU
One of the fastest growing areas of high technology today is the field of digital signal processing (DSP): the use of digital computers, microprocessors, specialized signal processing ICs and other digital machines to process physical signals that vary with time or space. The rapidly increasing level of interest in digital signal processing is largely a matter of economics. The proliferation of low-cost, flexible, personal computers has created an unprecedented number of opportunities to develop and apply DSP techniques to areas that can benefit from digital signal analysis. Also the advent of fast, inexpensive digital signal processor ICs has allowed entry into real-time product realms which were once ruled exclusively by analog systems. Additionally DSPs have allowed into product areas formerly served less effectively by slower microprocessors, or those areas with high data rate requirements that are only now economically feasible to develop. The flexibility and power of digital signal processing makes it a tool well suited for dealing with an increasing number of applications. However, no matter what the application, actual real-world signals must be in a form the digital machine can accept before any processing can take place. The form a signal must assume prior to digital signal processing is the subject of sampled-data systems. This section is not meant by any means to be a highly technical or rigorous explanation of sampling theory, but rather to present some very general concepts about sampled data acquisition systems. The interested reader is encouraged to delve into the myriad books on the subjects of sampled data systems and digital signal processing in general.
$6DPSOHG6LJQDO
A sampled signal is usually meant to be a representation of some physical quantity sampled at different points in time. Sampling simply means to measure the signal at an instance in time. For example, an electric signal might be 5 Volts at one instant and 5.1 Volts slightly later. In the real world, or "analog" world, the signal is continuous -- it has a value at every instant in time -- and in this example, is required by the laws of physics to transition continuously from 5 Volts to 5.1 Volts. In the digital world, the signal is defined only at the sample times. Thus the digital machine knows only that the signal was 5 Volts at some point in time and 5.1 Volts some interval later. Obviously, the digital machine could sample the signal faster and faster until its representation of the signal approached the analog version. However, if a digital device were somehow constructed that could sample the signal continuously, it would have no processing time left over to work on the samples it obtained. Thus, the trick is to sample fast enough to obtain a reasonable facsimile of the signal, yet slow enough to have time left over to do some real work (signal processing). When the work to be performed on the signal in order to extract or determine desired results can be done for infinitely long periods, with no loss or skipping of sample values, then the system is said to be operating in "real-time". The slowest rate at which a digital machine can sample the analog signal and still maintain an accurate representation of it has been the subject of much study, and is discussed briefly under "data acquisition", below. In short, the slowest rate depends on the signal itself --
'DWD$FTXLVLWLRQ
Data acquisition is a term used to describe the process of "sampling" a signal (capturing a sequence of numbers for a digital machine to work with, as described above) from a realworld system. In many cases, the signal captured represents the physical quantity of electric voltage, for two reasons: 1) Most signals of another type can be readily transformed into voltage, through the use of transducers such as microphones, thermistors, light-sensitive diodes, piezoelectric material, etc. 2) There exist many inexpensive devices that perform periodic time sampling of voltage and are compatible with digital computers. In the field of digital signal processing, the transformation from a continuous analog signal to a discrete sequence is usually referred to as analog-to-digital conversion (A/D conversion). There currently exists a wide variety of A/D systems exists for use with the IBM PC/XT/AT and compatible machines. Usually these systems include a plug-in circuit card and software, such as Hypersignal, that allows convenient data acquisition and storage on disk for subsequent processing and analysis. In the case of Hypersignal software, various real-time processing options are also available, allowing signal modification or information extraction to be performed prior to display or disk storage. In order to set up a data acquisition system it is important to know some information about the signal to be captured. The most important characteristic is the bandwidth of the signal. The bandwidth of a signal refers to the difference between the highest frequency at which the signal can change, and the lowest. Since many signals may not change at all for some length of time (zero frequency is sometimes known as "DC"), bandwidth often refers simply to the maximum signal frequency component. Frequency, an oft-used term in digital signal processing, may be thought of as the rate at which a signal changes values. The maximum signal frequency occurs when a signal changes from its lowest possible value to its highest possible value or vice versa in the smallest amount of time. In mathematical terms, one divided by this minimum time interval is the maximum signal frequency. Thus, frequency is expressed in units called Hertz (Hz), where 1 Hz is 1/1sec. Once the bandwidth of the signal is known, it is possible to determine the minimum rate at which the signal can be sampled (the maximum time interval between adjacent time samples) and still be truly representative of the continuous analog time signal. One may ask what is to be gained by sampling at the minimum rate. There are two very important resources that almost always need to be conserved including processor time between samples for actual digital signal processing work, and processor memory storage for samples. The minimum rate of sampling is known as the Nyquist Frequency (Fs), and
$QDORJ6LJQDO%DQG/LPLWLQJ
A logical question might now be: How does one guarantee a limit on the bandwidth of a signal? In fact, most signals are "band limited" prior to analog-to-digital conversion because of the input device from which they originate or the analog circuitry through which they must subsequently travel. In many cases, natural band limiting is in effect because the transducer, or input device, being used has an inherent band limit. Some examples of this might be a microphone that cannot pick up frequencies higher than 20 kHz or a telephone circuit that drops off sharply after 3.5 kHz simply because of the type and length of wire used to carry its signals. Another example would include a lightsensitive diode with a switching speed limited by the molecular structure and length of electron travel path in the silicon used to build it. Sometimes, the A/D system used will provide additional, active band limiting circuitry, which may even provide for an adjustable band limit frequency. Usually, this is done using what is known as a lowpass filter (anti-aliasing filter), which "passes" frequencies below a certain "cutoff frequency" and blocks those frequency components above. Theoretically this cutoff frequency may be sharply defined, but in practice sharp cutoff frequencies are difficult to achieve. Because of this, it is usually a good idea to set the sampling frequency somewhat higher, say 20-30 % higher, than the Nyquist Frequency, to allow for too-high frequencies that are near the specified filter bandwidth but not completely blocked. Once you have an appropriate A/D system producing samples of a band limited signal at a sufficient sampling rate, you have crossed the analog-digital boundary and entered the world of digital signal processing. The information contained in the original continuous analog signal still exists, but in an equivalent form -- one that digital machines and their programs, such as Hyperceptions Hypersignal software products, can deal with.
9$%0DWKHPDWLFDO 2SHUDWRUV
Descriptions of the VAB Mathematical Operators
$SSHQGL[
This section is intended to serve as a source of information about the mathematical operators that can be used in the VAB environment. These operators give added power to each block component. Contained in this section will be a list of the operators along with descriptions of each one. The operators seen here are usable in any block parameter where numerical data is required. In addition, any global worksheet variables that are defined may also be used in conjunction with these operators. In the example shown below the Maximum Frequency parameter of a Sweep generator block component has been defined to be the Sample Rate divided by a value of 2.0. This produces a result of the swept sine wave sweeping from 0 Hz to the half of the specified Sample Rate. The Sample Rate PC-based global variable can be user-changed without requiring any modifications to the entered mathematical operator. This example is a simple one, but demonstrates how one can make use of a mathematical operator. More complex equations can of course be constructed by the user. It is NOT necessary to use variable names when using the mathematical operators. However, it is sometimes convenient to create Variables that are based upon mathematical operators, and that reference other Variable names.
* / %
& | ^
<<
>>
The following operators are only available in those blocks that allow the operator to specify a difference equation to be used. The two blocks that currently support this feature are the Variable Signal Generator and Difference Equation blocks. Operator m Description Ever increasing value, it gets reset when the Reset button is pressed. Range from 0-(Framesize-1) Input channel 0 Input channel 0
n x x1
9$%([DPSOH:RUNVKHHWV
Several Useful Examples
$SSHQGL[
We have included several sample worksheets with VAB to help you learn how to create your own real-time block diagram worksheets for use on the different Texas Instruments DSK platforms. These examples have been grouped into some of the following application areas: DSP, Image, Miscellaneous, Music, Speech, and Telecom. Depending on which DSK platform you installed for, there may be additional or different examples than what is listed here. The interested user is encouraged to load and run the example worksheets that are included with the VAB program. The default installation folder for the example worksheets is C:\Program Files\Hyperception\VAB\Examples The examples that are installed with the different DSK platforms should load and run on the DSK hardware without problem. They should appear similar to the screen shots shown in this Appendix.
'70) *HQHUDWRU
9DULDEOH '70)
)RXULHU 6HULHV
+HWHURG\QH ([DPSOH
Heterodyne Example
3LWFK %HQGLQJ
5HYHUE
6SHFWUDO ,QYHUVLRQ