基于AT91RM9200的导航计算机设计
扫描二维码
随时随地手机看文章
摘要:介绍了一种基于AT91RM9200的导航计算机设计方案。该导航计算机可接收来自多路输入数据接口的数据,并通过双口ROM送至DSP进行解算处理,最后将结果由输出数据接口控制输出。
关键词:AT9lRM9200;导航计算机;双口ROM;
O 引言
为了保证飞机按照准确的航线飞行,对各种数据进行实时、精确的处理便显得极为重要。本文提出了一种导航计算机的设计方案。导航计算机是导航组合件的组成部件,可用于接收来自多路输人数据接口的数据,并通过双口ROM送至DSP进行解算处理,最后将结果由输出数据接口控制输出。
1 硬件系统组成
导航计算机的核心器件是Atmel公司的AT91RM9200,该处理器具有丰富的系统与应用外设及标准的接口,能够满足导航计算机的接口要求。其快速的中断处理性能可以保证导航计算机多个输入输出接口的速率。而可编程逻辑器件则可采用Altera公司的CycloneII系列的芯片EP2C8Q208C6,它的主要功能是实现系统时钟分配、数据总线扩展以及外部数据接口的扩展。图1所示是其导航计算机的系统组成。
1.1 控制处理器模块
为了保证导航计算机的所有接口都能同时按照要求的速率工作,同时保证实时性,其系统控制处理器可选用Almel公司的AT9lRM9200。该处理器是完全围绕ARM920T、ARM Thumb处理器构建的系统。它有丰富的系统与应用外设及标准的接口,从而为低功耗、低成本、高性能计算机的宽范围应用提供一个单片解决方案。快速的中断处理性能可以保证导航计算机的多个输入输出接口的速率。
作为导航计算机的中心控制部分,AT91RM9200的主要功能如下:
◇可按要求速率发送数据,并中断接收两路RS232、9路RS422A、1路RS429(2收1发)数据通讯接口的数据或卸帧,可保证数据传输接口速率、数据正确性和数据完整性;
◇可通过可编程逻辑器件扩展输入输出接口;
◇可控制与双口ROM的数据交互;
◇可控制程序和数据存储器的数据交互。
图2所示是该ARM处理器与周边器件的连接关系图。
另外,控制处理器可通过可编程逻辑器件扩展输入输出接口,并设置其相应的参数。当控制处理器接收到中断信号时,将先判断是哪个接口的数据,然后中断接收数据。当其将接收到的数据存入双口ROM且DSP从双口ROM读取数据后,系统便可利用相应的算法处理数据,再将计算结果存入双口ROM,控制处理器从双口ROM读取计算结果。该控制处理器分析计算结果后,可产生控制信号并将其送到相应的接口发送出去。接口数据的发送也是通过中断方式实现的。
1.2 总线及接口扩展模块
为了满足导航计算机多个数据I/O接口的数据传输需要,本设计选用了Altera公司的CvcloneII系列芯片EP2C8Q208C6来完成RS422接口、
RS429接口的扩展。EP2C8Q208C6器件是基于ATERA的第二代MAX体系结构的高密度、高性能EEPROM器件,其工作电压为3.3 V,能够提供8256个逻辑单元、36个嵌入式内存模块,工作时钟频率高达260 MHz。在工作过程中,该芯片可根据需要让一部分单元工作在高速、饱和功率状态,而其余单元则工作在低速、低功率状态,这样能够降低整个芯片的功耗。
可编程逻辑器件EP2C8Q208C6的主要功能是实现系统复位、分配系统时钟、扩展数据总线、外部数据接口的扩展。
EP2C8Q208C6与周边器件的连接关系如图3所示。
由图3可见,其外部数据接口扩展可以通过TLl6C754B来实现。TLl6C754B可以产生四个独立的中断信号,因此,每个可以扩展四个串口,以将四个信号加到FPGA的IO输入引脚。在FPGA内部做或运算,运算结果再通过输出引脚送给ARM的中断信号。同时,将这四个中断信号通过一个缓冲器锁存入数据总线,中断信号高有效。当ARM检测到中断输入引脚为高电平时,便会去数据总线读取数据,并依次判断是哪个扩展串口产生的中断信号,然后去相应的串口读取数据。这样,便可通过FPGA实现数据接口的扩展。
1.3 IO接口模块
由于导航计算机的接口较多,对应的接口分配便成了一个很重要的问题。本文充分利用了中央处理器ARM自身的4个UART接口,其中两个直接对应导航计算机的RS232接口,其余两个通过专用芯片SNll68转换为可满足RS422A协议的串口。而剩余的RS422A接口则采用2片串口扩展芯片TLl6C754B扩展出8个RS232数据接口。然后通过SNll68转换为RS422A数据接口。也可以采用HS3182和HS3282实现RS429数据接口的扩展。
2 软件设计
本设计的控制处理器软件部分可用C语言编写,主要完成系统初始化和数据收发两部分功能。
2.1 系统初始化
系统上电后,首先对系统的各个功能模块初始化。包括串口配置初始化、串口中断接收初始化、754中断初始化和中断服务程序等。
ARM自身串口初始化主要是配置系统时钟和波特率;
ARM自身串口接收中断初始化主要是设置中断优先级、外设ID号、中断服务程序地址;
754中断初始化主要是配置外设数据总线宽度、设置扩展串口及其波特率;
而各个中断服务程序都要首先判断是不是该中断服务程序应该响应的,然后再对接收到的数据进行处理。
2.2 数据收发
初始化完成后,系统即可开始正常工作,并按照给定速率发送数据,同时在接口有数据时接收数据。
(1)数据接收
在ARM自带的串口有数据时,当接收数据的缓存存满以后,会产生一个接收满中断,然后调用中断服务程序,以接收数据。而当通过TLl-6C754B扩展的接口有数据时,如果接收数据的缓存满了以后,同样会产生一个接收满中断,此时,ARM处理器先从扩展地址读取其中断号,判断是哪一个扩展接口的中断,然后调用相应的中断服务程序去接收数据。
(2)数据发送
ARM处理器可产生一个10 ms的周期性中断,并以这个时间作为基准按照设计给定的速率发送数据。ARM自带的串口采用PDC方式发送,设定相应串口的PDC控制器,即把要发送的数据的地址和数据长度分别赋给PDC控制器的寄存器PDC_TPR和PDC_TCR。通过TLl6C754B扩展的接口发送数据时,应该先选通发送数据使用的是那一路通道,然后用普通串口方式发送数据。
3 结束语
本文介绍了一种基于AT91RM9200的导航计算机的设计方案。该导航计算机可利用可编程逻辑器件扩展多路外部数据接口,并采用中断接收多路输入数据接口的数据,再经解算处理,最后将结果由输出数据接口输出。本系统目前已成功应用于实际工作。实践检验,其系统功能可以满足实际需要。