Monday, August 29, 2011

Software defined... Radio, GPS, ... etc?

Most comms modules (e.g. Bluetooth, GPS, etc),  memory peripherals (e.g. SD cards, USB sticks, etc) and other sophisticated "chips" have embedded processor cores. These cores may be based on stock 8051 or specialized ARM designs.  They are smart devices that save system designers a lot of integration time by being "drop ins" (i.e. you talk with them via simple protocols over UART, I2C or SPI) and they do all of the hard work.

Recently, reading about Software-defined Radios (replacing hardware based tuning/filtering with software) and this article (dumber GPS modules where satellite correlation/fusion is done by back end computers), makes me wonder if the future will present dumber peripherals in trade for more processing on our main CPUs.

How many processor cores are there in an average smart phone? You've got the primary CPU running the OS, but have you considered what is powering your Bluetooth, Wi-fi, GPS, cellular modem, display and touch interface?  Having sophisticated software in these peripheral chips certainly aids time to market (less programming for the integrator).  But, I rely on the craftiness of the chip designer to meet my needs.

Sure, its all software (even when on individual hardware modules), but rarely are these things upgradeable. They have a limited product life (even if the analog part of it is still relevant).  This is good for hardware companies, but not good for us (the end user/consumer).  

I remember playing with early MEM accelerometer chips. They usually just output a voltage for an axis. There were no "interrupts" or SPI or I2C protocols. They were analog devices. It was up to me to figure out what they were spitting out and deal appropriately.

Now I use smart digital accelerometers that notify me when an event (e.g. tilt, acceleration exceeding a threshold, free fall, tap, etc) occurs. Sometimes they can be frustrating if they don't quite provide what I need -- lots of register based tuning usually takes care of this, but still...

Imagine a smart phone where all of the processing was done on the main CPU. Sure, that would bog it down significantly, but imagine a much faster (and power efficient) main CPU (maybe even with 4 or 5 cores).  Now, your GPS/Bluetooth/Cellular-modem are just  analog transceivers that streams bits or analog signals.  Your smartphone would just have a bunch of antennas, transceivers and sensor hardware. All of the software resides somewhere on the main CPU. Imagine having access to that software.


  1. Is this a new format for your blog? I don't remember it looking like this last time I decided to read an article...
    and as for software defined radios... it's been all the rage in Amateur radio for a while now. ;)

  2. This comment has been removed by a blog administrator.