DSP实时分析平台设计方案:924-6U CPCI振动数据DSP实时分析平台

6U CPCI振动数据DSP实时分析平台

 

一、产品概述

      基于CPCI结构完成40路AD输入,30路DA输出的信号处理平台,处理平台采用双DSP+FPGA的结构,DSP采用TI公司新一代DSP TMS320C6678,FPGA采用Xilinx V5 5VLX110T-1FF1136芯片,设计尽量采用工业级芯片。该方案描述了技术要求,硬件设计、软件设计方案。提出任务的质量保证与控制要求、验收与交付要求。

    1、标准6U cPCI 板卡结构。

    2 采用双DSP,TMS320C6678,实现各8核,1.25GMHz的快速数据处理。

    3、采用FPGA实现AD,DA数据收发,并与DSP进行传输。

    4、DA: 不少于30路,±10V,16位,建立时间约0.01mS;

    5、AD:不少于40通道,±10V, 16位,采样速率8kHz;

    6、开发工具CCS:用户在此开发工具上可使用标准的C(或C++)对于全部资源进行操作和信号处理(DSP)等

    7、工作环境:工业级应用

二、处理板硬件

 

 

 

三、底层软件开发

3.1 DSP底层程序设计

      DSP 程序采用CCS4.0以上版本进行编译,程序包括几部分:

    A、DDR2驱动

实现DDR2的寄存器访问和设置,配置DDR2的接口参数,实现数据的访问,同时测试DDR2的空间是否有误码数据,全部空间进行测试。

    B、 Flash驱动

实现Flash空间的擦除,写数。此部分还包括EMIF接口的配置。

    C、 Boot引导程序,实现DSP程序的二次加载,实现简单程序的加载成功。

    D、 RapidIO驱动,实现两个DSP之间的RapidIO收发数据,分别做主从,采用DMA和中断方式,实现两路数据的交互。

    E、 多核工作,实现8核CPU的共享内存,并把数据分别传送给8个CPU同时处理。

    F、 PCIe 驱动,PCIe驱动要结合FPGA程序进行调试,DSP端实现PCIe的DMA ,中断传输,能正确读FPGA中的FIFO和寄存器数据,能正确写FPGA中的FIFO和寄存器数据。

    G、 以太网程序,DSP通过以太网接口,利用TI的测试例子程序,实现数据的回环测试,保证硬件链接可靠。

3.2 FPGA 程序设计

 FPGA程序主要包含:

    A、 AD,DA参数的配置,通过SPI接口配置寄存器参数,实现AD、DA工作在合理的状态

    B、DDR2的控制和访问,FPGA实现DDR2芯片的控制,数据的读写,实现AD,DA通道数据的缓存。

    C、 PCIe接口,PCIe接口与DSP互联,实现X2模式访问,可以实现AD,DA数据的交互,寄存器的访问,实现DMA和中断方式。

    D、光纤驱动,实现四路的光纤采用RocketIO协议实现数据的收发。

3.3 应用测试程序

  应用测试程序主要测试数据流如下:

  (1) 40路AD,进入FPGA,通过PCIe同时进入两个DSP,做简单的缓存,通过RapidIO进入另外一个DSP,并通过网络发送到客户端进入PC机,缓存显示。

    (2)  AD 数据通过光纤SFP 发送出,并回环进入到另外两个SFP,并通过DA输出。

  (3) 在DSP中的AD数据,同时通过PCIe发送到FPGA,通过DA输出。

  (4) 在该数据流中,AD的数据复用后分成3个通道分别进入到两个DSP和光纤。

  (5) 两个DSP,和光纤过来的数据,进行三选一,同时给24路DA。

  (6)FPGA上的DDR2 主要做备份,可能在FPGA中做预处理的时候要用上,在模块测试中已经完成。

 

四、基于Labview的监客户端软件开发

4.1 软件界面

 

图 实时监控界面

 

 图 多通道示波器界面
4.2程序框图整体设计

 

图上位机程序框图
4.3 收发数据
(1)发送数据:运行上位机程序,右击“波形信号选择”按钮,选择后,波形图对应的字符串显示控件会显示发送的信号名称,点击“发送按钮”即可向下位机发送数据;如果想停止发送可点击“停止发送”按钮。如在“波形信号选择W1”的下拉菜单中选择控制信号->全部频率->作动器5,则波形图表1的字符串显示控件如图20所示

 

图 发送数据时选择信号的显示
(2)接收数据:想查看波形,需在运行后点击对应的“开启实时监控”按钮,使之处于“开”状态;想保存波形数据,需在运行后点击“开始记录”,并点击对应的“是否保存”按钮,使之处于“是”状态,如果想停止监控,点击“停止记录”按钮。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/317434.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在Spring Boot中配置数据库密码加密

如何在Spring Boot中配置数据库密码加密? alibaba/druid Wiki GitHub 使用ConfigFilter alibaba/druid Wiki GitHub 巧用Druid数据源实现数据库连接密码的加密解密功能 import com.alibaba.druid.filter.config.ConfigTools;public class Testttt {public stat…

【IDEA】IDEA自带Maven/JDK,不需要下载

IDEA是由Java编写的,为了保证其运行,内部是自带JDK的。IDEA 2021 及 之后的版本是自带Maven的: 视频连接: https://www.bilibili.com/video/BV1Cs4y1b7JC?p4&spm_id_frompageDriver&vd_source5534adbd427e3b01c725714cd…

状态模式和策略模式对比

状态模式和策略模式都是行为型设计模式,它们的主要目标都是将变化的行为封装起来,使得程序更加灵活和可维护。之所以将状态模式和策略模式进行比较,主要是因为两个设计模式的类图相似度较高。但是,从状态模式和策略模式的应用场景…

Redisson分布式锁,重试锁和锁续命的原理

RedissonLock 锁重试原理 tryLock有三个三个参数,第一个是等待时间,第二个是锁失效后自动释放的时间,不填默认为-1,第三个是时间单位; 当设置了第一个参数,那这个锁就成了可重试锁;获取锁失败后&#xff0c…

大数据分析与内存计算学习笔记

一、Scala编程初级实践 1.计算级数: 请用脚本的方式编程计算并输出下列级数的前n项之和Sn,直到Sn刚好大于或等于q为止,其中q为大于0的整数,其值通过键盘输入。(不使用脚本执行方式可写Java代码转换成Scala代码执行&a…

【R语言数据分析】数据类型与数据结构

R的数据类型有数值型num,字符型chr,逻辑型logi等等。 R最常处理的数据结构是:向量,数据框,矩阵,列表。 向量有数值型向量,字符型向量,逻辑型向量等,字符型向量就是反应…

普通屏幕已过时?裸眼3D屏幕显示效果更胜一筹!

随着多媒体技术的迅猛进步,我们日常生活中的内容展现方式,已经经历了前所未有的变革。在这其中,裸眼3D屏幕的应用,无疑是最为引人注目的亮点,它相较于传统屏幕,在显示效果上展现出了鲜明的优势,…

ComfyUI最新InsightFaceLoader节点无法安装的问题

最近更新一个工作流。里面有一些爆红节点,很正常的想到去Manager安装,于是乎开启Clash猫远程安装。装完了还是有一些报错,InsightFaceLoader也无法安装,很奇怪,很常用的节点啊。 一查是ComfyUI_IPAdapter_plus模块的。…

C#知识|汇总方法重载与静态方法应用技巧

哈喽,你好,我是雷工! 今天学习C#方法重载与静态方法应用技巧的相关内容。 01 方法重载有什么好处? 1.1、可以有效的减少类的对外接口(只显示一个方法比较简洁),从而降低类的复杂度。 1.2、方便…

java实现模板填充word,word转pdf,pdf转图片

Java实现Word转PDF及PDF转图片 在日常开发中,我们经常需要将文件操作,比如: 根据模板填充wordword文档中插入图片Word文档转换为PDF格式将PDF文件转换为图片。 这些转换可以帮助我们在不同的场景下展示或处理文档内容。下面,我将…

鹏哥C语言复习——字符函数与字符串函数

目录 一.字符函数 1.字符分类函数 2.字符转换函数 二.基础字符串函数 1.strlen函数 2.strcpy函数 3.strcat函数 4.strcmp函数 三.基础字符串函数优化 1.strncpy函数 2.strncat函数 3.strncmp函数 四.进阶字符串函数 1.strstr函数 2.strtok函数 3.strerror函数 一…

python实现的基于单向循环链表插入排序

相比于定义一个循环双向链表来实现插入排序来说,下面的实现采用一个单向循环链表来实现,并且不需要定义一个单向循环链表类,而是把一个list(数组/顺序表)当成单向循环链表来用,list的元素是一个包含两个元素…

Linux migrate_type初步探索

1、基础知识 我们都知道Linux内存组织管理结构架构,顶层是struct pglist_data,然后再到struct zone,最后是struct page。大概的管理结构是这样的: 根据物理内存的地址范围可划分不同的zone,每个zone里的内存由buddy…

赋能智慧校园!A3D数字孪生可视化,轻量又高效!

放假之后,学生们会逐步返学,大量人员出入校园,安全更是不容忽视,如何在短时间内对大批人员及设施进行智能监管?数字化转型是关键手段,我们可以融合线上线下数据,搭建3D立体的智慧校园&#xff0…

latex+vscode一直报错,配置文件json和环境变脸配置

1、json配置文件 {"latex-workshop.latex.tools": [{"name": "xelatex","command": "xelatex","args": ["-synctex1","-interactionnonstopmode","-file-line-error","%DOCF…

Hive主要介绍

Hive介绍 hive是基于 Hadoop平台操作 HDFS 文件的插件工具 可以将结构化的数据文件映射为一张数据库表 可以将 HQL 语句转换为 MapReduce 程序 1.hive 是由驱动器组成,驱动器主要由4个组件组成(解析器、编译器、优化器、执行器) 2.hive本身不…

访问jwt生成token404解决方法

背景: 1.在部署新的阿里云环境后发现调用jwt生成token的方法404,前端除了404,台不报任何错误 在本地好用,在老的阿里云环境好用, 2.缩短生成私钥的参数报错,以为私钥太长改了tomcat参数也无效&#xff0…

《MySQL对库的基本操作》

文章目录 一、查看数据库列表查看数据库中的所有表想知道当前处于哪个数据库里 二、创建一个数据库三、删除一个数据库知道两个集1.字符集2.校验集修改数据库的字符集和编码集 不同的校验码对数据库的影响四、数据库的备份与恢复注意事项:备份数据库中的表 总结 一、…

算法训练营第十三天 | LeetCode 239 滑动窗口最大值、LeetCode 347 前K个高频元素

LeetCode 239 滑动窗口最大值 本体初始思路是这样的,首先看下给定数组长度和维持一个滑动窗口所需要花费的时间复杂度之间的关系。初步判断是还行的,当然后面被样例打脸了。需要更新成优先队列的解法。原本的解法能通过37/51和46/51的测试用例。但这还不…

【Kotlin】Channel简介

1 前言 Channel 是一个并发安全的阻塞队列,可以通过 send 函数往队列中塞入数据,通过 receive 函数从队列中取出数据。 当队列被塞满时,send 函数将被挂起,直到队列有空闲缓存;当队列空闲时,receive 函数将…