在symbian上随心控制红外线(3) Monday, October 12, 2009

详细描述了串口通讯中的一些知识。不是很全,但是很有用而且也是足够的。

设备之间信息交换成为通讯。目前有两种基本的通讯方式:并行和串行通讯。
一条信息的各个比特位被同时传送的通讯方式称为并行通讯。并行通讯的特点是:各个比特位被同时传送,传送速度快、效率高,但是有多少比特位就需要多少根数据线,因此传送成本高,且只适用于近距离(相距数米)的通讯。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20,并且任意两个设备间的长度不得超过2
     一条信息的各比特位被逐位按顺序传送的通讯方式称为串行通讯。串行通讯的特点是:各个比特位按位顺序传送,最少只需一根传输线即可完成,成本低但送速度慢。串行通讯的距离可以从几米到几千米。
根据信息的传送方向,串行通讯可以进一步分为单工、半双工和全双工三种。在任意时刻,信息只能单向传送为单工;信息能双向传送但不能同时彼此传送称为半双工;信息能够同时双向传送则称为全双工。
在数字通讯中有两大类角色:DTEDCEDTEData Terminal Equipment的缩写,意为数据终端设备,是个广义的概念,指的是用户端设备,可用作数据源、目的地或同时作为这两者;DCEData Communications Equipment的缩写,意为数据通讯设备,连接DTE设备的通信设备。DTE设备通过DCE设备(如调制解调器)连接到数据网络,并且通常使用DCE产生的时钟信号。
串口是一种能进行串行通讯的接口。到目前为止已经有好几种实用的串行通信接口标准,这些标准都是在RS-232标准的基础上经过改进而形成的。在接口标准中主要定义了电气特性、逻辑电平和各种信号线功能。注意接口标准中并没有定义通讯协议。在这里不讨论电气特性和逻辑电平。如果有人对这个话题感兴趣可以查找相应的接口标准看看。
目前较为常用的串口9针串口(DB9)和25针串口(DB25)。下面列举一下这两种串口的常用信号线的功能。

 9针串口(DB9

25针串口(DB25

针号

功能说明

缩写

针号

功能说明

缩写

1

数据载波检测

DCD

8

数据载波检测

DCD

2

接收数据

RXD

3

接收数据

RXD

3

发送数据

TXD

2

发送数据

TXD

4

数据终端准备

DTR

20

数据终端准备

DTR

5

信号地

GND

7

信号地

GND

6

数据设备准备好

DSR

6

数据准备好

DSR

7

请求发送

RTS

4

请求发送

RTS

8

清除发送

CTS

5

清除发送

CTS

9

振铃指示

DELL

22

振铃指示

DELL

这些信号线大致可以分为如下三类:
(一)  联络控制信号线:
1、  DSRData Set Ready)
数据通讯装置准备好——有效时(on状态)表明DCE处于可以使用的状态。
2、  DTR (Data Terminal Ready)
数据终端准备好——有效时(on状态)表明DTE可以使用。

这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。
3、  RTS (Request to send)
请求发送——用来表示DTE请求向DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向DCE请求发送。它用来控制DCE是否要进入发送状态。
4、  CTSClear to send
允许发送——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当DCE已准备好接收DTE传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。
以上RTS/CTS请求应答联络信号是用于半双工DCE系统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号。
RTS/CTS 属于是硬件流量控制, 这里再介绍一下Xon/Xoff, 它们是软件流量控制。RTS/CTS/Xon/Xoff也可以理解为握手信号。
Xon/Xoff不使用硬件管脚信号而是通过软件设置在数据流内插入特殊字符实现的。当DTE不能继续接收数据时,发送一个 XOFF 控制字符告诉发送方停止传送;当传输可以恢复时,该DTE发送一个 XON 字符来通知发送方。这回导入一个重要的问题:用户数据中不能包含被选定的字符,因为这些字符被解释成为流控请求。因此Xon/Xoff一般不赞成使用,推荐用RTS/CTS控制流来代替它们。
5、  RLSD (Received Line detection)
接收线信号检出——用来表示DCE已接通通信链路,告知DTE准备接收数据。当本地的DCE收到由通信链路另一端(远地)的DCE送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由DCE将接收下来的载波信号解调成数字数据后,沿接收数据线RxD送到终端。此线也叫做数据载波检出(Data Carrier dectection-DCD)线。
6、  RI (Ringing)
振铃指示——当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知终端,已被呼叫。
(二)  数据发送与接收线:
1、  TxD (Transmitted data)
发送数据——通过TxD终端将串行数据发送到DCE(DTEDCE)
2、  RxD (Received data)
接收数据——通过RxD线终端接收从DCE发来的串行数据,(DCEDTE)
(三)  地线
有两根线SGPG——信号地和保护地信号线,无方向。
      
下面说一下串口通信最重要的四个参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配。
一、波特率
这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为144002880036600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
二、数据位
这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是578位。如何设置取决于你想传送的信息。比如,标准的ASCII码是01277位)。扩展的ASCII码是02558位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语指任何通信的情况。
三、停止位
用于表示单个包的最后一位。典型的值为11.52位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
四、奇偶校验位
在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。

0 comments: