文档库 最新最全的文档下载
当前位置:文档库 › RS232串行接口总线详细介绍

RS232串行接口总线详细介绍

RS232串行接口总线详细介绍
RS232串行接口总线详细介绍

RS232串行接口总线

目录

第一节RS232串行接口系统描述 (3)

第二节 RS232串行接口拓扑结构 (3)

第三节物理接口 (5)

3.1 电气特性 (5)

3.2接口信号 (6)

3.3机械特性 (8)

第四节电源 (8)

第五节 RS232接口协议 (9)

5.1 数据传送格式 (9)

5.2 流控制 (10)

5.3 差错检测 (10)

5.4 差错控制 (10)

第六节系统配置 (10)

6.1 端口地址和中断 (10)

6.2 串行端口寄存器 (11)

6.3 DLAB (14)

第七节数据流模型 (14)

第八节 RS232串口接口设备 (15)

第一节RS232串行接口系统描述

串行接口是微型计算机与外部设备的主要通信接口之一。只需要一条信号线就可以进行单向数据传送。由于线路简单,价格相对较低,目前得到广泛应用。

串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。

在讨论RS-232C接口标准的内容之前,先说明两点:

首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。

其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。

目前,PC系列微机串行接口采用异步通信方式,按照RS-232接口标准进行数据传输。

UART(Universal Asynchronous Receiver/Transmitter) 是实现数据字符的串并转换的单元。

第二节RS232串行接口拓扑结构

使用串行接口进行通信的器件可以分为两类。一类叫做DCE(DATA COMMUNICATIONS EQUIPMENT),另外一类叫做DTE(DATA TERMINAL EQUIPMENT)。DCE是类似MODEM一类的设备。而DTE就是计算机或者是计算终端。图2.1是典型的串行通信的拓扑结构图。

图2.1 串行通信拓扑结构

尽管微机系统中存在一些单向传输的器件,如只用于发送的游戏杆和只用于接收的打印机。但大多数的情况是全双工,双向的通信。数据在DTE 和DCE 之间进行双向传输。

无MODEM 结构是用来连接两个DTE 设备的。这通常作为一种较为经济的做法用于联网游戏或者在两台计算机之间使用ZMODEM 协议或者XMODEM 协议等进行数据传输。这也可以用于很多微处理器开发系统。图2.2是典型的无MODEM 通信结构图。

图2.2

无MODEM 模式的通信结构图

LOOPBACK 模式的结构在编写串口通信程序的时候使用非常方便。它将发送和接收线连接在一起。因此任何从串口传出的数据会立即回到同一断口的接收端。图 2.3是典型的LOOPBACK

DTE

第三节物理接口

RS232的物理接口包括电气特性和机械特性两部分。

3.1 电气特性

EIA-RS-232C对电气特性、逻辑电平和各种信号线功能都作了规定。

在TxD和RxD上:

逻辑1(MARK)=-3v~-15v

逻辑0(SPACE)=+3~+15v

在RTS、CTS、DSR、DTR和DCD等控制线上:

信号有效(接通,ON状态,正电压)=+3v~+15v

信号无效(断开,OFF状态,负电压)=-3v~-15v

以上规定说明了RS-323C标准对逻辑电平的定义。对于数据(信息码):逻辑“1”(传号)的电平低于-3v,逻辑“0”(空号)的电平高于+3v;对于控制信号;接通状态(ON)即信号有效的电平高于+3v,断开状态(OFF)即信号无效的电平低于-3v,也就是当传输电平的绝对值大于3v时,电路可以有效地检查出来,介于-3~+3v之间的电压无意义,低于-15v 或高于+15v的电压也认为无意义,因此,实际工作时,应保证电平在±(3~15)v之间。

EIA-RS-232C与TTL转换:EIA-RS-232C是用正负电压来表示逻辑状态,与TTL以高低电平表示逻辑状态的规定不同。因此,为了能够同计算机接口或终端的TTL器件连接,必须在EIA-RS-232C与TTL电路之间进行电平和逻辑关系的变换。实现这种变换的方法可用分立元件,也可用集成电路芯片。目前较为广泛地使用集成电路转换器件,如MC1488、SN75150芯片可完成TTL电平到EIA电平的转换,而MC1489、SN75154可实现EIA电平到TTL电平的转换。MAX232芯片可完成TTL←→EIA双向电平转换,图3.1显示了1488和1489的内部结构和引脚。MC1488的引脚(2)、(4,5)、(9,10)和(12,13)接TTL输入。引脚3、6、8、11输出端接EIA-RS-232C。MC1498的14的1、4、10、13脚接EIA输入,而3、6、8、11脚接TTL输出。具体连接方法如图3.2所示。图中的左边是微机串行接口电路中的主芯片UART,它是TTL器件,右边是EIA-RS-232C连接器,要求EIA高电压。因此,RS-232C所有的输出、输入信号都要分别经过MC1488和MC1498转换器,进行电平转换后才能送到连接器上去或从连接器上送进来。

图3.1 UART与连接器的连接方法

3.2 接口信号

RS-232C规标准接口有25条线,4条数据线、11条控制线、3条定时线、7条备用和未定义线,常用的只有9根,它们是:

(1)联络控制信号线:

数据装置准备好(Data Set Ready-DSR)——有效时(ON)状态,表明MODEM处于可以使用的状态。

数据终端准备好(Data Terminal Ready-DTR)——有效时(ON)状态,表明数据终端可以使用。

这两个信号有时连到电源上,一上电就立即有效。这两个设备状态信号有效,只表示设备本身可用,并不说明通信链路可以开始进行通信了,能否开始进行通信要由下面的控制信号决定。

请求发送(Request to send-RTS)——用来表示DTE请求DCE发送数据,即当终端要发送数据时,使该信号有效(ON状态),向MODEM请求发送。它用来控制MODEM是否要进入发送状态。

允许发送(Clear to send-CTS)——用来表示DCE准备好接收DTE发来的数据,是对请求发送信号RTS的响应信号。当MODEM已准备好接收终端传来的数据,并向前发送时,使该信号有效,通知终端开始沿发送数据线TxD发送数据。

这对RTS/CTS请求应答联络信号是用于半双工MODEM系统中发送方式和接收方式之间的切换。在全双工系统中作发送方式和接收方式之间的切换。在全双工系统中,因配置双向通道,故不需要RTS/CTS联络信号,使其变高。

接收线信号检出(Received Line detection-RLSD)——用来表示DCE已接通通信链路,告知DTE准备接收数据。当本地的MODEM收到由通信链路另一端(远地)的MODEM送来的载波信号时,使RLSD信号有效,通知终端准备接收,并且由MODEM将接收下来的载波信号解调成数字两数据后,沿接收数据线RxD送到终端。此线也叫做数据载波检出(Data Carrier Detection-DCD)线。

振铃指示(Ringing-RI)——当MODEM收到交换台送来的振铃呼叫信号时,使该信号有效(ON状态),通知终端,已被呼叫。

(2)数据发送与接收线:

发送数据(Transmitted data-TxD)——通过TxD终端将串行数据发送到MODEM,(DTE→DCE)。

接收数据(Received data-RxD)——通过RxD线终端接收从MODEM发来的串行数据,(DCE→DTE)。

(3)地线

有两根线SG、PG——信号地和保护地信号线,无方向。

上述控制信号线何时有效,何时无效的顺序表示了接口信号的传送过程。例如,只有当DSR和DTR都处于有效(ON)状态时,才能在DTE和DCE之间进行传送操作。若DTE要发送数据,则预先将DTR线置成有效(ON)状态,等CTS线上收到有效(ON)状态的回答后,才能在TxD线上发送串行数据。这种顺序的规定对半双工的通信线路特别有用,因为半双工的通信才能确定DCE已由接收方向改为发送方向,这时线路才能开始发送。

232引脚 CCITT Modem 名称 说明 用途

异步 同步

1 101 AA 保护地 设备外壳接地 PE PE√

2 10

3 BA 发送数据 数据送Modem T X D

3 10

4 BB 接收数据 从Modem接收数据 R X D

4 10

5 CA 请求发送 在半双工时控制发送器的开和关 RTS

5 10

6 CB 允许发送 Modem允许发送 CTS

6 10

7 CC 数据终端准备好 Modem准备好 DSR

7 102 AB 信号地 信号公共地 SG SG√

8 109 CF 载波信号检测 Modem正在接收另一端送来的信号 DCD

9 空

10 空

11 空

12 接收信号检测(2)在第二通道检测到信号 √

13 允许发送(2) 第二通道允许发送 √

14 118 发送数据(2) 第二通道发送数据 √

15 113 DA 发送器定时 为Modem提供发送器定时信号 √

16 119 接收数据(2) 第二通道接收数据 √

17 115 DD 接收器定时 为接口和终端提供定时 √

18 空

19 请求发送(2) 连接第二通道的发送器 √

20 108 CD 数据终端准备好 数据终端准备好 DTR

21 空

22 125 振铃 振铃指示 RI

23 111 CH 数据率选择 选择两个同步数据率 √

24 114 DB 发送器定时 为接口和终端提供定时 √

25 空

3.3 机械特性

连接器:由于RS-232C并未定义连接器的物理特性,因此,出现了DB-25、DB-15和DB-9各种类型的连接器,其引脚的定义也各不相同。下面分别介绍两种连接器。

(1)DB-25: PC和XT机采用DB-25型连接器。DB-25连接器定义了25根信号线,分为4组:

①异步通信的9个电压信号(含信号地SG)2,3,4,5,6,7,8,20,22

②20mA电流环信号 9个(12,13,14,15,16,17,19,23,24)

③空6个(9,10,11,18,21,25)

④保护地(PE)1个,作为设备接地端(1脚)

DB-25型连接器的外形及信号线分配如图3.3所示。注意,20mA电流环信号仅IBM PC 和IBM PC/XT机提供,至AT机及以后,已不支持。

图3.2 连接器外形和引脚配置

(2)DB-9连接器

在AT机及以后,不支持20mA电流环接口,使用DB-9连接器,作为提供多功能I/O卡或主板上COM1和COM2两个串行接口的连接器。它只提供异步通信的9个信号。DB-25型连接器的引脚分配与DB-25型引脚信号完全不同。因此,若与配接DB-25型连接器的DCE设备连接,必须使用专门的电缆线。

电缆长度:在通信速率低于20kb/s时,RS-232C所直接连接的最大物理距离为15m(50英尺)。

最大直接传输距离说明:RS-232C标准规定,若不使用MODEM,在码元畸变小于4%的情况下,DTE和DCE之间最大传输距离为15m(50英尺)。可见这个最大的距离是在码元畸变小于4%的前提下给出的。为了保证码元畸变小于4%的要求,接口标准在电气特性中规定,驱动器的负载电容应小于2500pF。

第四节电源

第五节RS232接口协议

串行接口的主要功能是接受来自CPU的数据,并转换为串行数据格式发送出去。或者将接收到的串行数据,送交CPU。图2.1示出了串行接口的结构框图。与系统连接的数据总线不但用于传送并行数据,而且接收系统的控制字和向系统发送串行接口的状态。系统送往串行接口的控制字包括发送和接收串行数据的波特率、二进制位串数据格式等。系统读取的状态字包括发送空、接收完成及错误等状态,以便控制发送和接收过程。

发送数据时,CPU将发送数据送入发送缓冲寄存器。由控制寄存器按照CPU设定的格式将并行数据转换为串行数据,加上起始位、奇偶校验位和停止位。转换后并被格式化的二进制位串被送入移位寄存器中,按照选定的波特率发送输出。

接收数据的过程与此相反。控制器按照设定的波特率接收串行位串数据并进行奇偶校验,去掉串行格式中的附加信息,将其转换成并行数据,送入接收缓冲寄存器。无论发送和接收,线路的状态寄存器始终保持着接口的各种状态。通过查询状态寄存器,就可以了解和控制发送和接收过程。

此外,串行接口还包括一个有效的中断系统,无论发送与接收,以及出现的传输错误,都可以引发系统的硬件中断。

5.1 数据传送格式

串行数据通信是把并行数据转换为串行数据按顺序依次发送。接受端再将接受到的串行数据转换成并行数据。串行数据可按两种方式进行,即同步方式和异步方式。同步方式适用于大批量数据通信,每次传送一组数据,在每组数据前加上一定的编制信号,使得双方保持同步。异步数据通信每次发送一个字符,在每个字符的二进制位串前加上启动位作为接收端的同步信号,这样每发送一个字符,双方进行一次同步。

串行异步数据传输有着严格的数据格式和时序关系。在空闲状态,线路呈现出高电平或者“1”状态。传输时,首先发送起始位,接收端接收到起始位,即开始接收过程。在后边的整个二进制位串传输过程中,都是以起始位作为同步时序的基准信号。起始位以“0”表示。紧跟其后的是数据位,根据采用的编码,数据位可能为5位到8位之间。奇偶位可以有也可以没有。处在最后的是停止位,停止位以“1”表示,位数可能是1位、1/2位或者2位。

传送格式中的起始位和停止位在数据传输过程中起着十分重要的作用。通信中有两点影响着数据的正确接收。一是数据发送是随机的,接收端必须随时准备接收数据。另一方面,接收端和发送端不是使用同一个时钟,在通信线路的两端各自具有时钟信号源,虽然可以设定双方的时钟频率一样,但脉冲边沿也不可能一致。脉冲周期、脉冲宽度总有误差。开始发送时,接收端必须准确地检测到起始位的下降沿,使其内部时钟和发送端保持同步。在对每个二进制位接收采样时,采样点应可能接近数据位中点。为了能及时发现起始位的下降边沿,大多数接收器使用高于发送数据波特率十六倍的频率时钟信号进行采样。这样,接收器能够在一个二进制位周期的1/16时间内检测到起始位的下降边。对数据位周期中心采样的偏差也不会超过位周期时间的1/16。

图5.1 串行异步传输格式

5.2 流控制

如果DTE到DCE的速度是DCE到DCE速度几倍的话,PC就可以用115.200Kbps的速度给MODEM发送数据了。而数据由于缓冲区的溢出早晚会丢失。因此,我们要采用流控制。流控制有两种:硬件流控制和软件流控制。

软件流控制,有时表示位XON/XOFF,使用两个字符XON和XOFF。XON常常用ASCII 码17表示,而XOFF常用ASCII码19表示。MODEM只有很小的缓冲区所以当计算机将他填满时MODEM发出一个XOFF字符告诉计算机结束发送数据。一旦MODEM有空间供更多的数据使用,它就发XON字符,计算机就可以发送更多的数据。这种类型的流控制有这样的优点:它不需要额外的信号线,就像字符通过TD/RD线传送那样。但是,在慢速的连接中,每个字节需要10位,这样会减慢通信的速度。

硬件流控制,也叫做RTS/CTS流控制。它用我们串口电缆中的两根线而不是在数据线中传输的额外的字符来实现。硬件流控制不会像XON/XOFF那样减慢传输速度。当计算机

希望发送数据时,激活请求输出线。如果MODEM有所需要的空间,MODEM会通过激活允许发送线来回复,然后计算机会开始发送数据。如果MODEM没有空间,就不会激活允许发送线。

5.3 差错检测

协议定义了完善的差错检测机制,包括通过奇偶检验判定数据的正确性,帧检验判定数据的完整性。我们可以在发送的数据中在一个字的最后一位和停止位之间加入校验位,进行数据完整性的检测。

奇偶检验可以用五种不同的校验位。Mark parity bit总是被置于逻辑1;space parity bit 总是被置于逻辑0;偶校验位通过计算字中的位数,如果结果是偶数,就置为1;奇校验位则在结果是奇数时置为1。后面的两种方法提供了一种检测位电平传输错误的方法。要注意的是并不一定要使用校验位,这样就可以在每一个帧内去掉一位,常称为无校验位帧。

帧检验将由硬件自动实现,当设定了相应的帧长度之后,如果系统检测到实际帧宽度与之不符,将会给出错误标志。

5.4 差错控制

RS-232通过设置接口寄存器的相应的值,接口设备会对不同的差错产生相应的中断信号。系统可以通过相应的中断服务程序进行差错检测,但协议并没有规定相应的差错控制方法,如果要实现该功能,需要用户在客户端自己添加。

第六节系统配置

6.1 端口地址和中断

Name Address IRQ

COM 1 3F8 4

COM 2 2F8 3

COM 3 3E8 4

COM 4 2E8 3

表6.1 标准端口地址

上表是一般PC机均适用的标准端口地址。如果你的机器恰好是带有微通道总线的IBM P/S2,那么它的地址和中断是另外一种分配。和LPT端口一样,COM口的基址可以从BIOS的数据区读取。

Start Address Function

0000:0400 COM1's Base Address

0000:0402 COM2's Base Address

0000:0404 COM3's Base Address

0000:0406 COM4's Base Address

表6.2 BIOS数据区的COM口地址

上表所示的是BIOS数据区的COM口地址,每个地址占2字节空间。下面这个用C编写的范例程序,告诉我们如何从这些位置获得COM口的地址。

6.2 串行端口寄存器

寄存器列表

Base Address DLAB Read/Write Abr. Register Name

+ 0 =0 Write - Transmitter Holding Buffer =0 Read - Receiver Buffer

=1 Read/Write- Divisor Latch Low Byte

+ 1 =0 Read/Write IER Interrupt Enable Register =1 Read/Write- Divisor Latch High Byte

+ 2 - Read IIR Interrupt Identification Register - Write FCR FIFO Control Register

+ 3 - Read/Write LCR Line Control Register

+ 4 - Read/Write MCR Modem Control Register

+ 5 - Read LSR Line Status Register

+ 6 - Read MSR Modem Status Register

+ 7 - Read/Write- Scratch Register

表6.3 寄存器列表

(1)中断允许寄存器(IER)

中断允许寄存器可能是UART所有寄存器中最易理解的。将BIT 0设置为高,则允许接收数据中断,当CPU读取接收寄存器或FIFO中包含的数据,就会产生一个中断。

BIT 1是发送存储寄存器为空中断允许位,该中断用来提示CPU发送缓冲区为空。BIT 2是接收线路状态寄存器中断允许位,当该寄存器状态变化时,UART产生一个中断。同样的,BIT 3是Modem状态中断允许位,BIT 4到BIT 7最为简单,因为它们是保留位。

(2)中断识别寄存器(IIR)

中断识别寄存器是只读寄存器,BIT6和BIT7指示FIFO缓冲区的状态。当两位均为0时,没有FIFO缓冲区被激活。对于8250或16450,只有这个状态。如果BIT7为1,而BIT 6为0,代表UART的缓冲区有效但是不能使用。当16550 UART的FIFO缓冲区出现故障,就会使得FIFO不能使用。如果两位均为1,则代表FIFO有效而且完全可用。

BIT4和BIT5是保留位。在16550或更高版本中,BIT3代表超时状态中断。

而BIT0代表是否有中断发生。如果有中断发生,由BIT1和BIT2来显示它的状态。这些中断按照优先级状态工作。线路状态中断具有最高优先级,然后从高往低依次是数据中断、发送寄存器为空中断、Modem状态中断。

(3)FIFO控制寄存器(FCR)

FIFO寄存器是只写寄存器,用来控制16550或更高版本上的FIFO(先进先出)缓冲区。 BIT0是FIFO接收和发送操作允许位,将该位置为0则使得FIFO的所有发送和接收操作无效,因此将失去保存在这些FIFO缓冲区里的所有数据。

BIT1和BIT2控制FIFO发送和接收的清除。BIT1负责接收缓冲区,而BIT2负责发送缓冲区。将这两位置1只会清除FIFO中的内容,而不会影响移位寄存器。这两位是自动清除的,因此结束时不需要用户自己置0。

BIT3是DMA模式选择位,适用于16550或更高的版本。在此之后的BIT4和BIT5都是简单的保留位。

BIT6和BIT7都用来设置接收FIFO的触发级。例如,BIT7设置为1而BIT6设置为0,那么触发级则为8字节。当接收FIFO中有8字节的数据,就会产生接收数据中断。参看IIR。(4)线路控制寄存器(LCR)

线路控制寄存器设置通信的基本参数。BIT7是波特率因子访问锁存位(简称为DLAB),在“什么是DLAB”中我们已经讨论过这个概念。BIT6是j间断允许位,该位有效时TD线路进入间隔(Spacing)状态,使接收UART产生中断。将该位设为0将不允许中断。

BIT3、BIT4、BIT5是奇偶校验选择位。对这三位仔细研究,你会发现BIT3控制了奇偶校验。也就是说,如果它置0,则不使用奇偶校验;置1则使用奇偶校验。而BIT5可被视作是固定奇偶检验(STICKY PARITY)的控制位。固定奇偶校验其实就是传送和检验的奇偶校验位总是固定的0或1。这种方法用来查错是不太有效的,比如前4位出错,而固定奇偶校验位上仍然是正确的预置值,这样就不会产生奇偶校验错误。高位固定奇偶校验(STICKY HIGH PARITY)就是奇偶校验位固定为1;而低位固定奇偶校验(STICKY LOW PARITY)则用0来作为奇偶校验位的值。

如果BIT5控制固定奇偶校验(STICKY PARITY),那么当该位置0,而BIT3仍为1时,将产生普通的奇偶校验。奇校验指奇偶校验位为1或0,来保证传送的字节中1的总个数为奇数。偶校验中的奇偶校验位则保证1的个数为偶数。这是较好的查错方法,但也不是完美的,因此软件纠错中常常使用CRC-32方法。在这种奇偶校验中,当只有一位发生0、1变化,那么就会产生奇偶校验错误;但如果有两位都0、1跳变了,那么奇偶校验是正确的,也不会产生奇偶校验错误了。

BIT2设置停止位的长度。将该位置0,则产生一位停止位,而将其置1则根据字长可分别产生1.5或2位停止位。注意,接收设备只检查第一位停止位。

BIT0和BIT1设置字长,这是很直接的,现在的字长一般是8bit。

(5)Modem控制寄存器(MCR)

Modem控制寄存器是读写寄存器。BIT5、BIT6、BIT7是保留位,BIT4激活回送模式。在回送模式下,发送端串行输出进入标记状态,接收端串行输入被断开。发送端输出回送到接收端输入。DSR, CTS, RI 和DCD均断开,DTR, RTS, OUT1和OUT2连接到Modem控制输入上,此时Modem控制输出管脚无效。在该模式下,发送寄存器中的发送的所有数据都被同一块芯片上的接收电路接收,存于接收寄存器中。这可用来测试UART的工作情况。

辅助设备输出2可连接可控制UART-CPU中断进程的外部电路。辅助设备输出1一般是断开的,但有些卡中会用作1.8432MHZ和4MHZ(MIDI)的切换。BIT0和BIT1来控制相应的数据线,例如将BIT1置1就可激活发送线路。

(6)线路状态寄存器(LSR)

线路状态寄存器是只读寄存器。BIT7是接收FIFO出错位。当FIFO中的字节有一次或以上的间断、奇偶校验错误或帧错误发生,该位就为高。

当BIT6置高,发送存储寄存器和移位寄存器都为空。UART的存储寄存器保存将要发送

的并行数据的下一字节。移位寄存器用于将该字节转换为串行数据,这样可以在一根线路上传送数据。当BIT5置高,只有发送存储寄存器为空。这两者之间有什么区别呢?BIT6为高,发送存储寄存器和移位寄存器都为空,没有任何串行转换,因此发送数据线上没有任何动作。而BIT5为高只是发送存储寄存器为空,另个字节可以被数据端口上,就可能发生使用移位寄存器的串行转换。

当接收数据线的逻辑0(空)状态维持时间超过发送一个完整字所需时间,就会产生间断中断(BIT4)。这包括开始位、数据位和停止位的时间。

当最后一位不是停止位,就会发生帧中断错误(BIT3),超时错误可能会导致这个问题。使用无效的Modem连接两台机器或协议分析器,当数据发送的速率和你UART设置的接收输率不匹配时,通常会产生帧错误。

当你的程序不能足够快的从端口读取数据,往往会发生超时运行错误。如果寄存器中进来的字节没有及时的被读走,此时如果恰好又接收到另一字节,那么最后的字节将被丢失,从而导致运行超时错误。

BIT0代表数据是否就绪,也就是说,一个字节已被UART接收,并存放在接收缓冲区内等待被读取。

(7)MODEM状态寄存器(MSR)

Modem状态寄存器的BIT0清除发送变量(delta,指增量),也就是说寄存器最后一次读操作以后,清除发送线有所变化。BIT1和BIT3类似于BIT0。BIT1表示数据设置就绪线路上的状态变化,BIT3代表数据载波检测线路的状态变化。BIT2代表环指示器追踪沿,当环指示器从低到高跳变时置位。

BIT4到BIT7指示读取数据时数据线的当前状态。BIT7代表载波检测,BIT6代表环指示器,BIT5代表数据设置就绪,BIT4指示清除发送线路状态。

(8)擦除寄存器(Scratch Register)

擦除寄存器不是用于通信的,而是留出一字节的数据空间。它实际是用来判断UART是8250/8250B还是8250A/16450,这种功能现在已很少用到,因为AT从来就没有8250/8250B 的设计,因为它不能应付总线速度。

6.3 DLAB

你可能注意到在上面的寄存器列表里有DLAB一栏,当DLAB设置为1或0时,一些寄存器会有所变化。这就是为什么UART能在8个端口地址上带有12个寄存器(包括Scratch Register)的原因。DLAB是Divisor Latch Access Bit(波特率因子访问锁存位)的缩写。当线路控制寄存器将DLAB设置为1,就有两个可设置通信速度(以比特率计算)寄存器可供使用。

UART将会带有一个震荡频率在1.8432 MHZ左右的晶体。现在的UART只有一个16分频计数器,将进入的时钟信号简单的16分频。如果有1.8432 MHZ的时钟信号,我们就可以得到115.2KHZ的信号,这样UART就可以达到115.2Kbps的传送和接收速率。这对于一些快速Modem和可传递这种速度的设备而言是很有利的,但却这会使得其他设备不能够进行通信。因此UART配备了可编程的波特率发生器,由两个寄存器对其控制。

举个例子来说,我们只想要2400bps的通信速率,必须将115.2K进行48分频来得到一个适用的2400HZ的时钟。在这里分频因子48保存在由DLAB控制的两个寄存器中。这个因子可以是0-65535中的任何数字(可16位存储即可)。UART数据总线只有8位,所以要用两个寄存器,当DLAB = 1时,第一个寄存器(基址 + 0)保存波特率因子的低字节,而另一个寄存器(基址+ 1)波特率因子的高字节。

以下是一些更常见的通信速率及其波特率因子(包括高低字节)。注意所有的波特率因子都是以16进制表示的。

Speed (BPS) Divisor (Dec) Divisor Latch High Byte Divisor Latch Low Byte

50 2304 09h 00h

300 384 01h 80h

600 192 00h C0h

2400 48 00h 30h

4800 24 00h 18h

9600 12 00h 0Ch

19200 6 00h 06h

38400 3 00h 03h

57600 2 00h 02h

115200 1 00h 01h

表6.4: 常用波特率因子表

第七节数据流模型

第八节RS232串口接口设备

通用异步接收器/发送器(UART)是一种支持RS-232C标准的可编程串行接口芯片。较低档次的PC机采用INS 8250芯片,AT机采用与8250兼容的NS 16450芯片。PC386机、486机往往使用定制的包括并行接口等其它功能的专用芯片,但其基本功能相同。图4.1是16550C的芯片外观及管脚排列,通过其特性可以了解异步串行接口的功能和应用。

16550C 实现的是对从外围器件或者modem接受来的数据进行串并转换和对从CPU接受来得数据进行并串转换。CPU可以随时读取芯片的状态,包括完整的modem控制能力和一个处理器中断系统可用于减少通信连接中对系统管理的占用。

16550C包含一个可编程的波特率发生器。他可以对输入的参考时钟加以一个分量,给内部的发送逻辑电路提供一个16倍的发送时钟。这个16倍时钟也可以用于接受端逻辑。16550C可以用在一种替换模式下(FIFO模式)。通过对接受和发送的字符进行缓存,可以减轻CPU的过度的软件开销。发送和接收的FIFO可以存储16个字节,接收端的FIFO对每个字节可以另外包含三个错误状态位。在FIFO模式下,可以选择自动流控制的机制,它可以减轻软件的负担,并且通过RTS输出和CTS输入信号自动控制数据流提高系统的效率。下图是典型的UART结构框图。

图8.1 UART结构框图

RS232串口通信详解

计 协议 --------------------------------- 9 来 缩写 1调 调 CD载 检测 2调 调 RXD 数 3PC TXD 数 4PC DTR数 终 5GND 6调 调 DSR 讯 7PC RTS请 8调 调 CTS 许 9调 调 RI 连 时 数 针 数 针 连 对应 --------------------------------- 1 RS-23 2 远 50 2 RS232 传 讯 传 20kbps 3 RS-232C 传 数 负逻辑 对称 逻辑1 -3 -15V 逻辑0 +3 +15V 单 连 时 转换

--------------------------------- 数 a RS-232-C标 规 数 传 为 50 75 100 150 300 600 1200 2400 4800 9600 19200 b 数 标 5 7 8 传 标 ASCII码 0 127 7 扩 ASCII码 0 255 8 c 单 为1 1.5 2 数 传 线 时 时 现 仅仅 传 结 计 时 d 验 简单 检错 对 验 验 数 传 数 逻辑 数 011 对 验 验 为0 证逻辑 数 数 验 验 1 这 3 逻辑 --------------------------------- 传 线 闲时 线 TTL RS232 数 开 RS232线 为 结 时Rs232为 数 传 读数时 数 对 16进 数 55aaH 当 8 数 1 传 时 线 图1(TTL ) 图 2(RS-232 ) 55H=01010101B 10101010B 1 0 55H 数 为1010101010B aaH=10101010B 01010101B 1 0 55H 数 为1101010100B

几种通信总线详尽总结

微处理器中常用的集成串行总线是通用异步 接收器传输总线(UART)、串行通信接口(SCI) 和通用串行总线(USB)等,这些总线在速度、 物理接口要求和通信方法学上都有所不同。本文详细介绍了嵌入式系统设计的串行总线、驱动器和物理接口的特性,并为总线最优选择提供性能比较和选择建议。 由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统(如仿真器)或网络中的其它设备进行通信。目前流行的通信一般采用串行或并行模式,而串行模式应用更广泛。 微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口、同步外设接口(SPI)、内部集成电路(I2C) 和通用串行总线,以及车用串行总线,包括控制器区域网(CAN)和本地互连网(LIN)。这些总线在速度、物理接口要求和通信方法学上都有所不同。本文将对嵌入式系统设计的串行总线、驱动器和物理接口这些要求提供一个总体介绍,为选择最优总线提供指导并给出一个比较图表(表1)。为了说明方便起见,本文的阐述是基于微处理器的设计。 串行与并行相比 串行相比于并行的主要优点是要求的线数较少。例如,用在汽车工业中的LIN 串行总线只需要一根线来与从属器件进行通信,Dallas公司的1-Wire总线只使用一根线来输送信号和电源。较少的线意味着所需要的控制器引脚较少。集成在一个微控制器中的并行总线一般需要8条或更多的线,线数的多少取决于设计中地址和数据的宽度,所以集成一个并行总线的芯片至少需要8个引脚来与外部器件接口,这增加了芯片的总体尺寸。相反地,使用串行总线可以将同样的芯片集成在一个较小的封装中。 另外,在PCB板设计中并行总线需要更多的线来与其它外设接口,使PCB板面积更大、更复杂,从而增加了硬件成本。此外,工程师还可以很容易地将一个新器件加到一个串行网络中去,而且不会影响网络中的其它器件。例如,可以很容易地去掉总线上旧器件并用新的来替代。

串行接口简介

串行接口简介 串行接口(Serial port)简称串口,是计算机在与外围设备或者其他计算机连接进行数据传送时的一种常用接口方式。 串口通信的特点在于数据和控制信息室一位接一位地传送出去的,若出错则重新发送该位数据,由于每次只发送一位数据,其传输速度较慢,但因为干扰少,所以更适用于长距离传送。 串口已成为大多数计算机的标准配置之一,在许多普通计算机的接口中都能找到。用户只需增加一根连接线即可进行串口通信,不需要增添其他额外设备,所以在工业控制盒通信中得到了广泛的应用,但是一个串口只能与一个设备进行连接和通信,对于某些应用需求这是一个限制。 协议: 串口有多种通信标准和接口形式,如RS-232、RS-422、RS485等,各种形式接口的管脚数量和定义也不尽相同。其中最常用的修订版本是RS-232C。RS-232C标准(协议)的全称是EIA-RS-232C标准,定义是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。RS-232C是一个已制定很久的标准(RS表示推荐标准;232表示标识符;C表示修改次数),它描述了计算机及相关设备间较低速率的串行数据通信的物理接口及协议。 硬件: EIA RS-232C标准串口常用于连接计算机、打印机和调制解调器等设备。在许多PC机的主板接口上都能找到他们的身影,这是一种D形接口,分别为25针和9针两种形式,如下图所示。 9针串口的9条连接线中包括2条数据线(TD和RD)、5条握手线(RTS、CTS、DSR、CD)、1条信号地线(SG)和1条振铃指示线(RI),这些引线足以包含大多数RS-232接口中使用的核心引线。25针串口是标准的RS-232接口,其引线除了包括RS-232的核心引线集外,还可覆盖标准中规定的所有信号。

实验四:串行接口输入输出实验

实验四串行接口输入输出实验 一、实验目的 1、学习TEC-2000教学计算机I/O接口扩展的方法; 2、学习串行通信的基本知识,掌握串行通信接口的设置和使用方法。 二、实验说明 1、TEC-2000教学机配置了两个串行接口COM1和COM2,其中COM1口是系统默认的串行接口,上电复位后,监控程序对其进行初始化,并通过COM1与PC机终端相连,监控程序负责对COM1进行管理。COM2口预留给实验者扩展使用,监控程序不对COM2进行任何处理,实验者需要对COM2进行初始化、使用和管理。 2、实验前查阅有关资料,了解可编程串行通信接口芯片8251的工作原理,了解8251复位、初始化、数据传输过程控制等方面的知识。注意,①每次对8251复位后(即按了“RESET”键),都需要对其进行初始化,然后再进行正常的数据传输;②每次复位后,只能对8251进行1次初始化,多次初始化将导致串口工作不正常。 3、在使用COM2口时,需要将两片8251芯片之间的跳线短接(缺省状态),以便为COM2正常工作提供所需的控制信号和数据;此外,还需要为其分配端口地址。教学机已将COM2口的C/(/D)与地址总线的最低位A0相连,但片选信号/CS未连,只引出1个插孔,实验时,应将该插孔与标有“I/O /CS”的7个插孔中的1个相连。 三、实验内容 1、为扩展I/O口选择一个地址,即将8251的/CS与标有I/O /CS的一排插孔中的一个相连。 2、将COM2口与终端或另一台运行有PCEC16的PC机的串口相连。 3、用监控程序的A命令,编写一段小程序,先初始化COM2口,再向COM2口发送一些字符,也可从COM2口接收一些字符,或实现两个串口的通信。 四、实验要求 应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中。 五、实验步骤 1、为扩展I/O接口选择一个地址,将8251的/CS与标有I/O /CS的插孔中地址为90~9F的插孔相连; 2、将教学机COM1口与微机PC1相连,在PC1上运行PCEC16.EXE,进入联机状态后保持PCEC的运行状态; 3、断开教学机COM1与PC1的串口线,将其连接到另一台微机PC2的串口上,在PC2上运行PCEC16.EXE联机; 4、用另一条串口线将PC1与教学机的COM2接口相连。 5、与COM1相连的PC2作为主PC,在主PC2上输入程序,和COM2连接的从PC1只作数据输入输出; 6、在主PC上用A、E命令编程对实验机的COM2口进行操作。 1)程序1:初始化COM2口 主PCEC在命令行提示符状态下输入: A 2000 从2000H单元开始输入下面的程序: 2000:MVRD R0,004E ;给R0赋值004E(8251模式寄存器参数) 2002:OUT 91 ;将R0的值输出到COM2口中8251的模式寄存器(地址为0091H) 2003:MVRD R0,0037 ;给R0赋值0037(8251控制寄存器参数) 2005:OUT 91 ;将R0的值输出到COM2口中8251的控制寄存器(地址同为0091H) 2006:RET 在命令行提示符状态下输入G 2000运行初始化程序,完成对COM2口的初始化。注意:每次按“RESET”按键后,在对COM2进行读写操作之前,都应运行该程序。注意,按一次“RESET”按键后,只能对COM2口进行一次初始化操作。 2)程序2:从与COM2口相连的PC输入字符串,在与COM1口相连的PC上显示该字符串。 主PCEC在命令行提示符状态下输入:

RS232串口通信

RS232串口通信小结 在Microsoft Windows下开发串口通信程序通常有如下几种方法: 利用wIndowsAPI 通信函数。 利用Windows 的读写端口函处_inp,-inpw,_inpd,_outp,_outpw,_outpd(Windows 95系列下)或开发驱动程序(Windows NT系列下)直接对串口进行操作。 利用第三方提供或自己编写的通信类. 使用串口通信组件,如ActiveX控件MSComm。 以下几种方法中第一种(即API函数法)使用面较广,但由于比较复杂,使用较困难。第二种需要了解硬件电路结构原理,深入驱动层次,专业化程度较高。第三种方法使用面向对象技术封装W1n32API函数,提供一个用于串行通信的类,只要理解这种类的几个成员函数,就能方使地使用,但编写能普通应用的这种类相当困难。第四种方法较简单,只需要对串口进行简单配置,唯一比较困难的地方在于令人费解的V ARIANT类。 以下只简单介绍第一种(利用Windows API函数)和第四种(使用串口通信组件)方法API函数法(即第一种方法)可以说是在Windows环境下编写串口通信程序的基本方法,下面介绍的大部分内容对于其他3种方法都能适用。 第一种:API函数法 1.API函数法 与以往DOS下串口通信程序不同的是,Windows不提倡应用程序直接控制硬件,而是通过Windows操作系统提供的设备驱动程序来进行数据传递。串行口在WED32中是作为文件来进行处理的,而不是直接对端口进行操作,对于串行通信,Win32提供了相应的文件I/O函数与通信函数,通过了解这些函数的使用,可以编制出符合不同需要的通信程序。 API是附带在Windows内部的一个极其重要的组成部分。Windows的32位API主要是一系列很复杂的函数和消息集合,它可以看作是Windows系统为在其下运行的各种开发系统提供的开放式通用功能增强接口。与串口通信有关的Windows API函数大概有20多个,如下所示: BuildCommDCB BuildCommDCBAndTimeouts ClearCommBreak ClearCommError CommConfigDialog EscapeCommFunction GetCommConfig GetCommMask GetCommModemStatus GetCommProperties GetCommState GetCommTimeouts GetDefaultCommConfig PurgeComm SetCommBreak SetCommConfig SetCommMask SetCommState

SPI、I2C、UART三种串行总线的区别

SPI、I2C、UART三种串行总线的区别 第一个区别当然是名字: SPI(Serial Peripheral Interface:串行外设接口); I2C(INTER IC BUS:意为IC之间总线) UART(Universal Asynchronous Receiver Transmitter:通用异步收发器) 第二,区别在电气信号线上: SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。提供SPI串行时钟的SPI 设备为SPI主机或主设备(Master),其他设备为SPI从机或从设备(Slave)。主从设备间可以实现全双工通信,当有多个从设备时,还可以增加一条从设备选择线。 如果用通用IO口模拟SPI总线,必须要有一个输出口(SDO),一个输入口(SDI),另一个口则视实现的设备类型而定,如果要实现主从设备,则需输入输出口,若只实现主设备,则需输出口即可,若只实现从设备,则只需输入口即可。 I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。 如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:I2C资料了解得比较少,这里的描述可能很不完备) UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。 显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。 第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行; 第四,看看牛人们的意见吧! wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支持,而且I2C使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI 则无所谓,因为它是有时钟的协议。 quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

RS232串口通讯详解

串口通讯—RS-232-C详解 蓝鸟发表于 2005-9-22 16:19:34 串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。 在讨论RS-232C接口标准的内容之前,先说明两点: 首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。 其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。 一、RS-232-C RS-232C标准(协议)的全称是EIA-RS-232C标准,其中EIA(Electronic Industry Association)代表美国电子工业协会,RS(ecommeded standard)代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969),在这之前,有RS232B、RS232A。。它规定连接电缆和机械、电气特性、信号功能及传送过程。常用物理标准还有有EIA�RS-232-C、EIA�RS-422-A、 EIA�RS-423A、EIA�RS-485。这里只介绍EIA�RS-232-C(简称232,RS232)。例如,目前在IBM PC机上的COM1、COM2接口,就是RS-232C接口。 1.电气特性 EIA-RS-232C对电器特性、逻辑电平和各种信号线功能都作了规定。 在TxD和RxD上:逻辑1(MARK)=-3V~-15V 逻辑0(SPACE)=+3~+15V 在RTS、CTS、DSR、DTR和DCD等控制线上: 信号有效(接通,ON状态,正电压)=+3V~+15V 信号无效(断开,OFF状态,负电压)=-3V~-15V

RS232接口是标准串行接口

RS232接口是标准串行接口,其通讯距离小于15 m,传输速率小于20 kb/s。RS232标准是按负逻辑定义的,他的“1”电平在-5~-15 V之间,“0”电平在+5~+15 V之间。虽然RS232应用很广,但由于数据传输速率慢,通讯距离短,特别是在100 m以上的远程通讯中难以让人满意,因此通常采用RS422,RS449,RS423及RS485等接口标准来实现远程通讯。RS485標準的通信最長距離是1200米(4000英呎),或是最多並聯32個通信單元, RS-232、RS-422与RS-485标准及应用 一、RS-232、RS-422与RS-485的由来 RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制 订并发布的,RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品 之间的兼容。RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232 通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s, 传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接 收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标 准。为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向 通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保 护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。由于EIA提出的建议标准都是 以“RS”作为前缀,所以在通讯工业领域,仍然习惯将上述标准以RS作前缀称谓。 RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或 协议,在此基础上用户可以建立自己的高层通信协议。因此在视频界的应用,许多厂家都建 立了一套高层通信协议,或公开或厂家独家使用。如录像机厂家中的Sony与松下对录像机的 RS-422控制协议是有差异的,视频服务器上的控制协议则更多了,如Louth、Odetis协议是公 开的,而ProLINK则是基于Profile上的。 二、RS-232串行接口标准 目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低 速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯 图1 收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2 脚相对7脚(信号地)的电平,DB25各引脚定义参见图1。典型的RS-232信号在正负电平之间 摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。当无 数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回 TTL电平。接收器典型的工作电平在+3~+12V与-3~-12V。由于发送电平与接收电平的差仅为 2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15 米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱 动器负载为3~7kù。所以RS-232适合本地设备之间的通信。其有关电气参数参见表1。 规定RS232 RS422 R485 工作方式单端差分差分 节点数1收、1发1发10收1发32收 最大传输电缆长度50英尺400英尺400英尺 最大传输速率20Kb/S 10Mb/s 10Mb/s 最大驱动输出电压+/-25V -0.25V~+6V -7V~+12V 驱动器输出信号电平 负载+/-5V~+/-15V +/-2.0V +/-1.5V 表1

SPI、I2C、UART三种串行总线的原理、区别及应用

简单描述: SPI 和I2C这两种通信方式都是短距离的,芯片和芯片之间或者其他元器件如传感器和芯片之间的通信。SPI和IIC是板上通信,IIC有时也会做板间通信,不过距离甚短,不过超过一米,例如一些触摸屏,手机液晶屏那些很薄膜排线很多用IIC,I2C能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C 是多主控总线,所以任何一个设备都能像主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存这两种线属于低速传输; 而UART是应用于两个设备之间的通信,如用单片机做好的设备和计算机的通信。这样的通信可以做长距离的。UART和,UART就是我们指的串口,速度比上面三者快,最高达100K左右,用与计算机与设备或者计算机和计算之间通信,但有效范围不会很长,约10米左右,UART优点是支持面广,程序设计结构很简单,随着USB的发展,UART也逐渐走向下坡; SmBus有点类似于USB设备跟计算机那样的短距离通信。 简单的狭义的说SPI和I2C是做在电路板上的。而UART和SMBUS是在机器外面连接两个机器的。 详细描述: 1、UART(TX,RX)就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比较严格,通信速度也不是很快。在多机通信上面用的最多。 2、SPI(CLK,I/O,O,CS)接口和上面UART相比,多了一条同步时钟线,上面UART 的缺点也就是它的优点了,对通信双方的时序要求不严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容量存储器等。 3、I2C(SCL,SDA)接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。一般单片机系统里主要用来和24C02等小容易存储器连接。 SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了

串行通信接口标准详解

几种串行通信接口标准详解 在数据通信、计算机网络以及分布式工业控制系统中,经常采用串行通信来交换数据和信息。1969年,美国电子工业协会(EIA)公布了RS-232C作为串行通信接口的电气标准,该标准定义了数据终端设备(DTE)和数据通信设备(DCE)间按位串行传输的接口信息,合理安排了接口的电气信号和机械要求,在世界范围内得到了广泛的应用。但它采用单端驱动非差分接收电路,因而存在着传输距离不太远(最大传输距离15m)和传送速率不太高(最大位速率为20Kb/s)的问题。远距离串行通信必须使用Modem,增加了成本。在分布式控制系统和工业局部网络中,传输距离常介于近距离(<20m=和远距离(>2km)之间的情况,这时RS-232C(25脚连接器)不能采用,用Modem又不经济,因而需要制定新的串行通信接口标准。 1977年EIA制定了RS-449。它除了保留与RS-232C兼容的特点外,还在提高传输速率,增加传输距离及改进电气特性等方面作了很大努力,并增加了10个控制信号。与RS-449同时推出的还有RS-422和RS-423,它们是RS-449的标准子集。另外,还有RS-485,它是RS-422的变形。RS-422、RS-423是全双工的,而RS-485是半双工的。 RS-422标准规定采用平衡驱动差分接收电路,提高了数据传输速率(最大位速率为10Mb/s),增加了传输距离(最大传输距离1200m)。 RS-423标准规定采用单端驱动差分接收电路,其电气性能与RS-232C几乎相同,并设计成可连接RS-232C和RS-422。它一端可与RS-422连接,另一端则可与RS-232C连接,提供了一种从旧技术到新技术过渡的手段。同时又提高位速率(最大为300Kb/s)和传输距离(最大为600m)。 因RS-485为半双工的,当用于多站互连时可节省信号线,便于高速、远距离传送。许多智能仪器设备均配有RS-485总线接口,将它们联网也十分方便。 串行通信由于接线少、成本低,在数据采集和控制系统中得到了广泛的应用,产品也多种多样 一.RS-232-C详解 串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。 在讨论RS-232C接口标准的内容之前,先说明两点: 首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C 标准与计算机不兼容的地方就不难理解了。 其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都

电脑串口介绍_DB9_DB25

串口叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。 RS-232-C:也称标准串口,是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。传统的RS-232-C接口标准有22根线,采用标准25芯D型插头座。后来的PC上使用简化了的9芯D型插座。现在应用中25芯插头座已很少采用。现在的电脑一般有两个串行口:COM1和COM2,你到计算机后面能看到9针D形接口就是了。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。 RS-422:为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到4000英尺(速率低于100kb/s时),并允许在一条平衡总线上连接最多10个接收器。RS-422是一种单机发送、多机接收的单向、平衡传输规范,被命名为TIA/EIA-422-A标准。 RS-485:为扩展应用范围,EIA又于1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,后命名为TIA/EIA-485-A标准。 Universal Serial Bus(通用串行总线)简称USB,是目前电脑上应用较广泛的接口规范,由Intel、Microsoft、Compaq、IBM、NEC、Northern Telcom等几家大厂商发起的新型外设接口标准。USB接口是电脑主板上的一种四针接口,其中中间两个针传输数据,两边两个针给外设供电。USB接口速度快、连接简单、不需要外接电源,传输速度12Mbps,

RS232串口通信详解

串口就是计算机上一种非常通用的设备通信协议。 --------------------------------- 串口的引脚定义: 9芯信号方向来自缩写描述 1调制解调器CD载波检测 2调制解调器RXD接收数据 3PC TXD发送数据 4PC DTR数据终端准备好 5GND信号地 6调制解调器DSR通讯设备准备好 7PC RTS请求发送 8调制解调器CTS允许发送 9调制解调器RI响铃指示器 两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。--------------------------------- 串口的电气特性: 1)RS-232串口通信最远距离就是50英尺 2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps 3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V 所以与单片机连接时常常需要加入电平转换芯片:

--------------------------------- 串口通信参数: a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、 4800、9600、19200波特。b)数据位:标准的值就是5、7与8位,如何设置取决于您想传送的信息。比如,标准的ASCII码就是0~127(7位);扩展的ASCII码就是0~255(8位)。 c)停止位:用于表示单个包的最后一位,典型的值为1,1、5与2位。由于数就是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅就是表示传输的结束,并且提供计算机校正时钟同步的机会。d)奇偶校验位:在串口通信中一种简单的检错方式。对于偶与奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据就是011,那么对于偶校验,校验位为 0,保证逻辑高的位数就是偶数个。如果就是奇校验,校验位位1,这样就有3个逻辑高位。 --------------------------------- 串口通信的传输格式: 串行通信中,线路空闲时,线路的TTL电平总就是高,经反向 RS232的电平总就是低。一个数据的开始RS232线路为高电平,结束时Rs232为低电平。数据总就是从低位向高位一位一位的传输。示波器读数时,左边就是数据的高位。 例如,对于16进制数据55aaH,当采用8位数据位、1位停止位传输时,它在信号线上的波形如图1(TTL电平)与图 2(RS-232电平)所示。 55H=01010101B,取反后10101010B,加入一个起始位1,一个停止位0,55H的数据格式为1010101010B; aaH=10101010B,取反后01010101B,加入一个起始位1,一个停止位0,55H的数据格式为1101010100B;

I2C串行接口介绍

I2C串行总线通信原理

采用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。 常用的串行扩展总线有:I2C (Inter IC BUS)总线、单总线(1-WIRE BUS)、SPI(Serial Peripheral Interface)总线等。本章仅讨论I2C串行总线。

一、IIC概述 IIC(Inter-Integrated Circuit)总线,许多文献写作I2C,主要用于同一电路板内各集成电路模块(IC)之间的连接。IIC采用双向2线制串行数据传输方式,简化IC之间的通信连接。IIC协议是PHILIPS公司于二十世纪八十年代初提出,其后,PHILIPS和其他厂商提供了种类丰富的IIC兼容芯片。目前,IIC总线标准已经成为世界性的工业标准。各大半导体公司推出了大量的带有IIC接口的芯片,如RAM、EEPROM、Flash ROM、A/D、D/A转换、 LED/LCD驱动、I/O接口、实时时钟等。

二、IIC总线特点 在硬件结构上,它采用数据(SDA)和时钟(SCL)两根线来完成数据的传输及外围器件的扩展,任何一个具有IIC总线接口的外围器件,不论其功能差别有多大,都具有相同的电气接口,因 此都可以挂接在总线上,使其连接方式变得十分 简单。 对各器件的寻址是软寻址方式,因此节点上没有必须的片选线,器件地址给定完全取决于器件 类型与单元结构,这也简化了IIC系统的硬件连接。

另外IIC总线能在总线竞争过程中进行总线控制权的仲裁和时钟同步,并且不会造成数据丢失,因此由IIC总线连接的多机系统可以是一个多主机系统,支持多主控。 串行的8位双向数据传输位速率在标准模式下可达100kbit/s,快速模式下可达400kbit/s,高速模式下可达3.4Mbit/s。

实验五:串行接口输入输出实验

实验五串行接口输入/输出实验 一、实验目的 1、学习TEC-XP+教学计算机I/O接口扩展的方法; 2、学习串行通信的基本知识,掌握串行通信接口芯片的设置和使用方法。 二、实验说明 1、TEC-XP+教学计算机的I/O结构 TEC-XP+教学计算机配置有COM1和COM2两个串行接口,其中COM1是TEC-XP+默认的标准接口,与PC终端相连接,监控程序负责对COM1进行初始化和使用管理。COM2预留给用户扩展使用,监控程序不能识别COM2,也不对COM2进行任何操作,用户需要对COM2进行初始化和使用管理。COM1和COM2均由可编程串行通信接口芯片intel8251芯片构成。 2、Intel8251的组成及控制和使用方法 可编程串行通信接口芯片Intel8251支持同步和异步两种通信方式。在异步方式下,波特率为0~19.2Kbps,数据位可为5、6、7或8位,可设1个奇偶校验位,1个起始位,1个、1.5个或2个停止位。Intel8251内部有7个功能模块负责实现与CPU的数据交换以及与I/O设备的数据通信功能,内部有6个寄存器,其中与异步通信方式的有关的寄存器有5个,即模式寄存器、控制寄存器、状态寄存器、数据发送寄存器和数据接收寄存器。 模式寄存器的功能是设定intel8251的工作模式,控制寄存器的功能是控制intel8251的数据发送和接收等工作过程,状态寄存器的功能是反映intel8251数据发送和接收等工作的状态,各寄存器的格式如图5-1、图5-2和图5-3所示。当CPU把需发送的数据写入数据发送寄存器后,intel8251将自动把数据组成帧并逐位发送出去。Intel8251能自动完成数据接收操作,并把接收到的数据存放在数据接收寄存器中,CPU 从中读取即可。 图5-1模式寄存器格式图5-2 控制寄存器格式 图5-3 状态寄存器格式 CPU对模式寄存器、控制寄存器和数据发送寄存器只能写入,不能读出。对状态寄存器和数据接收寄存器只能读出,不能写入。Intel8251使用2个地址来访问内部的寄存器,其中用偶地址访问数据发送寄存

RS232串行接口总线详细介绍

RS232串行接口总线 目录 第一节RS232串行接口系统描述 (3) 第二节 RS232串行接口拓扑结构 (3) 第三节物理接口 (5) 3.1 电气特性 (5) 3.2接口信号 (6) 3.3机械特性 (8) 第四节电源 (8) 第五节 RS232接口协议 (9) 5.1 数据传送格式 (9) 5.2 流控制 (10) 5.3 差错检测 (10) 5.4 差错控制 (10) 第六节系统配置 (10) 6.1 端口地址和中断 (10) 6.2 串行端口寄存器 (11) 6.3 DLAB (14) 第七节数据流模型 (14) 第八节 RS232串口接口设备 (15)

第一节RS232串行接口系统描述 串行接口是微型计算机与外部设备的主要通信接口之一。只需要一条信号线就可以进行单向数据传送。由于线路简单,价格相对较低,目前得到广泛应用。 串行通信接口标准经过使用和发展,目前已经有几种。但都是在RS-232标准的基础上经过改进而形成的。所以,以RS-232C为主来讨论。RS-323C标准是美国EIA(电子工业联合会)与BELL等公司一起开发的1969年公布的通信协议。它适合于数据传输速率在0~20000b/s范围内的通信。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都作了明确规定。由于通行设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用。 在讨论RS-232C接口标准的内容之前,先说明两点: 首先,RS-232-C标准最初是远程通信连接数据终端设备DTE(Data Terminal Equipment)与数据通信设备DCE(Data Communication Equipment)而制定的。因此这个标准的制定,并未考虑计算机系统的应用要求。但目前它又广泛地被借来用于计算机(更准确的说,是计算机接口)与终端或外设之间的近端连接标准。显然,这个标准的有些规定及和计算机系统是不一致的,甚至是相矛盾的。有了对这种背景的了解,我们对RS-232C标准与计算机不兼容的地方就不难理解了。 其次,RS-232C标准中所提到的“发送”和“接收”,都是站在DTE立场上,而不是站在DCE的立场来定义的。由于在计算机系统中,往往是CPU和I/O设备之间传送信息,两者都是DTE,因此双方都能发送和接收。 目前,PC系列微机串行接口采用异步通信方式,按照RS-232接口标准进行数据传输。 UART(Universal Asynchronous Receiver/Transmitter) 是实现数据字符的串并转换的单元。 第二节RS232串行接口拓扑结构 使用串行接口进行通信的器件可以分为两类。一类叫做DCE(DATA COMMUNICATIONS EQUIPMENT),另外一类叫做DTE(DATA TERMINAL EQUIPMENT)。DCE是类似MODEM一类的设备。而DTE就是计算机或者是计算终端。图2.1是典型的串行通信的拓扑结构图。

串口详细介绍

1、串口的应用 它是一个数据通信的协议,在实际应用中:对设备运行日志的数据采集,另一个就是程序的调试。 这里所说的串口是RS232电平的。 2、通信的相关概念 1)全双工:在同一时刻,既能接收数据同时还可以发送数据 半双工:在同一时刻,只能接收数据或者发送数据 2)同步:在物理连接上是有一条时钟线的,用这种通信方式就必须有一个主机,因为时钟是由主机控制的

这个只是一个简单的串口应用,实际的串口是有9条线连接的 TTL:直接是有MCU输出的 ‘1’:电压范围——2.5~3.3V(主要是指ARM芯片),4~5V(主要是指51内核的芯片) ‘0’:电压范围——0.5~0V(这个是包含所有的芯片) 这里所说的电压范围是在实际的硬件设计中要保证的。 232:这个是经过232芯片之后的电平 ‘1’:-3~-15V ‘0’:3~15V 在实际中测试得到的电平电压是9V和-9V

5,数据传输的协议:(是保证数据发送和接收一致,但是对数据的含义没有规定)起始位数据位奇偶校验位停止位 所占位数15~811/2电平00/10/11 常用协议格式 1+8+0+1=10位 起始位:表示一帧数据的开始 数据位:发送的有效数据 奇偶校验位:检验有效数据是否传输正确,可靠性不高 停止位:表示一帧数据的结束 总线空闲:总线上没有数据传输(高电平) 开始位:0--低电平(空闲态检测到下降沿) 数据位:(用户所要发送的数据)5~8(7/8)--ASCII码(8位)--字节(8位)奇偶校验位:判断数据位中1+奇偶校验位中的1必须为奇数/偶数。 奇校验:数据位中1+奇偶校验位中的1必须为奇数。 偶校验:数据位中1+奇偶校验位中的1必须为偶数 停止位:1--高电平 6,波特率 相当于串口发送的速率 串口每秒钟发送的位数 常见:48009600115200 注意:两个设备的波特率必须相同

RS232串口通信详解

RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 通信原理知识2010-01-03 20:53 阅读1 评论0 字号:大中小RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 串口是计算机上一种非常通用的设备通信协议。 --------------------------------- 串口的引脚定义: 信号方向来 9芯 缩写描述 自 1调制解调器CD载波检测 2调制解调器RXD接收数据 3PC TXD发送数据 4PC DTR数据终端准备好 5GND信号地 6调制解调器DSR通讯设备准备好 7PC RTS请求发送 8调制解调器CTS允许发送 9调制解调器RI响铃指示器

两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。 --------------------------------- 串口的电气特性: 1)RS-232串口通信最远距离是50英尺 2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps 3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V 所以与单片机连接时常常需要加入电平转换芯片: --------------------------------- 串口通信参数: a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。 b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位);扩展的ASCII码是0~255(8位)。 c)停止位:用于表示单个包的最后一位,典型的值为1,1.5和2位。由于数是在传输线上定时的,并且每一

相关文档