没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Linux 串口编程详解(中文版)
•串口本身,标准和硬件
•什么是串行通信
•什么是
RS-232
•信号定义
•异步通讯
•什么是全双工和半双工
•什么是流控制
•什么是
BREAK
•同步通讯
•用户看到的串口和用户空间的串口编程
•串口的设备文件
•打开串口
•打开文件的选项
•给端口上写数据
•从端口上读取数据
•关闭串口
•配置串口
•POSIX
终端接口
•控制选项
•设置波特率
•设置字符大小
•设置奇偶校验
•设置硬件流控制
•本地设置
•选择经典输入
•选择原始输入
•输入选项
•设置输入奇偶校验选项
•设置软件流控制
•输出选项
•选择加工过的输出
•选择原始输出
•控制字符
•设置软件流控制字符
•设置读取超时
•调制解调器通讯
•什么是调制解调器
•与调制解调器通讯
•标准调制解调器命令
•高级串口编程
•串口的
ioctl
•取得控制信号
•设置控制信号
•英文原文
串口本身,标准和硬件 †
串口是计算机上的串行通讯的物理接口。计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备。虽
然以太网接口和 USB 接口也是以一个串行流进行数据传送的,但是串口连接通常特指那些与 RS-232 标准兼容的硬件或者
调制解调器的接口。虽然现在在很多个人计算机上,原来用以连接外部设备的串口已经广泛的被 USB 和 Firewire 替代;而
原来用以连接网络的串口则被以太网替代,还有用以连接终端的串口设备则已经被 MDA 或者 VGA 取而代之。但是,一方
面因为串口本身造价便宜技术成熟,另一方面因为串口的控制台功能 RS-232 标准高度标准化并且非常普及,所以直到现
在它仍然被广泛应用到各种设备上。某些计算机使用一个叫做 UART 的集成电路来作为串口设备。这个集成电路可以进行
字符和异步串行通讯序列之间的转换,并且可以自动地处理数据的时序。而某些低端设备则会让 CPU 直接通过输出针来传
送数据,这种技术叫做 bit-banging “ ”。因为 串口 ,RS-232 和 UARTs 基本上总是在同一个语境中出现,所以这些名词通常
会被搞混。下面逐一解释以下一些重要的名词和术语。
↑
什么是串行通信 †
计算机可以每次传送一个或者多个位(bit) “ ”的数据。 串行 指的式每次只传输一位(1bit)数据。当需要通过串行通讯传输一个
字(word)的数据时,只能以每次一位的方式接收或者发送。每个位可能是 on(1)或者 off(0)。很多技术术语中经常用 mark 表
示 on,而 space 表示 off。
串行数据的速度通常用每秒传输的字节数 bits-per-second(bps)或者波特率(baud)表示。这个值表示的是每秒钟被送出的 0
和 1 的个数。很久很久以前,300bps 就是很快的速度了,而现在的电脑可以处理高达 430,800 的 RS-232 速率。表示波特
率的单位还有 kpbs 和 Mbps,1kps=1000bps 而 1Mbps=1000kbps。一般有人提到串行设备的时候,它通常说可能是某种
数据通讯设备-DCE(Data Communications Equipment)或者数据终端设备-DTE(Data Terminal Equipment)。它们之间的区
别非常简单,每个信号对,比如传送和接收,它们俩正好是相反的。如果需要将两个 DTE 或者 DCE 设备连接起来的话,
需要适配器或者交叉线缆将信号对交换。
↑
什么是 RS-232 †
RS-232 是 EIA(Electronic Industries Association)定义的串行通信的电器接口。RS-232 事实上有三种(A,B 和 C),它们分别
采用不同的电压来表示 on 和 off。最被广泛使用的是 RS-232C,它将 mark(on)比特的电压定义为-3V 到-12V 之间,而将
space(off)的电压定义到+3V 到+12V 之间。虽然 RS-232C 标准说信号最远被传输 8m,但事实上你可以使用它传输更长的
距离,直到信号波特率已经小到不行了为止。RS-232 的连结线中除去用来传入传出数据的电线,还有一些用来提供时序,
状态和握手的电线:
RS-232 针脚定义
DB-25
针
脚
描述
针
脚
描述
针
脚
描述
针
脚
描述
针
脚
描述
1 Earth Ground 6
DSR - Data
Set Ready
11 Unassigned 16 Secondary RXD 21
Signal Quality
Detect
2
TXD -
Transmitted
Data
7
GND - Logic
Ground
12
Secondary
DCD
17 Receiver Clock 22 Ring Detect
3
RXD - Received
Data
8
DCD - Data
Carrier
Detecter
13
Secondary
CTS
18 Unassigned 23
Data Rate
Select
4
RTS - Request
To Send
9 Reserved 14
Secondary
TXD
19 Secondary RTS 24
Transmit
Clock
5
CTS - Clear To
Send
10 Reserved 15
Transmit
Clock
20
DTR - Data
Terminal Ready
25 Unassigned
DB-9
针脚 名称 全名
方向( 主机 外设)
3 TD Transmit Data ->
2 RD Receive Data <-
7 RTS Request To Send ->
8 CTS Clear To Send <-
6 DSR Data Set Ready <-
4 DTR Data Terminal Ready ->
1 CD Data Carrier Detect <-
9 RI Ring Indicator <-
5 - Signal Ground
另外两个比较常见的串行接口的标准式 RS-422 和 RS-574。RS-422 使用更低的电压和差分信号,这样可以将传输距离扩
张到 300m。而 RS-574 定义了通常可以见到的用在电脑上的 9 针连接器和电压。
↑
信号定义 †
RS-232 标准定义了 18 个不同的串行通信的信号。而这些之中,仅仅有如下 6 个可以在 UNIX 环境中使用。
•GND - Logic Ground
从技术角度讲,GND 不能算是信号。但是没有它其他信号都不能用了。基本上,logic ground 有点
像一个参考电压,通过它来判断哪个电压表示正哪个电压表示负。
•TXD - Transmitted Data
TXD 信号负载着从你的电脑或者设备到另一端(比如调制解调器)的数据。Mark 范围的电压被解析成
1,而 space 范围电压被解析成 0。
•RXD - Received Data
RXD 于 TXD 正好相反。它负载着从另一端的电脑或者设备上传到你的工作站的数据。Mark 和
space 的解析方法于 TXD 一致。
•DCD - Data Carrier Detect
DCD 信号通常来自串口连结线的另一端。这条信号线上的 space 电压表示另一端的电脑或者设备
现在已经连接。但是,DCD 信号线却不是总可以得到的,有些设备上有这条信号线,而有的则没
有。
•DTR - Data Terminal Ready
剩余18页未读,继续阅读
资源评论
hweethy
- 粉丝: 4
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功