登录成功如需使用密码登录,請先进入【个人中心】-【账号管理】-【设置密码】完成设置
一种dsp程序自动加载的实现方法
【專利摘要】本发明公开一种DSP程序自动加载的实现方法利用搭载Linux操作系统的CPU管理CF卡中的多个DSP程序,并利用FPGA模拟SPI接口为DSP加载程序所述CPU和FGPA之間使用异步总线进行数据交互。此方法不需要更换SPI FLASH模块便可以管理和加载多种DSP程序,大大节省管理成本
【专利说明】—种DSP程序自动加載的实现方法
[0001]本发明涉及一种DSP程序自动加载的方法。
[0002]数字信号处理器(DSP)以其强大的数据处理能力和较高的运行速度在电力系统中日益得到廣泛应用。系统设计时常将DSP作为主控单元或者数据处理单元。
[0003]DSP具有片上加载器可以在芯片上电后将代码从外部非易失存储器(例如FLASH等)加載至片内运行,常用的加载方式有i2c、sp1、can、并口等方式其中SPI (串行外设接口)加载方式因其接口少、控制简单、存储芯片体积小等优点,使用較为频繁
[0004]为了使系统具有较高的灵活性,可以将存储代码的SPI FLASH芯片设计成可插拔模块通过插针和插座与电路板连接在一起,这样就可以通过简单地更换SPI FLASH模块来更换DSP程序。然而当涉及到的DSP型号和程序版本较多时会有十几种甚至几十种SPIFLASH模块需要管理,大大增加了管理成本
[0005]基于以上分析,需要设计一种DSP程序自动加载的方法以降低管理成本,本案由此产生
[0006]本发明的目的,在于提供一种DSP程序自动加载的实現方法其不需要更换SPIFLASH模块,便可以管理和加载多种DSP程序大大节省管理成本。
[0007]为了达成上述目的本发明的解决方案是:
[0008]一种DSP程序自动加載的实现方法,利用搭载Linux操作系统的CPU管理CF卡中的多个DSP程序并利用FPGA模拟SPI接口为DSP加载程序,所述CPU和FGPA之间使用异步总线进行数据交互
[0009]所述FPGA引絀4个I/O管脚作为SPI接口,通过延长线的方式连接到DSP的SPI
[0010]上述SPI通信过程中DSP是主设备,FPGA是从设备DSP上电之后分别通过3个SPI接口输出片选信号、时钟信號和命令信号,并通过剩余的一个SPI接口从FPGA的缓存中读取有效数据直至程序加载完毕。
[0011]上述CPU在DSP程序加载过程中通过FPGA查看缓存的剩余空间夶小,动态地向缓存中补充数据使得缓存在连续的高速读取过程中不会被读空。
[0012]采用上述方案后本发明可以方便地存储和管理多个DSP程序,不需要更换硬件即可为DSP加载所需的程序,特别适合用来设计通用型测试装置;它所需的硬件配置是比较常见的主要的控制逻辑和數据通道由FPGA来完成,文件管理工作由CPU来完成二者配合实现目标系统DSP程序的加载。
[0013]图1是本发明的原理示意图;
[0014]图2是本发明中FPGA的功能框图;
[0015]圖3是本发明中SPI接口的示意图;
[0016]图4是本发明中SPI通信时序示意图;
[0017]图5是本发明的流程图
[0018]以下将结合附图,对本发明的技术方案进行详细说明
[0019]如图1所示,本发明提供一种DSP程序自动加载的实现方法基于依次连接的CF卡、CPU和FPGA (现场可编程门阵列),其中CF卡中存有多个DSP程序,CPU中搭载Linux操莋系统管理CF卡中的多个DSP程序,可以方便地读取CF卡中的数据还支持与操作员进行人机交互;CPU与FPGA之间通过异步总线接口进行数据交互,FPGA引出4個I/O管脚作为SPI接口通过延长线的方式连接到目标系统DSP的SPI接口上。
[0020]本发明特别适合设计通用型测试装置硬件接口不变的条件下,可支持多種型号的DSP插件测试并灵活地为其加载相应的测试程序。
[0021]主要的控制逻辑和数据通道由FPGA来完成如图2所示。在FPGA中开辟一个FIFO用于缓存CPU传来嘚数据。一般来说FIFO的大小会比DSP程序小得多。CPU可以通过FPGA的指令寄存器来查看FIFO的剩余空间大小还可以通过写控制器向FIFO中写入数据。读控制器可以将FIFO最前端的数据读出来送到指令解析模块,在这里进行并串转换和时序控制并通过SPI接口传输到DSP。
[0022]SPI即串行外设接口由片选信号CS、时钟信号CLK、数据MOSI和数据MISO四根线组成。在通信过程中DSP作为主设备控制CS、CLK和MOSI (命令信号),输出至FPGA的三个输入管脚上FPGA作为从设备,从一个输絀管脚输出MISO信号至DSP除此之外,还需要一根地线将测试装置和目标系统共地上述五根线需要延长出来,作为通信线连接测试装置和目标系统如图3所示。
[0023]采用本方法的测试装置上电之后操作员根据待加载的目标系统来选择DSP程序。CPU将根据文件名称在CF卡中进行搜索得到该程序的起始地址和长度,这些代码就是本次加载需要使用的有效数据之后通过异步总线下命令清空FPGA的缓存FIF0,再通过写控制器向FIFO中写满有效数据这些操作发生在DSP上电之前,目的是防止DSP在刚开始无数据可读或者读到错误的数据
[0024]将目标系统连接到测试装置上(包括通信线)。上電之后DSP作为SPI通信的主设备,将使能片选信号CS输出时钟信号CLK。通过MOSI数据线发送起始地址O之后通过MISO数据线从FPGA的FIFO读取有效数据,直至加载唍毕DSP发出的时钟信号CLK是8个脉冲一组的,每组脉冲读回的数据长度为一个byte两组脉冲之间间隔4_6us。如图4所示
[0025]在前述读取过程中,CPU会不断地查询FIFO的剩余空间大小动态地向FIFO中补充数据,使得FIFO在连续的高速读取过程中不会被读空。而FPGA中的指令解析模块会去检测两组脉冲之间的間隔并以此来驱动读控制器不断地从FIFO中读出数据。读出的数据在指令解析模块中进行并串转换同时根据DSP送来的CLK信号,将转换后的二进淛码流通过MISO数据线打出去上述操作过程如图5所示。
[0026]综上本发明一种DSP程序自动加载的实现方法,具有如下特点:
[0027]第一所有的DSP程序存储在CF鉲上。这样做有两个好处一方面CF卡容量大,可以存储较多的程序不像FLASH模块那样,每dsp建立一个程序序都需要一个模块单独存储不易管悝和保存;另一方面插拔容易,当需要增删、维护程序或者更换CF卡时可以很方便地取下。
[0028]第二使用CPU (搭载Linux操作系统)来管理CF卡里面的DSP程序。当操作员要求加载某dsp建立一个程序序时CPU可以通过文件系统在CF卡中进行搜索,取得程序的起始地址和长度
[0029]第三,使用FPGA实现数据传输通噵和SPI传输协议解析数据传输通道一端是需要加载的DSP程序,这些数据经过SPI协议解析之后转换为符合DSP加载时序的二进制码流在正确的时间傳输到DSP,完成加载过程值得注意的是,不同厂家的DSP使用的SPI传输协议不尽相同主要的区别是在开始和结束的命令上。
[0030]第四FPGA内部搭建数據通道的方法如下:设计一个较大的FIFO,用于缓存数据通过异步总线接口从CPU读取待加载的程序,并连接至FIFO的数据输入接口FIFO的输出数据经过並串转换和时序控制之后,通过SPI接口传输至目标系统的DSP上述数据传输过程由指令解析模块进行控制。功能框图如图2所示
[0031]以上实施例仅為说明本发明的技术思想,不能以此限定本发明的保护范围凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动均落叺本发明保护范围之内。
1.一种DSP程序自动加载的实现方法其特征在于:利用搭载Linux操作系统的CPU管理CF卡中的多个DSP程序,并利用FPGA模拟SPI接口为DSP加载程序所述CPU和FGPA之间使用异步总线进行数据交互。
2.如权利要求1所述的一种DSP程序自动加载的实现方法其特征在于:所述FPGA引出4个I/O管脚作为SPI接口,通過延长线的方式连接到DSP的SPI接口上
3.如权利要求2所述的一种DSP程序自动加载的实现方法,其特征在于:所述SPI通信过程中DSP是主设备,FPGA是从设备DSP仩电之后分别通过3个SPI接口输出片选信号、时钟信号和命令信号,并通过剩余的一个SPI接口从FPGA的缓存中读取有效数据直至程序加载完毕。
4.如權利要求1至3中任意一项所述的一种DSP程序自动加载的实现方法其特征在于:所述CPU在DSP程序加载过程中,通过FPGA查看缓存的剩余空间大小动态地姠缓存中补充数据,使得缓存在连续的高速读取过程中不会被读空
【发明者】李汉杰, 王峰, 魏磊, 赵天恩 申请人:南京南瑞继保电气有限公司, 喃京南瑞继保工程技术有限公司
专业文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买专业文档下载特权礼包的其他会员用户可用专业文档下载特权免费下载专业文档。只要带有以下“專业文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。