SI2X MCU外设协处理器的配置及编程

来源 :电子产品世界 | 被引量 : 0次 | 上传用户:sdwtb
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文扼要介绍了飞思卡尔新一代SI2X 16位MCU的外设协处理器XGATE。着重讨论了XGATE的中断处理机制,以及XGATE与主内核CPUl2X的交互。最后给出了XGATE的典型配置及编程方法。
  关键词:协处理器;XGATE;中断机制;微控制器
  
  与经典的微处理器S12系列相比,飞思卡尔新一代的16位微处理器系列S12X(E)的性能有深化而全面的提升。最重要的是集成了外设协处理器XGATE。它是一个独立于主CPU(CPUl2X)的RISC内核,可作为一个高效的DMA控制器,自治地在外设与RAM之间进行高速的数据传送,和灵活的数据处理;可作为一个单独的算法单元完成某些运算,如通信协议的处理;作为虚拟的外设,用I/o口模拟串行通信口;或对简单的外设进行软件包装以生成功能强大的个性化外设。集成XGATE的目的就是在日益复杂的嵌入式系统中减轻内核CPUl2X的负担,以增强系统的数据吞吐能力。
  
  XGATE基本特性
  
  


  精简指令集内核
  XGATE是一个16位的精简指令集内核,图1为XGATE编程模式。内核拥有8个16位通用寄存器R0~R7,1个程序计数器PC,一个4位的条件码寄存器CCR。其中R0恒为0,可用于对变量的快速清零或置位。R1和R7有额外用途:XGATE响应中断时,硬件将中断向量表中对应通道的1个16位字装载到R1(通常用作数据指针),将暂存指针装载到R7。内核没有完全功能的栈指针,这里的暂存指针只在调用函数时用于局部变量的空间分配。
  
  XGATE指令集
  XGATE共有72条独立的指令。指令时钟最高可达100MHz。XGATE的时钟速度总是CPUl2X总线速度的2倍。XGATE的大部分指令是对通用寄存器的操作,为单周期指令。访问存储器的指令为双周期指令。跳转指令视条件而定可能为1或2个周期。XGATE有一些特殊的位提取及插入的单周期指令,很适合串行通信协议的处理。
  


  
  XGATE访问空间
  S12X的全局存储空间共有8MB,XGATE可以访问其中片内的64KB。这64KB包括2KB的片上外设寄存器,30KB的片上闪存和最大32KB的片内RAM,如图2的XGATE全局地址映射所示。注意XGATE不能访问EEPROM空间或片外资源。XGATE的访问空间完全包含在CPUl2X的访问空间中。地址仲裁的规则使CPUl2X的优先级总高于XGATE。
  嵌入式处理器的代码通常在闪存或ROM中运行,但对于XGATE建议代码放在RAM中运行。原因有二:1)CPUl2X的代码,在闪存中,若XGATE的代码也在闪存中,则增加了总线冲突的概率;2)CPUl2X访问片内RAM时只占用总线带宽的一半,在每个CPU12X的RAM访问周期中,总能让出一个XGATE的RAM访问周期。
  
  事件驱动XGATE线程
  
  XGATE的代码执行是由事件驱动的,这里的事件就是中断,由中断来触发XGATE的运行。没有中断,XGATE不执行任何指令,从而也没有功耗。XGATE的代码就是一组中断服务程序,没有主程序或空闲时的循环程序。XGATE的中断服务程序也称作线程。
  
  互斥信号量
  CPU12X与XGATE之间常用的通信方式是共享资源。由于这两个内核可以独立异步地访问内存及片上外设,就产生了数据完整性的问题。为了保证共享数据的完整性,XGATE集成了8个硬件互斥信号量(Semaphore),用户可以通过硬件信号量来同步两个内核对共享数据的访问。
  


  信号量有3种状态:释放、CPUl2X锁定和XGATE锁定。每个内核在访问共享资源前,应当首先锁定相应的信号量;在访问结束后应当释放相应的信号量。信号量在三种状态之间的转换如下:
  ·信号量锁定
  XGATE以专用的指令SSEM加上一个3位立即数来锁定某个信号量。若锁定成功则XGATE的进位标志C置位,否则C被清零。CPUl2X通过专门的信号量寄存器来锁定信号量。CPUl2X锁定并检查某个信号量的方法可参见下面的C宏定义。
  ·信号量释放
  XGATE以专用的指令CSEM加上一个3位立即数来释放某个信号量。CPUl2X通过专门的信号量寄存器来释放信号量。同样见下面的C宏定义。
  


  值得强调的是,信号量与对应资源之间没有任何硬件上的联系,信号量对资源的保护完全体现在用户的代码中。
  
  


  XGATE的中断
  
  所有MCU中断缺省由CPU12X响应。其中绝大多数中断也可提交XGATE处理。每个中断都有相应的配置寄存器INT_CFGDATAx来配置相应的处理内核及中断优先级。图3是典型的S12X的中断配置及中断响应。其中ILVL[2:0]域定义了中断优先级,优先级对两个内核都有效;RQST域选择中断处理内核。一种典型的应用是置RQST=1,首先将中断提交给XGATE处理。xGATE的中断服务程序处理之后通知CPUl2X,并将处理的结果提交CPUl2X。这样CPUl2X就只需关注于上层的应用控制算法,而与底层硬件密切相关的驱动由XGATE处理,极大地提高了系统的性能。
  
  中断向量表
  图4是XGATE的中断矢量表结构。XGATE的每个中断矢量由2个16位字组成。编程时可用一个指针结构数组来描述整个中断矢量表。数组的每个元素由ISR入口地址和ISR数据指针组成。若某中断配置由XGATE处理,则当该中断发生时硬件将ISR入口地址装载入XGATE的程序计数器PC,将ISR数据指针装载入XGATE的R1。这样XGATE的中断服务程序可以带一个数据指针作为参数。这样,一个显著的好处是,可以只用同一段ISR代码来处理同类的若干个中断。XGATE可以通过这个数据指针来区分及处理不同的对象。
  
  XGATE与CPUl2X的相互中断
  XGATE与CPUl2X之间可相互中断以便同步运行。XGATE有一个特殊的指令SIF,用于向CPUl2X提交中断。通常SIF为XGATE线程的最后一条指令,用以触发CPUl2X中断。缺省情况下XGATE的中断矢量就对应于XGATE所处理的前一中断。故由SIF所触发的CPUl2X的中断服务程序通常不必查询中断源。
  XGATE有8个软件中断源。CPUl2X通过置位或清除XGATE软件触发寄存器(XGSWT)中相应的位来触发或清除这8个中断。值得指出的是:由于XGSWT属于片上外设寄存器,所以XGATE也可以通过XGSWT给自己发出中断。
  
  中断嵌套
  最早推出的XGATE不支持中断嵌套,即只在当前XGATE的线程完成后才能处理别的中断。新的XGATE支持1级中断嵌套,而且,新的XGATE有2套内核寄存器,1套在前台运行,另1套在后台保持被占先前的现场。所以中断过程中没有内核寄存器入栈或出栈。这样2套内核切换的速度很快,仅为2个XGATE的指令周期。
  另外,对应于4到7级中断和1到3级中断分别有XGATE初始暂存指针寄存器XGISP74和XGISP31。与优先级的中断相应时,硬件会将对应的暂存指针寄存器内容装载到XGATE的R7中。
  
  XGATE的启动及初始化
  
  XGATE的启动及初始化并不复杂,典型过程如下:
  ·XGATE代码下载到RAM中。系统复位后,需要将XGATE的代码从闪存下载到RAM中以提高系统运行性能。
  ·将XGATE的中断矢量表起始地址写到XGATE的矢量基地址寄存器XGVBR中。
  ·初始化XGATE的暂存指针。将优先级4到7的中断程序的局部变量起始地址写入寄存器XGISP74将优先级1到3的中断程序的局部变量起始地址写入寄存器XGISP31。
  ·配置中断源。欲将某中断提交给XGATE处理,则将中断配置寄存器的RQST置位;同时可以设置中断配置寄存器ILVL[2:0]域为其配置适当的优先级。
  ·启动XGATE。置XGATE控制寄存器XGMCTL中的XGE位为1以启动XGATE。通常也将XGIE位置1以使能XGATE对CPUl2X的中断。
  
  结语
  
  外设协处理器XGATE显著增强了S12XMCU系统的整体性能。S12X MCU片上几乎所有的外设中断均可交给XGATE处理。XGATE的编程实际就是为XGATE写一组中断服务程序。XGATE的配置和启动也比较方便,主要是恰当地设置几个核心的XGATE寄存器。
其他文献
随着电子设备功能的增多、能源消耗的增加,能效问题在当今和未来都是这一领域最大的挑战。消费者要求电子设备有更多的性能,并希望不增加产品的耗电量,因此需要设计出更低能耗的集成电路,从电源管理集成电路到放大器、接口集成电路到数据转换器,能效都是最热门的话题。能源利用问题将驱动产品创新,设计者将在产品设计中更多的考虑能耗对产品的影响,工程师和设计者将设计出更省电的高性能模拟器件。例如,业界将出现更高速度、
期刊
便携式消费电子产品所面临的一个基本问题是:功能越来越丰富、尺寸越来越小。而电池能量密度的提高速度受限于电池本身的安全性,远远跟不上复杂度不断提高的便携式设备的功耗要求。特别是这些产品功能的融合趋势,例如将拍照、摄像功能、PDA、GPS、MP3等功能集成到手机内部,进一步加剧了这个问题的严重性。由于功能设备大量使用具有数据传输和供电功能的USB接口,因此便携产品的充电器也要求同时具备交流适配器和US
期刊
以航空、航天电连接器为例,在发展具有我国特色电连接器的进程中,航空系统的158厂、航天系统的825厂、693厂、3419厂和镇江接插件二厂等单位都为神舟飞船、嫦娥探月等重点系统工程作出了非凡的贡献,广泛应用于航空、航天、兵器、舰艇、雷达等军事装备系统中接触可靠性要求较高的关键部位。我们可毫不夸张地说:没有具有中国特色的高可靠电连接器,就没有这些扬国威、振民心的系统工程成功。  但我们也要清醒地看到
期刊
之前推动半导体工业进步是两个轮子,一个是特征尺寸不断地缩小,另一个是硅片直径扩大,而且总是以缩小尺寸为优先。但是,CMOS技术中的SiO2基栅介质在经过近40年的不断等比缩小之后,到2002年左右终于达到了极限,即只有1.2纳米,5个硅原子厚度。如果再继续缩小,将导致漏电流迅速增大。这也就是为什么英特尔之前一直推崇CPU以主频高低来分挡,而至奔腾4主频达4GHz后放弃的原因。所以尽管工业界对于45
期刊
能够提高效率及降低成本的高性能功率组件将继续推动技术的发展。电源OEM厂商依赖半导体制造商提供集成度更高的解决方案,从而提高效率、减少组件数目并缩小尺寸。此外,许多功率系统需要复杂的线路及负载性能曲线,故利用纯模拟方案来处理这类问题将愈发困难。功率系统之所以主要属于模拟领域,是因为它们利用固定的无源组件来进行优化,以满足一系列特定的已知线路和负载规范,不过“单纯模拟”方案的局限性已经越来越明显了。
期刊
最近上市的高级轿车中,应用了100个以上的电子工作模块,这些模块构成了典型的ASV(Advanced Safety Vehicle)系统。ASV是实现安全舒适交通生活的关键技术,也是实现智能交通非常重要的技术之一。  未来汽车预计会发展成为一个移动的通信终端,无线电通信是实现这个过程的重要技术。以汽车为中心的通信不但包括车内传感器、监视器和控制器件等电子单元的无线互联,还包括了车与车之间、车与路之
期刊
摘要:介绍了一种基于485总线的温度监控系统的设计与实现。系统采用上位机和下位机设计,下位机通过温度传感器监测温度,与预置温度比较后执行任务;上位机和下位机通过主从应答方式交换数据信息。在上位机端的PC上实现了对多路传感器传来的温度信息入库保存、打印、温度变化历史曲线绘制等功能。  关键词:RS485总线;温度监控;多路传感器;数据库    引言    RS-485,总线由于平衡差分传输的特性,具
期刊
连接器包含的范围非常广泛,涵盖了通讯、消费类电子、航空航天、电力、微电子、汽车、医疗、仪表等各个行业。就通讯行业而言,连接器的发展趋势是高速、高密度、低串扰、低阻抗、零延迟等。目前市场上主流的连接器支持6.25Gbps的传输速率,但在两年以内,市场领导通信设备厂商会研发超过10Gbps的产品,这对连接器提出了更高的要求。再有,目前市场主流连接器密度是每英寸63对差分信号,很快就会发展到每英寸70甚
期刊
TI认为医疗器械在未来几年内的最大变化就是无线连接技术。它包括含远程病人监控在内的不同应用,其中远程病人监控功能将帮助医务人员无需让病人走进医院即可搜集监测其相关信息。无线连接技术与可植入设备的结合将使功能正常的大脑绕过脊椎断开部位直接连接并支配功能正常的四肢。应用无线连接技术可对药物释放系统进行监测、控制和优化。总之,无线连接技术将使医疗器械与决策者之间做到信息共享。可植入设备是另一个增长领域。
期刊
摘要:介绍了一种以SG3525A为主控芯片的车载逆变器的设计,该逆变电源工作效率高、实用、可靠。  关键词:SG3525A;逆变;脉宽调制      引言    随着经济水平的提高,汽车正逐渐成为人们的日常交通工具。然而人们随身携带的家用电器比如手机却不能与汽车上的电源电压相匹配,因此开发一款经济实用的车载逆变器成为一种需求。  本逆变器设计输入电源取自汽车的点烟器(12VDC),输出为工频方波交
期刊