In the marriage of devices to networks, M2M developers hold the peace

August 1, 2012 OpenSystems Media

2M2M developers are embedded systems engineers who have teamed their skills with IT infrastructure and Internet technology. They face an emerging industry where a virtual private network of devices complicates the specific functions of individual devices. Choosing a network topology and using bandwidth efficiently are among the keys to success.

Machine-to-Machine (M2M) operation, or any smart device in general, is characterized as a device that is accessible via a network connection. With recent increases in wireless capability and coverage – cellular, wireless LAN, and Near Field Communication (NFC) – plus the rapid reduction of both hardware and connection costs, the number of machines that can be connected is increasing significantly. These machines make up a range of devices, from smart thermostats that a homeowner can access from any device with a Web browser, to smart gas meters that automatically report gas usage to the utility company, to consumer devices such as smart picture frames that automatically stream pictures stored on a website to the frame.

Current M2M capabilities are effectively the same as with any other computer operation; devices use the Web to send and receive data, usually from a cloud service or back-end server. Data is stored on these servers and then viewed by operators using general Web browsers. Mobile applications allow access to and transmission of data or commands from a smartphone or tablet to the smart device, with the cloud service or back-end server functioning as the control point in these operations.

Designers face additional challenges when implementing M2M capability. The complexities of reliable networking weigh on the credibility of device function. Network practices that enhance security, reliability, and efficiency are added to the device design requirements.

M2M design challenges

The challenges facing M2M designers today can be illustrated by comparing their tasks and responsibilities to those required of embedded systems engineers a few years ago. To build an embedded system, engineers would select the required sensors, actuators, keypad, and possibly a character display; interface them to I/O ports connected to a microprocessor; and get everything running with some combination of assembly and/or C program. They usually had the help of an in-circuit emulator and software that allowed breakpoints and single-step operation for debugging. If the device connected to anything outside, it was likely via RS-232 rather than a network. There was no real need to understand file system structure, user and group permissions, or the intricacies of network protocol. Those details were the domain of an IT department.

By contrast, M2M designers have to bridge the gap between digital/analog/software engineers and IT network engineers. They must be comfortable working on the command line of a shell. Because an M2M system incorporates an embedded processor running a modern Operating System (OS) with a network stack, M2M designers must acquire or build and patch a kernel, acquire or write recognizable device drivers, and set up a multitude of boot-up and configuration scripts. They also must add code to read sensors or write to actuators required by the application.

Another step in the M2M design process is to get connected and have a response ready when the device is dropped from the network or coming back online with a different IP address. This can be handled automatically by the OS in the case of Wi-Fi or Bluetooth on a LAN with Domain Name System (DNS), but will require intervention and specific command knowledge when RF or a cell modem is used for connection to the Internet. Power management cannot be ignored. The OS can put vital functions to sleep automatically or waste precious battery power if not set up properly for the application. File permissions and other security measures are not typically a concern for a local embedded system, but the M2M designer had better beware.

Before finishing a device design, M2M engineers must gain a working knowledge of and most likely set up the server and database tables to which the system is connecting. If M2M designers are responsible for presenting data, then working knowledge of at least CSS, HTML, PHP, and Java should be in their toolkit.

A desirable trait of an M2M designer is the ability to remain unperturbed by rapid changes. The consumer market for cell phone and tablet computing is driving the M2M industry, and the hardware and tools a designer may spend weeks or months getting familiar with will probably be updated or changed within a year. The good news is that with proper planning and care, all the work designers put into their connected devices will translate into newer, faster, and less expensive platforms in the future.

Software frameworks address M2M connectivity needs

M2M development tools are becoming more user-friendly, and strong individual and corporate support communities are available online. The OpenEmbedded software framework and Yocto Project support an array of hardware development platforms for Linux users and provide a means to manage kernel and file system work. Many engineers are already familiar with Microsoft’s .NET Compact Framework and its capabilities. Furthermore, several modem manufacturers embed powerful processors into their products, making compact COTS M2M systems possible.

Galixsys Networks provides a software framework for Linux or Android platforms that uses a Common Gateway Interface (CGI) protocol specifically designed to meet the needs of developers working with connected devices. The Andromeda framework (see block diagram in Figure 1) leverages the standard HTTP data stream to enable instant M2M communication capability and unique device identification. With a command and data payload structure, devices communicate in their natural binary, eliminating the need for markup languages. This results in greater security and reduced bandwidth with near real-time control over the Web.

Figure 1: A new command and data service layer transforms the typical client server model to an M2M configuration.

While M2M developers can easily write their own service routines and access them from programs with simple system calls, Andromeda comes with a range of services such as receiving, sending, and deleting files between devices and servers. A page server command directs a server to make service calls. Reading or writing data directly to an SQL database enables developers and M2M devices to get online quickly.

The connected world is no longer coming; it has already been here for years. Thousands of new devices, phones, and tablets are connecting to the Internet every day. Across the globe, almost every industry imaginable has applications waiting to be developed to make them more efficient. How all these devices are managed and how effectively they use Web resources are the real challenges facing M2M developers.

Steve Jahnke is CTO of Galixsys Networks.

Richard Jahnke is director of engineering for Galixsys Networks.

Galixsys Networks 972-800-1301

Follow: Twitter Facebook LinkedIn YouTube

Steve Jahnke (Galixsys Networks) and Richard Jahnke (Galixsys Networks)
Previous Article
Embedded lockdown: Designing secure devices

The impetuous move into a world of connected devices has rendered security an imperative consideration at e...

Next Article
2012 Top Embedded Innovator - Software: Sebastien Marineau-Mes, Senior VP of Engineering, QNX Software Systems
2012 Top Embedded Innovator - Software: Sebastien Marineau-Mes, Senior VP of Engineering, QNX Software Systems

2012's Top Embedded Software Innovator, Sebastian Marineau-Mes of QNX Software Systems, gives his perspecti...


Follow our coverage of networking-related design topics with the Networking edition of our Embedded Daily newsletter.

Subscribed! Look for 1st copy soon.
Error - something went wrong!