RS232接口规范及编程资料(上)

发布者:hfy13567003617最新更新时间:2016-09-22 来源: eefocus关键字:RS232  接口规范  编程资料 手机看文章 扫描二维码
随时随地手机看文章
大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。就使用而言,RS-232也确实有其优势:仅需3根线便可在两个数字设备之间全双工的传送数据。不过,RS-232C的控制要比使用并行通讯的打印机接口更难于控制。RS-232C使用了远较并行口更多的寄存器。这些寄存器用来实现串行数据的传送及RS-232C设备之间的握手与流量控制。本文将分别描述的串行通讯的原理及具体的软件设计。

(1)RS-232C介绍与PC硬件:

    RS-232C使用-3到-25V表示数字“1”,使用3V到25V表示数字“0”,RS-232C在空闲时处于逻辑“1”状态,在开始传送时,首先产生一起始位,起始位为一个宽度的逻辑“0”,紧随其后为所要传送的数据,所要传送的数据有最低位开始依此送出,并以一个结束位标志该字节传送结束,结束位为一个宽度的逻辑“1”状态。

    PC机一般使用8250或16550作为串行通讯的控制器,使用9针或25针的接插件将串行口的信号送出。该插座的信号定义如下:

DB-25

DB-9

信号名称

方向

含    义

2

3

TXD

输出

数据发送端

3

2

RXD

输入

数据接收端

4

7

RTS

输出

请求发送(计算机要求发送数据)

5

8

CTS

输入

清除发送(MODEM准备接收数据)

6

6

DSR

输入

数据设备准备就绪

7

5

SG

-

信号地

8

1

DCD

输入

数据载波检测

20

4

DTR

输出

数据终端准备就绪(计算机)

22

9

RI

输入

响铃指示

 

    以上信号在通讯过程之中可能会被全部或部分使用,最简单的通讯仅需TXD及RXD及SG即可完成,其他的握手信号可以做适当处理或直接悬空,至于是否可以悬空这视乎你的通讯软件。比如说,如果使用DOS所提供的BIOS通讯驱动程序,那么,这些握手信号则需要做如下处理,因为BIOS的通讯驱动使用了这些信号。如果使用自己编写的串行驱动程序则可以完全不使用这些握手信号(详见下面有关章节)。

 

   PC机一般使用8250或16550的作为串行通讯控制器,8250及16550的管脚排列如下:

 

    8250(16550)的寄存器如下表所示:

基地址

读/写

寄存器缩写

注    释

0

Write

-

发送保持寄存器(DLAB=0)

0

Read

-

接收数据寄存器(DLAB=0)

0

Read/Write

-

波特率低八位(DLAB=1)

1

Read/Write

IER

中断允许寄存器

1

Read/Write

-

波特率高八位(DLAB=1)

2

Read

IIR

中断标识寄存器

2

Write

FCR

FIFO控制寄存器

3

Read/Write

LCR

线路控制寄存器

4

Read/Write

MCR

MODEM控制寄存器

5

Read

LSR

线路状态寄存器

6

Read

MSR

MODEM状态寄存器

7

Read/Write

-

Scratch Register

    PC机支持1-4个串行口,即COM1-COM4,其基地址在BIOS数据区0000:0400-0000:0406中描述,对应地址分别为3F8/2F8/3E8/2E8,COM1及COM3使用PC机中断4,COM2及COM4使用中断3。

    在上表中,8250共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1用于设定通讯所需的波特率。常用的波特率参数见下表:

 

速率(BPS)

波特率高八位

波特率低八位

50

09h

00h

300

01h

80h

600

00h

C0h

2400

00h

30h

4800

00h

18h

9600

00h

0Ch

19200

00h

06h

38400

00h

03h

57600

00h

02h

115200

00h

01h

 

    以下几个表格为8250的寄存器的功能描述:

中断允许寄存器(IER):

注    释

7

未使用

6

未使用

5

进入低功耗模式(16750)

4

进入睡眠模式(16750)

3

允许MODEM状态中断

2

允许接收线路状态中断

1

允许发送保持器空中断

0

允许接收数据就绪中断

    Bit0置1将允许接收到数据时产生中断,Bit1置1时允许发送保持寄存器空时产生中断,Bit2置1将在LSR变化时产生中断,相应的Bit3置位将在MSR变化时产生中断。

中断识别寄存器(IIR):

注    释

Bit6:7=00

无FIFO

Bit6:7=01

允许FIFO,但不可用

Bit6:7=11

允许FIFO

Bit5

允许64字节FIFO(16750)

Bit4

未使用

Bit3

16550超时中断

Bit2:1=00

MODEM状态中断(CTS/RI/DTR/DCD)

Bit2:1=01

发送保持寄存器空中断

Bit2:1=10

接收数据就绪中断

Bit2:1=11

接收线路状态中断

Bit0=0

有中断产生

Bit0=1

无中断产生

    IIR为只读寄存器,Bit6:7用来指示FIFO的状态,均为0时则无FIFO,此时为8250或16450芯片,为01时有FIFO但不可以使用,为11时FIFO有效并可以正常工作。Bit3用来指示超时中断(16550/16750)。

    Bit0用来指示是否有中断发生,Bit1:2标识具体的中断类型,这些中断具有不同的优先级别,其中LSR中断级别最高,其次是数据就绪中断,然后是发送寄存器空中断,而MSR中断级别最低。

FIFO控制寄存器(FCR):

注    释

Bit7:6=00

1Byte产生中断

Bit7:6=01

4Byte产生中断

Bit7:6=10

8Byte产生中断

Bit7:6=11

14Byte产生中断

Bit5

允许64字节FIFO

Bit4

未使用

Bit3

DMA模式选择

Bit2

清除发送FIFO

Bit1

清除接收FIFO

Bit0

允许FIFO

    FCR可写但不可以读,该寄存器用来控制16550或16750的FIFO寄存器。Bit0置1将允许发送/接收的FIFO工作,Bit1和Bit2置1分别用来清除接收及发送FIFO。清除接收及发送FIFO并不影响移位寄存器。Bit1:2可自行复位,因此无需使用软件对其清零。Bit6:7用来设定产生中断的级别,发送/接收中断将在发送/接收到对应字节数时产生。

线路控制寄存器(LCR):

注    释

Bit7=1

允许访问波特率因子寄存器

Bit7=0

允许访问接收/发送及中断允许寄存器

Bit6

设置间断,0-禁止,1-设置

Bit5:3=XX0

无校验

Bit5:3=001

奇校验

Bit5:3=011

偶校验

Bit5:3=101

奇偶保持为1

Bit5:3=111

奇偶保持为0

Bit2=0

1位停止位

Bit2=1

2位停止位(数据位6-8位),1.5位停止位(5位数据位)

Bit1:0=00

5位数据位

Bit1:0=01

6位数据位

Bit1:0=10

7位数据位

Bit1:0=11

8位数据位

    LCR用来设定通讯所需的一些基本参数。Bit7为1指定波特率因子寄存器有效,为0则指定发送/接收及IER有效。Bit6置1会将发送端置为0,这将会使接收端产生一个“间断”。Bit3-5用来设定是否使用奇偶校验以及奇偶校验的类型,Bit3=1时使用校验,Bit4为0则为奇校验,1为偶校验,而Bit5则强制校验为1或0,并由Bit4决定具体为0或1。Bit2用来设定停止位的长度,0表示1位停止位,为1则根据数据长度的不同使用1.5-2位停止位。Bit0:1用来设定数据长度。

MODEM控制寄存器(MCR):

注    释

Bit7

未使用

Bit6

未使用

Bit5

自动流量控制(仅16750)

Bit4

环路测试

Bit3

辅助输出2

Bit2

辅助输出1

Bit1

设置RTS

Bit0

设置DSR

    MCR寄存器可读可写,Bit4=1进入环路测试模式。Bit3-0用来控制对应的管脚。

线路状态寄存器(LSR):

注    释

Bit7

FIFO中接收数据错误

Bit6

发送移位寄存器空

Bit5

发送保持寄存器空

Bit4

间断

Bit3

帧格式错

Bit2

奇偶错

Bit1

超越错

Bit0

接收数据就绪

    LSR为只读寄存器,当发生错误时Bit7为1,Bit6为1时标示发送保持及发送移位寄存器均空,Bit5为1时标示仅发送保持寄存器空,此时,可以由软件发送下一数据。当线路状态为0时Bit4置位为1,帧格式错时Bit3置位为1,奇偶错和超越错分别将Bit2及Bit1置位为1。Bit0置位为1表示接收数据就绪。

MODEM状态寄存器(MSR):

注    释

Bit7

载波检测

Bit6

响铃指示

Bit5

DSR准备就绪

Bit4

CTS有效

Bit3

DCD已改变

Bit2

RI已改变

Bit1

DSR已改变

Bit0

CTS已改变

    MSR寄存器的高4位分别对应MODEM的状态线,低4位表示MODEM的状态线是否发生了变化。

关键字:RS232  接口规范  编程资料 引用地址:RS232接口规范及编程资料(上)

上一篇:RS232串口线接法与线芯引脚定义
下一篇:RS232接口规范及编程资料(下)

推荐阅读最新更新时间:2024-05-03 00:40

直流充电桩上电源、CAN、RS485、RS232的隔离应用
直流充电桩是一个典型的强弱电结合的电子系统,充电功率流的强电部分跟后台的控制、显示、通讯、计费等弱电系统集合在一起,EMC和可靠性兼顾的问题比较棘手。下面简要描下电源、CAN、RS485/232的隔离在直流桩上的应用。 图 1 充电桩示意图 一、直流桩的主要通信方式 1、CAN-bus:根据GB/T 20234.1-2015《电动汽车传导充电用连接装置》的规范,直流桩与电动汽车通过CAN接口进行通信,每一个充电插头都有CAN接口。一桩两充、一桩四充则有多个CAN接口。同时,控制单元和充电机之间一般也通过CAN通信,控制整个充电的过程。 2、RS485:电能表、绝缘检测和控制单元之间一般通过RS-485相连,完成电量
[电源管理]
直流充电桩上电源、CAN、RS485、<font color='red'>RS232</font>的隔离应用
RS232、RS485和RS422的比较
  一、RS-232接口   1、RS-232的历史和作用   在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。RS-232-C接口(又称EIARS-232-C)是目前最常用的一种串行通讯接口。(“RS-232-C”中的“-C”只不过表示RS-232的版本,所以与“RS-232”简称是一样的)它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个25个脚的DB-25连接器,对连接器的每个引脚的信号内容加以规定
[嵌入式]
rs232和rs422接口电路及区别
rs232和rs422接口电路 1、RS-485RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。 RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485 可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。3、RS-422RS422总线,RS485和RS422电路原理基本相同,都是以差动方式发送和接受,不需要数
[单片机]
<font color='red'>rs232</font>和rs422<font color='red'>接口</font>电路及区别
工业远距离通信使用的RS232至RS485转换器
要求远距离或者在多个RS-232应用之间实现RS-232数据传输的一些工业用数据链路,通常都使用RS-232到RS-485转换器。尽管存在高达±13V的高信号摆幅,但RS-232仍然是一种非平衡或单端接口,而且本身极易受噪声影响。它的总线最大长度被限定在20米(60英尺)左右。尽管允许进行全双工数据传输(通过一些单独的信号导线同时发送和接收数据),但是RS-232并不支持在同一条总线上连接多个节点。   与之形成鲜明对比的是,RS-485是一种使用差分信号传输的平衡接口,从而让其拥有较高的共模噪声抗扰性。因此,延长RS-232数据链路传输距离和实现多总线节点连接,要求通过接口转换器将其转换为RS-485信号(参见图1)。   
[嵌入式]
自制无源RS232转485转换器
一、RS-232、RS-422与RS-485的简单介绍    RS-232、RS-422与RS-485都是串行数据接口标准,最初都是由电子工业协会(EIA)制订并发布的。RS-232在1962年发布,命名为EIA-232-E,作为工业标准,以保证不同厂家产品之间的兼容。其传送距离最大约为15米,最高速率为20kb/s,并且RS-232是为点对点(即只用一对收、发设备)通讯而设计的。所以,RS232只适合于本地通讯使用。 调频FM发射话筒制作套件     RS-422由RS-232发展而来,它是为弥补RS-232之不足而提出的。为改进RS-232通信距离短、速率低的缺点,RS-422定义了一种平衡通信接口,将传输速率提高到10
[嵌入式]
RS485与RS232区别
RS232与RS485是两个难搞清的东西,尽管它们非常不同。 1.什么是RS-232-C接口?采用RS-232-C接口有何特点?传输电缆长度如何考虑? 答:计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。 RS- 232-C接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名
[嵌入式]
单片机MCS-51系列指令快速记忆法(学习单片机编程的好资料)
随着微电子技术和超大规模集成电路技术的发展,单片微型计算机以其体积小、性价比高、功能强、可靠性高等独有的特点,在各个领域(如工业控制、家电产品、汽车电子、通信、智能仪器仪表)得到了广泛的应用。学习、使用单片机的人越来越多,而生产单片机的厂家很多,单片机种类繁杂,不知如何选择。据统计,八位单片机占全球单片机销量的65%。在八位单片机中,Intel公司的8051单片机内核已成为8位单片机事实上的标准。因此,对初学者而言,选择8051单片机来学习不失为明智的选择。 学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令的方法,供大
[工业控制]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved