[计算机软件及应用]软件设计第二章

[计算机软件及应用]软件设计第二章

ID:17436469

大小:1.12 MB

页数:101页

时间:2018-08-31

[计算机软件及应用]软件设计第二章_第1页
[计算机软件及应用]软件设计第二章_第2页
[计算机软件及应用]软件设计第二章_第3页
[计算机软件及应用]软件设计第二章_第4页
[计算机软件及应用]软件设计第二章_第5页
资源描述:

《[计算机软件及应用]软件设计第二章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第二章计算机接口基础端口操作中断与DMA定时器、计数器串行接口并行接口(打印口)A/D、D/A总线网络计算机与外设交换数据的方式查询方式需要交换数据时,先查询标志,判断是否有数据交换中断方式一旦有数据可以交换,马上通知应用程序进行数据交换DMA方式有一批数据可以交换时,通知应用程序进行交换端口与端口操作计算机与外设交换数据的接口接收外设数据、把数据送外设控制外设的工作方式接收外设的状态信息端口地址接口中的数据、控制、状态寄存器统一编址(8051)与单独编址(PC)端口操作(PC)汇编:IN、OUTTurboC/C++Builder:inportb、outportbMSC/VC

2、:_inp、_outpDOS/Windows9XWindows2000/WindowsXP(VIOPort类)0~65535端口地址选择地址线:A8A7A6A5A4A3(0200H~03FFH),开关位置"ON"有效,置"OFF"无效。基地址等于所有有效位数之和加上0200H(A9=1)。ON中断中断的概念CPU暂停正在执行的程序,去处理特殊事件的过程中断的用途高效实时处理数据交换微机、单片机、PLC都有自己的中断系统故障处理与分时操作中断的分类软件中断硬件中断不可屏蔽中断可屏蔽中断32位CPU称为异常内存错误等串口、打印、硬盘等PC机的硬件中断系统中断类型号确定每个中断响应

3、的优先级确定中断在中断向量表中的顺序PC机的硬件中断资源16位机:8个硬件中断32位机:15个硬件中断类型号在20H到FFH之间每个ISA设备需要唯一的硬件中断资源PCI设备可以共享同一个硬件中断资源说明PC机硬件中断资源分配16位系统32位系统由8259A管理中断向量表(中断描述符表)内存中保存的每个中断处理程序入口地址16位系统:中断向量表32位系统:中断描述符表每个中断向量占4个字节每个中断描述符占8个字节置换中断向量中断处理的过程外设通过中断控制器向CPU请求中断CPU执行完当前指令,给中断控制器发送中断响应信号中断控制器把中断类型号发送给CPUCPU进行入栈处理,保

4、护现场CPU根据中断类型号,从中断向量表或中断描述符表中查出中断处理程序的入口地址将入口地址赋值给程序计数器(CS、IP),转去执行中断处理程序处理完中断,恢复现场,CPU继续从断点处执行其它指令8259A中断控制器管理多个外部中断设备(每片8259A可管理8个硬件中断,可级联)向CPU发送中断请求信号,给CPU提供中断类型号提供不同中断的优先级管理提供多种工作方式,并可编程改变可以单独屏蔽某些中断特点设置中断屏蔽(21H/A1H)8位对应8个中断源,最低位为IRQ0,1表示屏蔽中断结束命令(20H/A0H)中断结束时,设置为20H,发送中断结束命令PC机中断程序的编写主程序

5、设置中断屏蔽置换中断向量中断处理子程序保护现场开中断处理中断关中断发送中断结束命令恢复现场中断程序示例-主程序串口接收数据if(sys.port==1){port=0x3f8;setvect(0xc,get_com_int);}if(sys.port==2){port=0x2f8;setvect(0xb,get_com_int);}c=inportb(0x21);if(sys.port==1)c=c&0xef;elsec=c&0xf7;outportb(0x21,c);置换中断向量设置中断屏蔽中断程序示例-中断程序voidinterruptget_com_int(){char

6、c;enable();c=inportb(port);c=c&0x7f;buff[buff_ip]=c;buff_ip=buff_ip+1;if(buff_ip>=bufflen)buff_ip=0;disable();outportb(0x20,0x20);}开中断处理中断:接收串口数据关中断发送中断结束命令Windows系统中断程序处理必须编写虚拟设备驱动程序一般采用事件通知或查看标志的方法处理中断往往和DMA结合起来使用Windows系统虚拟设备管理程序VxDWDMVHardwareInt类QuickVxDVSharedHardwareInt类一个VxD使用一个硬件中断

7、多个VxD共享一个硬件中断DriverWorksKInterrupt类产生.sys文件Windows2000以上系统PCI设备产生.vxd文件用于Windows9X系统ISA设备采用VC++编译Windows系统中断程序示例1ptAiStart.TrigSrc=0ptAiStart.SampleRate=1000ptAiStart.NumChans=4ptAiStart.StartChan=0ptAiStart.Count=1000ptAiStart.buffer=DRV_GetAddress(lBuf

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。