High Tech Talk - Hardware
High Tech Talk - Software
Software

Following chart is a rough software structure of embedded computer. Since embedded computer peripheral are various, providing device drivers becomes an essential requirement of SW. Besides, in a network environment today, communication capability becomes more and more important. Protocol and server application ready is useful for connection, communication or data transmission.

Moreover, to meet the specific tasks in different industries, industrial users may develop their own applications so providing a friendly development environment in PC will be a benefit for industrial users to save time and money. To summarize, ready-to-use will be the key point for today's embedded computer.

Protocol

In computing, a protocol is a convention or standard that controls or enables the connection, communication, and data transfer between two computing endpoints.

Generally, most protocols, especially in the context of communications or networking, are layered together into protocol stacks where the various tasks listed above are divided among different protocols in the stack. Whereas the protocol stack denotes a specific combination of protocols that work together, the Reference Model is a software architecture that lists each layer and the services each should offer. The classic seven-layer reference model is the OSI model (Open System Interconnection model), which is used for conceptualizing protocol stacks and peer entities.

The widespread use and expansion of communications protocols is both a prerequisite to the Internet, and a major contributor to its power and success. The pair of Internet Protocol (or IP) and Transmission Control Protocol (or TCP) are the most important of these, and the term TCP/IP refers to a collection (or protocol suite) of its most used protocols.

Description of OSI layers

.Layer 1 protocols (Physical layer)

  • RS-232, a serial line interface
  • etc

Layer 2 protocols (Data link layer)

  • ARP Address Resolution Protocol
  • PPP Point-to-Point Protocol
  • etc

Layer 3 protocols (Network layer)

  • ARP Address Resolution Protocol
  • ICMP Internet Control Message Protocol
  • IGMP Internet Group Management Protocol
  • IPv4 Internet Protocol version 4
  • etc

Layer 4 protocols (Transport layer)

  • TCP Transmission Control Protocol
  • UDP User Datagram Protocol
  • etc

Layer 5 protocols (Session layer)

  • NFS Network File System
  • etc

Layer 7 protocols (Application layer)

  • DHCP Dynamic Host Configuration Protocol
  • FTP File Transfer Protocol
  • HTTP HyperText Transfer Protocol
  • NTP Network Time Protocol
  • SSH Secure SHell
  • SMTP Simple Mail Transfer Protocol
  • SNMP Simple Network Management Protocol
  • SOAP Simple Object Access Protocol
  • Telnet, a remote terminal access protocol
  • etc

System Utility (Shell)

In computing, a shell is a piece of software that provides an interface for users (command line interpreter). Typically, the term refers to an operating system shell which provides access to the services of a kernel. Operating system shells generally fall into one of two categories: command line and graphical. Command line shells provide a command line interface (CLI) to the operating system, while graphical shells provide a graphical user interface (GUI).

Linux

  • Bash: the shell, or command language interpreter on most Linux systems.
  • BusyBox: The Swiss Army Knife of Embedded Linux. It is designed to be a small executable for use with Linux, which makes it ideal for special purpose Linux distributions and embedded devices.
  • TinyLogin: A suite of tiny UNIX utilities handles logging into, being authenticated by, changing one's password for, and otherwise maintaining users and groups on an embedded system. It also provides shadow password support to enhance system security.

WinCE

  • Windows command shell
  • Web-based administration manager

Server application

In information technology, a server is a computer system that provides services to other computing systems-called clients-over a computer network.

Server applications are tailored to the tasks performed by servers. Most server applications run unobtrusively within the server and interact only with client computers on the network to which the server is attached. Applications of this kind are called daemons in UNIX terminology, and services in Windows terminology.

Linux (daemon)

  • sshd (secure shell server)
    Secure Shell or SSH is a set of standards and an associated network protocol that allows establishing a secure channel between a local and a remote computer. An ssh program commonly appears for use on Unix-like systems for client connections as well as a daemon such as sshd for accepting remote connections.
  • Apache
    The Apache HTTP Server is a web server for Unix-like systems, Microsoft Windows, Novell NetWare and other operating systems.
  • MySQL
    MySQL is a multithreaded, multi-user, SQL Database Management System (DBMS). It is popular for web applications and acts as the database component of the LAMP platforms (Linux operation system, Apache server, MySQL database, PHP programming language)
  • OpenVPN
    OpenVPN is a virtual private network (VPN) package for creating point-to-point encrypted tunnels between host computers.
  • snmpd (simple network management protocol agent daemon)
    SNMP is used by network management systems to monitor network-attached devices for conditions that warrant administrative attention. It consists of a set of standards for network management, including an Application Layer protocol, a database schema, and a set of data objects. An agent is a network-management software module that resides in a managed device. An agent has local knowledge of management information and translates that information into a form compatible with SNMP. The SNMP framework consists of master agents, subagents and management stations. A master agent is a piece of software running on an SNMP-capable network component, for example a router that responds to SNMP requests from the management station. A master agent relies on subagents to provide information about the management of specific functionality.

WinCE (service)

  • IIS (Microsoft Internet Information Services)
    Microsoft Internet Information Services is a set of Internet based services for servers using Microsoft Windows. The servers currently include FTP, SMTP (simple mail transfer protocol), NNTP (network news transfer protocol) and HTTP/HTTPS.

Basic common features:

1. HTTP: responds to HTTP requests.

2. Logging

In practice many Web servers implement the following features too:

1. Authentication, optional authorization request (request of user name and password) before allowing access to some or all kind of resources.

2. Handling of not only static content (file content recorded in server's filesystem(s)) but of dynamic content too by supporting one or more related interfaces (SSI, CGI, SCGI, FastCGI, PHP, ASP, ASP .NET, Server API such as NSAPI, ISAPI, etc.).

3. HTTPS support (by SSL or TLS) in order to allow secure (encrypted) connections to the server on the standard port 443 instead of usual port 80.

4..etc.

Modbus

Modbus is an open serial communications protocol based on master/slave architecture and used to connect a supervisory computer with a remote terminal unit (RTU) in supervisory control and data acquisition (SCADA) system. Versions of the Modbus protocol exist for serial port and Ethernet.

  • Modbus RTU is a compact, binary representation of the data. RTU format follows the commands/data with a cyclic redundancy check (CRC) checksum.
  • Modbus ASCII is human readable and mover verbose. ASCII format uses a longitudinal redundancy check checksum.
  • Modbus TCP is very similar to Modbus RTU, and could be defined as Modbus RTU inside a TCP/IP connection, with 6 byte header to allow routing.

Modbus is transmitted over serial lines between devices. The simplest setup would be a single serial cable connecting the serial ports on two devices, a Master and a Slave.

The data is sent as series of ones and zeroes called bits. Each bit is sent as a voltage. Zeroes are sent as positive voltages and ones as negative. The bits are sent very quickly. A typical transmission speed is 9600 baud (bits per second).

Each device intended to communicate using Modbus is given a unique address and Modbus is restricted to addressing 254 devices on one data link.

Besides, Modbus was designed in the late 1970's to communicate to programmable logic controllers. The number of data types are limited to those understood by PLCs at the time. Large binary objects are not supported. No standard way exists for a node to find the description of a data object.