AT91RM9200 PIO中断在短波通信系统中的应用

2010-07-13 06:01卢洲白
电子设计工程 2010年2期
关键词:服务程序寄存器电平

卢洲白

(广州海格通信集团股份有限公司,广东 广州 510663)

短波通信作为一种应急保障通信手段,在现代通信系统中具有不可替代的作用,在军事、海事、矿山、人防等领域发挥重要作用。随着现代短波无线通信设备的集成度和复杂度越高,实现的业务功能就越多,如GPS、短信、电子邮件等,因此,设备控制器往往需同时处理多种业务功能的发送请求信号PTT(Press to Talk),并为之分配信道占用时间,确保各种业务依据其优先级即时获得信道使用权。

PTT信号具有高实时性的要求,需要即时响应,因此,在系统设计时,需要利用MCU的中断处理机制满足PTT信号的要求。这里选用AT91RM9200型微处理器作为系统控制器核心,可通过并行IO控制器PIO (Parallel IO Controller)将128个复用IO口配置为中断输入[1],大大提高系统的扩展能力。详细分析PIO中断的处理流程,并给出系统设计中针对脉冲中断信号的二次响应问题的优化解决方案。

1 系统介绍

短波通信系统PTT处理部分简化框图如图1所示。

AT91RM9200提供 7个专用中断信号 (IRQ0~IRQ6),均被集成外设占用,为满足PTT信号的实时处理要求,PIO控制器将IO口配置为中断输入引脚。FPGA处理4路发送请求信号, 即 PTT_A,PTT_B,PTT_C,PTT_D。PTT信号发生变化时,FPGA产生一个负脉冲中断信号PTT_INT通知 MCU,MCU通过数据/地址总线读取PTT状态并进行处理。

2 中断处理过程

2.1 概述

图2为AT91RM9200中断级联结构[2-3]。图3为PIO信号和控制框图。

图2 中断级联结构图

根据图3所示,当边沿检测器(EDGE DETECTOR)检测到IO口上电平变化,PIO_ISR寄存器对应位置1,PIO_ISR状态决定PIO_INT信号是否有效。中断服务程序读PIO_ISR后所有位自动清零,同时,PIO_INT信号也无效。中断处理流程如图4所示[4]。

2.2 脉冲中断信号的二次响应

对于外设(FPGA或专用IC)产生的中断信号来说,一般都是一个负脉冲信号,具有下降和上升2个边沿[5]。PIO端口线作为中断输入时,根据检测2个采样周期内的电平差实现,端口线上的任何电平变化都会产生中断,所以,当接收到负脉冲中断信号时,则产生2次中断请求,图5是其处理流程。

2.3 解决方案

一般可采用软件查询的方法解决脉冲中断信号的二次响应。中断服务程序读取PIO_ISR后,通过寄存器PIO_PDSR判断PB28端口线上当前电平是1还是0,以确定是否处理。但采用这种方法仍会进入中断服务程序2次,造成较大的系统开销,影响系统实时性。因此,在深入分析系统硬件结构的基础上,给出以下2种优化解决方案。

图3 PIO信号和控制框图

图4 中断处理流程

图5 脉冲中断信号二次响应示意图

1)延时读取中断状态寄存器 如图6所示,系统进入中断服务程序[6]后延时至T3时刻读取PIO_ISR,晚于负脉冲信号上升沿到达时间,则2次电平变化只产生一次中断响应。

图6 延时读取PIO_ISR流程示意图

2)调整检测时钟 PIO通过PMC产生的高速时钟检测PIO端口线上电平变化,通过调整PIO检测时钟至满足W>T>W/2,其中,W为负脉冲宽度,T为采样时钟周期,可解决脉冲中断信号的二次响应问题。

如图7所示,调整检测时钟周期,使负脉冲的低电平阶段只有一个采样点,在3个上升沿检测到电平为1→0→1。此时对检测时钟的要求为:T>W/2。如果继续加大检测时钟周期,使之大于负脉冲宽度,则可能检测不到电平变化。所以,检测时钟周期要求T<W。

图7 调整PIO检测时钟后时序

2.4 实验结果

系统中FPGA产生的脉冲中断信号宽度为200 ns,AT91RM9200主时钟频率为59 MHz,PIO检测时钟与主时钟频率相同为59 MHz。

采用延时读取ISR方法,在中断服务程序中延时20个主时钟周期(320 ns)后,读寄存器PIO_ISR,成功实现单次响应脉冲中断信号,符合设计要求。

采用调整检测时钟的方法,将检测时钟调整为8 MHz,满足W>T>W/2要求,成功实现单次响应脉冲中断信号,符合设计要求,验证理论分析的正确性。

2.5 需要注意的问题

1)软件查询法原理较简单,但仍会2次进入中断服务程序,占用一定的系统资源;

2)延时读取ISR的方法适应能力较强,可通过软件代码的处理适应不同的系统;

3)调整PIO电平检测时钟的方法由于需要对比外设中断信号时钟频率和AT91RM9200电平检测时钟频率关系,不一定在所有外设上都能够实现需要的频率对比关系,应用范围受到一定限制。

3 结束语

AT91RM9200通过配置PIO引脚为中断信号输入来提供较强的系统扩展能力。PIO中断的检测采用连续时钟检测电平变化的方式实现。在处理脉冲形式中断信号时会由于中断二次响应问题产生较大的系统开销,降低系统的实时性[7]。

通过深入分析系统硬件结构和中断处理流程,将软硬件特性相结合进行设计,创新性地提出了延时读取中断状态寄存器和调整检测时钟2种优化解决方案,成功避免了脉冲中断二次响应的问题,并在软件查询方法的基础上大幅降低系统中断服务的开销,确保满足短波无线通信系统业务功能的实时性要求。

[1]Atmel Corporation.AT91RM9200 datasheet[DB/OL].(2006)[2009-05-04].http://www.atmel.com/dyn/resources/prod_documents/doc1768.pdf.

[2]ARM Limited.ARM920T techincal reference manual[DB/OL].(2001)[2009-05-04].http://infocenter.arm.com/help/topic/com.arm.doc.ddi0151c/ARM920T_TRM1_S.pdf.

[3]ARM Limited.ARM architecture reference manual[DB/OL].(2000)[2009-05-04].http://infocenter.arm.com/help/index.jsp.

[4]杜春雷.ARM体系架构与编程[M].北京:清华大学出版社,2003.

[5]周佩玲,吴耿锋,万炳奎.16位微型计算机原理·接口及其应用[M].合肥:中国科学技术大学出版社,2001.

[6]Wind River Systems,Inc.VxWorks BSP developer’s guide 5.5[DB/OL].(2002)[2009-05-04].https://support.windriver.com.

[7]汪建敏.基于LPC2132的电参数采集平台设计[J].陕西电力,2009,37(1):32-35.

猜你喜欢
服务程序寄存器电平
STM32和51单片机寄存器映射原理异同分析
SylixOS系统的中断嵌套机制研究与实现
基于C#的进程守护程序的设计
Lite寄存器模型的设计与实现
UDP穿透NAT技术实现数据唤醒车联网T-Box设备的方案
NPC五电平Z源逆变器的设计研究
水利工程施工监理服务程序及质量控制
基于三电平光伏并网逆变器控制系统的研究与实践
基于NPC三电平变换器的STATCOM研究
一种多电平逆变器及其并网策略