本文实现从aic32的line-input获得音频数据并在line-output播放,使用McBSP和EDMA来高效的传输数据,避免DSP的高负载。

数据传输:

codec与DSP通过McBSP2传输数据。EDMA配置为存储每个到达McBSP2的16比特signed语音采样数据在内存缓冲区内,之后会被处理。处理之后EDMA控制器回送数据到McBSP2进行发送。

McBSP1设置为配置/控制AIC23。AIC23从McBSP1接收串行配置参数如音量、采样率和数据格式。

可以使用乒乓数据缓冲和linked-EDMA传输来更方便高效的传输数据。单个数据缓冲来接收发送数据很不方便,因为要避免新到达数据覆盖正在进行传输的数据。乒乓数据缓冲使用两个数据缓冲,当乓缓冲正在填满时,乒缓冲肯定不会被覆盖,可以对其进行处理。可以使用接收发送各两个共四个缓冲进行乒乓传输。

在这种情况下,对于每个缓冲,EDMA控制器的配置都要有所不同。当一个缓冲填满后,EDMA控制器产生一个中断,中断处理程序/interrupt-handler必须在下一个音频采样数据到达之前为下一个缓冲重新加载配置。EDMA的linked-transfer特性可以轻松的做到这一点:每个配置都预先设置,在当前配置结束后EDMA控制器自动加载下一个配置;这样同样产生中断信号,但它仅用来通知DSP可以处理数据了。唯一的约束条件是,当前缓冲填满之前所有的音频数据必须处理结束;这段时间远远大于音频采样间隔。应用这种方法,系统更容易达到实时处理要求。

程序说明:

程序运行过程中,DSP/BIOS首先初始化,main()函数作为主进程启动。本文中,它主要实现程序初始化并打开EDMA数据传输。当main()函数运行结束后,由DSP/BIOS接管,为中断程序服务。

当一个缓冲填满后, edmaHwi()中断服务子程序/ISR被调用,其中pingOrPong 状态变量标识此缓冲是乒或乓。dmaHwi把缓冲标记标识为相对的/相反的缓冲,并调用软中断进程processBuffer 处理音频数据。

其他程序:blinkLED()当对应的开关按下时以2Hz频率闪灯,是周期为500ticks的周期进程。load()在另一个对应的开关按下时模拟20-25%的虚载荷,是周期10ms的周期进程。

6416与aic23进行语言数据采集和处理的程序beta版相关推荐

  1. led的c语言程序,单片机C语言LED灯点亮程序完全版

    <单片机C语言LED灯点亮程序完全版>由会员分享,可在线阅读,更多相关<单片机C语言LED灯点亮程序完全版(7页珍藏版)>请在人人文库网上搜索. 1.1例子1第二个灯亮#inc ...

  2. C语言打包解包文件程序(简易版)

    //测试通过 科嵌电子 #include <stdio.h> #include <string.h> #include <stdlib.h> typedef uns ...

  3. c语言程序设教材计 乌云高娃,C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt...

    C语言程序设计教学课件作者第3版乌云高娃演示文稿C语言程序设计教学课件作者第3版乌云高娃演示文稿演示文稿第1章C语言程序设计基础课件.ppt 主要内容 课程概述 为什么选择C语言作为入门课程? C语言 ...

  4. c语言编程 构建围墙,c语言程序设计朝盛 综合程序练习题.ppt

    c语言程序设计朝盛 综合程序练习题 综合程序练习题 综合程序练习题 大型程序设计的要求 综合程序练习题 综合程序练习题 大型程序设计题目分析: 1 打字练习 2 电子琴 3 简易画图板 4 贪吃蛇 5 ...

  5. 《C语言程序设计与实践(第2版)》——3.2 数据类型

    本节书摘来自华章出版社<C语言程序设计与实践(第2版)>一书中的第3章,第3.2节,作者:凌云等著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 3.2 数据类 ...

  6. 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timothy M. H ...

  7. 《数据结构与抽象:Java语言描述(原书第4版)》一2.2.1 可变大小数组

    本节书摘来华章计算机<数据结构与抽象:Java语言描述(原书第4版)>一书中的第2章 ,第2.2.1节,[美]弗兰克M.卡拉诺(Frank M. Carrano) 蒂莫西M.亨利(Timo ...

  8. python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

  9. 没学c语言可以学python_先学C语言还是Python?资深程序员往往是这样建议的!

    编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...

最新文章

  1. JVM的GC简介和实例
  2. 深度学习领域有哪些瓶颈
  3. c语言e怎么表示_来测测!这11个C语言入门基础知识你都掌握了吗?
  4. Android手机用wifi连接adb调试的方法
  5. windows怎么打开python_windows怎么打开Python
  6. keil4怎么移植其他人的程序_简单和你聊聊造血干细胞移植!
  7. Sandy Bridge 12款双核心产品正式入列 Core i7-2620M Core i5-2540M
  8. Netty 实现长连接服务的难点和优化点
  9. 每日一“酷”之string
  10. linux下rsync服务的搭建
  11. 简单算术表达式计算器
  12. 千峰java逆战班Day31
  13. 游戏逆向 修改植物大战僵尸阳光值
  14. 职称计算机cad考试 多少分通过,2017职称计算机考试AutoCAD知识之直线的绘制
  15. nacos 安装包下载 linux+windows
  16. 瑞红淘宝商城旗舰店开张 正式进军B2C市场
  17. 服务器与客户端的TCP连接
  18. ProcessOn‘s Bug--完善个人资料无限扩容
  19. 我谈阶梯博弈( Staircase Nim )
  20. 国产半导体设备多年沉淀终爆发!2020制程、测试、硅片设备全面开花

热门文章

  1. @keyframes关键帧动画(animation)
  2. mysql 定时统计_PHP+MySQL定时数据统计优化
  3. python找数字程序_程序以查找Python中从1到N的所有缺失数字
  4. java每轮排序结果_【算法队列面试题】面试问题:java选择题… - 看准网
  5. Python3小程序:把连续的16进制UTF8编码转换为字符串
  6. java kafka 消费_java利用kafka生产消费消息
  7. html width设置没用,html style的width不起作用
  8. php价格结算,PHP根据用户折扣计算商品价格
  9. mysql 过滤单引号_python实现mysql的单引号字符串过滤方法
  10. dns服务期搭建使用_自己搭建dns服务器