RS232接口规范及编程资料(上)
寄存器用来控制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接口规范及编程资料(下)(12-12)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)