How to use the UART or HSU (Hight speed UART) interface
The Universal Asynchronous Receiver/Transmitter (UART) controller is the key component of the serial communications subsystem of a computer. The UART takes bytes of data and transmits the individual bits in a sequential fashion. At the destination, a second UART re-assembles the bits into complete bytes.
Serial transmission is commonly used with modems and for non-networked communication between computers, terminals and other devices.
There are two primary forms of serial transmission: Synchronous and Asynchronous. Depending on the modes that are supported by the hardware, the name of the communication sub-system will usually include a A if it supports Asynchronous communications, and a S if it supports Synchronous communications.
Contents
- What is HSU
- Specifications
- Minimum PC Requirements
- Benefits of using HSU
- Software Serial Example
- References
What is HSU
Frontline's High Speed UART (HSU) Protocol Analyzer lets you capture Bluetooth, WCI-2 (or HCI), and 802.11 data data directly. It is extremely portable and requires very little set up. Using Frontline's ComProbe HSU analyzer lets you view detailed packet information and display all HCI commands and events within the powerful and mature ComProbe Protocol Analysis System software UI.
The ComProbe HSU analyzer come built in with Frontline’s ProbeSync technology - a clock sharing technology for use with Frontline ComProbe analyzers. This means you will save time debugging and troubleshooting your Bluetooth enabled devices by capturing and viewing Bluetooth packets simultateously from BOTH over-the-air Bluetooth data using the ComProbe BPA 600 analyzer AND over-the-wire HCI (HSU) Bluetooth data using the ComProbe HSU analyzer. No more wondering when a packet came through, searching for correlations between capture files, etc. See both sets of data together and synchronized the way you need it.
Specifications
Dimensions | 2.75x 2.0 x 0.9 inches |
Power | USB Powered |
Accessories | 6’ Shielded High-Speed USB cable
Connection Cable: 22-gauge test wires with 0.025” square sockets (total of 9, various colors) Male RJ-45 socket ProbeSync connector 9 high-quality miniature test clips that allow connection |
Maximum Operating Speed | 100 MHz |
Maximum Rate of Data Capture | 6Mbps |
TTL Level Inputs | High level (logic 1): +2V to +5V
Low level (logic 0): 0V to +0.8V |
Logs data from 8 digital channels | |
Sample Data Rate | 100 Mbps |
The HCI sniffer displays and decodes all the protocol layers all the way through the profile. The profile list includes: |
|
Minimum PC Requirements
- Pentium PC 2 GHz or faster
- Windows XP (32-bit) or Windows 7 (32-bit or 64-bit)
- 2 GB of RAM
- 50 MB free disk space
- One USB 2.0 port
Benefits of using HSU
- Reduce Debugging Time
- Data You Can Trust
- Synced with Bluetooth
- Easy to use and portable
- USB-powered
- Full serial protocol support - sniff H4, H5 and BCSP.
- Easy SSP Decryption
- Direct TTL connection to your HCI UART transport layer.
- Needs access to the Rx (receive), Tx (transmitt) and Gnd (Ground) terminls of the serial HCI link. These points are at TTL (Transistor, Transistor Logic voltage levels).
Software Serial Example
Serial is used for communication between the Arduino board and a computer or other devices. All Arduino boards have at least one serial port (also known as a UART or USART): Serial. It communicates on digital pins 0 (RX) and 1 (TX) as well as with the computer via USB. Thus, if you use these functions, you cannot also use pins 0 and 1 for digital input or output. You can use the Arduino environment's built-in serial monitor to communicate with an Arduino board. Click the serial monitor button in the toolbar and select the same baud rate used in the call to begin().
Arduinos have built in support for serial communication on pins 0 and 1, but what if you need more serial ports? The SoftwareSerial Library has been developed to allow serial communication to take place on the other digital pins of your Arduino, using software to replicate the functionality of the hardwired RX and TX lines. This can be extremely helpful when the need arises to communicate with two serial enabled devices, or to talk with just one device while leaving the main serial port open for debugging purpose. In the example below, digital pins 10 and 11 on your Arduino are used as virtual RX and TX serial lines. The virtual RX pin is set up to listen for anything coming in on via the main serial line, and to then echo that data out the virtual TX line. Conversely, anything received on the virtual RX is sent out over the hardware TX.
Hardware requirement
This example requires an Arduino Board.
Circuit
Make sure that your Arduino is attached to your computer via USB to enable serial communication.
Code example
/* Software serial multple serial test Receives from the hardware serial, sends to software serial. Receives from software serial, sends to hardware serial. The circuit: * RX is digital pin 10 (connect to TX of other device) * TX is digital pin 11 (connect to RX of other device) Note: Not all pins on the Mega and Mega 2560 support change interrupts, so only the following can be used for RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69 Not all pins on the Leonardo support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI). created back in the mists of time modified 25 May 2012 by Tom Igoe based on Mikal Hart's example This example code is in the public domain. */ #include <SoftwareSerial.h> SoftwareSerial mySerial(10, 11); // RX, TX void setup() { // Open serial communications and wait for port to open: Serial.begin(57600); while (!Serial) { ; // wait for serial port to connect. Needed for Leonardo only } Serial.println("Goodnight moon!"); // set the data rate for the SoftwareSerial port mySerial.begin(4800); mySerial.println("Hello, world?"); } void loop() // run over and over { if (mySerial.available()) Serial.write(mySerial.read()); if (Serial.available()) mySerial.write(Serial.read()); }
References
- https://www.freebsd.org/doc/en/articles/serial-uart/
- http://www.fte.com/products/hsu.aspx
- http://www.fte.com/docs/datasheet_comprobehsu_probesync.pdf
- http://arduino.cc/en/reference/serial
- http://arduino.cc/en/Tutorial/SoftwareSerialExample
More information
- How to connect multiple devices to the I2C bus with
- How to connect multiple devices to the SPI bus
- How to use the UART or HSU (Hight speed UART) interface