The developer's resource for computer interfacing, especially USB, serial (COM) ports, mass storage, and embedded networking. (Formerly Lvr.com)

Home > Serial Port Complete > Contents

Serial Port Complete Second Edition

Contents

Introduction

Acknowledgments

1 Options and Choices

When to use a Serial Port

Advantages
Limits

System Components

The Computers
The Physical Link
Programming

Applications

Example Systems
Managing Communications
Special-purpose Modules

2 Formats and Protocols

Sending Serial Data

Asynchronous and Synchronous Communications
Word Formats
Bit Rate and Baud Rate
System Support for Low-level Protocols

Sending Bits

The Format
The Need for Accurate Timing
Autodetecting the Bit Rate
Autodetecting a COM Port

Data Formats

Binary Data
Text Data
ASCII Hex
Application-specific Protocols

Preventing Missed Data

Flow Control
Buffers
Event-driven Programming and Polling
Acknowledgments
Error Checking

3 COM Ports on PCs

Port Architecture

Device Manager
Port Resources
Serial Servers

Accessing Ports

Drivers
Identifying Ports
GUIDs for COM Ports
COM Port Numbering
INF Files
Options for Application Programming

4 Inside RS-232

The Hardware Interface

Signals
Voltages
Timing Limits

Converting Voltages

Interface Chips
Short-range Circuits

Port-powered Circuits

Using Outputs as a Power Source
Regulating the Voltage

Alternate Interfaces

Direct Connection
Other Unbalanced Interfaces

5 Designing RS-232 Links

Connectors and Adapters

Connector Options
Adapters
Using Microcontroller Development Boards

Cables

Length Limits
Surge Protection

Isolated Lines

Ways to Achieve Isolation
About Grounds
Power Supply Grounds
Optoisolating

Debugging Tools

Using a Breakout Box
Monitoring with a Voltmeter
Oscilloscopes and Logic Analyzers

6 Inside RS-485

About RS-485

Balanced and Unbalanced Lines
Voltage Requirements
Current and Power
Speed
Internal Protection Circuits

Interfacing Options

Chips
Adding a Port on a PC
Converting 3.3/5V Logic
Converting RS-232

Controlling the Driver Enable

Re-enabling the Driver
Software-assisted Control
Hardware Control

7 Designing RS-485 Links and Networks

Long and Short Lines

When Is a Line Long?
Calculating Line Length
Choosing a Driver Chip

Line Terminations

Characteristic Impedance
Adding a Termination
Effects of Terminations
Reflections
Series Terminations
Terminations for Short Lines
AC Terminations
Network Topologies

Biasing the Line

Open-circuit Protection
Short-circuit Protection

Cable Types

How a Wire Picks Up Noise
Twisted-pair Cable
Selecting Cable

Grounds and Differential Lines

Ensuring a Common Ground
Isolated Lines

Using Multiple Buses

Adding a Repeater
Implementing a Star Topology

8 Going Wireless

Media and Modulation

Using a Carrier Frequency
Spread Spectrum Technology
Ensuring Reliable Transfers

Infrared

Transmitters and Receivers
IrDA

Radio Frequency

Complying with Regulations
Choosing an RF Band
Implementing a Link
Using Other RF Standards

9 Using .NET’s SerialPort Class

Gaining Access to a Port

Finding Ports
Opening a Port
Timeouts
Receive Threshold
Closing a Port

Transferring Data

Transferring Bytes
Transferring Text

Using Stream Objects

BinaryReader and BinaryWriter
StreamReader and StreamWriter

Saving a Port and Parameters

The Application Settings Architecture
Combo Box Example

10 Managing Ports and Transfers in .NET

Receiving Data

Setting Timeouts
Detecting Received Data
Collecting Received Data
Ensuring Efficient Transfers

Sending Data

Avoiding Timeouts
Sending without Blocking the Application
Preventing Buffer Overflows
Ensuring Efficient Transfers

Flow Control

Selecting a Method
Monitoring and Controlling the Signals

Handling Errors

Exceptions
The ErrorReceived Event
Verifying Received Data

Structuring an Application

Defining a ComPorts Class
Setting Parameters with Combo Boxes
Defining Application-specific Events

11 Ports for Embedded Systems

A Microcontroller Serial Port

About the PIC18F4520
The Enhanced UART

Registers

Configuring and Accessing the Port
Setting the Bit Rate
Interrupts
Basic Operations

Accessing a Port

Configuring the Port
Sending Data
Receiving Data
Using Interrupts
Using Flow Control

Adding Ports

Multiple On-chip UARTs
Firmware UARTs
External UARTs

12 Network Programming

Managing Traffic

Steps in Exchanging a Message
Protocols
Using Existing Protocols
Debugging Tips

Addressing

Assigning Addresses
Detecting Addresses
Reserving Address Values
Defining a Message Format
9-bit Format

13 An RS-485 Network

Connecting the Nodes

Transceivers
Terminating and Biasing
Cabling

Example Protocol

Addresses
Message Format

Commands

Reading a Byte
Writing a Byte

Polling the Nodes

Configuring the Driver-enable Line
Sending Commands

Responding to Polls

Auxiliary Routines
Decoding Received Data

14 Inside USB

Hosts and Devices

Assigning a Driver on the Host
Requirements
Host Responsibilities
Device Responsibilities
Speed
Endpoints

USB Transfers

Transfer Types
Transactions
The Data Toggle

15 Using Special-function USB Controllers

Inside the Chips

Serial Interface (FT232R)
Parallel Interface (FT245R)
Prototyping Modules

Using the Controllers

Drivers
Adding Vendor-specific Data
Implementing a Virtual COM Port
Converting from RS-232 to USB

16 Using Generic USB Controllers

The Communication Devices Class

Documentation
Overview
Device Controllers
Host Drivers

Using the Abstract Control Model

POTS Models
Virtual COM Ports
Requests
Notifications
Maximizing Performance

Descriptors and INF Files

Device Descriptor
Configuration Descriptor
Communication Class Interface Descriptors
Data Class Interface Descriptors
String Descriptors
The INF File
Composite Devices

Index