北斗基带芯片中的ARM控制单元设计

时间:2022-05-26 07:56:20

北斗基带芯片中的ARM控制单元设计

摘要:北斗卫星导航接收机包含天线、RF模块、A/D和北斗卫星导航基带芯片等部分,而北斗基带芯片由基带硬件处理单元、SoC控制逻辑单元和数据处理及PVT解算单元组成。本文对北斗基带芯片中的SoC控制单元进行研究,设计中采用ARM7TDMI内核,模块化设计并集成,最终在FPGA原型平台上验证实现,为北斗基带芯片的下一步开发做了充分准备以及保证了将来流片的成功率。

关键词:北斗卫星导航FPGA原型平台SoC

中图分类号:TN47 文献标识码:A 文章编号:1007-9416(2012)03-0000-00

1、引言

我国现在的卫星定位系统处于发展阶段,目前国内很多公司正在着力于北斗卫星导航芯片的研发,不久的将来我国会拥有自主知识产权的北斗卫星导航芯片。基于此现状,本文对北斗卫星导航芯片中的一部分单元进行研究与设计。

北斗卫星导航接收机包含天线、RF模块、A/D、北斗基带芯片等部分,而北斗基带芯片由基带硬件处理单元、SoC控制系统单元、数据处理及PVT解算单元组成。基带硬件处理单元包括捕获和跟踪两部分,捕获意味着找到一个确定的卫星信号(获取载波频率及扩频码相位信息);跟踪主要是发现导航数据相位的变化,这两部分一般是由硬件实现。SoC控制系统单元负责控制基带芯片完成对卫星信号的捕获, 后将捕获结果回送至跟踪模块实现实时跟踪, 同时运行基带算法程序, 将基带信号经过解调得到导航数据、PVT解算等一系列的基带处理,最后将得到的PVT解通过UART输出到PC终端显示出来。

本文主要是对北斗基带芯片中的SoC控制系统单元进行研究与设计,并在FPGA原型平台上验证实现。根据北斗卫星导航芯片的应用需求,SoC控制系统单元选用了ARM7TDMI处理器核。

2、基于ARM7的SoC控制单元设计

2.1系统架构设计

架构设计是整个SoC系统设计的关键步骤,为了增加设计的可复用性,本设计中采用了AMBA总线的连接方式,总线是一种共享资源,在某一时刻,只能有一个模块驱动总线,这样才不会发生冲突。 基于ARM的SoC系统架构如图1所示, AHB总线连接了ARM处理器、存储器控制器、 AHB-APB桥、Arbiter等高速模块,而APB总线连接了一些低功耗、对性能要求不高的电路。

2.2系统时钟设计

SoC系统的时钟分配方案如下图2所示。系统的输入时钟频率为48MHz, 输入直接作为ARM7TDMI处理器的输入时钟,同时作为AHB总线的时钟,输入时钟经过2分频得到的时钟作为APB总线时钟,APB总线时钟同时为UART模块的输入时钟,再通过配置寄存器值就可以设置不同的通信波特率,波特率BAUD = OSC/8/(UART_SCALER[15:0]+1),其中BAUD是波特率,OSC是下图2中的UART Clock也即是APB Clock, UART_SCALER[15:0]是需要配置的寄存器。RTC和WDT的时钟由外部32.768KHz的时钟分频得到。

2.3系统复位设计

该系统可以硬件方式进行系统复位。系统提供三个硬件复位信号:nRESET调试复位信号、HW_RST_N系统复位信号和WDT_RST_N看门狗复位信号,其中nRESET由Multi-ICE调试工具产生,复位ARM7TDMI处理器的JTAG接口;HW_RST_N为系统外部输入信号,复位整个芯片,包括ARM7TDMI处理器、中断控制器、RTC、WDT等外设;WDT_RST_N信号由WDT产生,复位ARM7TDMI处理器、中断控制器等外设,其中不包括RTC和WDT自身。

2.4系统存储器设计

SoC系统中使用的存储器有:只读内存(ROM)、静态随机存储器 (SRAM)、嵌入式FLASH(EFLASH).SRAM, 不用刷新,速度非常快,掉电易失,好比CPU内部的cache, 可以用来执行程序或者数据的缓存。ROM为非易失性存储器,一旦存储资料就无法改变或删除。EFLASH同样也是掉电非易失,可读可写,因此可以用来存储代码或者数据。本设计中,ROM和EFLASH用作数据和代码的存储,而SRAM用作数据缓存和代码执行。

基于FPGA验证平台的SoC系统设置有两种工作模式,一种Boot模式, 另一种Debug模式。Debug模式,一般用于调试IP核和系统的基本功能,因此软件代码直接在256K SRAM中启动执行,在此模式下可以任意访问其他存储器;而Boot模式,是系统最终实际运行的工作模式,系统需要在ROM_BOOT中加载boot loader启动,然后再跳入到EFLASH中基地址执行软件主程序。此外,256K的ROM是用来存放卫星表信息,在流片时固化。还有,在EFLASH控制器的设计中我们要注意对位宽进行转换,因为EFLASH的位宽是8位,而AHB总线位宽是32位。

2.5系统中断控制器设计

ARM7TDMI支持两种中断,快速中断FIQ和标准中断IRQ. IRQ的优先级低于FIQ。中断控制器提供SoC系统内部中断源与外部中断源到处理器中断的路由和控制。系统中断主要是围绕外部中断与内部中断、FIQ和IRQ来设计的,确定那个中断优先级最高,然后将其定义为FIQ,其他的则定义为IRQ.

2.6 片上其它资源设计

片上资源主要有通用异步收发器(UART)、看门狗定时器(WDT)、实时时钟模块(RTC)、串行外设接口(SPI)、通用输入输出控制器(GPIO)等。UART是调试接口,在软件设计和数据处理的过程中使用UART进行调试,同时在芯片设计后期PVT解算等一系列的基带处理结果也需要通过UART输出到PC终端显示出来。RTC主要用于时间同步,每隔一定时间会从卫星上加载最新的时间数据。WDT用于监测总线活动,防止软件跑死等突况。SPI主要是用于ARM7系统与各种设备以串行方式进行通信来交换信息。GPIO是APB总线和IO端口的桥梁,通过编程,GPIO可以控制16个IO引出端为输入或输出。

3、SoC系统集成与验证

SoC验证工作贯穿整个设计流程。据统计数据,SoC设计缺陷中功能缺陷超过60%,可见SoC验证工作重点应在功能验证上。本SoC系统的设计阶段主要采用软硬件协同验证,主要分为如下几个步骤:

第一步,系统集成前IP级验证,这一阶段主要对象是IP核,不涉及总线,使用Verilog HDL语言编写Test Bench和Test Case给设计施加激励并观察其响应来完成。

第二步,系统集成后IP级验证,这一阶段验证包含了ARM7 Core及所有IP模块,并且需要软件的支持对单个IP核进行操作仿真,难点主要是对单个IP核进行验证时,IP核之间必然会存在交互和总线竞争,这时需要对其他IP进行隔离。

第三步,系统集成后的系统级验证,这一阶段验证系统需要其他IP核协同验证,才能最接近最真实的情况。这一阶段主要借助于FPGA原型验证平台和Multi-ICE调试工具,在FPGA平台上实现整个硬件系统,编写烧入测试程序,通过中断、跟踪、单步执行软件进行快速调试系统。

4、结语

SoC控制单元在Vitex5LX110 FPGA原型平台上验证并实现,FPGA实现中,RAM36KB的Utilization是96%,Slice LUTS的Utilization是11%,时钟在48MHz时,系统时序满足要求并运行正常,所有IP核都通过测试,基本满足设计需求。当前的系统将进行操作系统移植,为后续数据处理软件开发做进一步准备。

参考文献

[1] 孙洪亮.基于FPGA的GPS芯片验证与实现研究[D].长春:长春理工大学,2008.

[2] 王彬,任艳颖.数字IC系统设计[M].西安:西安电子科技大学出版社,2005.

上一篇:低压电力线载波通信技术浅析 下一篇:谈水泥土组合挡墙支护技术及工程应用