一种针对DSP芯片的主机引导加载方法与流程

文档序号:11917670阅读:560来源:国知局
一种针对DSP芯片的主机引导加载方法与流程

本发明涉及高速实时数字信号处理领域,特别是涉及TigerSHARC DSP芯片的应用技术。



背景技术:

DSP芯片是实现高速信号处理和实时信号处理的重要技术手段,广泛应用于通信、雷达、声呐、网络等领域。

ANALOG DEVICE公司的TigerSHARC DSP芯片是一种高性能的数字信号处理芯片,其核心工作频率高,运算能力强,可用于处理具有大数据流和多计算任务的项目。TigerSHARC DSP具有静态超标量体系结构,支持32比特和40比特的浮点运算以及8比特、16比特、32比特和64比特的定点处理,可使处理器在一个时钟周期内同时执行4条指令,完成24个16比特的定点运算和6个浮点运算。具有三条独立的128比特宽的内部数据总线,每条总线连接到一块的内部存储区,支持QUADWORD长度的数据、指令和I/O操作,提供超高速的内部存储器带宽。TigerSHARC DSP具有DMA控制器和片间高速数据传输链路LINK口,具有外部中断引脚及可编程的指示信号,具有内部计时器和计时器溢出管脚、外部的静态存储及动态存储器接口、主处理器接口、无缝的多处理器接口、JTAG测试口。这些特点使得TigerSHARC DSP成为完成并行高速信号处理和并行实时信号处理的很好的选择。

TigerSHARC DSP支持两类引导模式:主引导模式(master boot)和从引导模式(slave boot)。

在主引导模式下,TigerSHARC DSP作为主动方,用外部口输出地址、读BMS等控制信号,从EPROM或FLASH中加载代码。在从引导模式下,TigerSHARC DSP作为被动方,不向外部输出控制信号,外部主机向 TigerSHARC DSP的主机端口或链路口传送要加载的代码,TigerSHARC DSP仅仅启动若干DMA,并执行第一个DMA所接收到的加载核。

不论哪种引导模式,它们都有相同的引导过程。

(1)TigerSHARC DSP自动启动一个DMA,自动把256个32位字传送到内部存储器的地址Ox00~0xFF。

(2)执行上述256指令(称为加载核),加载核启动其他DMA把后续指令和数据加载到内部和/或外部存储器。

(3)加载核自我覆盖。

除上述两类引导模式,另外还可以选择“非引导”模式或利用TigerSHARC DSP的EZ-ICE仿真器通过JTAG口加载程序。在“非引导”模式时,TigerSHARC DSP从有效的IRQs所设定的矢量表地址执行。

上述主引导模式中,通过外部主机向TigerSHARC DSP机载引导的功能对于实际应用至关重要,特别是在系统调测试阶段、试验阶段和设备使用维护阶段,该功能可以避免大量的使用仿真器的繁琐操作,并可以在不打开设备外机箱的情况下进行对TigerSHARC DSP程序的维护和测试。

尽管可以通过TigerSHARC DSP的链路口进行外部主机加载,但外部主机一般采用x86架构处理器、ARM或单片机等,没有TigerSHARC DSP链路口兼容的链路口,需要复杂的电路来进行接口协议转换,实现极为复杂。因此,通过TigerSHARC DSP的主机引导加载是实现外部主机加载最为简单的实现方式。

然而,ANALOG DEVICE公司提供的TigerSHARC DSP主机引导加载方法却无法实现,ANALOG DEVICE公司也未给出弥补这一缺陷的方法。



技术实现要素:

(一)要解决的技术问题

本发明提供了一种针对TigerSHARC DSP芯片的主机引导加载方法,该方法可以解决通过TigerSHARCA DSP的链路口进行外部主机加载的复杂性。

(二)技术方案

本发明提供了一种针对TigerSHARC DSP芯片的主机引导加载方法,所述方法用于将DSP的加载文件通过主机引导的方式加载到TigerSHARC DSP芯片中,其特征在于,包括以下步骤:

申请TigerSHARC DSP的外部总线成功后;

主机向TigerSHARC DSP的AUTODMA0寄存器写63次数据0x0000ffff;

从主机顺序读入所述加载文件的前256字,顺序写入TigerSHARC DSP的从0x0开始的内存地址;

主机向TigerSHARC DSP的AUTODMA0寄存器写1次数据0x0000ffff;

主机将剩余的加载文件写入AUTODMA0寄存器,并释放总线。

上述方案中,所述加载文件包括程序和数据。

上述方案中,所述申请TigerSHARC DSP的外部总线,包括以下步骤:

步骤S1:电源稳定后,通过复位电路,先置TigerSHARC DSP复位管脚/RESET信号有效,使TigerSHARC DSP芯片硬复位;

步骤S2:延时至少500ms,确保TigerSHARC DSP芯片硬复位;

步骤S3:置TigerSHARC DSP的/HBR信号为低,向DSP申请外部总线;

步骤S4:查询TigerSHARC DSP的/HBG信号,若为低,则外部总线申请成功,若为高,执行步骤S3;

上述方案中,所述将剩余的加载文件写入AUTODMA0寄存器,并释放总线,包括以下步骤:

外部主机顺序读入加载文件数据,写入TigerSHARC DSP的AUTODMA0寄存器;直至处理完加载文件的全部数据;

置TigerSHARC DSP的/HBR信号为高,释放总线。

(三)有益效果

本发明克服了TigerSHARC DSP芯片无法通过芯片生产厂商提供的主机引导加载方法实现主机引导加载程序的缺陷,使能够通过主机接口对 TigerSHARC DSP芯片加载程序,提高了TigerSHARC DSP芯片使用的灵活性,以及由TigerSHARC DSP芯片构成的信号处理系统使用的灵活性。

附图说明

图1是本发明一种针对TigerSHARC DSP芯片的主机引导加载方法的流程图;

图2是本发明的实施例,基于精简ISA计算机总线对TigerSHARC DSP芯片的主机引导加载的原理图;

图3是本发明的实施例,基于精简ISA计算机总线对TigerSHARC DSP芯片的主机引导加载方法的流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。

图1是本发明一种针对TigerSHARC DSP芯片的主机引导加载方法的流程图;

针对TigerSHARC DSP芯片的主机引导加载方法的步骤包括:

步骤S1:电源稳定后,通过复位电路,先置TigerSHARC DSP复位管脚/RESET信号有效,使TigerSHARC DSP芯片硬复位;

步骤S2:延时至少500ms,确保TigerSHARC DSP芯片硬复位;

步骤S3:置TigerSHARC DSP的/HBR信号为低,向DSP申请外部总线;

步骤S4:查询TigerSHARC DSP的/HBG信号,若为低,则外部总线申请成功,执行步骤S5,若为高,执行步骤S3;

步骤S5:向TigerSHARC DSP的AUTODMA0寄存器写63次数据0x0000ffff;

步骤S6:主机顺序读入4字节加载文件数据,顺序写入TigerSHARC DSP的内存地址;

步骤S7:再重复步骤S6 255次;

步骤S8:向TigerSHARC DSP的AUTODMA0寄存器写1次数据0x0000ffff;

步骤S9:外部主机顺序读入4字节加载文件数据,继续顺序写入AUTODMA0寄存器;

步骤S10:重复步骤9,直至处理完加载文件的全部数据;

步骤S11:置TigerSHARC DSP的/HBR信号为高,释放总线。

如图2所示的基于精简ISA计算机总线对TigerSHARC DSP芯片的主机引导加载的原理图,包括精简ISA总线、地址译码、控制信号产生、数据产生和地址产生。

其中,精简ISA总线是采用了ISA总线数据信号、地址信号和部分控制信号的总线,一般由嵌入式计算机提供ISA总线,在使用时,只采用ISA总线的数据信号、地址信号和部分的ISA控制信号用于对TigerSHARC DSP进行控制和实现TigerSHARC DSP主机引导加载。

地址译码用于解析精简ISA总线IO地址空间,产生针对TigerSHARC DSP的功能指令、数据指令和地址产生指令;即选取ISA总线可用的IO空间作为被控TigerSHARC DSP芯片的ISA地址空间,对上述ISA地址空间不同的地址进行读写操作,通过地址译码和读写控制产生不同的TigerSHARC DSP操作指令,包括功能指令、数据指令和产生地址指令。

控制信号产生用于将地址译码产生的功能指令,转换为具有读写、控制时序的控制信号输出到TigerSHARC DSP的控制引脚,包括产生/WRL信号、/RD信号、/HBR信号和/RESET等信号,控制信号接收TigerSHARC DSP的/HBG信号,用于判断总线申请是否成功。

数据产生用于在地址译码产生数据指令时,通过固定的时序,将16位ISA数据转换为32位数据发送到TigerSHARC DSP的低32位数据总线上。

地址产生用于在地址译码发出产生地址指令时,通过固定的时序,将16位ISA数据作为低位,地址译码空间作为高位,生成32位地址数据发送到TigerSHARC DSP的地址总线上。

在本实施例中,选取0x700~0x7ff为被控TigerSHARC DSP芯片在ISA总线中的地址空间,在地址空间0x700~0x7ff范围内,ISA高八位地 址固定不变,命名为基地址,低八位地址按照需求可进行划分,下面是与加载数据或程序有关的地址列表,地址数值可任意设置:

BASE+0X02:写TigerSHARC DSP内部寄存器的地址,16位数据为地址低16位;

BASE+0X04:写数据到PLD中作为写地址操作时将数据写入TigerSHARC DSP总线上的锁存数据,连续两次写,第一次对应TigerSHARC DSP低16位数据,第二次写对应TigerSHARC DSP高16位数据,两次连续写为一个完整组合,先写数据再写地址;

BASE+0X06:向TigerSHARC DSP申请外部总线,写任意数产生该申请;

BASE+0X08:释放TigerSHARC DSP外部总线,写任意数执行该释放工作;

BASE+0X0A:写TigerSHARC DSP内部存储区0,16位数据为地址低16位;

BASE+0X22:读地址,以检查DSP外部总线状态,数据最低位有效;

BASE+0X72:写该地址产生系统复位命令,对TigerSHARC DSP硬复位;

其中,BASE为基地址0x700。

对TigerSHARC DSP进行复位时,输出任意数到BASE+0X72地址,通过地址译码产生复位指令输出到控制信号产生,然后控制信号产生符合TigerSHARC DSP复位需求的/RESET信号,之后延时至少500ms,确保复位有效完成。

对于申请TigerSHARC DSP总线操作,输出任意数到BASE+0X06地址,通过地址译码产生总线指令输出到控制信号产生,然后控制信号产生将TigerSHARC DSP的/HBR信号持续拉低。

对于判断TigerSHARC DSP总线申请是否有效,读BASE+0X22地址信号,此时,TigerSHARC DSP的/HBG信号连接至ISA数据总线的最低位,通过判断该位数据是否为0,则可以判断申请TigerSHARC DSP地址总线操作是否有效。

对于向AUTODMA0寄存器写数据,先向BASE+0X04地址写入低16位数据,地址译码产生数据指令发送到数据产生,数据产生将ISA数据总线上的数据三态锁存在TigerSHARC DSP的低16位数据总线上;再向BASE+0X04地址写入高16位数据,地址译码产生数据指令发送到数据产生,数据产生将ISA数据总线上的数据三态锁存在TigerSHARC DSP的次低16位数据总线上;最后,BASE+0X02地址写入0x740,地址译码产生写寄存器指令和产生地址指令分别发送到地址产生和控制信号产生,地址产生将ISA数据总线上的数据锁存到TigerSHARC DSP的低16位地址总线上,地址产生将预存的寄存器高16位地址锁存到TigerSHARC DSP的高16位地址总线上,控制信号产生将/WRL信号置低,同时数据产生和地址产生驱动数据和地址到TigerSHARC DSP的数据总线和地址总线。

对于向TigerSHARC DSP的加载内存空间写数据,先向BASE+0X04地址写入低16位数据,地址译码产生数据指令发送到数据产生,数据产生将ISA数据总线上的数据三态锁存在TigerSHARC DSP的低16位数据总线上;再向BASE+0X04地址写入高16位数据,地址译码产生数据指令发送到数据产生,数据产生将ISA数据总线上的数据三态锁存在TigerSHARC DSP的次低16位数据总线上;最后,向BASE+0X0A地址写入地址的低16位,地址译码产生写内存指令和产生地址指令分别发送到地址产生和控制信号产生,地址产生将ISA数据总线上的数据锁存到TigerSHARC DSP的低16位地址总线上,地址产生将预存的加载内存空间的高16位地址锁存到TigerSHARC DSP的高16位地址总线上,控制信号产生将/WRL信号置低,同时数据产生和地址产生驱动数据和地址到TigerSHARC DSP的数据总线和地址总线。

对于释放TigerSHARC DSP总线操作,输出任意数到BASE+0X08地址,通过地址译码产生总线指令输出到控制信号产生,然后控制信号产生将TigerSHARC DSP的/HBR信号持续拉高。

图3为实施例基于精简ISA计算机总线对TigerSHARC DSP芯片的主机引导加载方法的流程图,其步骤包括:

步骤一:向ISA地址BASE+0X72写0,产生系统复位命令,电路产生符合TigerSHARC DSP复位需求的/RESET信号,使TigerSHARC DSP芯片硬复位;

步骤二:延时至少500ms,确保TigerSHARC DSP芯片硬复位;

步骤三:向ISA地址BASE+0X06写任意数,向TigerSHARC DSP申请外部总线;

步骤四:从ISA地址BASE+0X22读入16位数据,查询/HBG信号状态,判断TigerSHARC DSP总线申请是否成功,若读入数据的最低位为0,则对应/HBG信号为0,DSP总线申请成功,顺序执行步骤五,若读入数据的最低位为1,则对应/HBG信号为1,TigerSHARC DSP总线申请不成功,返回执行步骤三;

步骤五:向ISA地址BASE+0X04写0xFFFF;

步骤六:向ISA地址BASE+0X04写0x0000;

步骤七:向ISA地址BASE+0X02写0x740,通过步骤五至步骤七,实现向AUTODMA0寄存器写入数据0x0000ffff,重复步骤五至步骤七共63次;

步骤八:提供ISA总线的主机顺序读入4字节加载文件数据,将低16位写入ISA地址BASE+0X04;

步骤九:将高16位写入ISA地址BASE+0X04;

步骤十:将低16位的DSP地址写入ISA地址BASE+0X0A,通过步骤五至步骤七,提供ISA总线的主机读入4字节加载文件数据,顺序写入以0x0开始的对应的TigerSHARC DSP内存地址;重复步骤八至步骤十共256次;

步骤十一:向ISA地址BASE+0X04写0xFFFF;

步骤十二:向ISA地址BASE+0X04写0x0000;

步骤十三:向ISA地址BASE+0X02写0x740,通过步骤五十一至步骤十三,实现向TigerSHARC DSP的AUTODMA0寄存器写入数据0x0000ffff;

步骤十四:提供ISA总线的主机继续读入4字节加载文件数据,将低16位写入ISA地址BASE+0X04;

步骤十五:将高16位写入ISA地址BASE+0X04;

步骤十六:将0X740写入ISA地址BASE+0X02,通过步骤十四至步骤十六,提供ISA总线的主机读入4字节加载文件数据,继续顺序写入TigerSHARC DSP的AUTODMA0寄存器,重复步骤十四至步骤十六直至读完、写入所有的加载数据文件;

步骤十七:向ISA地址BASE+0X72写0x0000,置/HBR信号为高,释放TigerSHARC DSP总线。

应当注意,为了使本发明的实施方式更容易理解,上面的描述省略了对于本领域的技术人员来说是公知的、并且对于本发明的实施方式的实现可能是必需的更具体的一些技术细节。例如,上面的描述省略了对ISA总线的一般性描述。上述说明仅仅是示意性的而不是限制性的。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1