Keil Logo

Simulation Use Case 4: Analyzing FSK Algorithms

The CLIP example implements a phone Caller ID (Identification) algorithm that is used to receive telephone caller information, such as telephone number and/or caller name.

The data is transmitted to the subscriber in the ringing phase of the telephone (on hook) using the V.23 modem standard, which is an FSK-type modem at 1200 bit/s.

This example only implements the decoding algorithm itself. It does not contain a ringing phase detection. The µVision simulator is used to determine the most effective algorithm that has only minimal processing time requirements

The project contains three targets:

  • Simulator - ARM Mode uses ARM mode and is time optimized.
  • Simulator - Thumb Mode uses Thumb mode and is size optimized.
  • MCB2130 Flash for Flash Downloading and Target test

When you start the the µVision Simulator you may use the Toolbox button GenPattern to create a FSK input signal.

The Logic Analyzer shows the various interim values:

  • AD00 is the analog input
  • Phase.x[1] is the filtered input signal (after Bandpass)
  • Phase.y[1] is the output of the Allpass (use for phase shifting)
  • qx is the PLL octant input of Phase.x[1]
  • qy is the PLL octant input of Phase.y[1]
  • bitout is the bit output of the PLL algorithm

The Performance Analyzer show the CPU time required by the FSK detection algorithm. You may open the Clip module to view all individual functions. When you double-click on a function name the source code is shown along with the execution time.  With Optimize Level 2 or 3, the Compiler performs function in-lining. It is therefore no longer possible to see the execution time of a function that is in-lined.

In ARM Mode the algorithm requires 10% of the processing power
whereas the Thumb Mode implementation requires 11 - 12% of the CPU time.

You may analyze the C source to tune algorithms for execution speed.

The Disassembly Window each assembly instruction along with the execution time spend on it.

Monday, October 9, 2006
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.