1.开发环境CCS(CodeCo

  mposerStudio)是TI公司开发的一个完整的DSP集成开发环境。由于TI的DSP使用非常广泛,使得CCS也就成为使用最为广泛的DSP开发软件之一。现在,所有TI公司的DSP都可以在该环境里进行开发,可实现全空间透明仿真,不占用用户任何资源,软件配有汇编/链接、C编译器、C源码调试器等。不同的系统有不同版本的CCS开发环境,TMS320F28l2的集成开发环境是CCS2000。在购买开发板时都会免费赠送CCS开发软件,另外也可以在TI的网站上免费下载该软件,开发环境的安装使用一般在DSP开发板的使用说明书中有详尽的叙述,在此不做赞述。

  2.编程语言CCS开发环境支持两种语言:汇编语言和C语言。TI的每个DSP系列都有对应的一套汇编指令,如果采用汇编语言编程,需要熟悉这些指令,难度和效率可想而知。现在TI的工程师在不断改进CCS的C程序优化编译器,目前C优化的效率可达到手工汇编的90%甚至更高。当然有的时候如果计算能力和内存资源是瓶颈,ASM还是有优势,比如G.729编解码。但是针对一般的应用开发,C语言是最好的选择,只要有一定的C语言的基础,就完全可以进行DSP的开发编程。

  应用实例及开发流程

  1.实例介绍400Hz的逆变电源的控制部分实现的主要功能有:(1)AD转换,(2)SPWM生成,(3)与显示单片机的串口通信,(4)与其他并联电源的CAN总线通信;(5)捕捉同步信号。妥实现以上这些功能,显然普通的单片机是无法完成的,因此我们选择了专门用作控制的数字信号处理器TMS320F2812。在此仪对TMS320F28l2生成SPWM波的开发过程作详细介绍。

  PWM(PulseWidthModulation)控制就是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形。

  SPWM波形(SinuSOIdalPWM)就是脉冲的宽度按正弦规律变化而和正弦波等效的PWM波形,在逆变电路中的应用最为广泛。在此例中SPWM的功能是给三相逆变电路的6个IGBT(绝缘栅双极晶体管)提供触发脉冲,从而使直流电逆变为400Hz的正弦交流电。

  2.开发流程(1)编写软件SPWM的生成主要是应用TMS320F28l2的事件管理器模块(EVA/B),所以编写程序前要做的主要工作就是了解熟悉这一模块的结构和工作原理,至于其他用不到的模块可暂时不作了解。程序编写的第一步就是要对用到的模块的各种寄存器进行设置,第二步就是算法的设计编写。

  本文末尾是笔者编写的已经通过编译的一段生成SPWM(正弦脉宽调制波)的主程序。

  (2)调试程序编写完程序后,就要在仿真环境下进行调试,先编译再运行,通过示波器可以直接观察DSP引脚上输出的SPWM波形,直到与要求的波形相符为止。

  (3)烧写程序在仿真环境下调试好程序后,需要把程序烧写到DSP的片上FLASH存储器中。烧写时必须先安装专门的烧写软件,安装后就可以直接在CCS环境下操作烧写。烧写完成后就可以脱离仿真器,开发板就可以上电独立运行,并和其他的外围电路相连而实现它的功能。

  习方法知参考资源一、习方法初学DSP常常会感觉到技术文档太多,无从下手。根据我的自学经历,这时最应该弄明白的就是DSP芯片的内部硬件工作原理,如果有微机原理和单片机基础的话,这应该是很容易掌握的,如果没有这方面的基础,建议先去找一本微机原理的书看,看明白后再来看DSP的原理。另外,DSP的外设模块有很多,这时没有必要都去了解,只是了解你所用到的模块就可以了。

  了解了DSP的工作原理之后,就要去看关于软件开发环境的书,包括软件的安装和使用。然后就找几个完整的工程(购买开发板时都会赠送各模块的完整工程)来看,在似懂非懂的大体了解了一个完整工程的创建及结构后,就可以开始分析和你所用到的模块相关的程序。现在有大量现成的例程和算法可以参考,切忌自己闷头摸索,一定要去找相关的程序来参考,这会起到事半功倍的效果。

关于DSP开发的步骤相关推荐

  1. 图像算法移植到DSP及其优化步骤

    图像算法移植到DSP及其优化步骤 当你需要把已经写好的算法,移植到你的DSP开发板上并很好的跑起来,需要做哪些工作呢? 下面我分两部分来讲,第一分部是移植,第二部分为算法优化 移植: 1)如果你的算法 ...

  2. 创建Django项目和模型(创建工程、子应用、设置pycharm环境、使用Django进行数据库开发的步骤)

    1.创建Django项目 文档:Writing your first Django app, part 1 | Django documentation | Django 步骤 创建Django项目 ...

  3. 【Flutter】Flutter 混合开发 ( 简介 | Flutter 混合开发集成步骤 | 创建 Flutter Module )

    文章目录 一.Flutter 混合开发简介 二.Flutter 混合开发集成步骤 三.创建 Flutter Module 1.使用命令行创建 Flutter Module 项目 ( 仅做参考 ) 2. ...

  4. webpack搭建php服务器,webpack搭建react开发环境步骤详解

    这次给大家带来webpack搭建react开发环境步骤详解,webpack搭建react开发环境的注意事项有哪些,下面就是实战案例,一起来看一下.mkdir react-redux && ...

  5. 广州创龙TMS320C6748 DSP开发板免费申请试用

    2019独角兽企业重金招聘Python工程师标准>>> 1.广州创龙TMS320C6748 DSP开发板免费申请试用,历史上例程最丰富的C6000 DSP开发板,不容错过. 申请链接 ...

  6. Webpack搭建ES6开发环境步骤

    Webpack搭建ES6开发环境步骤 第一步 安装模块 1.创建package.json文件 手动配置 npm init 自动配置 npm init -y 2.安装webpack和webpack-cl ...

  7. 下载开发证书步骤(自用备忘)

    下开发证书步骤 1.https://developer.apple.com/cn/ 2.https://developer.apple.com/devcenter/ios/index.action 3 ...

  8. 开发步骤_直播软件开发直播APP开发具体步骤

    时间直播软件开发-直播APP开发具体步骤 一款APP从最开始的念头变为最后商品,必须资金投入很多的人工成本,在新项目进行的前期,针对要求的沟通交流也十分关键,要求文档越详尽.越确立,能够让最后的商品更 ...

  9. 嵌入式系统开发学习步骤(Linux高级编程学习顺序)

    2019独角兽企业重金招聘Python工程师标准>>> 嵌入式系统开发学习步骤(Linux高级编程学习顺序) 1.Linux 基础 安装Linux操作系统 Linux文件系统 Lin ...

最新文章

  1. Flameshot:Linux 环境下的一个简洁但功能丰富的截图工具
  2. 数值计算领域的“圣经”,图灵出了新版本 | 11月书讯
  3. c语言派,C语言中 派/4=1-1/3+1/5-1/7....公式求派
  4. composer 完整路径才能访问_一份完整的运营方案策划思路,拿走不谢(精华版)
  5. Nginx配置X-Forwarded-Proto
  6. 矩阵快速幂 POJ 3070 Fibonacci
  7. 图像控制点 形变_基于控制点的图象变形方法及其应用
  8. Intel 64/x86_64/IA-32/x86处理器 - SIMD指令集 - MMX技术(4) - 比较指令
  9. PHP实现的服务器端,用PHPStorm实现在本地实时编辑服务器端的代码
  10. java中逗号分隔的字符串和List相互转换
  11. 命令查询职责分离模式 CQRS Command Query Responsibility Segregation
  12. Linux固态硬盘 设置写入缓存,固态硬盘做缓存如何设置
  13. 视比特“AI+3D视觉”核心产品 | 智能下料分拣产线
  14. nRF52 PWM 使用
  15. JCMsuite应用:光子晶体谐振腔光子晶体谐振腔
  16. SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -
  17. IBM技术论坛:使用 Cobertura 和反射机制提高单元测试中的代码覆盖率
  18. 努力和天赋哪个更重要
  19. Kibana基础:3:生成定制化的Dashboard
  20. python获取股票历史数据

热门文章

  1. 在Ubutun 14.04 Desktop LTS上部署Hadoop 2.7.1(伪分布式)
  2. C# - 简单介绍TaskScheduler
  3. .NET异步方法调用的例子
  4. try catch对异常进行输出到日志、_java安全编码指南之:异常处理
  5. 查找数组B中不在数组A中的元素
  6. 8266串口调试助手_开源软件分享-基于WPF的串口调试工具
  7. C语言学习之用指针变量,将数组a中n个整数按相反顺序存放
  8. C语言学习之一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数。
  9. CPU缓存和内存屏障
  10. PC网页实现九宫格切图功能