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

news2024/11/16 23:52:53
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.coloradmin.cn/o/1643141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

奇偶校验码

目录 前言 校验原理简介 奇偶校验码 前言 在前两个文章的学习中,我们已经知道了数字字符这些简单的数据应该怎么在计算机内部进行表示,其实本质上是0101的二进制代码,但是这些数据在计算机内部进行计算存取和传送的过程中,由于计算机原器件可能会发生故障,也有可能因为某些…

Qt服务器端与客户端交互

Qt做客户端与服务器端交互第一步引入network 第一步引入network后继续编程首先界面设计 创建server和socket 引入QTcpServer&#xff0c;QTcpSocket MainWindow.h代码如下 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTcpServer&…

STM32入门学习之ADC

1.ADC在STM32进行数据采集时十分重要。通过ADC可以将外界的数字信号转换为模拟信号&#xff0c;以满足采样的需求。(资料参考于正点原子) STM32 拥有 1~3 个 ADC &#xff08; STM32F101/102 系列只有 1 个 ADC &#xff09;&#xff0c;这些 ADC 可以独立使用&#…

《老相册》读后感

外面在下着瓢泼大雨&#xff0c;豆粒大的雨点打在窗户上&#xff0c;发出啪啪的巨响。这样的雨天&#xff0c;是不适宜外出的&#xff0c;最惬意的方式就是一个人待在宿舍里&#xff0c;打开一本书&#xff0c;慢慢地看&#xff0c;静静地想&#xff0c;让所有的烦恼融化在这雨…

数据结构学习/复习7--栈的实现/括号匹配练习题/队列的实现/队列实现栈练习

一、栈 1.概念及性质 2.栈的实现(top0版) 注意事项&#xff1a;top也可初始为-1,代码需要调整 二、栈练习 1.括号匹配 三、队列 1.概念及性质 2、队列的实现 四、队列练习 1.两个队列实现栈

从零开始学AI绘画,万字Stable Diffusion终极教程(四)

【第4期】图生图 欢迎来到SD的终极教程&#xff0c;这是我们的第四节课 这套课程分为六节课&#xff0c;会系统性的介绍sd的全部功能&#xff0c;让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 在前面的课程中&#xff0c;我…

动手写一个简单的Android 表格控件支持固定列

Android 动手写一个简洁版表格控件 简介 源码已放到 Github Gitee 作为在测绘地理信息行业中穿梭的打工人&#xff0c;遇到各种数据采集需求&#xff0c;既然有数据采集需求&#xff0c;那当然少不了数据展示功能&#xff0c;最常见的如表格方式展示。 当然&#xff0c;类似…

论文辅助笔记:TimeLLM

1 __init__ 2 forward 3 FlattenHead 4 ReprogrammingLayer

Go 语言基础(一)【基本用法】

前言 最近心情格外不舒畅&#xff0c;不仅仅是对前途的迷茫&#xff0c;这种迷茫倒是我自己的问题还好&#xff0c;关键它是我们这种普通吗喽抗衡不了的。 那就换个脑子&#xff0c;学点新东西吧&#xff0c;比如 Go&#xff1f; 1、Go 语言入门 介绍就没必要多说了&#xff0…

vue快速入门(五十四)$nextTick的使用

注释很详细&#xff0c;直接上代码 上一篇 新增内容 $nextTick的使用场景演示 源码 App.vue <template><div id"app"><h3>{{name}}</h3><button click"showfixed">修改</button><form action"post" v-s…

Git常用(持续更新)

常用场景&#xff1a; 初始化&#xff1a; git config --global user.name "codelabs" git config --global user.email mycodelabs.com git init git remote add origin https://github.com/username/repository.git git pull origin master 提交&#xff1a; gi…

设计模式: 责任链模式

目录 一&#xff0c;责任链模式 二&#xff0c;特点 四&#xff0c;实现步骤 五&#xff0c;代码 一&#xff0c;责任链模式 责任链模式&#xff08;Chain of Responsibility Pattern&#xff09;是一种软件设计模式&#xff0c;它属于行为型模式。在这种模式中&#xff0c…

2024五一赛数学建模A题B题C题完整思路+数据代码+参考论文

A题 钢板最优切割路径问题 &#xff08;完整资料在文末获取&#xff09; 1. 建立坐标系和表示方法&#xff1a; 在建模之前&#xff0c;我们需要将切割布局转换为数学表示。首先&#xff0c;我们可以将布局中的每个点表示为二维坐标系中的一个点。例如&#xff0c;B1可以表示…

【吊打面试官系列】Java高并发篇 - Thread 类中的 yield 方法有什么作用?

大家好&#xff0c;我是锋哥。今天分享关于 【Thread 类中的 yield 方法有什么作用&#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; Thread 类中的 yield 方法有什么作用&#xff1f; 使当前线程从执行状态&#xff08;运行状态&#xff09;变为可执行态&#x…

【数据结构(邓俊辉)学习笔记】列表04——排序器

文章目录 0. 统一入口1. 选择排序1.1 构思1.2 实例1.3 实现1.4 复杂度 2. 插入排序2.1 构思2.2 实例2.3 实现2.4 复杂度分析2.5 性能分析 3. 归并排序3.1 二路归并算法3.1.1 二路归并算法原理3.1.2 二路归并算法实现3.1.3 归并时间 3.2 分治策略3.2.1 实现3.2.2 排序时间 4. 总…

源支付V7开源版,源支付开源版,已去除安装扩展

源支付V7开源版&#xff0c;源支付开源版&#xff0c;已去除安装扩展 上传源码 设置伪静态 已去除安装扩展&#xff0c;直接上传就可以安装 开源版通道少了好几个 视频教程&#xff1a;https://www.bilibili.com/video/BV1mZ42177VY/

基于OpenCV-DNN的YOLOv9目标检测实现

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

力扣打卡第二天

206. 反转链表 class Solution { public:ListNode* reverseList(ListNode* head) {// //迭代法// ListNode *pre nullptr;// ListNode *curr head;// while(curr){// ListNode *next curr -> next;// curr -> next pre;// pre curr;// curr next;/…

【实时数仓架构】方法论

笔者不是专业的实时数仓架构&#xff0c;这是笔者从其他人经验和网上资料整理而来&#xff0c;仅供参考。写此文章意义&#xff0c;加深对实时数仓理解。 一、实时数仓架构技术演进 1.1 四种架构演进 1&#xff09;离线大数据架构 一种批处理离线数据分析架构&#xff0c;…

SFOS1:开发环境搭建

一、简介 最近在学习sailfish os的应用开发&#xff0c;主要内容是QmlPython。所以&#xff0c;在开发之前需要对开发环境&#xff08;virtualBox官方SDKcmake编译器python&#xff09;进行搭建。值得注意的是&#xff0c;我的开发环境是ubuntu22.04。如果是windows可能大同小异…