现在的位置: 首页 > 综合 > 正文

串行通信基础

2013年08月27日 ⁄ 综合 ⁄ 共 2201字 ⁄ 字号 评论关闭

串口通信基础

5th Edition

Michael R. Sweet

本章主要介绍串口通信、RS-232和其他一些用于大多数计算机的标准以及怎样通过C语言访问串口。

1.什么是串行通信?

计算机传输数据时每次传输1个或多个比特(bit)。串行通信每次传输一个比特的数据。串行通信包含大多数的网络设备,键盘,鼠标,调制解调器和终端等。

当你用串行方式发送或接受数据时每次仅传输一位。每一位代表onoff。通常1代表ON状态,0代表OFF状态。

串行数据传输速率通常用比特每秒(bps)或波特率表示(baud)。这代表每秒传输01的个数。在计算机发展的开始阶段,300波特被认为是相当快的,但是现在应用RS232的计算机的传输速度可达430,800波特。波特率超过1000时,通常表示成千波特(kilo baud),或kbps(例如:9.6k, 19.2k等等)。波特率超过1,000,000时可以用兆波特或Mbps(如1.5Mbps)来表示。

串行设备或端口被称为数据通讯设备或数据终端设备,它们之间的区别很简单,一个发送,一个接受,实现信息交换。当把两个DTE或两个DCE接口相连,实现了串行无调制解调器电缆或适配器的信号交互

2.什么是RS-232

RS-232EIA定义的串行通信的标准电气接口。常说的RS-232是电子工业协会EIA(Electronic Industries Association)定义的串行通信电气标准。RS-232根据电压的范围分为ABC三类。最常用的是RS-232C,用-3V-12V表示mark(on),用+3V+12V表示space(off)RS-232C标准指出信号的传输距离大约为8m。在波特足够低的时候信号通常可以传的稍远一些。

除了线路发送和接收数据外,还支持时间选择、状态、和握手。

除此之外其他标准还有RS-422RS-574RS-422采用低电压和差分信号,传输距离可达300左右。RS-574则是9-pin 串行连接器和电压的标准。

信号定义

RS-232标准定义了18种不同的信号。其中有6种是在UNIX环境中可用的。(关于引脚的定义请参见表1

GND-逻辑接地

从技术上讲,逻辑接地不是信号,但是如果没有它其他信号将无法工作。实际上   逻辑接地是一个参考电平用来定义其他信号的正负。

TXD 数据发送

TXD信号从工作站向计算机或其他终端(如MODEM)设备发送数据(发送信号)。高电平为1,低电平为0

RXD 数据接收

RXD信号是接收信号,像TXD信号一样高电平为1,低电平为0

引脚

描述

引脚

描述

1

14

辅助TXD

2

TXD - 数据发送

15

发送时钟

3

RXD - 数据接收

16

辅助 RXD

4

RTS - 请求发送

17

接受时钟

5

CTS -清除发送

18

未分配

6

DSR - 数据就绪

19

辅助RTS

7

GND -逻辑接地

20

DTR – 数据终端就绪

8

DCD -数据载波检测

21

信号质量检测

9

保留

22

环形检测

10

保留

23

数据速率选择

11

未分配

24

传送时钟

12

辅助DCD

25

未分配

13

辅助CTS

 

 

1-RS232 引脚分配

DCD 数据载波检测

DCD信号是从串行线路的另一端收到的信号。0电平表示两台设备当前是连通的。DCD信号并不总是有效。

DTR 数据终端就绪

DTR由数据终端产生的用来表示是否就绪,0表示就绪,1表示没有就绪。DTR信号通常在你打开串口时自动有效。

CTS 清除发送

CTS信号来自另一端,0电平表示你可以发送数据。CTS通常用来控制两个设备间的串行数据流。

RTS 请求发送

RTS信号是请求发送信号,它设置为0表示有数据要发送。

CTS一样,RTS也是用来控制设备间的串行数据流。多数设备都将该信号始终设置为0

异步通信

对计算机来说,进行串行通信需要确定一个字符的结束和下一个的开始。这是异步通信独有的特点。

在异步通信模式中串行数据保持1状态直道一个字符被传送。起始位在每个字符的前面,然后紧接着是一个可选的校验位,和一个或多个停止位。起始位总是为0,它用来告诉计算机可以传送新数据。数据可以在任何时候发送和接收,所以称为异步通信。


1 - 异步数据传输

 

可选的校验位就是一个简单的数据位,用来表明数据保护奇数或偶数个1。偶校验时,如果数据中已经有偶数个1,则校验位为0。奇校验时,当数据中有奇数个1时校验位设置为0。经常听到的术语还有:0校验,1校验,无校验。0校验时校验位总是被设置为0,而1校验则是把校验位总是设置为1。无校验就是没有校验位。

其余的位称作停止位。停止位可以设置为1个、1.5个或2bit,他总是被设置为1。停止位传统上是让计算机有时间去处理前面的字符,但是现在仅仅是用来使计算机接收数据同步。

异步数据格式通常表示成"8N1", "7E1"等等。意思分别是“8个数据位,无校验位,1个停止位”,“7个数据位,偶校验,1个停止位”。

什么是全双工和半双工?

全双工的意思是计算机可以同时接收和发送数据,也就是说其拥有两条独立的信道(一条用来接收,另一条用来发送)。

半双工的意思是计算机不能同时接收和发送数据。通常这意味着仅有一条信道用来通信。这并不是说不使用任何RS-232信号。更确切的说通信链路用了其他一些标准除了不支持全双工通信RS-232标准外。

流量控制

当两个串行设备传输数据时,控制流量是非常必要的。这是由于中间的串行通信线路,串行口或存储介质的限制。在异步通信中通常使用两种方法。

抱歉!评论已关闭.