您的位置 首页 开关

RS232接口标准及编程材料(上)

大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。就使用而言,RS-232也确实有其优势:仅…

大多数的电脑设备都具有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的状况线是否产生了改变。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/dianyuan/kaiguan/237963.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部