




已阅读5页,还剩60页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验13MCS 51与SPI串行接口语音芯片连接 一 实验目的二 实验设备与器材三 实验电路四 实验原理 ISD4000系列语音芯片简介 五 实验内容 过程及要求 一 实验目的 1 理解SPI串行总线传输协议 2 理解ISD4000系列语音芯片的工作原理以及其放音 录音的控制过程 3 理解MCS 51与SPI总线外设 如ISD4000系列语音芯片 的硬件连接 读 写方式 二 实验设备与器材仿真器及其附件 图1所示的实验电路板各一套 三 实验电路本实验仅仅涉及实验板上的U101 U103 U104 U401 ISD4002语音芯片 U404 集成功率放大器 而与其他元器件无关 接通电源前 将JP103的1 2引脚短路 使ISD4002语音芯片的中断输出端引脚与MCS 51外中断 P3 2 引脚相连 由于多数MCS 51芯片没有内置的SPI串行总线接口部件 因此只能用软件模拟SPI总线时序方式读 写SPI总线接口器件 四 实验原理 ISD4000系列语音芯片简介 ISD4000系列语音芯片包括ISD4002 ISD4003 ISD4004三个子系列芯片 电源电压为3V 单片录音时间在2 16分钟之间 音质中上 它们被广泛应用于公共汽车语音报站系统 移动及自动应答电话设备 语音复读机等电子产品中 该系列语音芯片采用CMOS工艺 内含振荡器 防混淆滤波器 平滑滤波器 音频放大器 自动静噪及高密度多电平FlashROM存储器阵列 通过串行通信接口 SPI或Microwire总线协议 与微控制器 如MCS 51芯片 相连 所有操作均由微控制器控制 内部采用多电平直接模拟量存储技术 每个采样值直接存储在片内FlashROM存储器中 因此能逼真 自然地再现语音 音乐 音调等声响效果 避免了一般固体录音电路因量化和压缩造成的量化噪声和 金属声 可选4 0 5 3 6 4 8 0kHz等多个采样频率 采样频率越低 录放时间就越长 但音质会略有下降 片内信息存放在FlashROM存储器中 在断电状态下可保存100年 典型值 能反复录音10万次以上 1 主要参数 表13 1主要参数 2 封装及引脚排列ISD4000系列语音芯片采用28引脚TSOP PDIP或SOIC封装方式 其中PDIP或SOIC封装方式引脚排列如图13 1所示 引脚功能如下 VCCD 芯片内部数字电路电源引脚 VSSD 芯片内部数字电路地线引脚 VCCA 芯片内部模拟电路电源引脚 VSSA 芯片内部模拟电路地线引脚 图13 1PDIP或SOIC封装引脚排列 为了减小噪声 芯片内部模拟 数字电路具有各自的电源 地线总线 以方便在印制板上实现数字 模拟电路电源和地线分开走线 形成单点接地的布线规则 ANAIN ANAIN 分别是录音输入放大器的同相输入端和反相输入端 输入放大器可用单端或差分方式驱动 采用单端驱动时 信号由耦合电容输入 最大为32mV 峰 峰值 耦合电容与本端内部的3k 串联电阻构成的输入阻抗决定了芯片频带的低端截止频率 采用差分驱动时 最大为16mV 峰 峰值 XCLK 外部采样时钟输入端 可选的采样频率如表13 1所示 一般使用芯片内部采样频率 在出厂前已调校 误差在 1 以内 除非对采样精度要求很高 当不用外部采样时钟信号时 XCLK引脚必须接地 AMCAP 自动静噪输入端 当录音信号电平下降到内部设定的某一阈值以下时 自动静噪功能使信号衰弱 这样有助于养活无信号 静音 时的噪声 一般情况下 该引脚对地接1 F电容 构成内部信号电平峰值检测电路的一部分 检出的峰值电平与内部设定的阈值作比较 决定自动静噪功能的翻转点 大信号时 自动静噪电路不衰减 静音时衰减6dB 1 F电容也影响自动静噪电路对信号幅度的响应速度 当AMCAP引脚接VCCA时 则禁止自动静噪 AUDOUT 音频输出 可驱动5k 的负载 MOSI 命令及数据信息的串行输入端 MIS0 状态信息的串行输出端 SCLK 串行时钟输入端 由SPI总线主设备 一般为MCU 提供 片选信号输入端 输入 低电平有效 当片选信号无效时 芯片处于待用状态 静态电流典型值为1 A 中断输出端 漏极开路 OD 输出 低电平有效 在放音 包括快进 录音操作过程中 遇到到段结束 EOM 存储器末尾 OVF 时 引脚输出低电平并保持 直到SPI总线主设备向ISD芯片写入新的命令 RAC 行地址时钟输出端 漏极开路 OD 每个RAC周期表示ISD存储器的操作进行了一行 ISD4003系列中的存储器有1200行 该信号高电平时间为200ms 低电平时间为25ms 快进模式下 RAC的218 75 s是高电平 31 25 s是低电平 该端可用于存储管理技术 3 控制命令及SPI端口控制寄存器位ISD4000系列语音芯片控制命令如表13 2所示 SPI端口控制寄存器位含义如图13 2所示 表13 2控制命令 图13 2SPI端口控制寄存器位及含义 1 放音过程 1 执行上电命令 POWERUP 2 延迟等待 上电结束 当采样频率为8kHz时 上电延迟时间约为25ms 3 执行 SETPLAY 命令 设置放音段起始地址 录音 放音段起始地址与每段最短时间及放音长度有关 例如 对ISD4002 120芯片来说 最多有600段 段地址编号为000 599 每段最短录音时间为200ms 如果每段记录一个单音 长度为400ms 即每个单音占用两段 则第n个单音对应的段地址为 n 2 2 录音过程 1 执行上电命令 POWERUP 2 延迟等待 直到上电结束 当采样频率为8kHz时 上电延迟时间TPUD约为25ms 3 再执行上电命令 POWERUP 4 延迟两倍上电等待时间 即延迟2 TPUD时间 5 执行 SETREC 命令 设置录音段的起始地址 执行 REC 命令 从当前地址开始录音 直到出现存储器末尾标志OVF信号 在录音过程中 未录到存储器末尾时 就执行 STOP 或 STOPWRDN 命令 将终止当前录音操作 并产生EOM标志 因此 可利用这一特性在芯片上录制多段语音信息 可见 录音过程与放音过程相似 只是每次录音操作操作只能录一段 如图13 3 b 所示 图13 3放音 录音流程 a 放音流程 b 录音流程 4 SPI总线接口时序及命令格式芯片支持8位 16位命令格式 传输时序如图13 4所示 ISD4000系列语音芯片SPI总线参数如表13 3所示 表13 3ISD4000系列语音芯片SPI总线参数 图13 4命令格式 a 传输时序 b 8位命令格式 c 16位命令格式 图13 4命令格式 a 传输时序 b 8位命令格式 c 16位命令格式 图13 4命令格式 a 传输时序 b 8位命令格式 c 16位命令格式 从ISD4000系列语音芯片SPI总线时序可以看出 其SPI总线时序与SPI总线接口存储器EEPROM25C01 02 04兼容 在接收控制命令时 先接收LSB 这要求SPI总线控制器先输出LSB 空闲时 SCLK为低电平 在SCLK上升沿锁存MOSI引脚上的信息 5 典型应用电路及与MCS 51的连接MCS 51芯片一般没有内置SPI总线部件 可通过软件方式模拟SPI总线操作时序控制ISD4000系列语音芯片的操作 典型连接线路如图13 5所示 图13 5与MCS 51芯片的典型连接 6 参考驱动程序根据图13 5的连接方式 下面给出了与SPI模拟总线驱动程序 组合播放 从指定段连续播放 单段录音有关的参考程序段 MOSIBITP1 5MISOBITP1 6SCLKBITP1 7ISDSSBITP1 4 片选信号MIC CBITP1 3 功放电源控制 同时也作放音 录音标志 0 放音 1 录音 ISDBUFDATA50H ISD语音芯片命令缓冲区 50H单元存放命令码 C4 C0 及段高3位地址 A10 A8 51H单元存放段低8位地址 A7 A0 ISDBUFSPDATA52H 播放指针TASK3DATA53H 语音播放状态 b2 b0记录放音或录音状态ISDTIMEDATA54H 语音播放延迟时间XmtDatDATA60H 段缓冲区RECNOEQU0F0H 可录音的最小段号 初始化外中断INT0SETBIT0 下降沿触发 采用查询方式检测 从指定段连续播放初始化CLRMIC C 设置放音标志MOVISDBUFSP 0 设置播放的起始段号MOVTASK3 05H 启动标志 未上电标志 HERE1 LCALLISD RD A 调用逐段播放过程MOVA TASK3CJNEA 0 HERE1SJMP 虚拟等待 段组合播放初始化 把待播放的段编号 一次最多可播放16段 装入播放缓冲区内 当待播放的段号不足16时 在播放段后放0FFH 作为结束标志MOVR0 XmtDatMOV R0 02h 初始化语音段缓冲区INCR0MOV R0 01HINCR0MOV R0 22h INCR0CLRMIC C 设置放音标志MOVISDBUFSP 0 初始化播放指针 段组合播放启动MOVTASK3 05H 启动标志 未上电标志 HERE2 LCALLISD RD 调用段组合播放过程MOVA TASK3CJNEA 0 HERE2SJMP 虚拟等待 单段录音初始化MOVR0 XmtDatMOV R0 xxh 段地址送缓冲区首字节INCR0MOV R0 xx 录音时间送缓冲区第二字节SETBMIC C 设置录音标志 单段录音过程启动MOVTASK3 05H 启动标志 未上电标志 HERE3 LCALLISD WR 调用单段录音过程MOVA TASK3CJNEA 0 HERE3SJMP 虚拟等待 把语音缓冲区语音段送IDS4000芯片播放子程序PROCISD RD 入口参数 TASK3置为05H b2 b0记录放音或录音状态 000 空闲 001 执行上电延迟 25ms 010 段播放延迟 011 段间延迟 101 未上电标志ISD RD JNBMIC C RUN 录音状态 不执行 JMPEXIT 退出 RUN MOVA TASK3ANLA 07H 保留标志位b2 b0CJNEA 000B NEXT1 b2 b0为000 空闲JMPEXIT 退出NEXT1 CJNEA 101B NEXT2 b2 b0为101 未上电 先执行上电操作 执行 POWERUP 上电 命令MOVR0 ISDBUF 语音命令缓冲首地址送R0 MOV R0 20H 00100XXX 执行上电操作LCALLSPIBW 调用SPI总线控制命令写入子程序MOVISDTIME 5 延迟时间为5 5ms 即25ms MOVTASK3 1 进入上电延迟状态JMPEXITNEXT2 CJNEA 001B NEXT3 b2 b0为001 处于上电延迟期间 检查延迟时间NEXT30 MOVA ISDTIMEJZNEXT31 不是0 上电延迟时间未到 等待SJMPEXITNEXT31 MOVA XmtDatADDA ISDBUFSPMOVR0 AMOVA R0 取出待放音段编号MOVB 2 假设每一单音占用两个最小段MULAB 计算段首地址MOVR0 ISDBUF 1 语音命令缓冲首地址送R0MOV R0 A 段地址低8位送命令缓冲DECR0MOVA B 段地址高位送A ORLA 11100000B 形成地址控制码11100 SETPLAY MOV R0 A 命令码送命令缓冲区LCALLSPIBW 调用SPI总线控制命令写入子程序 执行PLAY命令MOVR0 ISDBUF 语音命令缓冲首地址送R0MOVA 0F0H 11110XXX 执行PLAY REC命令MOV R0 A 命令码送命令缓冲区LCALLSPIBW 调用SPI总线控制命令写入子程序 开始放音MOVTASK3 02H b2 b0置为010态 修改作业号 CLRIE0 清除INT0中断标志 采用查询方式确定段播放是否已结束 SJMPEXIT NEXT42 JCNEXT43 指针大于或等于16 缓冲区所有段已播放结束SJMPNEXT441NEXT43 MOVA XmtDatADDA ISDBUFSPMOVR0 AMOVA R0 取出将要播放的段编号CJNEA 0FFH NEXT44 尽管指针小于16 但缓冲区内已经没有需要播放的段号 NEXT441 MOVR0 ISDBUF 语音命令缓冲首地址送R0MOV R0 10H 0001XXXX 执行STOPWRDN命令 停止当前操作LCALLSPIBW 调用SPI总线控制命令写入子程序SETBMIC C 关闭功率放大器电源MOVTASK3 0 将b2 b0置为000 结束播放SJMPEXITNEXT44 MOVTASK3 3 进入段间延迟状态MOVISDTIME 8 延迟时间为8 5ms 即40ms SJMPEXIT NEXT4 CJNEA 3 EXIT b2 b0处于011态 属于段间延迟JMPNEXT30 处理方式与上电延迟相同EXIT RETEND 把IDS4000语音芯片内的语音段逐一播放出来PROCISD RD A 入口参数 TASK3置为05H b2 b0记录放音或录音状态 000 空闲 001 执行上电延迟 25ms 010 段播放延迟 011 段间延迟 101 未上电标志ISD RD A JNBMIC C RUN 录音状态 不执行 JMPEXIT 退出 RUN MOVA TASK3ANLA 07H 保留标志位b2 b0CJNEA 000B NEXT1 b2 b0为000 空闲JMPEXIT 退出NEXT1 CJNEA 101B NEXT2 b2 b0为101 未上电 先执行上电操作 执行 POWERUP 上电 命令MOVR0 ISDBUF 语音命令缓冲首地址送R0MOV R0 20H 00100XXX 执行上电操作 LCALLSPIBW 调用SPI总线控制命令写入子程序MOVISDTIME 5 延迟时间为5 50ms 即25ms MOVTASK3 1 进入上电延迟状态JMPEXITNEXT2 CJNEA 001B NEXT3 b2 b0为001 处于上电延迟期间NEXT30 MOVA ISDTIMEJZNEXT31 不是0 上电延迟时间未到SJMPEXIT 退出 继续等待 NEXT31 MOVA ISDBUFSPMOVB 2 假设每一单音占两个最小段MULAB 计算段首地址MOVR0 ISDBUF 1 语音命令缓冲首地址送R0MOV R0 A 段地址低8位送命令缓冲区DECR0MOVA B 段地址高位送AORLA 11100000B 形成地址控制码11100 SETPLAY MOV R0 A 命令码送命令缓冲区LCALLSPIBW 调用SPI总线控制命令写入子程序 执行PLAY命令MOVR0 ISDBUF 语音命令缓冲首地址送R0 MOVA 0F0H 11110XXX 执行PLAY命令MOV R0 A 命令码送命令缓冲区LCALLSPIBW 调用SPI总线控制命令写入子程序 开始放音MOVTASK3 02H b2 b0置为010态 修改作业号 CLRIE0 清除INT0中断SJMPEXITNEXT3 CJNEA 2 NEXT4 b2 b0处于010态 属于段播放期间延迟JBIE0 NEXT41 INT0中断无效 即未遇到EOF或VOFSJMPEXIT 等待 NEXT41 CLRIE0 清除INT0中断INCISDBUFSP 指针加1MOVA ISDBUFSPCJNEA 0F0H NEXT42NEXT42 JCNEXT43 指针大于等于F0H 退出MOVR0 ISDBUF 语音命令缓冲首地址送R0MOV R0 10H 0001XXXX 执行STOPWRDN命令 停止当前操作LCALLSPIBW 调用SPI总线控制命令写入子程序SETBMIC C 关闭功率放大器电源 MOVTASK3 0 将b2 b0置为000 结束播放SJMPEXITNEXT43 MOVTASK3 3 进入段间延迟状态MOVISDTIME 10 延迟时间为10 5ms 即50ms SJMPEXITNEXT4 CJNEA 3 EXIT b2 b0置为011 属于段间延迟JMPNEXT30 处理方式与上电延迟相同EXIT RETEND 从指定地址开始录音 单段录音 PROCISD WR 从指定地址开始录音 单段录音 入口参数 TASK3置为05H b2 b0记录放音或录音状态 000 空闲 001 执行上电延迟 25ms 010 录音过程的再上电延迟 011 录音延迟 101 未上电标志ISD WR JBMIC C RUN 非录音状态 不执行 JMPEXIT RUN MOVA TASK3ANLA 07H 保留标志位b2 b0CJNEA 00H NEXT1 b2 b0为000 空闲JMPEXITNEXT1 CJNEA 101B NEXT2 b2 b0为101 未上电 先执行上电操作 执行 POWERUP 上电 命令MOVR0 ISDBUF 语音命令缓冲首地址送R0MOV R0 20H 00100XXX 执行上电操作 LCALLSPIBW 调用SPI总线控制命令写入子程序MOVISDTIME 5 延迟时间为5 5ms 即25ms MOVTASK3 1 进入上电延迟状态JMPEXITNEXT2 CJNEA 001B NEXT3 b2 b0为001 处于上电延迟期间MOVA ISDTIMEJZNEXT31 不是0 上电延迟时间未到SJMPEXIT 退出 继续等待 NEXT31 再执行 POWERUP 上电 命令MOVR0 ISDBUF 语音命令缓冲首地址送R0MOV R0 20H 00100XXX 执行上电操作LCALLSPIBW 调用SPI总线控制命令写入子程序MOVISDTIME 10 延迟时间为10 5ms 即50ms MOVTASK3 2 进入再上电延迟状态 时间50ms SJMPEXIT 退出 NEXT3 CJNEA 010B NEXT4 b2 b0为010 处于再上电延迟期间MOVA ISDTIMEJZNEXT41 不是0 再上电延迟时间未到SJMPEXIT 退出 继续等待 NEXT41 MOVR0 XmtDatMOVA R0CJNEA RECNO NEXT42NEXT42 JNCNEXT43 小于允许录音段地址 关闭电源退出SJMPNEXT51 NEXT43 MOVB 2 假设前面每一单音占用两个最小段MULAB 计算段首地址MOVR0 ISDBUF 1 语音命令缓冲首地址送R0MOV R0 A 段地址低8位送命令缓冲区DECR0MOVA B 段地址高位送AORLA 10100000B 形成地址控制码10100 SETREC MOV R0 A 命令码送命令缓冲区LCALLSPIBW 调用SPI总线控制命令写入子程序 执行REC命令MOVR0 ISDBUF 语音命令缓冲首地址送R0 MOVA 0B0H 10110XXX 执行REC命令MOV R0 A 命令码送命令缓冲区LCALLSPIBW 调用SPI总线控制命令写入子程序 从指定地址开始录音MOVTASK3 03H b2 b0置为011态 修改作业号 MOVR0 XmtDat 1 取录音时间MOVISDTIME R0 录音时间送计时单元CLRIE0 清除INT0中断SJMPEXIT NEXT4 CJNEA 3 EXIT b2 b0为011 处于录音等待期间JBIE0 NEXT51 INT0中断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丹阳市2025年江苏丹阳市事业单位集开招聘工作人员65人笔试历年参考题库附带答案详解
- 2025甘肃人力资源服务股份有限公司招聘36人(第一期)笔试参考题库附带答案详解
- 2025年甘肃省临夏亿农农牧投资有限公司招聘80人笔试参考题库附带答案详解
- 2025山东省国际信托股份有限公司招聘8人笔试参考题库附带答案详解
- 2025安徽菱安医疗器械有限公司招聘操作工等岗位14人笔试参考题库附带答案详解
- 2025四川南充市蓬州发展投资集团有限责任公司招聘10人笔试参考题库附带答案详解
- 2025中广国际有限公司高校毕业生招聘2人笔试参考题库附带答案详解
- 2025上半年浙江金华金义新区发展集团招聘11人笔试参考题库附带答案详解
- 危险废物安全培训记录课件
- 地铁反恐安全培训内容课件
- 通信工程安全员考试题库案例题汇总
- 频谱监测及瞬态信号捕获技术课件
- 宣城万里纸业有限公司年产15万吨高强度瓦楞包装用纸及5万吨纱管纸技改项目环境影响报告书
- 贵州某二级公路施工组织设计KK
- 推广普通话课件
- GB/T 16714-2007连续式粮食干燥机
- 五年级《欧洲民间故事》知识考试题库(含答案)
- 派车单(标准样本)
- 少先队大队委申请表
- 浦东机场手册
- 柴油机负荷特性曲线比较课件
评论
0/150
提交评论