1、 1 1 基础理论知识 1.1 通信的方式 通信的基本方式可以分为并行通信和串行通信两种。 串行通信时数据用一根传输线逐为顺序传送。并行通信和串行通信是 CPU 与外部设备 之间进行信息交换的基本方法。采用并行通信时,构成一个字符或数据的各位同时传送, 每一位都占用一条通信线,另外还需要联络以保证和外围设备协调地工作,它具有较高的 传输速度。但由于在长线上驱动和接收信号较困难,驱动和接收电路较复杂,因此并行通 信的传输距离受到限制,这种通信方式多用于计算机内部,或者作为计算机与近距离外围 设备传输信息用。 1.2 串行通信 串行通信分为两种类型:串行异步通信和串行同步通信。 串行异步通信是指通
2、信中两个字符之间的时间间隔是不固定的,而在一个字符内各位 的时间间隔是固定的。 同步通信时指在约定的数据通信数率下,发送方和接收方的时钟信号频率和相位始终 保持一致,通信双方发送数据和接收数据具有完全一致的定时关系。 串行通信的数据传输方式分为单工传送,半双工传送,全双工传送。 单工传送:单工传送时指在通信时只能由一方发送数据,另一方接收数据的通信方式。 半双工传送:指在通信时双方都能够接收或者发送,但是不能够同时接收和发送的通 信方式。 全双工传送:通信双方之间有两条通路,发送信息和接收信息可以同时进行。 2 2 串口通信芯片 8250 2.1 8250 的内部结构 INS 8250 是通用
3、异步收发器 UART,用作异步通信接口电路。INS 8250 的引脚信号基 本上可以分为两大类:与 CPU 系统总线相连的信号线和与通信设备 MODEM 连接的信号 线 3 2.2 8251 的内部寄存器及其编程方法 在微机中用可编程芯片 8250 来实现串行通信。由于 8250 的引脚较多,在此就不列出 了,仅列出它的几个寄存器,因为在编写串行通信程序时要使用这些寄存器。 2.2.1 波特率因子寄存器(DLL/DLH) 8250 芯片规定当线路控制寄存器写入 D7=1 时,接着对口地址 3F8H、3F9H 可分别写 入波特率因子的低字节和高字节,即写入除数寄存器(L)和除数寄存器(H)中。而
4、波特 率为 1.8432MHZ/(波特率因子16) ,波特率和除数对照表见下表: 十进制 十六进制 波特率 1047 417 110 768 300 100 384 180 300 192 C0 600 96 60 1200 48 30 2400 24 18 4800 12 C 9600 2.2.2 通信线路控制寄存器(LCR)(3FBH) 该寄存器规定了异步串行通信的数据格式。各位含义如下: 其中: D1D0 是字长。它们的取值和对应的字长如下表: 00 5 位 01 6 位 10 7 位 11 8 位 D7 D6 D5 D4 D3 D2 D1 D0 DLAB SB SP EPS PEN S
5、TB WLS1 WLS0 4 D2 是停止位。它的取值和对应的停止位如下表: 0 1 位 1 15 位(数据位 5 位) 2 位(数据位 6、7、8 位) D3 说明是否允许奇偶校验。如果为 0 无奇偶校验,如果为 1 允许奇偶校验。 D4 说明是奇校验还是偶校验。如果为 0 是奇校验,如果为 1 是偶校验。这一位起作用 的前题是 D3 为 1。 D5 说明是否有附加奇偶校验位。如果为 0 无附加奇偶校验位,如果为 1 有附加奇偶校 验位。 D6 如果为 0 正常,如果为 1 发空缺位。 D7 如果为 0 允许访问接收、发送数据寄存器或中断允许寄存器。如果为 0 允许访问波 特率因子寄存器。
6、通信线路控制寄存器 LCR 主要用来指定异步通信数据格式, 即字符长度、 停止位位数、 奇偶校验。LCR 的控制字如下 2.2.3 通信线路状态寄存器(3FDH) 该寄存器向 CPU 提供有关数据传输的状态信息,各位含义如下: D7 D6 D5 D4 D3 D2 D1 D0 0 TSRE THRE BT FE PE OE DR D0:DR,接收数据就绪 D1:OE,数据重叠错 D2:PE,数据奇偶错 D3:FE,缺少正确停止位 D4:BI,接收空缺位 D5:THRE,发送保持器空 D6:TSRE,发送移位寄存器空 读入时各数据位等于 1 有效,读入操作后各位均复位。除 D6位外,其它位还可被 CPU 写入,同样可产生中断请求。 5 2.2.4 中断允许寄存器(3F9H) 该寄存器允许 8250 四种类型中断(相应位置 1)并通过 IRQ4 向 8088CPU 发中断请求。 各位含义如下: D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 EMSI ELSI ETBEI ERBFI D0:为 1 允许接收缓冲区满中断 D1:为 1 允许发送保持器空中断 D2:为 1