9600 baud Transparent data handler device
The I9600 is a 9600baud half-duplex serial modem controller suitable for use with wideband receivers, transmitters and transceivers. It takes care of preamble, synchronisation, bit balancing and error checking and enables a transparent radio data link to be established between radio devices.
Figure 1: i9600-000-DIL
The I9600 provides a half duplex link. Provided no two devices attempt to transmit simultaneously no further restrictions on data transmission need be made, as all transmit timing, valid data identification and datastream buffering is conducted by the unit. Synchronisation and framing words in the packet prevent the receiver outputting garbage in the absence of wanted RF signal or presence of interference. For multiple radio systems (polled networks) a I9600 can be set to 1 of 8 unique addresses.
This unit supports 9600 baud asynchronous data: 1 start bit, 8 data bits, 1 stop bit
To connect to a true RS232 device, inverting level shifters must be used (MAX232 type are ideal, but simple NPN transistor switches often suffice). With typical microcontrollers and UARTs, direct connection is usable. Note that TXD has no internal pullup.
- Operating voltage (temperature):
- 5V for standard version (-40°C to +85°C)
- Maximum usage of the range capability of an RF module
- Adequate preamble to settle data slicer in the receiver
- Extra wake up preamble to allow for transmitter power up time requirements
- Differential Manchester encoding of address, data and checksum
- Synchronisation codes and checksum to reduce false triggering on noise
- Suitable to be used with Wide Band FM radio modules
- Serial modem baud rate at 9600bps (half-duplex)
- Addressable point-to-point
- PDAs, organisers & laptops
- Handheld / portable terminals
- EPOS equipment, barcode scanners
- In-building environmental monitoring and control
- Remote data acquisition system, data logging
- Fleet management, vehicle data acquisition
|2||TEST||in||A 10kΩ pullup to VCC must be provided|
|3||SETUP||in||low = enter setup mode (address programming): high = normal operation|
|7||RSTXD||in||Inverted RS232 datastream in, 9600 baud|
|8||RSRXD||out||Inverted RS232 datastream out, 9600 baud|
|9||BUSY||out||High indicates data received or in rx FIFO buffer|
|10||RXD||in||Baseband input from receiver data output|
|13||TXD||out||Baseband output to transmitter data input|
|14||Vcc||-||5V (regulated power supply); Decouple with 0.01uF close to IC|
|15||OSC2||out||connect to 20.48MHz crystal via 100Ω resistor|
|16||OSC1||in||connect to 20.48MHz crystal|
|17||RXE||out||Active low enable receiver|
|18||TXE||out||Active low enable transmitt|
1. No connections at all may be made to 'nc' pins
2. TXD, RXD, RSRXD, RSTXD and BUSY are 5V CMOS logic level
3. Some Radiometrix transmitters require 3V logic levels on their transit data inputs:
a divider (4.7kΩ series, 10kΩ to ground) on the TXD pin is needed
4. In RX operation, Dout becomes a high impedance
5. After pulling TXE low (active), the coder allows about 3mS for TX to power up and settle
6. RSTXD (7) has no pullup. If the device is only used for receive, then tie this pin to VCC
7. Vcc must be a 5v regulated supply (4.75 - 5.25V). At this oscillator speed the PIC will not operate reliably at 3V
8. A 16kbit/sec modified biphase comms protocol is used
9. Pin 3 has no pullup. It is used to enter 'setup' mode (see below)
11. Without external loads the chip draws less than 5mA from 5v
12. BUSY goes high when valid data is present in the receive buffer.
13. A simple addressing structure is included in the datastream.
Units may be programmed onto one of eight addresses (all units are supplied set to default addr=0)
14. OSC1, 2 require a 20.48MHz fundamental mode crystal, a series 100Ω resistor from OSC2, and a pair of 15pF caps : from the crystal pins to 0V
Serial interface - modem operation
To connect to a true RS232 device, inverting RS232-CMOS level shifters must be used. Maxim MAX232 or equivalent are ideal, but simple NPN transistor switches with pull-ups often suffice. With typical microcontrollers and UARTs, direct connection is possible.
The Radio / data stream interface
A 32 byte software FIFO is implemented in both the transmit and receive sub-routine. At the transmitting end this is used to allow for the transmitter start up time (about 3mS), while on receiving end it buffers arriving packets to the constant output data rate. All timing and data formatting tasks are handled by the internal firmware. The user need not worry about keying the transmitter before sending data as the link is entirely transparent.
For transmission across the radio link data is formatted into packets, each comprising 3 bytes of data and a sync code. If less than 3 bytes are in the transmit end FIFO then a packet is still sent, but idle codes replaces the unused bytes. When the transmit end FIFO is completely emptied, then the transmitter is keyed off. . A link latency ( first byte in to tx to first byte out of rx) of 14mS is thus so achieved.
Raw data is not fed to the radios. A coding operation in the transmit sub-routine, and decoding in the receiver, isolate the AC coupled, potentially noisy baseband radio environment from the datastream.
The radio link is fed a continuous tone by the device. As in bi-phase codes, information is coded by varying the duration consecutive half-cycles of this tone. In our case half cycles of 62.5us and 31.25us are used. In idle (or 'preamble') state, a sequence of the longer cycles is sent (resembling an 8KHz tone).
A packet comprises the Synchronising (or address) part, followed by the Data part, made up of twelve Groups (of four half cycles duration). Each Group encodes 2 data bits, so one byte is encoded by 4 Groups.
The Figure 3 oscilloscope screen captures show a single byte being transmitted by a TDL2A module, which incorporates an I9600 type modem controller. A BiM2-433-64 transceiver is used to capture the transmitted data. The character appears on the serial data output (RXD) pin of the other I9600 after about 12.5ms. Busy (STATUS) pin is momentarily set high to indicate the presence of a valid data in the receive buffer of the I9600.
It can be clearly seen that unlike raw radio modules, I9600 does not output any noise when there is not any transmission. Data fed into the TXD input of a I9600 appears at the RXD output of another I9600 within radio range in the original form it was fed.
Continuous serial data at 9600bps (above) is encoded as half-cycles of 8kHz (62.5ms long bit) and 16kHz (31.25ms short bit).
Programming the i9600
In order to use all the functions embedded in the I9600, the user must be aware of the setup/programming facility, which allow different addresses and frequency channels to be set up, and if necessary accesses diagnostic test modes.
The I9600 is programmed through the same RS232 port that is used for sending/receiving data. An RS232 terminal emulator (such as Aterm or HyperTerminal) is an ideal tool.
Terminal program configured with following setup:
9600baud, 1 start bit, 8 data bits, no parity, 1 or 2 stop bits
To enter program mode, the SETUP pin must be pulled low. In this mode the radio link is disabled, but characters sent (at 9600 baud, as normal) to the unit are echoed back on the RXD pin.
The unit will only respond to certain command strings:
|ADDR0 to ADDR7 <CR>||
These commands set up one of 8 unique addresses. An i9600 will only communicate with a unit set to the same address.
A i9600 will only communicate with a unit set to the same address and the same channel.
Address is stored in volatile memory. On power-up the i9600 reverts to the default in EEPROM (as supplied this is always address 0 and Channel 0)
|SETPROGRAM <CR>||Writes the current set address into EEPROM as the new default.
A tilda character (~, ascii 126dec) sent by the unit indicates end of EEPROM write sequence
|(these commands are normally only used for factory diagnostics)|
|NOTONE <CR>||Transmit unmodulated carrier|
|LFTONE <CR>||Transmit carrier modulated with 8KHz squarewave|
|HFTONE <CR>||Transmit carrier modulated with 16KHz squarewave|
|# <CR>||Transmitter off|
A Carriage Return '<CR>' (00Dhex) should be entered after each command sequence to execute it.
Releasing the SETUP pin to high state returns the i9600 to normal operation
BUSY pin in this can be connected to CTS, DSR and DCD pin to simulate a flow control signal.
I9600 is capable of continuously streaming data at 9600bps. Therefore, BUSY pin is not asserted to stop the Host from sending data as in normal RTS/CTS flow control method, but merely to warn the host that there is already data in the receive buffer which need to be downloaded before sending any more data.
Some DTE hosts assert DTR signal when they are active and this can be used via RS232 line receiver to enable I9600. Otherwise the ENABLE must be physically pulled-low to activate the I9600.
In receive mode, the RSTXD pin should be tie to the supply rail via a 10kW resistor and needs to be provided with a jumper connector (JP2) as shown. This is because this input is still needed for the programming function (activated by pulling setup low). Remove the JP2 jumper when programming.
Interfacing a I9600 to a Microcontroller
I9600 can also directly be interfaced to any microcontrollers. If the microcontroller has a built-in UART, it can concentrate on its main task and leave the packet formatting, bit balancing and error checking of serial data to I9600.
Serial data should be in the following format:
1 start bit, 8 data bits, no parity, 1 or 2 stop bits
BUSY pin can be connected to one of the port pins which can generate an interrupt on low-to-high transition (e.g. RB0/INT pin in the PIC). This can be used to enter a receive sub-routine to download data received from remote I9600. Therefore, the host does not need to wait in a loop for a packet.
Range test and site survey can be carried out by connecting an LED on the BUSY pin. Every time, I9600 is within range to receive valid data, the LED will flicker.
9600-000-SS - Shrink Small Outline
i9600-000-SO - Small Outline
i9600-000-DIL - Plastic Dual In Package
Note: The i9600 modem ICs cannot be ordered separately. They should be ordered with equal number of Radiometrix radio modules.
Limitation of liability
The information furnished by Radiometrix Ltd is believed to be accurate and reliable. Radiometrix Ltd reserves the right to make changes or improvements in the design, specification or manufacture of its subassembly products without notice. Radiometrix Ltd does not assume any liability arising from the application or use of any product or circuit described herein, nor for any infringements of patents or other rights of third parties which may result from the use of its products. This data sheet neither states nor implies warranty of any kind, including fitness for any particular application. These radio devices may be subject to radio interference and may not function as intended if interference is present. We do NOT recommend their use for life critical applications.
The Intrastat commodity code for all our modules is: 8542 6000.
After 7 April 2001 the manufacturer can only place finished product on the market under the provisions of the R&TTE Directive. Equipment within the scope of the R&TTE Directive may demonstrate compliance to the essential requirements specified in Article 3 of the Directive, as appropriate to the particular equipment.
Further details are available on The Office of Communications (Ofcom) web site:
Licensing policy manual