版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
并行通信与并行接口一、概述二、并行接口芯片Intel8255A-5三、IBMPC/XT中的8255A-5的使用1.喇叭接口2.键盘接口四、并行接口标准一、概述1.并行通信在多根传输线上同时传送数据。特点:速度快,但造价高;适合于短距离传送。DnDn-1D0C1C0发送方接收方数据位控制位
计算机内部数据是并行传送的,不需要固定格式(协议),因此并行接口电路相对简单。相比之下,串行接口电路由于要进行串并行转换因而比较复杂。2.并行接口
分为硬线连接接口和可编程接口:硬线连接接口——接口工作方式及功能用硬线连接来设定,不能用软件编程的方法来改变;可用普通的锁存器、缓冲器来设计。可编程接口——除了具有硬线连接接口的性能外,可以通过程序改变接口的工作方式。通常由可编程通用接口芯片组成。
可编程接口电路中通常有:
•
端口的译码和控制电路
•
输入输出数据的锁存器和缓冲器
•
状态和控制命令寄存器——以便于CPU与接口电路之间用应答方式(程序查询式)来交换信息;也便于接口电路与外设间传送信息。
•
中断请求触发器
——为了与CPU以中断的方式交换信息。控制寄存器输入缓冲寄存器输出缓冲寄存器状态寄存器CPU地址译码输入设备输出设备CSA0A1数据总线读信号写信号复位准备好中断请求地址输入数据准备好输入数据应答输出数据准备好输出数据应答输入数据输出数据
随着大规模集成电路技术的发展,生产了许多通用的可编程序的接口芯片,如Intel8255A、Motorla系列的MC6820等。二、并行接口芯片Intel8255A-58255A主要功能:
1.能提供2个8位(A口和B口)、两个4位(C口高4位和低4位)并行输入输出端口;
2.具有基本输入/输出、选通输入/输出、双向三种传输方式,以适应
CPU与I/O设备之间的多种数据传输要求;
3.C口除可作数据口之外,还有如下功能:
•
部分信号线可用来作为CPU与外设之间的联络应答信号;
•
具有按位置位/复位功能,为按位控制提供支持;
•
可作状态口。在目前的主板中,功能已经集成在芯片组中,但使用和编程与8255A完全一致。1.结构数据总线缓冲器读/写控制逻辑A组控制B组控制A组端口A(8)A组端口C上半部(4)B组端口C下半部(4)B组端口B(8)8位双向三态缓冲器。它是8255A与系统数据总线的接口。接收来自系统总线的控制信号,以产生控制整个芯片工作的控制信号控制端口A和端口C的高4位。它根据CPU的命令字决定A组的工作方式及对C口的每一位实现按位的“置位”或“复位”。控制端口B和端口C的低4位。它根据CPU的命令字决定B组的工作方式及对C口的每一位实现按位的“置位”或“复位”端口A,B,C为输入输出端口,每个端口都是8位,可以选择作为输入或输出。但功能上有不同的特点。通常端口A,B作为输入输出的数据端口,C口作为控制或状态信息的端口。8255A端口选择表2.方式选择8255A有三种基本工作方式,
(1)方式0——基本输入输出方式
(2)方式1——选通输入输出方式
(3)方式2——双向传送方式
方式由CPU输出的命令字决定。由此可见:端口A有0,1,2三种工作方式,端口B只能工作于方式0,1。8255控制命令字3.按位置位/复位功能
端口C的8位中的任一位,可用一条指令来“置位”和“复位”(其它位状态不变),这个功能主要用于控制。实现此功能的控制字为:4.8255A的中断功能
当8255A按方式1或方式2工作时,能提供一个控制信号,用来作为CPU的中断请求。INTE触发器定义如下:
INTE=1允许中断
INTE=0禁止中断
8255A规定:在方式1
端口A
输入时,INTEA由PC4(置位/复位)控制;
端口A
输出时,INTEA由PC6(置位/复位)控制;
端口B
输入时,INTEB由PC2(置位/复位)控制;
端口B
输出时,INTEB由PC2(置位/复位)控制;方式1输入端口A方式1输入端口A方式1输入端口B在方式2
输入时,INTE2由PC4(置位/复位)控制;输出时,INTE1由PC6(置位/复位)控制;*但是,8255不能提供中断向量,可通过软件方式,或利用8259解决。5.8255A端口的工作过程方式0
方式0是一种基本的输入或输出方式。
•
三个端口的每一个都可由程序选定作为输出或输入;
•
没有固定的用于应答的联络信号。故方式0:•
可用于无条件传送的接口电路;
•
也可用于查询式输入输出接口电路,此时,只需将端口C
(也可用端口A、端口B)的某些位作为两个数据端口的控制或状态信息。
PA7~0PB7~0PC0PC18255A方式0控制状态外设CPU例1:在一系统中,要求8255工作在方式0,A口为输入,B口、C口为输出。0
Moval,90hOut63h,al;送控制字到控制字寄存器
Calldelay1Inal,60h;从A口输入数据
Calldelay2moval,data1Out61h,al;从B口输出数据
Calldelay3moval,data2Out62h,al;从C口输出数据•
打印机正在处理一个字符时,打印机忙信号BUSY=1,否则,BUSY=0。•
向打印机送数前应先查询打印机状态,当BUSY=0时,可以向打印机送数。•
当STROBE有效(负脉冲)时,把数据线的数据送入打印机内。例2:8255作为打印机接口,工作于方式0STROBE设A、B、C口和控制口的端口地址为0D0H~0D3HMOVAL,81H ;A口输出,C口上输出,C口下输入
OUT0D3H,ALMOVAL,0DH;PC6置1,0DH=0000,1101OUT0D3H,ALLPST:INAL,0D2H;读PC口
ANDAL,04H;打印机忙否(PC2=BUSY=?)
JNZLPST;PC2=1,打印机忙,等待
MOVAL,CLOUT0D0H,AL;CL中的字符送PA口
MOVAL,0CHOUT0D3H,AL;置PC6=0,即STROBE=0;00001100=0CHINCALOUT0D3H,AL;置PC6=1,即STROBE=1,00001101=0DH┆(2)方式1
方式1是一种选通方式。端口A和端口B仍作为输入输出,端口C的某些位作为控制和状态信息。方式1:•
可用作查询式输入\输出接口电路;
•
也可用于中断式输入\输出接口电路。
A口输入:B口输出:•
若采用中断方式,CPU接收中断。发出读信号RD,使INTR
复位;
•
若采用查询方式,CPU检查IBF信号为1,数据准备好,则发出读信号RD
。CPU读结束,RD上升,IBF复位,允许外设送下一个数据。①外设请求发送数据,发出选通输入信号STB;
②8255A在STB下降沿将输入的数据锁存,同时将输入缓冲器满信号置IBF置1,告诉外设暂缓送数;
③8255内设中断允许触发器
INTEA置1,允许中断—即采用中断方式传送数据。此时中断请求信号通过PC3输出,向CPU发出中断请求信号。
INTEA置0,不允许中断—即采用查询方式传送数据,CPU不断查询PC5(IBF信号)。①②②③中断方式③查询方式④④RD前沿使其复位⑤RD后沿使其复位
A口输入:①•
若采用中断传送方式:CPU接受中断请求,在WR信号的下降沿将输出的数据送入8255的相应口锁存,并使中断请求信号复位。
•
若采用查询方式:CPU检测到状态信号(ACK)为Ready,在WR信号的下降沿将输出的数据送入8255的相应口锁存。
②
当CPU传送结束,则WR上升沿将OBF置为0,表示输出缓冲器满,外设可接收数据。
③外设接收数据,将ACK信号置为0(有效),该信号:
•
使OBF无效(置1)。
•
若采用中断方式
使INTR有效(若此时INTE置1)向CPU发出请求。
④CPU输出下一个数据。①②③④B口输出:例1:假定在一个系统中,要求8255工作在方式1,端口A为输出,端口B为输入,
PC4~PC5为输入,禁止端口B中断。Moval,0afh
;控制字Movdx,xxxxxx11b;控制寄存器地址
Outdx,al;送入控制字寄存器Moval,0Dh;A口的INTE(PC6)置1Outdx,al;送入控制字寄存器Moval,04h;B口的INTE(PC2)置0Outdx,al;送入控制字寄存器例2:8255作为中断方式打印机接口假设端口地址为A口:0D0HB口:0D2HC口:0D4H控制口:0D6HACKNLGDATA7~DATA0A1A0A2A1MOVAL,0A0H
;方式选择控制字OUT0D6H,ALMOVAL,01H;OUT0D6H,AL;PC0置1,使选通无效CLI
;设置中断向量前关中断MOVAX,OFFSETROUTINTR;设置中断向量MOV[002CH],AX;IR3的类型码为0BHMOVAX,SEGROUTINTR
;该向量在向量表中的地址0BH*4=2CHMOV[002EH],AXMOVAL,0DH
;置PC6=1,允许端口A中断OUT0D6H,AL
;使8255允许中断(INTEA=1)STI
;CPU开中断┆MAIN:主程序:MOVAL,[DI];DI为打印字符缓冲区地址OUT0D0H,ALMOVAL,00H;置PC0=0OUT0D6H,ALINCAL
;置PC0=1OUT0D6H,AL┆IRETROUTINTR:中断处理程序•
标准并行端口(SPP,StandardParallelPort),也称为Centronics模式。•
Centronics模式的数据传输是正向方式(PC
外设),主要用来向打印机传输数据。•
Centronics并行接口标准共有36个引脚信号。•
在系统连接时,打印机一端是36芯D型插座,主机一端是25芯D型插座。附:附:方式2
选同双向输入输出。此模式只限于A口使用。方式2:•
可用作查询式输入\输出接口电路;
•
也可用于中断式输入\输出接口电路。例:假定在一个系统中,端口A工作在方式2,端口B工作在方式0且为输入,端口C的三位
PC0~PC2位输入。Moval,11xxx011b
;控制字Movdx,xxxxxx11b;控制寄存器地址
Outdx,al;送入控制字寄存器三、IBMPC/XT中8255A—5的使用
在IBMPC/XT中,8255A-5工作在无应答联络信号的基本输入输出方式(方式0)下.
1.喇叭接口8255PB口765432108253计数器2CLKGATE喇叭驱动电路喇叭PCLK1.1931816MHZ•
由系统并行接口芯片8255的PB口的最低两位:PB0(TIM2GATESPK)PB1(SPKRDATA)控制喇叭发声。
•
定时计数器8253工作在方式3下,预置初值为533H(1331D),输出频率为:1.1931816MHZ/1331=896HZ方式31.1931816MHZ01331896HZ
系统中,喇叭只产生896HZ
的音调。如果想改变这个音调,使喇叭产生任意频率的音调,该怎么做?
•
控制发声频率——改变计数初值计数初值=1.1931816MHZ/给定频率
=1234DCH/给定频率
•
控制声音长短——延时
使用延时子程序;
综上所述,我们得到了使喇叭发声的频率和时间,因此,就可以控制喇叭发声了。例:用程序控制发声soundsegmentassumecs:soundbegin:moval,0b6h
;8253控制字:通道2,方式3,
out43h,al;对计数器两次写操作,二进制计数
movdx,12hmovax,34dchmovdi,200
divdi
out42h,al;计数初值送入计数器2
moval,ah
out42h,alinal,61h;保存原值
movah,aloral,3;将8255PB口最低两位置1
out61h,al
movbx,0ffffh
;延时
Delay:movcx,0ffffHDL10ms:loopDL10msdecbxjnzdelaymoval,ah
;恢复原值
out61h,almovah,4chint21hSoundendsendbegin用喇叭凑乐。发声频率sog_fdw330,330,330,392,330,330,294,262,220,262,294,330,0发声时间sog_tdw20,20,20,20,40,20,20,20,20,20,20,80,0C调2/4333533216123——……1小节2拍,800ms(C)130.8146.8164.8174.6190.0220.0246.9261.7293.7329.6349.2392.0440.0493.9(C)523.3138.6(C#,Db)155.6(D#,Eb)185.0(F#,Gb)207.7(G#,Ab)233.1(A#,Bb)277.2(C#,Db)311.1(D#,Eb)370.0(F#,Gb)415.3(G#,Ab)466.2(A#,Bb)(中音)Stacksegmentdb100dup(?)StackendsDatasegmentSog_fdw330,330,330,392,330,330,294,262,220,262,294,330,0Sog_tdw20,20,20,20,40,20,20,20,20,20,20,80,0DataendsCodesegmentassumecs:code,ds:data,ss:stackSignprocfarpushdsxorax,axpushaxmovax,datamovds,axleasi,sog_fleabp,ds:sog_t;设置数据
callplay;调用演奏子程序
retSignendpPlayproc
pushbxpushdipushsipushbp
Freq:movdi,[si];送频率信号
cmpdi,0
jeend_play
movbx,ds:[bp];送发声时间
callsound;调用发声子程序
addsi,2addbp,2
jmpfreqEnd_play:popbppopsipopdipopbx
retPlayensp
codeendsendsign2.键盘接口(1)键盘工作原理
•
全编码键盘对每一个按键,通过全编码电路产生唯一对应的编码信息(如ASCⅡ码)。优点:响应速度快;缺点:硬件结构复杂,且复杂性随着键数的增加而增加。
•
非编码键盘不直接提供按键的编码信息,而是利用简单的硬件和一套专用的键盘程序来识别按下键的位置(即提供位置码,或叫扫描码)。(以上由键盘电路实现)。然后由处理机将位置码通过查表程序转换成相应的编码信息(如ASC
Ⅱ码)。(以上由键盘接口电路及BIOS键盘处理程序实现)。
优点:可通过软件编码重新定义键盘的某些键。缺点:速度不如全编码键盘。IBMPC/XT采用非编码键盘。
键盘是由一组排列成矩阵方式的按键开关组成。通常分成全编码键盘和非编码键盘两类。非编码键盘对非编码键盘,我们怎样确定按下键的位置呢?
——
可采用行扫描法;行列扫描法;行反转法;
IBMPC/XT采用行列扫描法。
方法:•
先在列线上加步进的“1”信号,依次检查哪一列上有键按动。
(向列扫描线加“1”信号,若行接收线由按动的键时,能从交点上获得“1”信号,否则为“0”。
•
然后再在行线上加步进的“1”信号,………..
•
根据两者检查的结果确定被按键的位置。行列1111IBMPC/XT键盘位置及对应的扫描码。Esc018110282234=0-QAZSWPLM,03040510111E1F2C83848590919E123451112131617253031394450519FAC键位置接通扫描码断开扫描码键名称(2)键盘电路
键盘接口电路键盘内(3)键盘中断处理程序
•
如上所述,当我们在键盘上“按下”或“放开”一个键时,如果键盘中断是允许的,就产生一个类型9的中断,CPU即转入BIOS的键盘中断处理程序。
•
该键盘中断处理程序名为KB_INT,入口地址为F000:E987;
•
其功能是读取扫描码,转换成相应的ASCⅡ,并将ASCⅡ(低8位)及其扫描码(高8位)送入键盘缓冲区。(没有相应的ASCⅡ的键,如:
ALT、F1~F10
等,字符码存为0。)(4)键盘缓冲区键盘缓冲区是一个先进先出的循环队列,位于内存的高端,BIOS数据区。BIOS中断向量区BIOS数据区用户程序区彩色/图形缓冲区BIOS区RAMROM00000H00400H00500HB8000H内存B_H012341415XYZB_T0040:001ABUFF_HEADDW?;键盘缓冲区首地址0040:001CBUFF_TAILDW?
;键盘缓冲区尾地址0040:001EKB_BUFFERDW16DUP(?);16字节输入量空间0040:003EKB_BUFFER_ENDLABLEWORD(5)键盘的BIOS功能调用与DOS功能调用BIOS功能调用:
INT16HAH=0;从键盘读入一个字符
AH=1;读有无键入字符
AH=2;读特殊键状态DOS功能调用:
INT21HAH=1;从键盘输入一个字符并回显
AH=6AH=7AH=8AH=AAH=BAH=C例:8255用于键盘接口。用行翻转法扫描键盘。行列扫描值为:PC3PC2PC1PC0PA3PA2PA1PA0
(列值)(行值)16键编码为0~FPA0PA1PA2PA3••。。••。。••。。••。。••。。••。。••。。••。。••。。••。。••。。••。。••。。••。。••。。••。。PC0PC1PC2PC3D7~D0
RDWRA1A0CSRESET320H8255+5VDATASEGMENTKWYVALDB0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DHDB0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77HKEYCHDB‘0123456789ABCDEF’DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA
MOVDS,AXLOP_T0:MOVAL,81HMOVDX,323HOUTDX,AL;A口方式0,输出,C口低4位输入LOP_T1:MOVAL,0MOVDX,320HOUTDX,AL;A口输出0
MOVDX,322HINAL,DX;读取C口列值
ANDAL,0FHCMPAL,0FHJZLOP_T1;没有键按下,循环测试MOVAH,AL;暂存列值
MOVCX,1000HDELAY1:LOOPDELAY1;延时
MOVAL,90HMOVDX,323HOUTDX,AL;A口方式0,输入,C口低4位输出
MOVAL,AHMOVDX,322HOUTDX,AL;将列值由C口输出
MOVDX,320HINAL,DX;读取A口行值
ANDAL,0FHMOVCL,4SHLAH,CL;列值左移4位
ORAL,AH;与低4位合并,组成8位行列扫描值
MOVSI,OFFSETKEYVAL;将其转换成扫描码(位置码)
MOVDI,OFFSETKEYCHMOVCX,16LOP_T2:CMPAL,[SI]JZLOP_T3;是键值,转换
INCSI;否则比较下一个
INCDILOOPLOP_T2JMPLOP_T0;未找到,继续下一次按键操作LOP_T3:MOVAL,[DI];将转换的扫描码放在AL中
NOPNOPMOVAL,81HMOVDX,323HOUTDX,AL;A口方式0,输出,C口低4位输出LOP_T4:MOVAL,0MOVDX,320HOUTDX,AL;A口输出0
MOVDX,322HINAL,DX;读取C口
ANDAL,0FHCMPAL,0FHJNZLOP_T4;键没有释放,循环测试
JMPLOP_T0;继续下一次按键操作
CODEENDSENDSTART四、并行接口标准IEEE1284是目前PC机的并行接口标准,与原有的并行外设接口标准(如打印机)保持先后兼容。
IEEE(InstituteofElectricalandElectronicEngineers):美国电气和电子工程师协会IEEE1284标准定义了五种数据传输模式:兼容模式半字节模式字节模式EPP模式ECP模式每种方式的数据传输可以是正向方式(PC
外设)、反向方式(外设
PC
)或者是双向方式。1.兼容模式
兼容模式——即标准并行端口(SPP,StandardParallelPort),也称为
Centronics模式。•
Centronics模式的数据传输是正向方式,主要用来向打印机传输数据。•Centronics并行接口标准共有36个引脚信号。在系统连接时,打印机一端是36芯D型插座,主机一端是25芯D型插座。•
标准的并行接口速度约250KB/S。Centronics接口信号定义:2.半字节模式(NibbleMode)•
利用标准并行端口进行从外设
PC的反向数据传输,使用状态线路每次传输4位数据;•
PC机标准并行端口有5条从外设
PC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 心血管疾病风险预测:多组学工具变量优化策略
- 心血管大数据驱动的个体化管理策略
- 心脏移植供体分配的伦理决策支持工具
- 心脏干细胞治疗的联合生物材料策略
- 微生态制剂调节肝肠轴的机制
- 影像诊断精准智能识别
- 建筑工人重复性动作损伤风险评估
- 建筑工人肌肉骨骼疾病营养干预探索
- 康复治疗师人文素养与患者动机激发策略
- 应急物资调配的可持续性策略
- 南方航空安全员培训
- 2025年律师事务所书记述职报告律所主任述职报告
- 农村经济统计培训
- 滴滴出行网约车加盟合作协议
- 广东工业大学《嵌入式系统软件设计A》2023-2024学年第二学期期末试卷
- 会议推广费合同范本
- 提高路缘石安装施工一次合格率
- 湖北省孝感市汉川市2023-2024学年八年级上学期期末考试数学试卷(含解析)
- 2024年东北大学马克思主义基本原理概论(期末考试题+答案)1
- 小市政施工方案样本
- 剧场工作总结
评论
0/150
提交评论