第 4 章 串行通信接口
-
Upload
edward-goodwin -
Category
Documents
-
view
74 -
download
9
description
Transcript of 第 4 章 串行通信接口
第第 44 章 串行通信接口章 串行通信接口1 、串行通信基础2 、串行通信总线标准及其接口3 、 Intel8250 可编程异步通信接口4 、 Intel8251A 可编程通信接口5 、 IEEE 1394
串行通信基础串行通信基础串行通信接口( Serial Communication Interfac
e )按国际标准化组织提供的电气标准及协议划分为 RS-232 、 RS-485 、 USB 、 IEEE 1394等。RS-232 和 RS-485 标准只对接口的电气特性做出规定,不涉及接插件、电缆或协议。USB 和 IEEE 1394 是近几年发展起来的新型接口标准,主要应用于高速数据传输领域。
基本通信方式基本通信方式1 、异步通信( Asynchronous Communication )异步串行通讯规定了字符数据的传送格式,每个字符数据按照相同格式传送,这个格式称为帧,每一帧信息由起始位、数据位、奇偶校验位和停止位组成,如图所示。
字符传送的开始 ,接收方开始准备接收数据信号。5 ~ 8 位数据位
用于有限差错检测 ,可选。
数据传送结束的标志
字符发送间隙 字符发送间隙(空闲状态 )
0 0/1 0/1 0/1 … 0/1 0/1 0/1 1 1 1 0 0/1
起 始 位
奇偶校验位
(可有可无) 5 ~ 8 位数据位(先送最低位)
LSB MSB
空 闲 位
停止位( 1 , 11/2 或 2 位)
第 n 个字符( 8 ~ 12 位) 第 n + 1 个字符
图 异步串行通信格式
字符格式:①1 位起始位,低电平;②5-8 个数据位,(如标准 ASCII 码。则为 7 位);③1 个奇偶校验位(作为检错用);④1 、 1.5 或 2 个终止位(停止位),高电平。
起始位后面紧跟的是要传送字符的最低位,每个字符的结束是 1 、 1.5 或 2 个高电平的终止位,起始位至终止位构成一帧。相连两个字符之间的间隔可以是任意长度的,两个相邻字符之间叫空闲位,为高电平。
异步通讯,发送和接受双方必须使用相同的字符数据帧格式,否则会造成数据错误,进而导致通讯失败。异步通讯通常用于信息传送量不太大、传输速度不太高的场合,如每秒 50 ~ 115200 位。
2 、同步通信( Synchronous Communication )在数据块开始处要用同步字符来指明,同步传送速度高于异步传送速度,要求有时钟来实现发送端及接收端之间的同步,硬件电路比较复杂。在异步通讯中,每个字符数据的帧格式要求使用起始位和停止位作为字符开始和结束的标志,占用了一定的传输时间。去除这些标志后可以达到提高通讯速度的目的,这种通讯方式即为同步传送。同步通讯通过同步字符在每个数据块传送开始时令发送和接收双方同步,其通讯格式如图 4-2 所示:
同步通讯的特点是:以同步字符作为传送的开始,使发送和接收双方取得同步。每个字符数据位占用的时间相等。在同步通讯方式中,字符数据之间不允许有空隙存在,当线路空闲或没有字符发送时发送同步字符。 同步字符可以由用户选择一个或二个特殊的 8位二进制码作为同步字符。习惯上选用通讯过程中没有出现的字符数据。同步通讯双方也必须使用相同的同步字符。在信息量大、要求传输速度比较高的情况下,用同步通讯,速度可以达到每秒800,000 位或更高。
同步通讯的数据传送格式
波特率( Baud Rate )波特率是指单位时间内传送二进制数据的位数,以位 / 秒为单位。每个数据位的传送时间 Td 即为波特率的倒数。
例如:设数据传送的速率为 120 字符 /秒,每个字符(帧)包括 10 个数据位,则传送的波特率为:
10×120 = 1200 位 /秒= 1200 波特率 每一位传送的时间为 T= 1/1200=0.833ms
波特率因子 K在串行通信时,发送时钟和接收时钟统称为外部时钟,若设每个信息位所占时间为 T,外部时钟周期为 Tc, 则Tc=Td/K 其中 K=16 、 32 、 64 。这个倍数也称为波特率因子。 例如,当 K取为 16 ,在外部时钟脉冲的每个上升沿采样接收数据线,在发现第一个“ 0”(即起始位的开始),以后又连续采样 8个“ 0”,则确定收到的是起始位 (不是干扰信号 )。然后,每隔 16个外部时钟脉冲采样接收数据线的状态,以保证采样时刻正好处于各个信息位的中间时刻,从而可获得可靠的采样信息。
接收和发送时钟接收和发送双方通过时钟信号对传送的数据进行定位及采样。接收和发送时钟能够用来控制通讯设备接收和发送字符数据速度。该时钟信号通常由外部时钟电路产生。
发送数据时,在发送时钟的下降沿,发发送数据时,在发送时钟的下降沿,发送设备将移位寄存器中保存的数据串行移位输出;送设备将移位寄存器中保存的数据串行移位输出; 接收数据时,在接收时钟的上升沿,接接收数据时,在接收时钟的上升沿,接收器对接收数据采样,即数据位检测。 从而,收器对接收数据采样,即数据位检测。 从而,获得了最大的时钟频率偏差容限获得了最大的时钟频率偏差容限
接收器在每一个接收时钟的上升沿接收数据线,当发现接收数据线上出现低电平时认为是起始位,此后,如果在连续的 8 个时钟周期内检测到接收数据线上仍保持为低电平,确定为起始位。 采用这种方法,能够排除接收线上的噪声干扰并识别假起始位,较精确地确定起始位的中间点,从而提供一个准确的时间基准。
串行通信工作方式单工( Simplex)仅能进行一个方向的传送。在单工方式下,通讯线路为单向连接,字符数据只能够按照固定方向传送。反方向传送是不允许的。
发送器 接收器A 站 B 站
信号地单工
图 单工方式示意图
半双工( Half-Duplex)能交替地进行双向数据传送,但两设备之间只用一根传输线,两个方向的数据传送不能同时进行。
A 站 B 站 发送器
发送器 接收器
接收器
图 半双工方式示意图
全双工( Full-Duplex)A、 B之间有两条传输线,能在两个方向上同时
进行数据传送。
发送器
发送器 接收器
接收器 B 站 A 站
图 全双工方式示意图
数字信号的调制与解调在远距离串行通信中,为传送数字信号,
必须在发送端采取措施把数字信号转换为适于传输的模拟信号 (即,信号的调制 ),而在接收端再将模拟信号转换成数字信号 (即,信号的解调 )。
调制解调器 Modulator-Demoduiator (MODEM) : 完成调制 -解调功能的设备称为调制解调器。
MODEM 的调制方式有 3 种:振幅调制( ASK ):以两种振幅的大小来区别数字信号“ 0”与“ 1” ;频率调制( FSK ):利用两个固定的频率来分别代表数字信号“ 0”与“ 1” ;
相位调制( PSK ):利用相位的差异来区别信号,当相位差 180º 时代表位值的变化
频移监控 FSK(Frequency Shift Keying)
差错检测和校正由于传输线路上的反射、噪声、衰减和串扰等影响,将引起信号的畸变。所以,要求通讯过程中引入差错检查并加以校正功能。差错检查的基本方法有三种:奇偶校验、校验和、循环冗余码校验。差错校正的方法主要采用海明码校验。
1 、奇偶校验实现过程是:发送时,在每个字符的最高位之后附加一个奇偶校验位。奇偶校验位可能是“ 1” 或“ 0” 。确定 0 或 1 的原则是:保证整个被传送的字符(包括校验位在内)为“ 1” 的位数为偶数时,为偶校验;为奇数为奇校验。接收时,根据发送方指定的校验方法,对接收到的每个字符进行校验,如果校验的结果不正确,说明出现了差错。
奇偶校验对每个字符只校验一次。只能提供最低级的错误检测,即只能检测到影响了奇数个的位错误,例如:某个字符在传输过程中,如果有两个数据位发生了错误,即由“ 1”变成“ 0” 或者由“ 0”变成“ 1” ,那么这种方法是不能检测出来的。一般,奇偶校验只用在异步通讯中。
校验和是针对数据块传送设计的。在数据块发送之前,发送方对数据块中所有字符求和(逻辑和),产生一单字节校验字符 ( 校验和 )附加到数据块结尾,接收方接收到数据块之后,按照同样过程对数据块求和,所得的结果与接收到的校验和字符比较,如果两者相同,表示接收正确,否则有错。
需要注意的是,当信息段是随机、无序地发送时,需要注意的是,当信息段是随机、无序地发送时,产生的校验和仍然是相同的。所以校验和也不能产生的校验和仍然是相同的。所以校验和也不能用于出现顺序错误检测。用于出现顺序错误检测。
22 、串行通讯总线标准及其接口、串行通讯总线标准及其接口1 、串行通讯接口由美国电子工业协会( EIA )公布的异步串行通讯接口有三类:RS-232C(RS-232A , RS-232B)RS-449 , RS-422 , RS-423RS-485其中:RS-232C 接口标准,包括了物理接口功能标准和电气接口标准。RS-449 只定义了物理接口功能标准。RS-423A , RS-422A , RS-485 则是电气标准,既可以通过 RS-232C物理接口标准来实现,也可以通过 RS-4
99物理接口标准来实现。RS-232C 在异步串行通讯中是应用最广的标准总线。
为了提高并保证高可靠性的通讯要求,在选择接口标准时,必须注意:1 、通讯速度与距离的关系通常的标准串行接口标准,其电气特性指具有可靠传输时的最大通讯速度或传送距离指标,但指标间性能不能同时具备。选用 RS-422 标准时,最大通讯速度可达 10Mb/S ,最大传送距离可为 300m ;适当降低通讯速度时,最大传送距离可达到 1200m 。2 、抗干扰能力串行通讯需要考虑抗干扰能力,以保证信号的可靠传输。
一般的工业测控系统运行环境往往十分恶劣,因此,在通讯介质选择、接口标准选择时要充分注意其抗干扰能力,并采取必要的抗干扰措施。例如:在长距离传输时,使用 RS-422 标准,能有效地抑制共模信号干扰。在高噪声污染环境中,使用带有金属屏蔽层、光纤介质减少电磁噪声的干扰,光电隔离提高通讯系统的安全性等。
RS-232CRS-232C 接口接口RS-232 是微型计算机与通信工业中应用最广泛的一种串行通讯接口标准。RS-232 采取不平衡传输方式,即单端通信方式。因此是一种在低速率、近距离环境使用的串行通信。RS-232C 串行接口总线适用于:设备之间的通讯距离不大于 15m ,传输速率最大为 20Kb/s 的场合使用。
接口信号完整的 RS-232C 接口有 22根线,采用标准的 25芯插头座。绝大多数设备只使用其中 9 个信号,所以就有了 9针连接器232C包括两个信道:主信道和次信道次信道为辅助串行通道提供数据控制和通道,但其传输速率比主信道要低得多,其他跟主信道相同,通常较少使用
① EIA-RS-232C 标准的信号线信号线的定义( 9 根信号线)信号线的连接与使用远程通信近程通信(零MODEM 方式) 标准连接简单连接
TxD:发送数据, DTE DCE RxD:接收数据, DCE DTE DTR: DTE 准备好, DTE DCE DSR: DCE 准备好, DCE DTE RTS:请求发送, DTE DCE CTS:清除发送, DCE DTE ( 半双工用于方向切换 ) RI:振铃指示, DCE DTE DCD:载波检出, DCE DTE SG:信号地
远程通信信号线的连接远程通信信号线的连接TxDRxDRTSCTS
DTRDSR
RIDCDSG
串口调制解调器
计算机
TxDRxDRTSCTS
DTRDSR
RIDCDSG
串口调制解调器
计算机电话线
注:若电话线为专线 , 不使用 DTR 和 RI
近程简单连接(交叉反馈、三线)近程简单连接(交叉反馈、三线)
TxD 与 RxD 交叉相连:可实现全双工通信DTR 与 DSR 反馈相连:只要终端准备好RTS 与 CTS 反馈相连:随时都可以发送
DTE TxDRxDDTRDSRRTSCTSSG
DTETxDRxDDTRDSRRTSCTSSG
近程标准连接(双交叉环回法)近程标准连接(双交叉环回法)
TxD 与 RxD 互连:全双工通信DTR 与对方 DSR 、 RI 相连:一方 DTE 准备好,对方就认为 DCE 准备好 ( 实际不存在 )RTS 与 CTS 反馈相连并与对方 DCD 相连:随时可发,并让对方准备好接收
DTETxDRxDDTRDSR
RTSCTS
SG
DTETxDRxDDTRDSRRTSCTSSG
RI
DCD
DCD
RI
② 电气特性EIA-RS-232C 对电气特性、逻辑电平的定义
与 TTL 之间的转换
TxD 、 RxD线上1 : -3V ~ -15V 0 : +3V ~+15V 有效 :+3V ~ +15V 无效 :-3V ~ -15V
DTR 、 DSR 、 RTS 、 CTS 、 RI 、DCD 线上
EIA: 电压极性、负逻辑TTL: 电压幅值、正逻辑 不兼容发送 :TTL EIA,MC1488,SN75150 接收 :EIA TTL,MC1489,SN75154 MAX23
2
③ 机械特性连接器DB-25 型(还支持 20MA 电流环接口) DB-9 型电缆长度速率低于 20kb/s , 15m最大直接传输距离的说明误码率 <4%——15 米,实际误码率允许 10% ~ 2
0% , 15 米——保守
RS-449 接口标准RS449 实际上是一个一体化的三个标准,它的机械、功能和过程特性接口由 RS449 定义,而电气特性接口由两个不同的标准定义:
RS422A :用于平衡电路 RS423A :用于非平衡电路
RS449与 RS232C 相比:增加了 10条接口引脚,从表 4.3 可以看出传送速率高,传送距离长
• 100kb/s 1200m接口连接器采用 37针和 9针(安排辅助信道的管脚)
与 RS-232C 相比,在不使用调制解调器的情况下,RS-449 传输速率更高,通讯距离更长。
由于 RS-449 接口采用平衡信号差电路传输高速信号,所以噪声更低。还能够实现多台通讯设备共享公用线路通讯,即二台以上的设备可与 RS-449 通讯电缆连接。
RS-422A接口标准RS-422 是一种单机发送、多机接收的单向、平衡传输规范。RS-422 定义了一种平衡通信接口,将传输速率提高到 10Mb/s ,并允许在一条平衡总线上最多可连接 10 个接收器。RS-422A 规范中给出了在 RS-449 应用中对电缆、驱动器和接收器的电气要求,规定了双端电气接口标准。 RS-422A 的最大传输率为 10Mb/s ,在该速率下通讯电缆长度可达到 120m 。如果采用较低的数据传输速率,如 90,000 波特率时,最大距离可达 1,200m 。
RS-422 接口电路由发送器、平衡连接电缆、电缆终端负载、接收器几部分组成。每个通道要求用二条信号线。任一时刻电路中只允许有一个发送器发送数据,但可以同时有多个接收器接收数据。
允许驱动器输出的电压范围为 ±2 ~ ±6V ,接收器能够检测到的输入信号电平最低可达到 200mV 。数据信号传输采用差分方式,也称作平衡传输。用一对双绞信号线,其中一线定义为 A ,另一线为 B 。通常情况下,发送驱动器 A 、 B 之间的正电平在 +2 ~ +6V ,是逻辑” 1” ,负电平在 -
2 ~ -6V ,是逻辑” 0” 。另有一个信号地 C 。
接收器端的规定与发送端的规定相同,收、发端通过平衡双绞线将 AA与 BB 对应相连,当接收器两端 AB 之间有大于 +200mV 的电平时,输出正逻辑电平,小于 -200mV 时,输出负逻辑电平。接收器接收平衡线上的电平范围通常在 ±0.2V ~6V 之间。
⑵RS-422 电气特性典型的 RS-422 通讯电缆有 5根线,其中 4根线用于双向数据传输,另一根线是信号地。
RS-422 的接收器采用高输入阻抗,这样发送驱动器的驱动能力更强,所以允许在相同传输线上连接多个接收节点,最多可接 10 个节点。即一个主设备( Master ),其余为从设备( Salve )。从设备之间不能通信。因此, RS-422支持一对多点的双向通信。RS-422 的四根传输线接口采用单独的发送和接收通道,不必控制数据方向。
⑶RS-422 标准接口的实现及电平转换目前 RS-422与 TTL 的电平转换最常用芯片是传输线驱动器 SN75174 和传输线接收器 SN75175 ,用 +5V 电源,如图所示。
⑷ 关于 RS-422 接口最大传输距离的说明最大传输距离约 1,219m ,最大传输速率为 10Mb/
s 。其平衡双绞线的长度与传输速率成反比,在 100K
b/s 速率以下,才可能达到最大传输距离。只有在很短的距离下才能获得最高速率传输。一般 100m 长的双绞线上所能获得的最大传输速率仅为 1Mb/s 。
通常,采用 RS-422 接口公共线路的另一端要求安装一个终接电阻,其阻值约等于传输电缆的特性阻抗。在短距离( < 300m )传输时可不用终接电阻。
RS-485RS-485 标准接口标准接口RS-485 规范中,增加了多点、双向通信以及抗共模干扰等能力。RS-485 收发器分别采用平衡发送和差分接收,即在发送端驱动器将 TTL 电平信号转换成差分信号输出,在接收端接收器将差分信号变成 TTL电平。因此,具有较强的抑制共模干扰的能力。同时,提高接收器的灵敏度,能检测低达 200mV的电压,所以,数据传输可达千米以外。RS-485 许多电气规定与 RS-422 相仿。如都采用平衡传输方式、都需要在传输线上连接终接电阻等。
最简单的 RS-485 通讯线路电缆由两条信号线路组成,通讯电缆必须接大地参考点。这样的连接线路能支持 32 对发送/接收器。为了避免地面路电流,每个设备一定要接大地。通讯电缆应包括第三信号参考线,连接到每个设备的电缆地。若用屏蔽电缆,屏蔽应接到电缆设备的机壳。
二线连接方式能实现真正的多点双向通信(即电路中可有多个发送器、接收器)。采用四线连接方式时,与 RS-422 一样只能实现一对多点的通信,即只能有一个发送器,其余为接收器。但它比 RS-422 有改进。无论采用哪种连接方式总线上可连接多达 32 个设备。RS-485共模输出电压在 -7 ~ +12V 之间, RS-42
2 在 -7 ~ +7V 之间; RS-485 接收器最小输入阻抗为 12KΩ , RS-422 是 4kΩ ;RS-485满足所有 RS-422 的规范。 RS-485 的驱动器可以用在任何使用 RS-422 应用中。反之则不行。
最大传输速率为 10Mb/s 。当波特率为 1,200bps时,最大传输距离理论上可达 15km 。平衡双绞线的长度与传输速率成反比,在 100Kb/s 速率以下,才可能使用规定最长的电缆长度。RS-485需要 2 个终接电阻,接在传输总线的两端,其阻值要求等于传输电缆的特性阻抗。在短距离传输( < 300m )时可不用。
表 表 RS-232 /422/485RS-232 /422/485 接口电路特性比较接口电路特性比较 规 定 RS-232 RS-422 RS-485
工 作 方 式 单端 差分 差分节点数 1 收、 1 发 1 发 10 收 1 发 32 收最大传输电缆长度 50英尺 400英尺 400英尺最大传输速率 20Kb/S 10Mb/s 10Mb/s最大驱动输出电压 ±25V -6 ~ +6V -7 ~ +12V驱动器输出信号电平 (带负载最小值) ±5V ~ ±15V ±2.0V ±1.5V
驱动器输出信号电平 ( 空载最大值 ) ±25V ±6V ±6V驱动器负载阻抗 (Ω) 3 ~ 7K 100 100摆率 ( 最大值 ) 30V/μs N/A N/A接收器输入电压范围 ±15V -10 ~+ 10
V-7 ~ +12V
接收器输入门限 ±3V ±200mV ±200mV接收器输入电阻 (Ω) 3 ~ 7K 4K (最小) ≥12K驱动器共模电压 -3 ~ +3V -1 ~ +3V接收器共模电压 -7 ~ +7V -7 ~ +12V
Intel 8250Intel 8250 可编程异步通信接口可编程异步通信接口8250 的基本性能指标①完全双工、双缓冲器发送和接收器的异步通信接口电路。②异步传送: 5 ~ 8 位字符,时钟频率为通讯波特率的 1
6倍。③通信波特率: 50 ~ 9,600 。④停止位可编程选择为 1 、 1.5 和 2 位,可编程产生终止字符。⑤可编程选择奇偶校验方式:奇校验、偶校验。⑥出错检测——具有奇偶、溢出、帧错误等检测电路。⑦片内具有优先权中断控制逻辑,具有很强的中断控制能力。
8250 的功能结构数据发送寄存器数据接收寄存器
发送移位寄存器接收移位寄存器
线路控制寄存器线路状态寄存器
除数寄存器高位除数寄存器低位 波特率发生器
MODE 控制寄存器MODE 状态寄存器
中断允许寄存器中断识别寄存器 控制逻辑
控制逻辑
数据总线缓冲器
寻址及控制逻辑
内部数据总线
D0 ~ D7
CS0CS1CS2A2A1A0
ADS
DISTRDISTRDOSTRDOSTR
DDISMR
O
O
O
SOUT
SIN
XTAL2XTAL1
BAUD OUT
RTSCTS
DRTDSR
RLSDRI
OUT1OUT2
INTRPT
RCLK
发送与接收部分⑴发送器发送器接收到发送数据后,将发送数据保存在数据发送缓冲器( THR )中。当发送移位寄存器没有正在发送的数据时, 8250把待发送数据由发送缓冲器传送到移位寄存器( TSR ),按照编程指定的参数(包括数据格式和波特率等),加入起始位、奇偶校验位和停止位,从 8250 的串行数据输出端( SOUT )移位输出,输出的顺序为字符的低位在前、高位在后。
当将数据发送缓冲器 THR 中的数据传送至移位寄存器 TSR 以后, THR“ 空”状态位置位或通过中断逻辑发出中断申请,要求 CPU 传送下一个字符。当 CPU向 THR写入一个字符后, THR“ 空”状态位复位并清除中断请求。当在 TSR中的字符移位输出完后, 8250再次把 THR 中的字符,传送至 TSR ,开始下一个字符的传送过程。另外,发送器的另一个功能是能发送终止符 (Brea
k Character) 。终止符是由在通信线上的连续的低电平组成,用来通知接收方终止完全双工通信中通信。
⑵接收器接收移位寄存器( RSR )对数据输入端( SIN )输入的串行数据进行移位接收。在接收时,首先要搜索起始位,使用 16倍波特率的数据接收时钟( RCLK )采样传送电路上的输入信号。当输入信号由高电平变低后,连续测试 8 个 RCLK时钟周期,若采样到的都是低电平,则确认为起始位,否则认为是传输线上的干扰。确认起始位后,每隔 16 个 RCLK 时钟周期对 SIN输入的数据位进行采样,直到规定的数据格式结束。
RSR 接收完一个字符后,接收控制电路按规定的数据格式进行奇偶校验,如果没有错误自动删除起始位、奇偶校验位和停止位,把串行输入的数据移位转换成并行数据送人接收缓冲寄存器( RBR ),使接收数据“可用位”置位,并通过中断控制电路发出读取数据中断请求。对 RBR 的读取,使接收数据“可用位”复位,清除中断请求。在上述过程中接收器继续接收字符。接收时,如果发现接收数据出现奇偶校验错 (PE) 、数据格式错——帧错误 (FE) 、接收数据时发生溢出错 (OE) ,即上一个保存在 RBR 中的数据尚未被读取,下一个接收的数据准备送至 RBR中、接收到终止信号 (BI) ,都置位状态寄存器中的相应位,并通过中断控制逻辑发出中断请求,要求处理。
( a )通信线路控制器 ( 011B PC 机地址 3FBH )D0D1D2D3D4D5D6D7
00 : 5位01 : 6位10 : 7位11 : 8位
字符长
停止位 0 : 1 个停止位 1 : 1.5 个停止位 ( 字符长 5位 ) 2 个停止位 ( 字符长 6 ~ 8位 )
0: 无较验位1: 有较验位较验类型 0: 奇较验 , 1: 偶较验
固定奇偶位 , 既当 D4,D3 = 11 时 ( 偶教验 ),D5 = 0 当 D4,D3 = 01 时 ( 奇较验 ),D5 = 10
表示正常收
发
D7 = 0 寻址 TBR 、 RBR IERD7 = 1 寻址 DLL 、 DHL
选择异步通信格式
通信控制和状态寄存器
( b )通信状态寄存器 LSR ( 101 3FDH )
D0D1D2D3D4D5D6D7
DROEPEFEBITHRETSRE0
1 :接收数据就绪1 :溢出错
1 :奇偶较验错1 :幀错误
1 :正在传输中止符1 :发送缓冲器空
发送移位寄存器空
1.8432MHZ 基准时钟,进行 1 ~ 65535次分频后由 BAUDOUT引脚输出的频率为 16×b/s 的时钟。 8250初始化时,必须将16 位的分频次数分两次写入高低两个 8 位分频次数锁存器 DLH 和 DLL
分频次数 = 1843200HZ / 16× 波特率
( c )分频次数锁存器 DLH 和 DLL ( 3F9H , 3F8H )
(基准时钟)
D0D1D2D3D4D5D6D7
DTRRTSOUT1OUT2LOOP000
其中 D0 ~ D3 位对应 8250 的四个引脚,当该位为 1 时,相应的引脚输出有效的低电平。当 D4 = 1 时, 8250 工作循环回送状态。(此时 8250 发送的数据被自身接收。用于自检)
( d )调制解调控制寄存器 MCR ( 100B 3FCH )
( e )调制解调状态寄存器 MSR ( 110B 3FEH )D0D1D2D3D4D5D6D7
CTSDSRRIRLSDCTSDSRRIRLSD
MSR 检测 8250芯片 4 个输入引脚状态。D0 ~ D3置 1表示允许四个引脚电平发生变化。D4 ~ D7表示四个引脚的电平, 1 :低电平(有效电平), 0 :高电平。
D0D1D2D3D4D5D6D7
00000
1 :无中断请求0 :有中断请求中断源
00 : MODEM 状态发生变化中断01 :发送寄存器空10 :接收数据就绪11 :接收数据错优先级最高
优先级最低
( f )中断识别寄存器 IIR ( 010B 3FAH )
( g )中断允许寄存器 IER ( 001 3F9H )
接收数据准备好中断
D0
D1D2D3D4D5D6D7
EDSS1000 ERBF1ETBE1ELS10
发送寄存器空中断接收数据错中断
MODE 状态中断
D0 ~ D3 位为 1 时,相应的位允许相应的中断
( 3 ) 8250 的初始化 ( a )设置波特率 MOV AL , 80H 通信控制寄存器的 D7 = 1 ,为了寻址 MOV DX , 3FBH 分频锁存器(除数寄存器) DL
H 、 DLL OUT DX , AL 设波特率为 1200
b/s 分频次数 =1843200/16×1200= 0096 = 0060H
MOV AL , 60H MOV DX , 3F8H 先写低分频值到 DLL ( 3F8H ) OUT DX , AL MOV AL , 0 MOV DX , 3F9H 再写高分频值到 DLH ( 3F9H ) OUT DX , AL
( b )设置通信数据格式 (对通信控制寄存器写入命令字) 假定 7 个数据位, 1 个停止位,偶校验。 MOV DX , 3FBH MOV AL , 1AH OUT DX , AL ( c )设置操作方式 (对 MODEM控制寄存器写控制字) MOV DX , 3FCH DTR = 0 , RTS = 0 , MOV AL , 03 OUT2 = 0 ,不自检 OUT DX , AL
( d )设置中断允许寄存器 MOV DX , 3F9H 禁止四种中断(查询方式) MOV AL , 0 OUT DX , AL
82508250 的初始化编程的初始化编程编程主要步骤是:①确定波特率:设置除数锁存器的分频值。为了能对除数锁存器写入,要先使通信线路控制寄存器的 D7=1 。②设置通信的数据格式:通过对通信线路控制寄存器编程实现,而且要使它的 D7=0 ,以便接下来对接收和发送缓冲器以及中断允许寄存器进行操作。③如果使用中断,则设置中断允许寄存器的状态。若不使用中断,这个寄存器可设置成 0 。
④设置调制解调器控制寄存器:通常,这寄存器设定的值为 03H ,使 8250 输出 DTR 和 RTS 这两个调制解调器控制信号。如果系统中不使用这两个信号,这样的设置也不会带来问题。如果使用中断, OUT2 位应设置为“ 1” ,这样 8250产生的中断信号可以通过系统总线送给 8259 中断控制器。
要求以 9600 波特率进行异步通信,每字符的数据位 7 位,2 个停止位,奇校验,允许所有中断。下面给出了采用8086汇编编写的 8250初始化部分程序。
; BIOS 分配异步通信的端口地址为 3F8H ~ 3FFHMOV AL , 80HMOV DX , 3FBHOUT DX , AL ;使通信线控制寄存器最高位置 1MOV AL , 0CHMOV DX , 3F8HOUT DX , AL MOV DX , 3F9HMOV AL , 0OUT DX , AL ;对除数锁存器置初值
MOV AL , 00001110B ;设置数据格式为 7 位/字符两个停止位,奇校验MOV DX , 3FBHOUT DX , ALMOV AL , 0FH ;允许所有中断MOV DX , 3F9HOUT DX , ALMOV AL , OBH ; OUT2 、 DTR 、 RTS 信号有效MOV DX , 3FCHOUT DX , AL
设数据传输速率 1200 波特,通信格式为 7 位 / 字符, 2 位停止位,奇校验,数据传输不采用中断方式,则其初始化程序段为:
MOV DX , 2FBH ; LCR 的口地址MOV AL , 80H ;将 DLAB 位置 1OUT DX , AL MOV DX , 2FBH ; DLL 的口地址MOV AL , 60H ;写入 1200 波特的 DLL值,通过查表可知 1200 对应的 DLH DLL值分别为 0060HOUT DX , AL MOV DX , 2F9H ; DLH 口地址MOV AX , 0 OUT DX , AX ;写入 12000 波特的 DLH值MOV DX , 2FBH ;设定 LCR 的口地址
MOV AL , 0EH ; 7 位字符, 1 位停止位,奇校验OUT DX , AL ;写入 LCR 控制字MOV DX , 2FCH ;设定 MCR 口地址MOV AL , 03H ;置MCR 控制字OUT DX , ALMOV DX , 2F9H ;设定 IER 口地址MOV AL , 0 ;禁止一切中断OUT DX , AL ;置 IER 控制字
Intel 8251AIntel 8251A 可编程通信接口可编程通信接口1 、 8251 的性能指标①可用于串行通讯的同步和异步传送。②同步传送: 5 ~ 8 位 / 字符,内部或外部同步,可自动插入同步字符。③异步传送: 5 ~ 8 位 / 字符,时钟速率为通信波特率的 1 、 16或 64 倍。④可产生终止字符( Break Character );可产生
1 、 1.5或 2 个位的停止位。自动检测和处理终止字符。⑤可检查假的启动位。
⑥波特率:异步传送的最大波特率为 19.2K ;同步传送的最大波特率 64K 。⑦完全双工,发送和接收双缓冲器。⑧出错检测——具有奇偶、溢出、帧错误等检测电路。
8251 的功能结构
TxD TxRDYTxETxC
读 /写控制逻辑 发送器(P S)
MODEM控制逻辑
数据总线缓冲器
状态字寄存器 接收数据缓冲器发送数据 /命令缓冲器
接收器(P S )
RxRDYSYNDECTRxCRxD
RESETCLKC/DRDWR
CS
DTRDSRRTSCTS
8251A8251A 的内部结构说明的内部结构说明接收器
异步通信:把输入的串型数据位变成并行数据,然后 RxRDY 输出高电平 同步通信:把输入的串型数据位变成并行数据,检测是否同步字,如是(双同步字则应继续两个同步字),则 SYNDET 输出高电平。然后继续接收数据,接收到,则 RxRDY 输出高电平 发送器 异步通信:把准备输出并行数据从 TxD引脚串型输出,自动加上起始位、奇偶位和停止位,然后 TxRDY 输出高电平 同步通信:在正式输出数据前,按规定自动插入 1-2 个同步字符从 TxD引脚串型输出,在输出数据过程中,如 CPU 来不及把输出字符送到发送缓冲区,则自动插入同步字符 发送时,必须 TxE=1且 CTS引脚为 0
8251A8251A 的内部结构说明的内部结构说明(续)(续)数据总线缓冲器
包括: 状态字寄存器发送数据 /命令寄存器接收数据缓冲区读写控制逻辑
MODEM 控制逻辑 与MODEM 的接口
CSC/D(A0) RD WR 功 能
0 0 0 1 读 8251A 数据(接收数据)0 1 0 1 读 8251A状态字0 0 1 0 写 8251A 数据(发送数据)0 1 1 0 写 8251A 控制字1 X X X 总线浮空(无操作)
8251A8251A 的引脚及其功能的引脚及其功能与 CPU 的接口线( 14条)DB0 ~ DB7 :双向三态数据
总线 CS :片选信号,低电平有效
C/D :命令 / 数据选择 RD :读 WR :写 CLK :输入时钟 RESET :复位
1234567891011121314
2827262524232221201918171615
D1D0VccRxCDTRRTSDSRRESETCLKTxDTxEMPTCTSSYNDET/BRKDETTxRDY
D2D3
RxDGND
D4D5D6D7
TxCWRCS
C/DRD
RxRDY
8251A
8251A8251A 的引脚及其功能的引脚及其功能(续)(续)与外设的接口线( 12条)
接收和接收控制线 RxD 串型数据接收RxC 接收时钟RxRDY 接收准备好,可作 CPU 的中断请求SYNDET 内同步时,当检测到同步字符,则置 1外同步时,作同步脉冲输入
发送和发送控制线 TxD 串型数据发送TxC 发送时钟TxRDY 发送准备好,可作 CPU 的中断请求TxE 发送器空
8251A8251A 的引脚及其功能的引脚及其功能(续)(续)MODEM 控制线
DTR Data Terminal Ready ,输出数据终端 (DTE) 准备好,低电平有效DSR Data Set Ready ,输入数据通信装置 (DCE) 准备好,低电平有效RTS Request To Send ,输出请求发送,低电平有效CTS Clear To Send ,输入清除发送(即允许发送),低电平有效
电源线 Vcc : +5V GND :电源地
8251A8251A 的方式控制字的方式控制字D7 D6 D5 D4 D3 D2 D1 D0
S2 S1 EP PEN L2 L1 B2 B1
同步x0 :内同步x1 :外同步1x :双同步字1x :单同步字
异步 ( 帧控制 )
停止位00 :不确定01 : 1 个10 : 1.5 个11 : 2 个
奇偶校验x0 :无校验10 :奇校验11 :校验
字符长度00 : 5 位01 : 6 位10 : 7 位11 : 8 位
波特率因子00 :同步方式01 :异步 x110 :异步 x1611 :异步 x64
8251A8251A 的命令控制字的命令控制字D7 D6 D5 D4 D3 D2 D1 D0
EH IR RTS ER SBRK RxE DTR TxEN
内部复位0 :正常工作1 : 8251A 复位
请求发送0 :正常工作1 :置 RTS引脚低电平
错误标志0 :正常工作1 : PE,OE和 FE 复位
送中止字符0 :正常工作1 :置 TxD引脚低电平
允许发送0 :禁止发送1 :允许发送
数据终端准备好0 :正常工作1 :置 DTR引脚低电平
允许接收0 :禁止接收1 :允许接收
外部搜索0 :不搜索 SYN1 :搜索 SYN
异步时无意义
8251A8251A 的状态字的状态字D7 D6 D5 D4 D3 D2 D1 D0
DSR SYNDET PE OE FE TxE RxRDY TxRDY
数据装置准备好 帧格式错 发送缓冲区空 与引脚定义相同
溢出错 奇偶错
TxRDY状态的定义与 TxRDY引脚的定义有区别 TxRDY状态 = 数据缓冲区空 TxRDY引脚 = 数据缓冲区空 * ( CTS = 0 ) * ( TxE = 1
)
8251A8251A 的初始化的初始化 8251A 有三个寄存器:
两个写:方式控制字寄存器,命令控制字寄存器 一个读:状态寄存器
但只有一个控制引脚 C/D (通常与 A0 连接) C/D = 0 :数据端口 ( 偶 ) ,用于串行通信数据的读写 C/D = 1 :命令端口 ( 奇 ) ,命令字及状态字均用命令
口 状态字只读,命令字只写
两个命令字必须规定先后次序 : ( CS = 0 、 C/D = 1 奇地址)
8251A8251A 的初始化的初始化 (续)(续)异步通信:写方式控制字
写命令控制字 同步通信:写方式控制字
写同步字符 写同步字符(如果定义了双同步字的话) 写命令控制字
在 RESET 后,第一次写入的是方式控制字,(同步方式时,第 2 、 3次写入的是同步字,异步方式时不必写入同步字)其后如再对该地址的写操作,都将被认为是写入命令控制字,仅当 8251A被 RESET (包括内部 RESET 和外部 RESET )后, 8251A又将处于接收方式控制字的状态,所谓内部 RESET 是在命令控制字中的 IR(D6)=1
82518251 的编程的编程8251 是一个可编程的多功能通信接口。使用时必须对它进行初始化编程,确定 8251 的具体工作方式。例如:规定工作于同步还是异步方式;传送的波特率;字符格式等等。初始化编程必须在系统复位以后,启动 8251工作以前进行。正确写控制字的顺序如图所示。
82518251 应用举例应用举例例: 8251工作在异步方式,波特率速度系数为 6
4 ,字符长度为 7 位,偶校验。方式控制字为 11111011B 即 0FBH 。
用命令字使 8251 发送允许,接收允许,使错误位复位,则命令字为 00010101B 即 15H 。设备端口号为 0F1H ( C/D=1 )和 0F0H ( C/D=
0 ),则在主程序的初始化程序为:
MOV AL , 0FBH ;方式控制字 OUT 0F1H , AL MOV AL , 15H ;工作命令字 OUT 0F1H , AL 于是 8251 做好了准备,能接收和发送数据。 如果由于发送或接收而产生中断请求,则引起 CPU 中断,于是 CPU 进人中断服务程序。其中断服务程序为:
INT : PUSH AX PUSH BX IN AL , 0FlH RCR AL , 1 ; TxRDY=1转至发送 JC SISP RCR AL , 1 JC RISP ; RxRDY=1转至接收REN : POP BX MOV AL , 20H ;发 EOI命令 OUT 20H , AL POP AX STI RETI
RISP : ;接收数据子程序 IN AL , 0F1H ;先检查有无错误 AND AL , 38H JNZ ERRSPP ;有错,转至出错处理于程序 IN AL , 0F0H MOV CL , AL JMP RENSISP : ;发送数据子程序 MOV AL , BL ;要输出的数据在 BL 中 OUT 0F0H , AL JMP REN
IEEE 1394IEEE 1394它支持不经集线器的点对点连接,最多允许
63 个相同速度的设备连接到同一总线上,最多允许 1023条总线相互连接。支持点对点连接,所以各连接节点上设备都是在相同位点,也就相当局域网络拓扑结构中的“对等网”一样。 是一种与平台无关的串行通信协议。
1987 年 Apple 发布了第一个完整规范, IEEE(电气与电子工程师协会)于 1995 年正式制定该总线标准。IEEE 1394 的数据传输速率(支持 100Mbps 、 2
00Mbps 和 400Mbps )相当快,因此又叫它“高速串行总线”、“火线” ( FireWire ) 。与当时的 USB 1.0 总线速度(传输速率为 12Mbps )相比, IEEE 1394 的速度显然要高出很多。
IEEE 1394 标准的特点:①高速的数据传送。是目前主流总线中速度最快的串行总线。支持 100Mbps 、 200Mbps 和 40
0Mbps 的数据传输率。而目前主流的 USB1.1规格的数据传输率仅为 12Mbps 。新的 USB 2.0 标准的传输速率可达到 480Mbps ,但是 IEEE 1394 新标准 b版本中能够实现 G 位(最高为 1.6Gbps )传输速率。
②高度的实时性,支持异步传送和等时传送两种模式。而等时传送模式专用于实时地传送视频和音频数据。③高自由度连接 /拓扑结构:允许接点菊花链 (No
de Daisy Chain) 和接点分枝,实现混合连接。同时,通过协议时序优化 (Protocol Timing Optimization)还可实现更高效率的网络结构。
用一线串珠方式的连接,最多连接 16台设备;采取混合连接能实现额定的 63台设备连接。
图 4-34 IEEE 1394 菊花链结构示意图
④支持带电插拔 / 即插即用。⑤传输距离长:允许两结点间的距离最大为 4.5米。新的标准可以实现 100米范围内的设备互连。⑥对等支持:两台设备无需连接到个人计算机,即可实现共连。可以把配备 IEEE 1394 端口的数字照相机直接连接到其它支持 IEEE 1394 的设备上。⑦支持同、异步传输:互联网络中所传输的视频数据不间断,就必须保证数据带宽的稳定,异步传输方式是无法实现的。采取同步传输方式就可以保证在传输过程中带宽的稳定。
IEEE 1394 标准接口结构的所有资源都是以统一存储编址形式用存储变换 (Memory-Maps) 方式识别,实现资源配置和管理。它向系统各设备发送数据时,各设备就像内存的存储单元一样,进行从 CPU 到内存的直接传送。4.6.2 IEEE 1394的组成(自学)4.6.3 IEEE 1394 的数据传输模式 4.6.4 USB 和 IEEE 1394 的异同
第第 55 章 外存储器接口章 外存储器接口 (( 自学自学 ))1 、概述2 、软盘驱动器接口3 、硬盘驱动器接口4 、光盘驱动器接口5 、半导体外存储器
11 、概述、概述1 、常用的外存储器2 、基本磁盘参数
22 、软盘驱动器接口、软盘驱动器接口1 、软驱接口简介2 、软驱接口编程
33 、硬盘驱动器接口、硬盘驱动器接口1 、硬盘系统的组成2 、硬盘系统的编程3 、移动硬盘接口
44 、光盘驱动器接口、光盘驱动器接口1 、光盘存储器的读写原理2 、光盘概述3 、常用光驱的接口
55 、半导体外存储器、半导体外存储器1 、闪存盘控制芯片2 、闪存盘芯片组
习题习题1 、对计算机而言,外存储器与内存储器之间有什么本质区别?2 、说明硬盘存储器的基本组成及特点。3 、硬盘驱动器中普遍采用的温彻斯特技术的主要特点是什么?4 、如何计算硬盘存储器的容量?5 、简单叙述光盘的读写原理。6 、光盘存储器主要有哪些特点?7 、 CDROM 存储器有哪些主要的技术指标?