虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

电子管后级

  • 汇编+保护模式+教程

    九.输入/输出保护为了支持多任务,80386不仅要有效地实现任务隔离,而且还要有效地控制各任务的输入/输出,避免输入/输出冲突。本文将介绍输入输出保护。 这里下载本文源代码。 <一>输入/输出保护80386采用I/O特权级IPOL和I/O许可位图的方法来控制输入/输出,实现输入/输出保护。 1.I/O敏感指令输入输出特权级(I/O Privilege Level)规定了可以执行所有与I/O相关的指令和访问I/O空间中所有地址的最外层特权级。IOPL的值在如下图所示的标志寄存器中。 标  志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O许可位图规定了I/O空间中的哪些地址可以由在任何特权级执行的程序所访问。I/O许可位图在任务状态段TSS中。 I/O敏感指令 指令 功能 保护方式下的执行条件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 设置EFLAGS中的IF位 CPL<=IOPL IN 从I/O地址读出数据 CPL<=IOPL或I/O位图许可 INS 从I/O地址读出字符串 CPL<=IOPL或I/O位图许可 OUT 向I/O地址写数据 CPL<=IOPL或I/O位图许可 OUTS 向I/O地址写字符串 CPL<=IOPL或I/O位图许可 上表所列指令称为I/O敏感指令,由于这些指令与I/O有关,并且只有在满足所列条件时才可以执行,所以把它们称为I/O敏感指令。从表中可见,当前特权级不在I/O特权级外层时,可以正常执行所列的全部I/O敏感指令;当特权级在I/O特权级外层时,执行CLI和STI指令将引起通用保护异常,而其它四条指令是否能够被执行要根据访问的I/O地址及I/O许可位图情况而定(在下面论述),如果条件不满足而执行,那么将引起出错码为0的通用保护异常。 由于每个任务使用各自的EFLAGS值和拥有自己的TSS,所以每个任务可以有不同的IOPL,并且可以定义不同的I/O许可位图。注意,这些I/O敏感指令在实模式下总是可执行的。 2.I/O许可位图如果只用IOPL限制I/O指令的执行是很不方便的,不能满足实际要求需要。因为这样做会使得在特权级3执行的应用程序要么可访问所有I/O地址,要么不可访问所有I/O地址。实际需要与此刚好相反,只允许任务甲的应用程序访问部分I/O地址,只允许任务乙的应用程序访问另一部分I/O地址,以避免任务甲和任务乙在访问I/O地址时发生冲突,从而避免任务甲和任务乙使用使用独享设备时发生冲突。 因此,在IOPL的基础上又采用了I/O许可位图。I/O许可位图由二进制位串组成。位串中的每一位依次对应一个I/O地址,位串的第0位对应I/O地址0,位串的第n位对应I/O地址n。如果位串中的第位为0,那么对应的I/O地址m可以由在任何特权级执行的程序访问;否则对应的I/O地址m只能由在IOPL特权级或更内层特权级执行的程序访问。如果在I/O外层特权级执行的程序访问位串中位值为1的位所对应的I/O地址,那么将引起通用保护异常。 I/O地址空间按字节进行编址。一条I/O指令最多可涉及四个I/O地址。在需要根据I/O位图决定是否可访问I/O地址的情况下,当一条I/O指令涉及多个I/O地址时,只有这多个I/O地址所对应的I/O许可位图中的位都为0时,该I/O指令才能被正常执行,如果对应位中任一位为1,就会引起通用保护异常。 80386支持的I/O地址空间大小是64K,所以构成I/O许可位图的二进制位串最大长度是64K个位,即位图的有效部分最大为8K字节。一个任务实际需要使用的I/O许可位图大小通常要远小于这个数目。 当前任务使用的I/O许可位图存储在当前任务TSS中低端的64K字节内。I/O许可位图总以字节为单位存储,所以位串所含的位数总被认为是8的倍数。从前文中所述的TSS格式可见,TSS内偏移66H的字确定I/O许可位图的开始偏移。由于I/O许可位图最长可达8K字节,所以开始偏移应小于56K,但必须大于等于104,因为TSS中前104字节为TSS的固定格式,用于保存任务的状态。 1.I/O访问许可检查细节保护模式下处理器在执行I/O指令时进行许可检查的细节如下所示。 (1)若CPL<=IOPL,则直接转步骤(8);(2)取得I/O位图开始偏移;(3)计算I/O地址对应位所在字节在I/O许可位图内的偏移;(4)计算位偏移以形成屏蔽码值,即计算I/O地址对应位在字节中的第几位;(5)把字节偏移加上位图开始偏移,再加1,所得值与TSS界限比较,若越界,则产生出错码为0的通用保护故障;(6)若不越界,则从位图中读对应字节及下一个字节;(7)把读出的两个字节与屏蔽码进行与运算,若结果不为0表示检查未通过,则产生出错码为0的通用保护故障;(8)进行I/O访问。设某一任务的TSS段如下: TSSSEG                  SEGMENT PARA USE16                        TSS     <>             ;TSS低端固定格式部分                        DB      8 DUP(0)       ;对应I/O端口00H—3FH                        DB      10000000B      ;对应I/O端口40H—47H                        DB      01100000B      ;对用I/O端口48H—4FH                        DB      8182 DUP(0ffH) ;对应I/O端口50H—0FFFFH                        DB      0FFH           ;位图结束字节TSSLen                  =       $TSSSEG                  ENDS 再假设IOPL=1,CPL=3。那么如下I/O指令有些能正常执行,有些会引起通用保护异常:                         in      al,21h  ;(1)正常执行                        in      al,47h  ;(2)引起异常                        out     20h,al  ;(3)正常实行                        out     4eh,al  ;(4)引起异常                        in      al,20h  ;(5)正常执行                        out     20h,eax ;(6)正常执行                        out     4ch,ax  ;(7)引起异常                        in      ax,46h  ;(8)引起异常                        in      eax,42h ;(9)正常执行 由上述I/O许可检查的细节可见,不论是否必要,当进行许可位检查时,80386总是从I/O许可位图中读取两个字节。目的是为了尽快地执行I/O许可检查。一方面,常常要读取I/O许可位图的两个字节。例如,上面的第(8)条指令要对I/O位图中的两个位进行检查,其低位是某个字节的最高位,高位是下一个字节的最低位。可见即使只要检查两个位,也可能需要读取两个字节。另一方面,最多检查四个连续的位,即最多也只需读取两个字节。所以每次要读取两个字节。这也是在判别是否越界时再加1的原因。为此,为了避免在读取I/O许可位图的最高字节时产生越界,必须在I/O许可位图的最后填加一个全1的字节,即0FFH。此全1的字节应填加在最后一个位图字节之后,TSS界限范围之前,即让填加的全1字节在TSS界限之内。 I/O许可位图开始偏移加8K所得的值与TSS界限值二者中较小的值决定I/O许可位图的末端。当TSS的界限大于I/O许可位图开始偏移加8K时,I/O许可位图的有效部分就有8K字节,I/O许可检查全部根据全部根据该位图进行。当TSS的界限不大于I/O许可位图开始偏移加8K时,I/O许可位图有效部分就不到8K字节,于是对较小I/O地址访问的许可检查根据位图进行,而对较大I/O地址访问的许可检查总被认为不可访问而引起通用保护故障。因为这时会发生字节越界而引起通用保护异常,所以在这种情况下,可认为不足的I/O许可位图的高端部分全为1。利用这个特点,可大大节约TSS中I/O许可位图占用的存储单元,也就大大减小了TSS段的长度。 <二>重要标志保护输入输出的保护与存储在标志寄存器EFLAGS中的IOPL密切相关,显然不能允许随便地改变IOPL,否则就不能有效地实现输入输出保护。类似地,对EFLAGS中的IF位也必须加以保护,否则CLI和STI作为敏感指令对待是无意义的。此外,EFLAGS中的VM位决定着处理器是否按虚拟8086方式工作。 80386对EFLAGS中的这三个字段的处理比较特殊,只有在较高特权级执行的程序才能执行IRET、POPF、CLI和STI等指令改变它们。下表列出了不同特权级下对这三个字段的处理情况。 不同特权级对标志寄存器特殊字段的处理 特权级 VM标志字段 IOPL标志字段 IF标志字段 CPL=0 可变(初POPF指令外) 可变 可变 0  不变 不变 可变 CPL>IOPL 不变 不变 不变 从表中可见,只有在特权级0执行的程序才可以修改IOPL位及VM位;只能由相对于IOPL同级或更内层特权级执行的程序才可以修改IF位。与CLI和STI指令不同,在特权级不满足上述条件的情况下,当执行POPF指令和IRET指令时,如果试图修改这些字段中的任何一个字段,并不引起异常,但试图要修改的字段也未被修改,也不给出任何特别的信息。此外,指令POPF总不能改变VM位,而PUSHF指令所压入的标志中的VM位总为0。 <三>演示输入输出保护的实例(实例九)下面给出一个用于演示输入输出保护的实例。演示内容包括:I/O许可位图的作用、I/O敏感指令引起的异常和特权指令引起的异常;使用段间调用指令CALL通过任务门调用任务,实现任务嵌套。 1.演示步骤实例演示的内容比较丰富,具体演示步骤如下:(1)在实模式下做必要准备后,切换到保护模式;(2)进入保护模式的临时代码段后,把演示任务的TSS段描述符装入TR,并设置演示任务的堆栈;(3)进入演示代码段,演示代码段的特权级是0;(4)通过任务门调用测试任务1。测试任务1能够顺利进行;(5)通过任务门调用测试任务2。测试任务2演示由于违反I/O许可位图规定而导致通用保护异常;(6)通过任务门调用测试任务3。测试任务3演示I/O敏感指令如何引起通用保护异常;(7)通过任务门调用测试任务4。测试任务4演示特权指令如何引起通用保护异常;(8)从演示代码转临时代码,准备返回实模式;(9)返回实模式,并作结束处理。

    标签: 汇编 保护模式 教程

    上传时间: 2013-12-11

    上传用户:nunnzhy

  • 基于多点网络的水厂自动监控系统设计

    基于多点网络的水厂自动监控系统设计Design of MPI Based Automatic Monitoring and Control System in Water Works刘 美 俊(湖南工程学院,湘潭411101)摘要针对水厂工作水泵多、现场离控制站距离远的特点,提出了一种基于MPI多点网络的自动监控系统的设计方法,分析了系统的工作原理,介绍了系统中数据的采集与处理、主站与从站的通信原理以及系统软件的设计。由于这种系统的主、从站PLC之间采用MPI网络通信,具有运行可靠、性能价格比高的特点,所以适用于中小规模水厂的分布式监控场合。关键词多点网络主站从站监控系统Abstract Ina ccordancew ithth efe atuersof w aterw orks,i. e. ,manyp umpsin o perationa ndth ep umps, farfor mt hec ontrolst ation,th em ethodo fdesigninga na utomati(〕monitoringa ndc ontorlsy stemb asedo nM PIis p resented.Th eo perationalpr incipleo fth esy stemi san alyzed,th ed atac olection,data processing; communication between master station and slave station as wel as design and system software are discussed. Because MPI network communicationis used among master station, slave stations and PLC, the system is reliable and high cost-efective. It is, suitable for smal and mediumsized water works for distrbuted monitoring and control.Keywords MPI Masterst ation Slaves tation Monitoringa ndc ontorlsy stem 自来 水 厂 的自动控制系统一般分为两大部分,一对组态硬件要求较高,投资较大。相对而言,MPI网是水源地深水泵的工作控制,一是水厂区变频恒压供络速度可达187.5 M bps,通过一级中继器传输距离可水控制,两部分的实际距离通常都比较远。某厂水源达Ikm 。根据水厂的具体情况,确定以MPI方式组地有3台深井泵给水厂区的蓄水池供水。水厂区的成网络,主站PLC为S7-300系列的CPU3121FM,从任务是对水池的水进行消毒处理后,通过加压泵向管站为S7-200系列的CPU222。这样既满足了系统要路恒压供水。选用Siemens公司的S7系列可编程控求,又相对于Profibus网络节省了三分之一的成本,制器(PLC)和上位机组成实时数据采集和监控系统, 这种分布式监控系统具有较高的性能价格比。系统对深水泵进行远程控制,对供水泵采用变频器进行恒中PLC的物理层采用RS - 485接口,网络延伸选用压控制以保证整个水厂的电机设备安全、可靠地运带防雷保护的中继器,使系统的安全运行得到了保行。证。MPI网络的拓扑结构如图1所示。1 多点网络(NWI)监控系统的组成Sie me ns 公司S7系列PLC通常有MP」多点网络与Profibus现场总线网络两种组网方式。Profibus现场总线的应用目前较为普遍,通用性较好,它由Profibus一DP, Profibus一FMS, Profibus一PA组成。Profibus - DP型用于分散外设间的数据传输,传输速率为9.6kbps一12Mbps,主要用于现场控制器与分散1/0之间的通信,可满足交直流调速系统快速响应的时间要求,特别适合于加工自动化领域的应用;Profibus - FMS主要解决车间级通信问题,完成中等传输速度的循环或非循环数据交换任务,适用于纺织、楼宇自动化、可编程控制器、低压开关等;Profibus - PA型采用了OSI模型的物理层和数据链路层,适用于过程自动化的总线类型。

    标签: 多点 网络 系统设计 自动监控

    上传时间: 2013-10-09

    上传用户:fac1003

  • 跟我学单片机教程(实验与指令教程)

    :单片机是一门实践性非常强的学科,为此我们突破传统思路,全面围绕单片机试验,从简单的流水灯开始, 逐步的带领大家从这些简单的几行或者10几行的程序,来熟悉和理解单片机的指令。学指令 制作单片机教程之通过实验学指令...未经许可不得转载!通过实验学指令之1把所有端口的同时置高置低,不断闪烁通过实验学指令之2p1 口3 路流水灯理解2 进制数与端口的关系通过实验学指令之3 单片机的加法:把52h+0fch 结果送p1 口通过实验学指令之4 单片机的乘法:把ff*03h 结果送p1通过实验学指令之5 单片机的二进制加法 通过实验学指令之6 单片机的两位计数器通过实验学指令之7 学习单片机的逻辑运算 通过实验学指令之8 进一步学习单片机的逻辑运算通过实验学指令之9 循环移位指令的流水灯 通过实验学指令之10 理解熟悉散转结构的程序通过实验学指令之11 位操作指令的学习 通过实验学指令之12 比较指令的学习与cy 位通过实验学指令之13 该程序的功能是小喇叭1khz信号通过实验学指令之14按p3.510 次p1 口led 按照2进制加1通过实验学指令之15 使用定时器实现长时间的延时。通过实验学指令之16 中断的响应,p3.3 的小喇叭1khz 输出通过实验学指令之17p3.2的键盘数码管显示0 通过实验学指令之18 中断的响应,两级中断嵌套通过实验学指令之19顺序程序的结构通过实验学指令之20p1 口的led 闪烁10 次后停止子程序的嵌套

    标签: 单片机教程 实验 指令 教程

    上传时间: 2013-10-11

    上传用户:dragonhaixm

  • fpgasopc入门级实验指导书

    fpgasopc入门级实验指导书

    标签: fpgasopc 入门级 实验指导书

    上传时间: 2013-10-18

    上传用户:zhengzg

  • MIMO中继系统中预编码的级联算法

    在两跳MIMO中继通信系统的预编码相关研究中,提出了一种级联预编码算法,该算法把两跳系统的预编码分解成两个独立的部分,从而把预编码问题转化成为求源节点到中继节点的预编码过程以及中继节点到目的节点的过程。本文使用MMSE准则,在简化迭代算法复杂度的同时,与一种只在中继节点进行联合优化的算法进行比较,由仿真可以看出,本文算法有一定的性能提升。

    标签: MIMO 中继系统 预编码 级联

    上传时间: 2013-11-12

    上传用户:xiaoyuer

  • 运营商级的eoc单芯片接入解决方案

    新一代运营商级的EOC单芯片接入解决方案。

    标签: eoc 单芯片 方案

    上传时间: 2014-12-29

    上传用户:qazxsw

  • 自己动手制作红外线探测防盗器

    工作原理            该装置电路原理见图1。由红外线传感器、信号放大电路、电压比较器、延时电路和音响报警电路等组成。红外线探测传感器IC1探测到前方人体辐射出的红外线信号时,由IC1的②脚输出微弱的电信号,经三极管VT1等组成第一级放大电路放大,再通过C2输入到运算放大器IC2中进行高增益、低噪声放大,此时由 IC2①脚输出的信号已足够强。IC3作电压比较器,它的第⑤脚由R10、VD1提供基准电压,当IC2①脚输出的信号电压到达IC3的⑥脚时,两个输入端的电压进行比较, 此时IC3的⑦脚由原来的高电平变为低电平。IC4为报警延时电路,R14和C6组成延时电路,其时间约为1分钟。当IC3的⑦脚变为低电平时,C6通过VD2放电,此时IC4的②脚变为低电平它与IC4的③脚基准电压进行比较,当它低于其基准电压时,IC4的①脚变为高电平,VT2 导通,讯响器BL通电发出报警声。人体的红外线信号消失后,IC3的⑦脚又恢复高电平输出,此时VD2截止。由于C6两端的电压不能突变, 故通过R14向 C6缓慢充电,当C6两端的电压高于其基准电压时,IC4的①脚才变为低电平,时间约为1分钟,即持续1分钟报警。

    标签: 自己动手 红外线 探测 防盗器

    上传时间: 2013-12-19

    上传用户:Breathe0125

  • ATCA架构中多网口后板的高效设计

    介绍了多网口后板(RTM)的普通设计方案,提出了优化解决方案,并从软、硬件方面进行了比较,并且描述了新方案在卸载CPU负荷、防止“中断风暴”等方面的创新性设计。

    标签: ATCA 架构 多网口

    上传时间: 2013-12-25

    上传用户:gxm2052

  • 交换机的堆叠与级连分析

    级连扩展模式是最常规,最直接的一种扩展方式,一些构建较早的网络,都使用了集线器(HUB)作为级连的设备。因为当时集线器已经相当昂贵了,多数企业不可能选择交换机作为级连设备。

    标签: 交换机 堆叠

    上传时间: 2013-10-18

    上传用户:pkkkkp

  • 空间行波管慢波结构及注波互作用模拟设计

    设计了Ka波段螺旋线行波管的慢波结构,分析其色散特性曲线和耦合阻抗,对高频系统进行了优化;利用PIC粒子模拟得到在工作频带内饱和输出功率>73.5 W,增益畸变<2%,并对试制样管进行了试验,测得在工作频带内输出功率>45 W,电子效率>12.5%,采用4级降压收集极后总效率大于40%,最后对模拟结果和实测结果的差异原因进行了简单分析。

    标签: 行波管 慢波 模拟设计

    上传时间: 2013-12-14

    上传用户:米米阳123