As part of the Sentry prototype I used hardware supplied by Byvac www.byvac.co.uk
linked together with an IASI cable – the significance of which was lost on me until I started to connect and use the devices and cable.
So in order to more fully appreciate the significance of this approach – here is the beginners guide to IASI.
Introduction to IASI
The Intelligent Asynchronous Serial Interface (IASI) is a common standard that makes it much easier to control and use hardware from either a standard communication interface (terminal) or a microcontroller. It is based on a very simple text command set and a flexible hardware interface. The ‘Intelligent’ aspect is derived from the fact that each particular IASI knows about the connected hardware so a simple command can make the hardware perform a reasonably complex function. Scroll text on an LCD display for example.
When used in a microcontroller system this enables the controller and designer to concentrate on the important aspects of the design and control rather than the mundane job of controlling the hardware. It also means that the task of driving common peripherals is not being constantly re-invented.
IASI Electrical Interface
The device has very simple requirements. The interface is specifically designed so that it can be connected to either a standard com port (on a PC for example) or directly to a microcontroller UART or even a microcontroller port pin with a software generated UART (Universal Asynchronous Receiver and Transmitter). A five pin connector is used with normally only 3 or four pins being connected at any one time.
There are TWO receive lines, pin 1 receive line will accept normal 5V logic as presented by a microcontroller pin or UART and pin 4 will accept positive an negative voltages up to 15V that are normally present on a standard RS232 interface. Pin 4 will also invert the logic which is also normal for this interface.
The Baud rate is automatically detected at start up or it can be configured in software to a fixed, default baud rate. The device detects the baud rate on receiving a CR character (0Dh). Other received characters will be ignored until the Baud rate has been established.
The transmit pin has an open collector output that has a pull-up resistor on board connected through a jumper. Where more than one device is used on the same serial line, only one jumper should be shorted.
Serial Connections
The device is designed to work in either of two modes: an INVERTED mode for connecting directly to an RS232 port (factory default) or a NON-INVERTED mode for connecting to a microcontroller UART.
As previously described there are two inputs, one for each alternative interface. On the transmit side (output from the interface) there is only one pin that takes care of inverted and non-inverted logic, this is configured in software. The output is 0 to +5V only, rather than the RS232 specification requiring positive and negative signals.
On most RS232 specification interfaces this will work although it is not within the actual RS232 specification.
Commands
The interface is completely software driven, all commands and configuration are done through a serial interface. The only exception to this is the hardware factory default restore.
A very simple command protocol is used that essentially operates in two modes. An interactive mode and an addressing mode. The general format of the command is:
Interactive commands
e.g. ZA
Addressing commands (once device is configured)
:
e.g. :00ZA
The purpose of the interactive mode is to enable the user to learn the device capabilities and also to be used in a system where only one device is connected to the bus.
A full list of the commands supported is given below and I will cover the use of some of the commands in the next article on the sentry project.
Commands list :
ZA Address
ZB Baud Rate
ZC Device configuration
ZD Debug level
ZF Factory reset
ZK Ack character
ZL Line end character
ZM Record Macro
ZR Reset
ZT Test macro
ZV Version
ZW Wait
PS – Thanks to Jim for permission to use his information in this article !