S12XD系列中XGATE协处理器的原理及应用
1 概 述
美国Freescale公司在推出S12D系列16位单片机后,再次推出了功能更强大的S12XD系列16位单片机。其中,包括MC9S12XD64、MC9S12XDP512、MC3S12XDT256、MC3S12XDG128等。
在处理多任务技术方面,S12XD系列相对16位的S12D系列更具优势,其表现像32位机一样。S12XD系列仍然保持着原来颇受欢迎的16位S12D系列MCU的低价格、低功耗、卓越的EMC和有效编码长度的优势。
S12XD系列的主要特点是增加了XGATE协处理器。具体来讲,XGATE其实就是一个可用C语言编程的,拥有最优化的数据传输、逻辑以及位操作指令的指令系统。由于在外部模块、RAM和I/O口之间提供了一个高速数据传输通道,其工作频率可达到S12D系列的CPU下载总线频率的2倍。在CPU进行多总线加载数据传输时执行一个中断处理加载的情况下,XGATE就会表现出其优势。
2 XGATE的总体功能及主要特性
2.1 XGATE的总体功能
当前对许多嵌入式系统的一个挑战是在非常短的运行时间内同时执行一系列的重要任务。直接存储器存取模块(DMA)提供的解决方案是,通过硬件控制使数据利用中断源来自动地读或写。但是,这种方案中在等候下个中断到来之前通常DMA只执行读或写指令,其功能就会被限制。在嵌入式系统中,这样的中断事件经常会介入其他的逻辑处理。譬如在把数据移动到最终目的地之前,要介入确认信号或对数据进行修正的处理。因而,一个以DMA支持的中断经常只能做一部分工作,CPU会被预留出一部分来通过中断主程序来完成这些任务。这样,中断处理就使CPU在其他功能的表现方面减弱了。另外,还要有精确的时间要求来保证在系统正常运行的同时来处理复杂的应用程序。
XGATE就是为了提高应用反应速度和减少主CPU的中断负荷而产生的,通过中断程序的执行以达到与CPU同时运行的目的。那么XGATE可以用来做什么呢?XGATE被定位于快速中断处理,可以减少CPU进行中断处理的负荷。
多数嵌入式应用都要求许多中断程序来处理简单的功能,处理器经常以高速率执行任务。通常这些是与接口功能相联系的,如调速控制器控制反馈及系统与其他部分的通信。XGATE就是用来帮助CPU处理这些事件的。
XGATE的一个重要的特点就是它的设置虽然非常简单,但却允许开发复杂程序。XGATE优于一个智能的DMA控制器,因为它提供一个复杂I/O处理的能力。当XGATE与CPU12X核一起使用时,有一些限制需要考虑,但是不会对XGATE所设计的功能产生影响。
XGATE为应用提供了更高级别的中断,通过分担一些服务程序来缩短CPU的工作时间和进程。
2.2 XGATE的主要特性
◆XGATE是一个协处理器,它可以像主CPU一样进入并且控制外围设备;
◆从中断出来后的反应时间短;
◆在进入同一个存储空间前,XGATE要等待主CPU释放这一空间的所有存储器;
◆当用于较短程序时,XGATE可以提供最好的应用方式;
◆XGATE只在运行时消耗电源;
◆XGATE可以实现完成多数通常在主CPU上的功能或者程序,与以前的S12D CPU比较,具有更为强大的处理数据能力。
XGATE很灵活,使用者可以通过这个低功耗的双核处理器为开发创造新的环境。
2.3 XGATE与主CPU的关系
中断控制器硬件产生的中断可以选择由XGATE或者S12XD CPU来处理。XGATE处理的任何中断都会减轻主CPU的中断负荷,并且XGATE完全有能力来处理整个中断。
从图1中可以看到,一个开关中断信号可以指向XGATE或者CPU。如果指向XGATE,它就会执行所要求的程序;当程序完成后,等候下个请求。还能看到有的寄存器可以使XGATE指向一个特殊的中断,并且中断优先权的等级被设置到7个级别当中的一个。如果有2个中断请求同时产生,则处理器就会根据中断级别的高低来判断,最高最重要的中断首先执行。这些中断等级在S12XD CPU和XGATE中是相同的。
评论