首页 > 范文大全 > 正文

基于龙芯2F的智能1553B节点设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于龙芯2F的智能1553B节点设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:基于龙芯2f的的智能1553b节点用于对1553B总线上传来的数据进行解算并提供高分辨率显示输出。该节点通过1553B总线与外界接口,在硬件设计上采用国产高性能微处理器龙芯2F来进行解算,使用Volari V2芯片搭配8M 64-bitDDR SDRAM来支撑1600×1200×32@70NI的显示模式,软件系统设计上使用VxWorks系统,并对PMON作优化设计来缩短系统启动时间。

关键词:1553B总线;智能;龙芯2F;PMON

Design of Intelligent Node of 1553B Bus System Based on Loongson

Wu Liang,Wang Quansheng

(Jiangsu Automation Research Insititute,Lianyungang222006,China)

Abstract:The intelligent node of 1553B bus system is used for processing data from 1553B bus,outputing to display terminal.The node communicates outside through the 1553B bus interface,processes data with high-powered Loongson 2F,use Volari V2 and 8M 64-bitDDR SDRAM to support the display mode of 1600×1200×32@70NI. The node use VxWorks as its embeded OS,and optimizes PMON to reduce boot time.

Keywords:1553B bus;Intelligent;Loongson 2F;PMON

一、引言

龙芯2F处理器是一款由中国科学院计算技术研究所自主研发的64位高性能微处理器芯片,它采用先进乱序执行技术,最高频率可达1GHz,具有很强的数据处理能力和控制能力,功耗仅为3--5W,在高性能嵌入式系统中将会有相当广泛的应用。

以前使用的基于ARM的智能1553B节点,利用其内部LCD控制器来控制液晶屏作简单的点阵式显示输出,且无数据解算功能,需要搭配一个单独的数据解算模块一起工作,已经完全满足不了现在的高速数据解算、高分辨率实时显示输出的应用需求。而基于龙芯2F的的智能1553B节点设计,将以前两个模块的功能集成到一个模块中实现,减少了模块数量,简化了系统设计,更适合嵌入式系统的应用需求,且龙芯2F强大的数据处理能力和搭配Volari V2芯片提供的高分辨率显示输出能力完全满足当前的应用需求,软件上使用VxWorks系统,并作了一定的优化设计来缩短系统启动时间。

二、硬件系统设计与实现

此智能1553B节点的功能是尽量保证与1553B总线通信的可靠性,对1553B总线传来的数据进行高速实时解算,提供1600×1200×32@70NI的高分辨率显示输出。本设计中采用龙芯2F处理器搭配时钟为266MHz的64-bit×128M DDR2 RAM来完成高速实时解算功能,显示上使用Volari V2芯片搭配8M 64-bitDDR SDRAM来支撑1600×1200×32@70NI的高分辨率显示模式,显示带宽高达756MB/s。数据记录方面使用一个10G的电子盘来存储数据,此电子盘为IDE接口,挂接在南桥CS5536后级。龙芯2F通过一片FPGA实现与1553B协议控制器通讯,FPGA与龙芯2F之间通过双口RAM进行数据交互。具体设计的硬件结构框图如图1所示:

图1硬件结构框图

三、软件系统设计与实现

该智能节点需要提供高分辨率的显示输出,软件上就需要使用嵌入式操作系统来支撑它,因此该智能1553B节点的软件设计上要一改早期的硬件初始化程序+应用程序的传统结构,软件结构设计具体如下:①应用软件层②文件系统层③VxWorks Kernel层④BootLoader层。

其中BootLoader选用龙芯系列芯片惯用的PMON,由于该节点对实时性要求较高,因此选择VxWorks作为本节点运行的嵌入式操作系统,而解算、显示输出、数据存储等部分则放在应用软件层。

(一)系统的启动引导(BootLoader)软件PMON的优化设计

PMON作为整个智能1553B节点的BootLoader,主要完成两个任务:

1. 系统的初始化和自检;

2. 引导VxWorks启动。

龙芯2F地址空间中的kseg1段是唯一在系统重启时能正常工作的地址空间,此段不通过cache存取,因此2F的复位入口向量定位在此地址段中,具体为0x11111111BFC00000,去掉64位的符号扩展部分,则为0xBFC00000,将其高三位清零,转换为物理地址为0x1FC00000,龙芯2F在系统启动时从此处开始取指执行,开始对系统的初始化过程。

默认的初始化流程分为两个部分:

 一级初始化,由汇编代码完成,代码位于start.s中,入口处为_start,对2F、北桥、南桥内部的少量寄存器进行了初始化,保证2F芯片运行起来,串口、内存可用即可;

 二级初始化,主要由C代码完成,代码位于tgt_machdep.c中,入口为initmips(),对2F、显示芯片、北桥、南桥内部的功能寄存器进行了全面的初始化,由启动模式进入正常模式。

一级初始化流程如下所示:

CPU Reset 入口跳转至ROM处初始化TLB初始化北桥、南桥 初始化内存 初始化Cache将代码从Rom搬移到内存中运行 开始运行C代码

二级初始化流程如下所示:

跳至入口函数initmips设置CPu运行频率和总线频率 设置环境变量 扫描并初始化所有PCI设备 初始化V2,模拟VGA BIOS 设置异常向量 重新初始化缓存结束启动模式,进入正常模式

为了减少启动时间,精简启动过程,作者针对本智能1553B节点的应用对PMON进行优化设计,主要从以下两点着手:

(二)使用cache方式来访问内存

龙芯2F通过TLB访问地址空间,而TLB页的一致性属性有三种:Uncached、Uncached Accelerated、Cacheable Noncoherent,Cacheable Noncoherent是通过使用2F内部的一级和二级缓存来加快访存速度的,访存速度最快,Uncached Accelerated是通过设置缓冲区来加快访存速度的,访存速度其次,Uncached为普通访问方式,速度最慢。

启动过程默认使用Uncached方式访存,速度较慢。本文访问内存之前,将L1 cache、L2 cache均初始化好,然后初始化MMU部分的时候将要访问的内存区域设置为通过Cacheable Noncoherent来访问,在将代码从ROM搬移到RAM的过程以及从内存中进行二级初始化的过程中访存速度倍增,有效地缩短了启动时间。

(三)精简初始化流程

系统默认的初始化步骤是针对通用系统的,适用性强,但较为繁琐,本文进行了针对性的精简,在一级初始化流程中的串口初始化部分,主要是为了调试使用,调试完毕后可被优化掉;VxWorks系统启动时要对显示部分重新初始化一次,因此二级初始化中的显示部分相关代码可被优化掉,此外扫描PCI设备部分代码亦可被优化为只对本板仅有的两个PCI设备进行针对性的初始化。

简化之后的整个初始化流程如下所示:

CPU Reset入口跳转至ROM处初始化TLB 初始化内存控制器 初始化内存

初始化L1、L2Cache初始化MMU并进行代码搬移 跳至C语言入口initmips 设置CPU运行频率和总线频率 设置环境变量 初始化V2和南桥设置异常向量 结束启动模式,进入正常模式

实际测试结果显示,经过优化后的PMON启动时间缩短了3-4秒,充分说明本设计所作的优化工作取得明显的效果。

进入正常模式后,从电子盘加载VxWorks内核启动VxWorks系统。至此,PMON所做的工作已经结束。VxWorks系统正常启动后,开始执行应用程序。

(四)应用程序的设计

应用程序相对简单点,详细过程为:任务发起时,先要接收1553B总线上传来的数据,然后龙芯2F读取接收到的数据,利用已有算法进行解算,解算完成后,将结果传回到总线上,同时存储到电子盘中以完成数据记录,将数据以帧为单位打包,输出到显示终端,此次数据处理任务结束,等待下一次数据的到来。具体流程如图2所示:

图2 应用程序运行流程图

四、运行结果

本设计已经完成替换性实验,在某控制系统中替换原有模块,长时间运行稳定,与1553B总线进行数据交互时传输速率稳定,解决了以前使用的基于ARM的智能1553B节点不能提供高分辨率显示的问题,且实时性较好,完全满足使用需求。

五、结束语

本设计的特点是设计结构紧凑、数据传输可靠、高带宽实时显示输出,整个设计占用空间小,性能可靠且抗干扰能力强,适用于各种工业控制场合,推广价值很高。

参考文献:

[1]Loongson2F处理器数据手册1.0硬件手册.北京:中国科学院计算技术研究所,2008

[2]尹勇,李宁.PCI总线设备开发宝典[M].北京:北京航空航天大学出版社,2005

[3]杨恒.FPGA/CPLD最新实用技术指南[M].北京:清华大学出版社,2005,(1).270-312

[4]李雷,郑为民,刘金刚.基于PMON的龙芯BIOS初始化及VGABIOS模拟器[J].计算机工程,2009:Vol.35 NO.1