嵌入式
Editor:胡峰 2011/6/2
纽格雷斯信息技术有限公司
Linux 串口通信
2
Linux 操作系统的串口通信相关专题
序:
本书中所有知识点全部来自互联网,本着互联网所有知识共享的原则,我只是简单的做了下整理,对里面的
个别内容做了下修改,如果涉及到侵权,请谅解,再次声明本人幵不是以盈利为目的,我做的只是希望能够
使跟我一样的朋友快速掌握知识仅此而已。
胡峰 整理于 2011 年 5 月 31 日
中国.北京
3
目录
Linux 操作系统的串口通信相关专题 .............................................................................................. 2
序: .................................................................................................................................................. 2
一、什么是串口通信 ........................................................................................................................... 4
二、串口通信的分类 ........................................................................................................................... 4
2.1 同步通信 ................................................................................................................................ 4
2.2 异步通信 ................................................................................................................................ 5
三、什么是 RS-232 ............................................................................................................................. 6
四、计算机串口引脚说明 ..................................................................................................................... 6
五、全双工与半双工 ........................................................................................................................... 7
六、流量控制 ..................................................................................................................................... 7
1.使用软件方法 ............................................................................................................................ 7
2.使用硬件方法 ............................................................................................................................ 8
七、串口的访问 .................................................................................................................................. 9
7.1 .............................................................................................................................................. 9
7.2 关闭串口 .............................................................................................................................. 10
7.3 写串口 ................................................................................................................................. 10
7.4 读串口 ................................................................................................................................. 11
八、终端配置 ................................................................................................................................... 12
8.1 POSIX 终端接口 .................................................................................................................... 12
8.2 设置波特率 ........................................................................................................................... 17
8.3 设置字符大小 ....................................................................................................................... 19
4
8.4 设置奇偶校验 ....................................................................................................................... 20
九:其余 .......................................................................................................................................... 21
9.1 设置输入奇偶选项 ................................................................................................................. 21
9.2 设置软件控制流 .................................................................................................................... 21
9.3 选择预处理输出 .................................................................................................................... 22
9.4 选择原始数据输出 ................................................................................................................. 22
9.5 设置软件流控制字符.............................................................................................................. 22
9.6 设置读超时 ........................................................................................................................... 22
十:例程讱解 ................................................................................................................................... 22
10.1、程序说明 本程序实现的功能如下:..................................................................................... 23
10.2、本程序的重点在: ............................................................................................................ 23
一、什么是串口通信
串口通信是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用串口通信时,发送
和接收到的每一个字符实际上都是一次一位的传送的,每一位为 1 或者为 0。
二、串口通信的分类
串口通信可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收,
异步通信是一种利用字符的再同步技术的通信方式。
2.1 同步通信
同步通信是一种连续串行传送数据的通信方式,一次通信只传送一帧信息。这里的信息帧与异步通信中的字
符帧不同,通常含有若干个数据字符。如图:
5
单同步字符帧结构
+-----+------+-------+------+-----+--------+-------+-------+
|同步|数据 |数据 |数据 | ... |数据 |CRC1|CRC2|
|字符|字符 1|字符 2|字符 3| |字符 N| | |
+-----+------+-------+------+-----+--------+-------+-------+
双同步字符帧结构
+-----+--------+------+-------+---+-------+-------+--------+
|同步 |同步 |数据 |数据 | ... |数据 |CRC1|CRC2|
|字符 1|字符 2|字符 1|字符 2| |字符 N| | |
+-----+--------+------+-------+---+-------+-------+--------+
它们均由同步字符、数据字符和校验字符(CRC)组成。其中同步字符位于帧开头,用于确认数据字符的开
始。数据字符在同步字符之后,个数没有限制,由所需传输的数据块长度来决定;校验字符有 1 到 2 个,用于接
收端对接收到的字符序列进行正确性的校验。
同步通信的缺点是要求发送时钟和接收时钟保持严格的同步。
2.2 异步通信
异步通信中,数据通常以字符或者字节为单位组成字符帧传送。字符帧由发送端逐帧发送,通过传输线被接
收设备逐帧接收。发送端和接收端可以由各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同
步。
接收端检测到传输线上发送过来的低电平逻辑"0"(即字符帧起始位)时,确定发送端已开始发送数据,每当接收
端收到字符帧中的停止位时,就知道一帧字符已经发送完毕。
在异步通行中有两个比较重要的指标:字符帧格式和波特率。
(1)字符帧,由起始位、数据位、奇偶校验位和停止位组成。如图: