论述计算机与外设的访问控制方法,外设访问控制方法、装置与系统

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并不作为对本发明的限定。

本发明实施例提供一种外设访问控制方法、装置与系统。本实施例的处理器连接多个不同速率的外设,通过实时监测外设的工作状态来控制处理器对外设的访问:当外设正在进行一项读/写操作时,禁止处理器发出下一操作命令;当外设完成了一项操作时,允许处理器发出下一操作命令。这种方式能够提高处理器对多种不同速率外设的访问效率。以下结合附图对本发明具体实施方式进行详细说明。

图1为本发明实施例的系统原理图。如图1所示,本发明实施例的系统包括处理器10、与所述处理器10连接的多个外设20以及连接所述处理器10和所述多个外设20的外设访问控制装置30。所述外设访问控制装置30包括:控制信号接收单元301,用于接收所述处理器发出的控制信号;外设信号接收单元302,用于接收所述外设发出的响应信号;处理器控制单元303,用于当所述控制信号为对所述外设的操作命令时,禁止所述处理器发出下一操作命令;当所述响应信号为操作完成信号时,允许所述处理器发出下一操作命令。

在本实施例的一具体实施方式中,处理器控制单元303通过设置处理器10的访问控制管脚来禁止或允许所述处理器10发出下一操作命令。访问控制管脚因处理器类型的不同而有所区别。如,PowerPc处理器中的的UPMWAIT就可以实现对外设的访问控制。在PowerPC发起的一次读/写操作时,该管脚有效时UPM的控制总线状态保持不变(UPM状态锁定),此时将维持该外设当前的工作状态,处理器不会对其发起下一次操作命令;直到UPMWAIT无效时这种保持不变的状态才解除(UPM状态解除),此时处理器可以继续对该外设发起下一次操作命令。

在本实施例的又一具体实施方式中,外设的操作完成信号为READY信号。大多数的芯片在接到处理器(CPU)通过控制总线发出的命令准备进行某项操作或已完成某项操作的时候,都会给出一个READY信号,表示自身已经准备好进行CPU所要求的操作或已经完成CPU所要求的操作。如DSP的HRDY信号。各个芯片对这个信号的命名不同,读和写过程中READY信号发出的阶段和意义也可能有区别,但其主要功能都是一样的。

对于无法给出READY信号的低速芯片,本发明实施例的外设访问控制装置30的处理器控制单元303还用于在一等待时间内没有收到所述外设20的响应信号(如READY信号)时,认为其已处理完该操作,此时允许处理器10发出下一操作命令。为了适应不同速率的外设,该外设访问控制装置30还包括:超时等待设置单元(图中未示),用于根据不同外设的接口速率分别设置不同的等待时间。

图2为本发明实施例的外设访问控制方法流程图。如图2所示:

步骤S201,外设访问控制装置30接收处理器发出的控制信号;

步骤S202,外设访问控制装置30分析接收到的控制信号,判断是否有对外设的片选信号以及读/写操作命令;如果是则进入步骤S203,如果否则返回步骤S201继续接收处理器的控制信号;

步骤S203,如果接收到了对外设的操作命令,则设置处理器的访问控制管脚(如将UPM总线的UPMWAIT管脚设置为有效)使控制总线的状态保持不变,以维持该外设当前的工作状态,禁止处理器发出下一操作命令;

步骤S204,接收外设的响应信号,如READY信号,该响应信号可以提供外设对处理器发出的操作命令的执行状态,接收到READY信号表明外设已经准备好执行该操作或者表明外设已经完成该操作,对不同的外设类型还可能有其他类型的响应信号;

步骤S205,判断是否接收到了外设的操作完成信号,如果收到则进入步骤S207,如果没有收到则进入步骤S206;

步骤S206,如果没有收到响应信号则有可能是该芯片无法提供响应信号,这时为该芯片设置一个等待时间,判断是否到达预设的等待时间;如果到达则进入步骤S207;如果没有则继续返回步骤S204接收外设返回的响应信号;

步骤S207,如果到达预设的等待时间,则判断外设已经完成了该操作,此时允许处理器访问所述外设,即允许处理器对外设发出下一个操作命令。

下面以一个实际的例子来详细说明本发明实施例的具体实现方式。

图3为本发明实施访问控制系统的实际原理图。如图3所示,本实施例的处理器为PowerPc,外设访问控制装置为CPLD,通过在CPLD中构建状态机来实现CPLD的逻辑功能。外设D1、D2以及Dn的READY信号分别引入CPLD,经过CPLD中的状态机判断,在适当的时候输出UPMWAIT信号,对PowerPCUPM总线的UPMWAIT信号进行控制,以实现对不同速率外围设备进行访问时提高访问效率的目的。

图3中PowerPC的UPM总线的控制总线分别与CPLD及所需操作的各个外设芯片相连,这样CPLD和各个外围芯片均能接收到来自PowerPC发出的控制命令。而PowerPC的数据总线和地址总线与各外围芯片连接,满足外围芯片时序要求的情况下,配合控制总线,可将想要写的数据写入外围芯片特定的地址上去或从外围芯片上指定的地址读出想要的值。

图4为本发明实施例在CPLD中所构建的状态机示意图。图4中的状态机分别对读和写的过程进行了控制,可以在CPLD中用硬件描述语言编程实现。以读过程的状态机为例:在没有接到控制指令时状态机保持在IDLE状态下,当CPLD接到读或写的命令后分别进入相应的状态。在接到读的命令后,即进入Read_wait状态,等待设定的时间A,在这段时间中,如果所等待的芯片的READY信号到来,便立即进入Read_nop状态,进行读操作,而当读操作完成,READY信号消失时,进入Read_out状态。在Read_out状态无其他触发条件,经过等待时间C后回到IDLE状态。状态机就经过了一次完整的读流程。

为避免异常状态的出现,需做好逃脱处理,各个状态均设置有等待时间,在等待超时后不管是否有触发条件产生,均进入超时所触发的下一状态,避免状态机在同一状态中一直停滞。如在Read_wait和Read_nop状态等待超过设定时间,均会自动转换到下一状态。

在整个状态机中,UPMWAIT在状态机进入OUT状态(如图4的Read_out或Write_out状态)的时候UPMWAIT管脚无效,UPM状态解除,允许进行下一次访问操作;而在状态机其他状态时UPMWAIT管脚有效,UPM状态锁定,保持当前的操作状态不变。

当对高速设备进行读写操作的时候,高速设备能很快的准备好进行操作或很快的完成操作,发出READY信号,状态机接到READY信号的时候就立即进入下一状态,很快的到达Read_out状态,这时候释放UPMWAIT信号,回到IDLE状态,PowerPC的UPMWAIT信号解除,可以发出下一操作命令,这时就可以继续对外设进行高速的访问,保证了访问的效率。

同样,在低速设备进行访问的时候,由于其处理速率相对较慢,READY信号会过比较久的时间才到来,这时候UPMWAIT信号保持有效,PowerPC发出的命令不会消失,直到等设备完成操作发出READY信号使得状态机进入OUT状态,这时UPMWAIT信号才消失,允许PowerPC发出下一指令。这样就动态的降低了访问速率来满足低速设备的时序要求。达到了对各种速率设备访问都保持较高的访问效率的目的。

芯片在读操作和写操作的时序上可能会在不同的阶段给出READY信号,不同的芯片在时序上也有差别。可以根据具体需要在UPM总线上使用的芯片的时序要求,增加或减少状态机状态数,改变各个状态的等待时间来满足不同的时序要求。对于无法给出READY信号的低速芯片也可以计算等待时间,以等待超时退出来满足其时序要求。

本发明实施例对于多个不同速率外围芯片在UPM总线下访问效率不高的问题提出了一种设计方案。通过利用需要控制的外围芯片的READY信号对UPM总线的UPMWAIT功能进行控制,达到动态调节访问速率从而提高访问效率的目的。具体实施步骤如下:

步骤一:在画硬件原理图的阶段,将各外围芯片连接至UPM总线下,包括数据总线、地址总线和控制总线,并将外围芯片的READY信号管脚分别引入CPLD的各个I/O管脚,将PowerPC的UPMWAIT管脚与CPLD的一根I/O管脚相连。使得CPLD可以对这些信号进行处理。

步骤二:根据各个外围芯片的芯片资料所规定的时序关系和相关技术参数,规划好状态机的各个状态及等待时间,然后用硬件描述语言实现所设计的状态机,烧写入CPLD。

步骤三:调试生成的板卡,保证各速率的外围芯片能被正确访问。测试访问效率能否达到希望的状态。如存在问题,可重复步骤二,分析存在的问题后对状态机进行修改后重新进行测试。

除PowerPC外,其他CPU也有类似UPMWAIT功能的应答信号,均可通过本发明实施例的状态机实现对多个外部芯片进行高效的访问控制,如ARM内核处理器S3C2410的总线控制器部分中的nWAIT引脚,IDT的79RC323系列MIPS内核通信芯片的WAITACKN的引脚等,这些替代的实施方式均在权利要求保护范围之内。

本发明实施例的方法通过实时监测外设的工作状态来控制所述处理器对多个外设的访问,解决了系统总线对多个不同速率外设进行访问时效率不高的问题。当系统总线下接有多个不同速率的外设时,处理器在接收到当前访问的外设发送的操作完成信号时即发起下一次操作命令,这种处理方式使处理器对高速率外设采用较高的访问速率,对低速率外设采用较低的访问速率,使访问速率能够根据外设速率进行动态调节,在系统总线连接有多个不同速率的外设时能够保持较高的访问效率。

本发明实施例可以通过利用PowerPC的UPMWAIT功能来实现对不同速率的外围设备的支持,达到提高访问效率的目的。因为UPM总线可由用户自定义总线的控制时序的特性,所使用的范围很广。只要用到了UPM总线,并对多个设备进行操作都可以适用本发明,提高对外围芯片的访问效率和UPM总线的利用率。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
单片机控制和PLC控制是工业自动化中常见的两种控制方式。虽然这两种方式都可以实现自动化控制,但是它们之间还是存在一些区别的。 1. 编程语言 单片机控制使用的编程语言主要是汇编语言和C语言,需要程序员进行手动编写和调试。而PLC控制则使用的是Ladder Diagram(梯形图)语言或其他类似于图形化编程语言,程序员只需要进行逻辑图的绘制,就可以完成程序的编写。 2. 硬件结构 单片机控制通常使用的是微型计算机,通常需要外接各种传感器、执行机构、数码管等外设;而PLC控制则是由中央处理器、输入输出模块和电源模块等组成的模块化结构,可以直接连接各种工业设备。 3. 可靠性 PLC控制在工业环境下使用较为常见,其硬件设计和软件开发都更加注重可靠性,因此其稳定性较高。而单片机控制的可靠性则取决于程序员的编程经验和对硬件的了解程度。 4. 系统复杂度 由于PLC控制使用的是图形化编程语言,所以对于较为复杂的控制系统,PLC控制可以更加方便的实现。而单片机控制则需要程序员针对不同的硬件进行手动编写和调试,因此对于复杂的系统,编程难度和调试难度都比较大。 5. 适用场景 单片机控制通常适用于一些较小的自动化系统或者只需要简单控制系统。而PLC控制则适用于工业环境下的自动化系统,特别是需要高可靠性、高稳定性和较高控制精度的系统。 总体来说,单片机控制和PLC控制各有优缺点,需要根据具体的应用场景来选择适合的控制方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值