Serial communication in embedded development

Olga Weis
Serial communication

Serial communication is still an important means of communication in many computer and network applications. It is used extensively in embedded systems due to the fact that most computers can handle serial connections either natively or with the assistance of emulators or converters.

Embedded system development that is focused on embedded systems that will interact with general purpose computers often finds it easier to employ serial interfaces rather than alternatives like a PCI expansion bus.

Contents


  1. What is embedded development?
  2. Serial communication important in embedded programming?
  3. Must-have embedded software development tools, emulators, and debuggers
  4. Hardware or Software for serial embedded system development?

What is embedded development?


Embedded development is also commonly referred to as embedded programming, embedded systems programming, or embedded software development. It is a specialized branch of computer programming that focuses on the programming of embedded systems. The devices that are controlled through embedded development are usually not thought of as stand-alone computers. Embedded programming is used to control the behavior of electronic devices such as phones, modems, robots, or the electronic components of automobiles and aircraft.

Embedded software vs application software


Application software is used by developers in creating programs and tools that run on a general purpose computer, such as your Mac or Windows machine. The word processors you use every day as well as all of your social media tools are examples of the results of application software development.

When developing application software the developer can take advantage of the features of the operating system on which the program will run and is usually removed from directly interfacing with peripheral hardware components. An integral part of many application programming efforts is a user interface to allow human interaction with the application’s logic.

Embedded software is meant to be self-contained within a specific device. Some general purpose computer languages can also serve as embedded software languages. Examples are C/C++, Python, and JavaScript. These languages are very popular tools for embedded development and also are widely used in the application and general programming field. Programmers who are proficient in C application programming can easily transfer those skills to an embedded C programming project.

Characteristics of embedded systems


Embedded systems have certain characteristics that set them apart from general purpose computers or simple electronic devices that do not possess the ability to be programmed. Here are some of the features that distinguish embedded systems:

  • Dedicated to a specific function - An embedded system is a combination of software, middleware, and hardware components that work together to perform a specialized function. They are not programmable beyond this limited functionality.
  • Real-time responsiveness - Embedded systems are often used in equipment that performs automated monitoring and control functions. The system needs to be able to accurately and quickly respond to changing physical conditions.
  • Limited resources - Constraints on the physical resources available to embedded systems need to be taken into consideration in their design and development. Space is often at a premium in embedded systems which means there is less room for memory or storage.
  • Reliability - In many cases, embedded systems are used in equipment or components that perform critical tasks. For this reason, they need to be constructed in a reliable manner and be manufactured to withstand the physical conditions in which they will operate. Failure of an embedded system can have disastrous consequences.
  • Efficient power consumption - Associated with the space constraints that many embedded systems are subjected to, self-powered devices need to make efficient use of small batteries.
  • Simple or no user interface - If there is a user interface in an embedded system, it is usually very simple. Many embedded systems do not need to interact with humans and do not have any user interface.

Why is serial communication important in embedded programming?


Serial communication is one of the primary means of data transmission in many industrial and automated systems. While the typical laptop intended for home use may not contain even a single serial interface, the same is not true for many commercial and industrial applications of networked electronic devices. Monitoring, sensing, and control devices all may make use of serial ports to communicate with each other and their master controlling computers.

There are a number of ways that an embedded system could make use of a serial port. Some of them are:

  • Data communication between different parts of the system
  • Communication with external devices
  • Downloading firmware to keep the embedded systems up to date
  • Providing a debugging or console interface

To enact these functions in an embedded system necessarily will entail an understanding of serial port communication and the underlying protocols which drive this data transmission method. There are a number of different serial communication protocols employed in embedded systems.

Serial communication protocols in embedded systems


RS232 - The RS232 protocol is a complete standard that includes electrical characteristics as well as specifications regarding connection hardware and pin-outs. Transmission speeds vary between 20Kbps up to 115.2Kbps. To attain maximum efficiency, most cables transmitting using the RS232 protocol are limited to 30 feet or shorter in length.

RS422 and RS485 - Both of these protocols are balanced, twisted-pair interfaces that are capable of transmission speeds up to 10Mbps over distances of up to 4,000 feet. The use of a balanced bus over the unbalanced bus used in the RS232 protocol minimizes noise interference and allows for greater transmission distance. RS422 is used to communicate between two nodes, whereas the RS485 protocol allows communication between multiple transceivers.

Learn more about RS232 and RS485 protocols in our special guide.

Other protocols - There are other protocols that have been developed by semiconductor manufacturers. If you are involved with serial communication with embedded devices, you will most likely run across the RS232/RS422/RS485 family of protocols.

Types of embedded systems


Stand-alone embedded systems - These systems do not require a host computer and respond directly to data received through their input ports. Examples are microwave ovens and pressure measurement systems.

Real time embedded systems - Systems that produce a required output in a particular time frame are known as real-time embedded systems.

Networked embedded systems - Networked embedded systems represent the fastest growing application of embedded systems. The ability to monitor the embedded systems through a web browser is used extensively in industrial and medical monitoring applications.

Mobile embedded systems - Cell phones, digital cameras, and mp3 players are just a few examples of mobile embedded systems.

Must-have embedded software development tools, emulators & debuggers


Developers of embedded systems need to be able to monitor the behavior of their systems. One important facet of that monitoring is serial port debugging. A serial interface may well be the only way that you can communicate with the embedded system. Eltima software delivers a comprehensive, full-featured serial port software package that will make working with your serial-based embedded systems much easier and efficient.

Let’s take a look at some of the best embedded software and hardware development tools for those engineers working with serial ports and embedded systems.

Virtual Serial Port Driver and Virtual Serial Port Driver PRO


Virtual Serial Port Driver (VSPD) is designed to allow the user to easily manage their physical and virtual serial ports. There is a standard version available that offers limited functionality (create unlimited pairs of COM port) and a PRO version that provides advanced features.

Virtual Serial Port Driver

Some of the highlights of this serial communication software application are:

  • Creation of virtual serial ports - Any number of virtual serial ports can be created. These ports can be used to share a single physical serial port among many applications and will fully emulate all of the parameters of the real interface.
  • Serial port splitting - Using VSPD PRO you can split one physical serial port into multiple virtual ports that can all access a device attached to the port simultaneously. This allows you to easily use more than one application with a single serially attached device.
  • Joining COM ports - When you join several virtual serial ports to one physical one you can redirect data received from several serial devices to a single application.
  • Switching ports automatically - Virtual COMPort Driver PRO provides the ability to create a switcher that works with your application to always ensure that a non-occupied serial port is available for use.
  • Merging COM ports - Another advanced feature of VSPD PRO is the merging of serial ports. Using this feature you can have multiple devices or applications that can exchange data with every merged application or device simultaneously.

Serial Port Monitor


Another excellent tool from Eltima Software that is designed for debugging serial communication is Serial Port Monitor (SPM).

Serial Port Monitor

This powerful serial communication software lets you:

  • Analyze serial port activity - Using SPM you can immediately start sniffing and monitoring any serial port even if it is already opened by another application. Real-time data capture allows you to quickly track down problems and debug your serial data transmissions. Monitoring sessions can be directed to a file for later viewing or analysis.
  • Monitor multiple ports in a single session - Several ports can be monitored simultaneously with data logged in a first-in-first-out basis making it easier to analyze data flow in a complex environment.
  • Multiple data display formats - Choose from table, line, dump or terminal mode when viewing your collected data. Filters can be applied to limit the data presented to that which you wish to monitor.
  • Emulation of data transmission - You can send data to serial devices in various formats to test the device’s behavior. This feature can be instrumental in tracking down problems during embedded system development.
  • Session comparison - Compare two sessions and have the differences automatically displayed.

Hardware serial port splitters

Hardware serial port splitter

Physical devices that can perform some of the functions of the software tools discussed above are available for the embedded system developer. You can obtain cables that allow you to share the signal from a single serial port with two or more devices or applications.

Cons: They offer less flexibility than the software alternative as they are limited in the number of connections that can be made available. Another constraint is the length of cable that can be used and the general task of cable management that can become unwieldy as the need to share signals grows.

RS232 serial spy monitor cable

RS232 serial spy monitor cable

Serial monitoring or sniffer cables can be obtained that work in either half or full-duplex mode. They work by providing another connector to an RS232 cable. A device attached to that third connection can monitor the communication traveling between the two ends of the RS232 cable. Depending on the type of device or application that is attached, you may be able to log the data for later use.

DCAClab is an online electric circuits simulator for STEM and technology education, it helps mechatronics teachers to explain circuits for their students in ease. Simulates and troubleshoot broken circuits in a rich simulation environment, provided with real looking components, realistic oscilloscope and multimeter with various functions to use.

Hardware or Software for serial embedded system development?


When choosing tools for serial embedded system development you need to consider ease of use and flexibility. Undoubtedly, the software applications designed specifically for working with serial devices are more powerful and offer you options as your testing environment changes.

Additional benefits of a software solution include eliminating the need to purchase expensive cables and the ability to monitor serial activity remotely. If you are serious about embedded system development you should take a close look at these software tools. They will make your development life much more pleasant and give you a step up on the competition.

/ / Serial communication in embedded development