|
This IASI (Intelligent Asynchronous Serial Interface) allows a very easy
solution for many hardware problems. The interface is based on a serial
RS232 or TTL logic and plane ASCII text. Two letter commands are sent to
the device to control such things as LCD displays, Keypads, Stepper
motors etc. There is a full range of devices in this section. There is a new IASI2 protocol
being introduced to the IASI devices, below is a description of the
original protocol. The new protocol is included is described
below and on
the relevant datasheets.
** New VB 2005 Express Edition
source code examples of driving the devices
**
The products in the range listed below are:
BV4102 |
3 colour 8 x 8 LED Matrix - New IASI2
Protocol |
BV4103[-20] |
Blue LCD Displays - New IASI2
Protocol |
BV4108 |
LCD controller - New IASI2
Protocol |
BV4113 |
DC / Stepper motor controller - New IASI2
Protocol |
BV4115 |
Remote sender, Packet Transmitter - uses IASI-1 protocol for
description see
IASI-Description and Protocol.pdf |
BV4116 |
Packet receiver - uses IASI-1 protocol for description see
IASI-Description and Protocol.pdf |
BV4117 |
Packet transceiver - uses IASI-1 protocol for description
see
IASI-Description and Protocol.pdf |
BV604 |
This is a serial lead for connecting to a standard COM Port |
IASI 2 Serial Communication
Electrical Interface
The serial interface consists of 5 connections, of which, only four will be
used at any one time. The connection details are as follows:
| Pin 1 |
RX(m) |
Signal in non-inverted |
| Pin 2 |
TX |
Signal out controlled by software |
| Pin 3 |
+5V |
Power |
| Pin 4 |
RX(232) |
Signal in inverted for direct connection to RS232 |
| Pin 5 |
GND |
Ground |
There are two interface options, RS232 via a standard PC COM port (Pins 4 and
2) or from a microcontroller UART (pins 1 and 2). As an example to interface to
a standard 9 pin D type connector the following connections would be made.
Connection Via PC Com Port (Inverted) - Single
Device
| RS232 9 Pin |
IASI |
| Pin 2 |
Pin 2 |
| Pin 3 |
Pin 4 |
| Pin 5 |
Pin 5 |
| Short pins 1,6,4 |
|
| Short pins 7 and 8 |
|
|
 |
The above shows how to connect a device via a standard PC-COM port or
a USB to RS232 convertor, the type used when no COM port is available.
This method of connection is designed for single devices although
multiple devices can be used if only the TX line from the com port is
used.
Connection Via UART (Non-inverted) - Multiple
Devices
| UART |
IASI |
| TX |
Pin 1 |
| RX |
Pin 2 |
| no connection |
Pin 4 |
| +5V |
Pin 3 |
| Ground |
Pin 5 |
|
| RS232 to TTL Convertor |
USB to TTL Convertor |

BV201 |

BV101 |
|
The above is the connection details for connecting to a
microcontroller or when using a BV101 or BV201 that will output TTL
logic levels to the device. This method must be used for multiple
devices on the same bus.
Software
The IASI-2 protocol has been designed to allow serial communication over
either a standard RS232 COM port or a microcontroller UART. At the physical
level it uses a start bit, 8 data bits and 1 or 2 stop bits so most standard
terminals would be able to communicate. There is no need for a voltage level
translator as it has two inputs, one for 5V and the other for RS232 plus and
minus 12V. For backward compatibility the electrical interface is exactly the
same as the original IASI specification.
All devices have an address and so more than one device can be attached to
the same bus, the software can then direct commands to the correct device by
using its address. the address consists of one byte, see system commands further
down the page.
The protocol uses a single byte for addressing and commands from the
following range:
- Special commands Range 1-31 (effects all devices - non
addressable)
- Reserved
Range 32 - 64
- System commands Range 65 - 96 ( 'A' - '`' )
- Device commands Range 97 - 122 ( 'a' - 'z' )
- Device addresses Range 97 - 122 ( 'a' - 'z' )
The protocol uses the byte value and does not care about its ASCII code
equivalent, however the ranges have been chosen so that system commands are all
upper case and device commands are all lower case when printed out or if using a
terminal for input. This makes the commands easer to visualise and remember.
All devices share a common set of system commands.
|
Command |
Description |
|
A |
Address |
|
B |
Write to EEPROM |
|
C |
Turn off ACK |
|
D |
Delay |
|
E |
Turn off error reporting |
|
F |
Factory reset |
|
G |
Read EEPROM |
|
U |
Unlock |
|
M |
Macro run at start up |
|
N |
Switch to non-inverted |
|
P |
Print contents of EEPROM |
|
R |
Reset device |
|
V |
Version |
|
T |
Test macro |
|
Z |
Create macro |
The above table shows the system commands available to all
devices. When devices leave the factory they are all configured with address 97
('a'). This can be changed to any in the allowed range by using the system
command 65 ('A'). Most devices also have an EEPROM that the user can store data
to, only the first 16 bytes are reserved for system use. this leaves 240 bytes
for the user (depending on the device). The LCD (BV4103) for example can use
this to store messages.
As an example, to check the firmware version of the device
for example the following sequence would be sent:
sendByte(97); sendByte(86);
The device will respond with 3 bytes, the two version bytes
and the ACK character 62. This character can be detected (waited for) in
software to verify a successful command. Using the chosen characters this looks
like the following on a terminal:
aV
1a>
The choice of ranges above makes it easy to use when
experimenting manually and also easy to use for a microcontroller or some other
from of automation.
Special Commands
There are currently 3 special commands, Address
discovery(1), Reset(3) and Invert(4). These commands will cause all of the
devices on the bus to respond, the commands in the special range do not need to
send the address.
Address discovery allows an automated system to determine
how many IASI2 devices are connected to the bus and what their addresses
are. When this command is sent the device will respond with its address, but
depending on what address it has will determine the amount of time it takes to
respond. Each address is separated by 30ms and so the first address 'a' (97)
will respond immediately but 'h' for example will wait for 210 ms before
responding. This method allows all of the devices to respond without causing a
clash on the bus. The command can be sent using a terminal by pressing CTRL-A.
The Invert special command refers to the output of the
device. All devices output via pin 2 of the IASI connector and by default this
output is inverted data, electrically this means that in the idle state the
output is low and a bit is high. This will work with a standard COM port
attached to a PC or a standard serial convertor of the type used for laptops
where no COM port exists. The output is only 0v and 5V, rather than the plus and
minus 12V RS232 specification but this will work with nearly all standard COM
ports.
The purpose of this command is to invert the output so that
the idle sate is now +5V and the data is 0V. This will now be suitable for
connection to a microcontroller UART or an RS232 to TTL convertor (see BV101 and
BV102). The other advantage of using this mode is that, because pin 2 is open
collector, more than one device can output to the same bus. The IASI
specification has two inputs, inverted and non-inverted so this only applies to
the output pin 2.
The command can be send using a terminal by CTRL-D. More
details are available on the individual device data sheets.
|