您所在的位置:读书频道 > 操作系统 > Linux > 6.6.2 串口通信的基本参数

6.6.2 串口通信的基本参数

2007-11-07 16:17 杜华 人民邮电出版社 字号:T | T
一键收藏,随时查看,分享好友!

《Linux编程技术详解》第6章的主要内容是设备文件,本小节讲的是串口通信的基本参数。

AD:

6.6.2  串口通信的基本参数

串口一般用于ASCII码字符的传输。最基本的串口通信只需3个引脚即可实现,分别是地线、接收和发送。其他引脚用于握手协议。由于串口通信属于异步通信,可以在进行通信时不使用握手协议。

为了正确实现串口间的通信,必须对串口的参数进行设置。图6.13所示为使用Windows中的超级终端进行串口通信时设置参数的界面。参数具体说明如下:

 

图6.13  串口通信参数设置

1.每秒位数
即波特率。该参数表示每秒传输的比特数。例如,对于发送端,2400波特率表示每秒发送2400bit;对于接收端而言,2400波特率意味着串口通信在数据线上的采样率为2400Hz。由于波特率和距离之间成反比,距离相隔很近的设备间才可以实现高波特率通信。

2.数据位
表示通信中实际数据位的参数。在计算机发送的数据包中,实际的数据往往不会是8位。在串口通信中,可以选择5、6、7或8位,如图6.14所示。设定数据位主要考虑所要传输的数据内容。如果要传输的是标准的ASCII码,由于ASCII码的范围是0~127,因此使用7位就可以了。如果要传输的是扩展ASCII码,其范围是0~255,必须使用8位。当然,7位或8位数据位中不仅仅是数据,还包括开始/停止位、数据位以及奇偶校验位等。

3.奇偶校验位
该位用于串口通信中的简单检错。奇偶校验位主要有:偶校验、奇校验、标记、空格的方式,也可以不使用校验,如图6.15所示。奇/偶校验是通过统计数据中高位或低位的个数来实现校验的。而标记、空格并不真正检测数据,只是通过简单的置位来实现对数据的检测。通过置位方式,可以判断出是否存在噪声干扰数据通信或数据传输,以及接收是否存在不同步的现象。

 

          图6.14  数据位设置                      

 

图6.15  奇偶校验位设置

4.停止位
停止位用于标志该数据包数据结束,可以取1位、1.5位或2位,如图6.16所示。停止位不仅仅用于数据包的传输结束标志,还提供了计算机之间校正同步时钟的机会。用于停止位的位数越多,不同时钟同步的容忍程度越大。但是由于停止位占用了数据空间,过多的停止位将导致数据传输速度的下降。

5.数据流控制
通过串口传输数据时,由于计算机之间处理速度或其他因素的影响,会造成丢失数据的现象。例如,台式机与单片机之间的通信,接收端数据缓冲区已满的情况下,继续收到数据,新发送来的数据就会由于无法处理造成丢失。数据流控制用于解决这个问题。通过控制发送数据的速度,确保数据不会出现丢失。

数据流控制可以分为软件流控制(Xon/Xoff)和硬件流控制,如图6.17所示,也可以选择不使用数据流控制。软件流控制使用特殊的字符作为启动或停止的标志。而硬件流控制通过使用硬件信号(CTR/RTS)来实现。使用硬件流控制时,在接收端准备好接收数据后,设定CTS为1,否则CTS为0。同样,如果发送端准备好要发送数据,则设定RTS为1;如果还未准备好,设置CTS为0。

 

图6.16  停止位设置                     

 

图6.17  数据流控制设置

【责任编辑:杜书 TEL:(010)68476606】

回书目   上一节   下一节

分享到:

  1. Linux服务器配置全程实录
  2. 揭秘--优秀PPT这样制作

热点职位

更多>>

热点专题

更多>>

读书

Linux环境下C编程指南
本书系统地介绍了在Linux平台下用C语言进行程序开发的过程,通过列举大量的程序实例,使读者很快掌握在Linux平台下进行C程序开发

51CTO旗下网站

领先的IT技术网站 51CTO 领先的中文存储媒体 WatchStor 中国首个CIO网站 CIOage 中国首家数字医疗网站 HC3i 51CTO学院