基于Nios II软核的卫星地球站ODU监控终端设计

2011-04-26 02:32杨仕东黄建国
中国测试 2011年2期
关键词:寄存器中断按键

杨仕东,黄建国,李 力

(电子科技大学自动化工程学院,四川 成都 611731)

0 引 言

由于经纬度与海拔关系,卫星通信地球站ODU基本设置因地而异,气象条件也会影响信号接收(或发送)质量,若设备需要在不同的频段使用,那更是需要不一致的发射与接收频点。如果各个地区的地球站都采用订制生产的方式,不仅耗费极大人力财力,也对其维护带来极大的困难。所以ODU的工作状态应是可调控的。为了对ODU的工作状态进行设置,该文设计了此终端[1]。

通过在FPGA中嵌入Nios II软核来处理数据,控制不同模块的动作。相对于其他的处理器,Nios II软核主要有以下3个优势:(1)灵活性。通过将CPU、外设、存储器接口和定制硬件外设进行组合,达到每一新设计的特殊要求。(2)低成本。通过将Nios II嵌入到低成本的cyclone II FPGA中,此时FPGA不仅可以具有诸如Intel,ARM等处理器的功能,还可以完成系统逻辑设计的任务。(3)功能强大的开发工具。通过Quartus II中的SOPC Builder可以在几分钟内搭建一个系统,通过使用Nios II集成开发环境(IDE),加速了软件的开发。

1 系统总体设计

系统总体结构如图1所示,Nios II控制模块作为该设计的核心模块,控制着系统的各个模块的动作;通信模块完成ODU与监控终端的通信,实现两者之间的数据交换;人机界面完成对ODU工作状态的相关参数的设置和显示;故障判断是对通信控制模块读回的数据进行判断后定位ODU的故障位置。

2 Nios II控制模块

Nios II处理器具有完善的开发软件,Quartus开发软件中提供的SOPC Builder开发工具,设计人员使用它生成Nios II处理器。然后根据需要,从SOPC Builder的通用外设和接口库中添加设备,而且可以利用软件中的用户逻辑接口向导,将自制的外设添加在Nios II处理器系统中,给其分配地址空间、DMA、中断等资源并生成相应的硬件驱动模块。能直接向应用程序提供可使用的接口,配置完成后通过Generate进行系统模块的生成,并同时自动产生每个模块的HDL文件和一些必要的逻辑来协调系统中各部件的工作。

图1 系统总体结构框图

Nios II控制模块完成以下功能:

(1)识别按键模块的按键信息。输入端口向Nios II CPU核发出中断请求后,CPU核响应中断请求后接受按键模块送来的按键值。

(2)根据按键值进行相应的操作。例如,使能通信模块发送不同的数据。

(3)完成参数的计算。通信模块传递过来的部分数据需经过计算后才能进行显示和修改。

2.1 Nios II系统硬件设计

该文在SOPC Builder中主要添加了以下组件:

2.1.1 Nios II CPU核

Nios II CUP核有快速的(Nios ii/f)、经济的(Nios ii/e)和标准的(Nios ii/s)3 种,每种都针对不同的性能范围和成本。为节约CPU核所占FPGA的资源,该设计选择经济的。

2.1.2 PIO组件

SOPC Builder提供的PIO组件可以完成像控制Led、从开关或键盘输入采集数据、控制显示设备、与片外器件通信等任务。

PIO组件可以通过SOPC Bulider配置向导来设置不同的功能。该设计中的PIO设置了如下3种不同的工作方式:(1)输入中断方式;(2)输入非中断方式;(3)输出方式。

2.1.3 JTAG UART核

SOPC Build中提供的JTAG UART核实现基于FPGA的嵌入式系统与主机之间的串行通信。该设计添加这个组件主要为了方便调试。

2.2 基于Nios II的软件设计

该设计的软件部分是针对Nios II处理器,该处理器具有完善的软件开发套件,包括编译器、集成开发环境(IDE)、JTAG 调试器、实时操作系统(RTOS)和TCP/IP协议栈。因此,此次软件的编写是在Altera公司所提供的软件开发套件Nios II IDE 6.0中进行,采用C语言编写。

软件设计的流程图如图2所示。当Nios II软核接收到按键模块的中断请求后,接收其发送过来的按键值,Nios II再依据按键值完成对ODU工作状态的设置或监控。其中工作状态的设置主要完成发射频率、接受/发射衰减等参数的设置。而工作状态的监控主要完成对频综、发射和接收等模块的温度、电流和电压进行监控[1]。

图2 Nios II软件流程图

在程序运行过程中,首先执行INITPIO函数,初始化PIO的相关寄存器的值,完成中断服务函数的声明。在按键中断产生的时候,程序跳到中断服务函数KEY_ISR中去,对按键中断标志位置一,并清除边沿捕获寄存器的值,为下次中断产生做准备。完成相应任务后,程序回到中断之前的位置,完成剩下的任务。下面介绍软件中4个重要的函数:

(1)INITPIO。初始化PIO,完成PIO的中断屏蔽寄存器、沿捕获寄存器等的值的设定。

(2)KEY_ISR。中断服务函数,在该函数中完成中断标志位置一和清除边沿捕获寄存器的值。

(3)ALT_IRQ_REGISTER。此函数用于声明中断服务函数(ISR),在软件使用ISR之前一定要先声明。

(4)IOWR_ALTERA_AVALON_PIO_IRQ_MASK。使能中断函数,是按位来使能的,比如0×f表示4位全部使能,而0×7表示使能低3位中断。

3 通信控制逻辑

通信控制逻辑采用的是RS232接口标准的UART[2]。为了简化电路,增加设计的灵活性,该文在FPGA上设计了UART功能模块,实现了UART的部分功能[3],满足了设计的要求。

在RS232接口标准中定义了逻辑“1”、逻辑“0”电压级数、以及标准的传输速率和连接器类型。信号大小在±3~±15V之间。RS232规定接近零的电平是无效的,逻辑“1”规定为负电平,逻辑“0”规定为正电平。由于核心逻辑处理系统FPGA使用的是TTL逻辑电平,所以RS232串口信号需要通过RS232信号收发器做电平转换后方可被FPGA正确识别。该设计通过芯片MAX211E来实现这种转换。

4 人机界面

人机界面包括按键输入和数据显示两部分。

4.1 按键模块

按键模块采用了矩阵式键盘的设计方案[4],主要需要完成以下3个任务:(1)按键识别,常用的识别方法有行扫描法和线反转法;(2)按键译码;(3)去抖动。根据以上提到的任务,该文用Verilog语言编写了按键识别模块的程序[5-6],具体设计流程如图3所示。

图3 按键模块程序流程图

4.2 显示模块

由于该设计所应用的环境条件比较恶劣,所以要求显示器具有较宽的操作和储存温度范围。故采用avago的HDSP-2112 LED字符显示器产品,该产品的操作温度范围为-55~+70℃。存储温度则可达-55~+100℃,完全满足该设计所要求的温度范围。HDSP-2112具有8位显示字符,每一个显示字符由5×7点阵组成。在该LED内部包括8字节的字符RAM、一个字节的动态RAM、16×7个字节的用户自定义字符(UDC)的字模存储RAM、一个UDC地址寄存器和一个控制寄存器。对LED的操作实际上是其内部的寄存器的操作,由于LED内有ASCII译码器,可以把128个ASCII码所对应的字符显示出来。因此,需要数据编码模块是把Nios II输出的待显示的数编译ASCII的形式。

LED有23根有用的信号线,FPGA通过这些信号线来驱动LED的工作。其中A[4..0]是地址信号线,通过它来选择内部不同的寄存器;CLK是时钟输入(CLS=0)或输出脚(CLS=1);CLS用于选择内部时钟源或者是外部时钟源;CE是片选信号,在其上升沿时LED读入数据线上的数据;RD和WR是读写控制信号线,通过其来控制LED的读写。对LED进行写操作的时序如图4所示,FPGA就是依据图4对LED进行写操作的。

5 结束语

该文所设计的监控终端能非常方便地对ODU工作状态进行设置,对其故障位置进行定位。由于采用的嵌入式Nios II软核,因而具有设计灵活、实时性强、可重构等优点,对产品的功能扩展提供了很大的便利。该设备已应用于某国产ODU中,应用效果良好。

[1] 王忠铭,宋爱民.小型卫星地面站ODU测控平台设计[J].微计算机信息,2008(24):53-54.

[2] 张艳玲,吴思和,吴勇.小型卫星地球站中ODU控制器的通信模块设计[J].微电子学,2003(12):495-498.

[3] 夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2003.

[4]李广军,林水生.微机系统原理与接口技术[M].成都:成都电子科技大学,2005.

[5] 吴继华,王诚.Altera FPGA/CPLD设计基础篇[M].北京:人民邮电出版社,2005.

[6] 吴继华,王诚.Altera FPGA/CPLD设计高级篇[M].北京:人民邮电出版社,2005.

猜你喜欢
寄存器中断按键
STM32和51单片机寄存器映射原理异同分析
基于有限状态机的按键检测程序设计
Lite寄存器模型的设计与实现
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
按键消抖在单片机和FPGA实验教学中的应用
移位寄存器及算术运算应用
跟踪导练(二)(5)
千里移防,卫勤保障不中断
一种多方向导光按键结构设计