控制器分组合逻辑控制器和微程序控制器,两种控制器各有长处和短处。组合逻辑控制器设计麻烦,结构复杂,一旦设计完成,就不能再修改或扩充,但它的速度快。微程序控制器设计方便,结构简单,修改或扩充都方便,修改一条机器指令的功能,只需重编所对应的微程序;要增加一条机器指令,只需在控制存储器中增加一段微程序,但是,它是通过执行一段微程。具体对比如下:组合逻辑控制器又称硬布线控制器,由逻辑电路构成,完全靠硬件来实现指令的功能。
运动运动控制器是运动控制系统的***部件。国内的运动控制器大致可以分为3类:类是以单片机等微处理器作为控制***的运动控制器。这类运动控制器速度较慢、精度不高、成本相对较低,只能在一些低速运行和对轨迹要求不高的轮廓运动控制场合应用。第2类是以***芯片(ASIC)作为***处理器的运动控制器,这类运动控制器结构比较简单,大多只能输出脉冲信号,工作于开环控制方式。由于这类控制器不能提供连续插补功能,也没有前馈功能,特别是对于大量的小线段连续运动的场合不能使用这类控制器。第3类是基于PC总线的以DSP或FPGA作为***处理器的开放式运动控制器。这类开放式运动控制器以DSP芯片作为运动控制器的***处理器,以PC机作为信息处理平台,运动控制器以插件形式嵌入PC机,即“PC+运动控制器”的模式。这样的运动控制器具有信息处理能力强,且开放程度高,运动轨迹控制准确,通用性好的特点。但是这种方式存在以下缺点:运动控制卡需要插入计算机主板的PCI或者ISA插槽,因此每个具体应用都必须配置一台PC机作为上位机。这无疑对设备的体积、成本和运行环境都有一定的限制,难以独立运行和小型化。
基本功能数据缓冲:由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;在输入时,缓冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。差错控制:设备控制器还兼管对由I/O设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向 CPU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。数据交换:这是指实现CPU与控制器之间、控制器与设备之间的数据交换。对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中须设置数据寄存器。状态说明:标识和报告设备的状态控制器应记下设备的状态供CPU了解。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当CPU将该寄存器的内容读入后,便可了解该设备的状态。接收和识别命令:CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。例如,磁盘控制器可以接收CPU发来的Read、Write、Format等15条不同的命令,而且有些命令还带有参数;相应地,在磁盘控制器中有多个寄存器和命令译码器等。