串口概念
串口是串行接口(Serial Port)的简称,是一种常用的计算机接口,由于连线少、通信控制简单而得到广泛的使用。串口有几种标准,常见的一种称做RS232接口标准串口协议支持的最高数据传输率是115Kbps。一些改进的串口控制器支持更高甚至460Kbps的数据传输率,如增强型串ESP (Enhanced Serial Port)和超级增强型串口Super ESPRS232串口使用D型数据接口,目前所有的RS232串口都使用9针连接方式。
串口工作原理
串口通过直接连接在两台设备间的线发送和接收数据,两台设备通信最少需要三根线(发送数据、接收数据和接地)才可以通信。以最常见的RS232串口为例,
DBR9接口的RS串口数据线定义
串口是一种标准的设备,有标准的通信协议,任何符合串口通信协议的设备都可以通过串口通信,如GPS接收机等。
串口应用程序
Linux系统中串口设备被当做一个字符设备处理,通常是在/dev目录下ttySx,ttyS0代表第一个串口。
操作串口需要用到的头文件有:
#include <stdio.h> 标准输入输出定义
#include <stdlib.h> 标准函数库定义#include <unistd.h> UNIX标准函数定义
#include <sys/types.h>
#include <sys/stat.h>
#include <fcnt1.h> 文件控制定义
#include <termios.h> /ppsix终端控制定义
#include <errno.h> /错误号定义
串口的打开与关闭与文件打开关闭操作是相同的。
Linux系统中通常使用struct termios结构存储串口参数,例子如下: