0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于EP1C12Q240和NIOS软核处理器实现组合导航系统的设计

电子设计 来源:微计算机信息 作者:李耀;崔燕 2021-03-23 14:49 次阅读

目前广泛应用的MIMU/GPS组合导航系统的实现形式,依应用领域的不同而复杂多样,但是导航计算机板卡负责的工作则相对固定,其主要包括:采集各路传感器输入信号;滤波、融合计算;将计算结果输送给机电控制子系统;提供各种人机交互接口,如LCD,键盘等。

长期以来,针对各种应用领域或相同领域的不同场合,由于对控制计算能力、接口电路数据吞吐能力等要求的差异,我们习惯于把功能相对固定的导航计算机子系统设计成不同的实现形式,这就造成了对硬件重复研发,相应软件重复调整等低效率现状。

SOPC(System On Programmable Chip)技术是Altera公司提出的一种灵活高效的SOC解决方案。它的宗旨是将处理器、存储器、I/O口、硬件协处理器或加速器、一般的用户逻辑等系统的设计需要的功能模块都集成到一个FPGA芯片里,构建一个可编程的片上系统。它具有硬件上灵活裁剪、扩充和在线升级的优点,而且市场上有丰富的IP 核资源可选,能成功地解决上述问题。

1.组合导航系统硬件电路的实现

硬件框图如图1所示,它主要包括以Nios处理器为主体的片内逻辑(图中虚线包围部分,下文简称片内逻辑)、MIMU与GPS数据采集电路和人机交互接口电路三个部分组成。

1.1片内逻辑的设计

本文采用了Altera公司Cyclone系列FPGA EP1C12Q240、NIOS软核处理器及其开发和仿真工具(包括 SOPC Builder,DSP Builder,Simulink,Quatus II等)。在设计中利用的IP核里,比如Nios核,片内Boot ROM,用于FIFO的片内双口RAM,定时器,Avalon片上总线,Avalon三态总线桥,SDRAM接口,JTAG UART等都来自SOPC Builder软件,在此不必赘述。下面重点讨论其他IP核及其接口电路的设计和功用。

图 1 基于Nios的SOPC组合导航系统设计框图

6 DSP协处理器 通过定制一些传统的DSP运算指令或反复出现的计算密集型算法指令,来硬件加速CPU的处理能力。IP核可以通过硬件描述语言自己编写,也可以借助Simulink和DSP Builder来辅助实现。

7 UART 基于RS232通信协议的串行通路接口。UART-0负责传递主控设备的命令(如复位、初始化等)、输入主控设备提供的电子地图的库信息,输出处理结果等。UART-1则负责导入GPS OEM板的数据。该IP核来自于SOPC Builder软件。

8 A/D接口 除了片选信号,A/D接口时序基本遵循SPI协议,因此选用了SOPC中相应的IP, 而对于片选信号,在系统中额外添加一个通用I/O口来控制之。这样每次对A/D的操作分两步进行:先置低GPIO,再进行SPI操作。

9 同步采样控制逻辑 负责控制MIMU和GPS信号的同步采集,为数据融合提供准确的输入。该IP核由设计者自行编制,详述请见MIMU和GPS信号采集系统的设计部分。

10 VGA控制 基于Avalon流模式的VGA控制器。它主要由VGA时序发生器,FIFO存储器,Avalon流模式接口组成。该IP由设计者用VHDL语言自行编制,人机接口部分将详述之。

11 ATA桥 连接CF卡,保存电子地图信息库、中英文字符点阵库等海量信息。该IP核来自于SOPC Builder软件。

12 GPIO 最常规的外设控制接口,本系统的LCD、LED、键盘都是采用该接口进行连接,时序上的驱动控制则是由软件实现的。该IP核来自于SOPC Builder软件。

13 ASMI EPCS4系列配置芯片的专门接口。该IP核来自于SOPC Builder软件。与之相连的Flash存贮空间中有如下内容:一部分是FPGA的配置文件。另一部分作为常规程序存储器用。采用此方案可以省去片外专门的程序存储Flash,充分利用了配置芯片的资源。由于串行器件的带宽限制,我们可以通过将主程序装载入SDRAM中运行来提高程序的运行速度。

1.2 MIMU和GPS信号采集系统的设计

MIMU的信号采集工作由微型惯性测量组合、采样/保持器AD1154、多路开关MAX4540、A/D 转换器完成;而GPS的信号采集工作则主要由GPS接收机完成。接收机采用了Jupiter OEM 板,可输出位置、速度、伪距、伪距率、载波相位、卫星星历等数据。系统启动期间,主控设备通过UART-0向片上逻辑发送命令并获取信息反馈,对系统导航参数进行初始化;接收的初始化数据可由片上逻辑的UART-1传递给GPS接收机,以实现GPS的快速初始化和快速锁定卫星。

我们所讨论的MIMU和GPS信号的同步,是指需要同步的两个数据源在原始信息更新时刻对齐,而不是在经过计算或A/D转换延时等不同通信路径传输后,在输出结果的时刻对齐。GPS接收机解码转换后输出的秒同步脉冲(1PPS,每秒一个脉冲)是与UTC秒点对齐的。接收机严格地在每个1PPS脉冲边沿进行一次伪距、伪距变化率、载波相位、GPS 标准授时、定位等测量,其脉冲沿为GPS数据更新时刻。我们把1PPS脉冲接入FPGA中,由同步采样控制逻辑保证脉冲到来的同时产生一个SSP(同步采样脉冲,synchronous sampling pulse),实现MIMU和GPS数据在整秒时刻同步。当然,MIMU数据更新率远小于1秒,我们可以把1PPS脉冲作为FPGA内部的1秒定时器的标准同步触发时刻,通过逻辑倍频产生相应频率的SSP输出。在GPS信号丢失的情况下,FPGA内部的秒定时器则作为MIMU采样信号的时基标准。

1.3人机交互接口的设计

七段数码管负责标识系统的工作状态;而键盘除了作为初始化参数输入的备用接口外,还可以负责切换LCD、VGA显示器等的显示模式;液晶屏则相应地显示输入与输出的导航参数;VGA接口形象的输出电子地图背景、车辆当前位置及运行轨迹等信息。

excalibur.h 头文件定义了七段数码管、按键数据结构指针na_seven_seg_pio 和na_button_pio通过对指针所指PIO数据结构内的np_piodata数据寄存器操作,来让数码管显示特定的字符或判断是否有按键按下,以及是哪个按键。

本文采用型号Optrex 16027的LCD屏,头文件pio_lcd16027.h定义了九个控制子程序,通过这些程序完成对LCD的控制。标准VGA画面大小是640*480,每秒60帧左右。像素时钟高达25.175MHZ。如果每个点都由Nios软件扫描实现,那么在40ns的间隔内,最多能让共作在50MHZ的CPU执行两条指令。所以,我们采用DMA控制器在流模式VGA控制器和SRAM之间建立一条DMA传送通道,让硬件完成像素信息的自动读取,缓解了CPU的工作压力。VGA时序发生器的设计源程序由VHDL语言实现,下面是部分示意代码:

2.系统工作原理

系统上电后,串行配置器件EPCS4配置FPGA;然后NIIOS启动,运行片内ROM中的Bootloader。Bootloader根据选择端的控制选择工作模式,模式分为两种:调试模式和运行模式。在调试模式下,Bootloader启动GERMS监控程序,我们可以对系统进行开发调试。在运行模式下,Bootloader将EPCS4中存储的主程序装载到SRAM中全速运行。然后,程序指针复位指向SRAM中的系统主程序。主程序先初始化并配置系统,然后开始正常工作。

3.软件设计

由于本控制系统架构庞大,我们在软件设计时使用实时操作系统microC/OS作为软件内核。该操作系统具有内核小,代码公开等优点,而且Altera公司提供了关于此系统移植方面比较详细的技术文档,操作起来简单易行。系统软件分为三个层次设计:一、驱动层。主要包括了UART驱动,LED驱动,键盘驱动,LCD驱动,VGA驱动,SPI总线设备驱动等等。二、内核层。包括系统任务和内核调度。三、应用层。

任务主要有数据采集任务,数据融合任务,数据滤波任务,导航计算任务,显示任务等。其中还有一些用于控制管理性质的任务,包括错误捕捉任务及其相应的处理方程序等。

系统的核心是操作系统的内核调度,负责整个软件的运作。系统相关的层面是以任务为单位的系统模块,这些任务模块负责市实现导航系统的正常运行,负责系统模块的配置控制和差错检测,响应处理用户的操作。硬件相关的层面以驱动任务为单位,它们作为操作系统和硬件系统中介,直接负责对硬件设备的驱动控制。软件分层封装,用任务调度的方法来实现,可以提高软件设计的效率,降低设计风险,利于移植和升级。

4.结论

NIOS符合工业技术的潮流,即硬件设计软件化。此设计方法可以对硬件做全面细致的模拟仿真,减少硬件设计的错误,有效降低了开发成本,增强了产品的竞争力。而且由于它属于单片解决方案,不仅提高系统的鲁棒性,还可以有效地保护开发者的知识产权。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19143

    浏览量

    229018
  • 人机交互
    +关注

    关注

    12

    文章

    1200

    浏览量

    55294
  • 计算机
    +关注

    关注

    19

    文章

    7404

    浏览量

    87687
收藏 人收藏

    评论

    相关推荐

    基于NIOS II嵌入式处理器的LCD控制实现

    本文介绍了一种基于NIOS II处理器实现对LCD-LQ057Q3DC02控制的新方法。在设
    发表于 11-09 11:30 2081次阅读
    基于<b class='flag-5'>NIOS</b> II嵌入式<b class='flag-5'>处理器</b>的LCD控制<b class='flag-5'>实现</b>

    基于NIOS II 处理器的SOPC 技术

    基于NIOS II 处理器的SOPC 技术摘要:介绍了基于NIOS II
    发表于 10-06 15:05

    求助,有个项目,用的是EP1C12Q240,现在需要更改一点参数,请高手联系我QQ413359853,有偿帮忙

    求助,有个项目,用的是EP1C12Q240,现在需要更改一点参数,请高手联系我QQ413359853,有偿帮忙
    发表于 04-05 10:36

    请问如何实现片上嵌入式Nios处理器系统的设计?

    片上Nios Ⅱ嵌入式处理器系统具有哪些优势?如何实现片上嵌入式
    发表于 04-19 08:17

    求一种在多处理器系统中的Nios II处理器的启动方案

    本文设计了一种在多处理器系统中的Nios II处理器的启动方案,这个方案在外部
    发表于 04-27 06:52

    怎么实现基于DSP的车载GPS/DR组合导航系统硬件设计?

    本文介绍了以浮点DSPTMS320VC33为组合导航算法实现的核心处理器,利用TL16C554进行通信口扩展的GPS/DR
    发表于 05-12 06:28

    基于NIOS II的导航系统平台的设计

    介绍了一种新的基于NIOS II的导航系统的设计方案. NIOS是建立在FPGA 上的嵌入式微处理器
    发表于 08-05 11:05 20次下载

    基于Nios处理器的SOPC技术来实现数码相框的设计

      0 引言   本文采用了基于Nios处理器的SOPC技术来实现数码相框的设计,从根本上改变了传统设计方案的不足。
    发表于 08-23 10:22 1301次阅读
    基于<b class='flag-5'>Nios</b>Ⅱ<b class='flag-5'>软</b><b class='flag-5'>核</b><b class='flag-5'>处理器</b>的SOPC技术来<b class='flag-5'>实现</b>数码相框的设计

    基于ARM和DSP的组合导航系统设计

    设计并实现了基于ARM 和DSP 的SINS/ GPS 组合导航系统; 该系统采用DSP 作为导航解算计算机, 完成
    发表于 09-13 15:08 181次下载
    基于ARM和DSP的<b class='flag-5'>组合</b><b class='flag-5'>导航系统</b>设计

    EP1C6Q240C8实现LCD滚屏

    文章以T6963C控制的240×128LCD液晶显示屏模块阐述了一种基于EP1C6Q240C8处理器的液晶显示屏的滚屏显示的软硬件控制方法。
    发表于 02-28 10:33 2177次阅读

    基于NIOSⅡ嵌入式处理器的LCD控制方法研究

    基于NIOSⅡ嵌入式处理器的LCD控制方法研究,很好的设计资料,快来学习吧。
    发表于 05-09 15:46 6次下载

    基于双口RAM的组合导航系统设计与应用

    、人机接口、与外部系统的通信等功能。由于导航系统对实时性要求较高,采用单片CPU来实现上述功能是不现实的。在研制某弹载INS/GPS 组合导航系统
    发表于 12-11 02:04 1285次阅读
    基于双口RAM的<b class='flag-5'>组合</b><b class='flag-5'>导航系统</b>设计与应用

    基于SoPC 技术的片上嵌入式Nios处理器系统

    嵌入式系统的核心是RISC 处理器,具有代表性的RISC处理器Nios
    发表于 04-07 09:27 1029次阅读
    基于SoPC 技术的片上嵌入式<b class='flag-5'>Nios</b> Ⅱ<b class='flag-5'>软</b><b class='flag-5'>核</b>六<b class='flag-5'>处理器</b><b class='flag-5'>系统</b>

    简述使用片内调试 Nios 处理器

    使用片内调试 Nios 处理器
    的头像 发表于 06-20 05:53 3190次阅读
    简述使用片内调试 <b class='flag-5'>Nios</b> <b class='flag-5'>软</b><b class='flag-5'>核</b><b class='flag-5'>处理器</b>

    基于Nios的SoPC系统硬件设计

    基于Nios的SoPC系统设计是整个系统硬件设计的核心,包括Nios
    发表于 08-21 14:22 1291次阅读
    基于<b class='flag-5'>Nios</b><b class='flag-5'>软</b><b class='flag-5'>核</b>的SoPC<b class='flag-5'>系统</b>硬件设计