工业控制 | 能源技术 | 汽车电子 | 通信网络 | 安防监控 | 智能电网 | 移动手持 | 无线技术 | 家用电器 | 数字广播 | 消费电子 | 应用软件 | 其他方案

电路设计->微机单片机电路图->单片机综合电路图->用I/O操作实现RS232口数字及模拟信号的采集

用I/O操作实现RS232口数字及模拟信号的采集

作者:dolphin时间:2011-05-05浏览次数:3255

本文介绍了如何利用RS232寄存器I/O操作,实现RS232口的直接数字量输入及简便的模拟量输入方法。用这种方法实现的A/D转换器及I/O扩展器,直接利用RS232口进行供电,无需外接其它电源。在软件编程方面,无需对串口进行波特率及数据格式设置。通过配置相应的电路,不仅能够完成标准TTL信号的输入,还能完成光隔小信号输入。是一种简便而又行之有效的数据采集方法。

关键词 RS232接口 MCR寄存器 MSR寄存器 LCR寄存器 数字量采集 模拟量采集 串行A/D转换

1. 前言

RS232端口几乎是所有x86计算机必备的端口,它可以连接FAX/MODEM设备、串行鼠标器、串行小键盘、采集模块、PLC等,还可以连接RS232-RS485适配接头,控制RS485网络设备。RS232端口广泛采用9芯D型接头,具有接线简单、传输速率高、传数据可靠等优点。除了Tx/Rx方式的高效数据传输外,RS232接口还具备直接I/O输入输出能力。本文介绍的是利用RS232接口直接完成4路数字量信号的输入,可广泛地应用于机关开关式传感器、临近感应式传感器、霍尔效应式传感器、小型机械键盘、TTL信号的输入。除此之外,利用简单的I/O操作,还可实现RS232口的多路模拟信号采集。简单的串口I/O操作,只是利用RS232口的MCR及MSR寄存器,无需串口初始化及波特率设置等烦琐操作。

2. RS232的端口安排

计算机正常启动后,RS232端口COM1、COM2、COM3、COM4的地址一般被安排在3F8、2F8、3E8、2E8,用于了解外部状态的寄存器地址则被分别设置为3FE、2FE、3EE、2EE,用于控制外部设备的寄器地址则被设置3FC、2FC、3EC、2EC,。RS232接口的针脚安排如下:

D型25芯接头

D型9芯接头

pin8....CD

pin1

pin3...RxD

pin2

pin2...TxD

pin3

pin20..DTR

pin4

pin7....SG

pin5

pin6...DSR

pin6

pin4...RTS

pin7

pin5...CTS

pin8

pin22...RI

pin9

信号名称

TxD

Transmit Data

RxD

Receive data

RTS

Request to send

CTS

Clear to Send

DSR

Data Set Ready

DTR

Data terminal ready

SG

Signal ground

RI

Ring indicator

CD

Carrier Detect

由于大多数x86计算机都使用9芯D型接头。下面讲述的寄存器安排,均指的是9芯D型接头。

RS232口MCR寄存器安排:

地址

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

3FC

X

X

X

X

X

X

PIN7

PIN4

2FC

X

X

X

X

X

X

PIN7

PIN4

3EC

X

X

X

X

X

X

PIN7

PIN4

2EC

X

X

X

X

X

X

PIN7

PIN4

RS232口MSR寄存器安排

地址

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

3FE

PIN1

PIN9

PIN6

PIN8

X

X

X

X

2FE

PIN1

PIN9

PIN6

PIN8

X

X

X

X

3EE

PIN1

PIN9

PIN6

PIN8

X

X

X

X

2EE

PIN1

PIN9

PIN6

PIN8

X

X

X

X

上面的列表对RS232寄存器进行了必要的简化。MCR寄存器用于控制D型接头的7脚和4脚,MSR用于读取1、9、8、6脚的状态,5脚为地。标有X的位用于其它用途,本文不作介绍。

3. RS232窃电技术

EIA-RS232标准中未定义电源输出引脚,所以RS232接口中找不到电源输出针脚,只能间接地从RS232的其它引脚中获取电源。最直接的方法是利用PIN7和PIN4两个针脚,它们足以驱动CD4093、LM324等MOS型IC芯片器件。除此之外,还可以用下述方法从Tx和Rx引脚中获取电源。



解决方案


评论

技术专区