<< Chapter < Page Chapter >> Page >

To compile the code, change to the directory (in MATLAB) with GetSerialData.cpp. Type the command: mex GetSerialData.cpp MATLAB may ask you to set up a compiler. Choose the MATLAB compiler (It is usually one of the first options and has the word MATLAB somewhere in its path).After doing this, repeat the 'mex' command on the code. Note: This code will only work with Windows (only been tested on XP).

Compiling the C code produces a .dll file. The file at this stage is similar to a .m file in that it adds custom functionality to MATLAB. To use the file, place it in thedirectory where you will use the GetSerialData function.

Using getserialdata with the dsp

GetSerialData should work with both the assembly and C implementations of outputting data to the serial port. Sometimes a DSP will not output any serial port data. Oftentimes this means this feature is broken on the DSP, but occasionally you can get the serial port to output data if you halt your program, press the red button a couple of times, flip the switch twice,and reload your program. To test the port for incoming data, load up the program 'Hyperterm' (StartMenu:Accessories:Communications:Hyperterm). Connect to com2 with data rate 38400 and lookfor ascii characters. It is suggested that you test for data first with the terminal and not MATLAB because if there is no data coming into MATLAB, it will stall until the function times out.

You do not need to worry about opening or closing the com2 port because the function does it all under the hood. The port must be available for usage (so if MATLAB was writing to the portearlier, it has to be closed).

Once the DSP is running code that outputs data to the serial port, it continuously sends the data. GetSerialData simply 'captures' the output from the buffer and records it to a MATLAB row vector of specified size. The calling format is: y = GetSerialData('port', baud, size);

  • 'port' is the serial port to which the DSP is connected. For our use it will be 'com2'. The port name must be entered in quotes.
  • baud is the speed at which we transfer data. For the DSPs in lab we use 38400.
  • size is the length of the row vector you want to acquire.
  • y is the output vector.
After calling the function, it will not return until it has receive size bytes from the serial port. If it never receives the bytes, it will eventually time out. Since the serialport only outputs single bytes at a time, the max integer that can be acquired is 255 and the min is 0. If you wish to use signed numbers, a fourth parameter can be entered into thefunction to specify. To see notes on usage and other baud rates, ports, signed data, etc type: GetSerialData('help'); This will bring up a help screen with the full set of options.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Digital signal processing laboratory (ece 420). OpenStax CNX. Sep 27, 2006 Download for free at http://cnx.org/content/col10236/1.14
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Digital signal processing laboratory (ece 420)' conversation and receive update notifications?

Ask