2 讲课_录音芯片设计方案(4学时)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

录音芯片设计设计需求不采用arm内核已有基于AMBA总线设计的SDIO控制器把PCM音频数据保存到外接的microSD卡中要有一个模拟APB总线接口把sdio控制信号转换成APB总线信号把PCM音频数据存储到FIFO中目录芯片总体框图芯片管脚说明芯片设计内容及具体实现方法芯片前端验证方法流程图SD卡初始化读取卡容量读取最后一次写地址主控状态机SDIO控制器8通道声音数据输入MICROSD卡控制逻辑128KHz时钟输入数据寄存总线接口电路总体框图把PCM音频数据保存到外接的microSD卡中管脚说明信号方向描述全局(3)ResetnI芯片Reset,低电平有效OSCII晶振管脚OSCOO晶振管脚SDIO(3)Inout_CMDI/OSD命令Inout_DATAI/OSD数据SDIO_CLKISD时钟POWER(4)VDD_IOPIO电源3.3VVSSGIO地VDDP芯片电源1.8VVSSAG芯片地PCMDATA(8)PCM_0----PCM_7I数据输入端录音芯片原理图RESETREAD_PCM32*256FIFO32bit移位寄存器Data_outOut_read_enData_fifo_readyData_fifo_writeFifo_read_enSDIO_CONTROLLERSDIOpselpenablepaddrpwdatapwriteSd_clk_enableprdataCmd_endCmd_end_responseFifo_data_reqData_trans_completeCMDDAT0CLKClkCLK128KHzCLKClkDATA0-7主控逻辑设计内容(1)主控逻辑1、主控逻辑在上电启动时ResetSDIO模块以及初始化MicroSD卡;2、初始化MicroSD卡完毕之后,控制逻辑内有一ADDR寄存器,用来记录写入MicroSD卡的数据地址,该地址时刻保持更新。若写入MicroSD卡的数据返回CRCError时,该ADDR寄存器提供下一个BLOCK数据的存储地址;设计内容(2)移位寄存器逻辑为了实现模拟APB的总线宽度,将输入的8bit数据持续写入一32bit的移位寄存器,移位寄存器一满即将数据全部写入一32bit位宽1024bytes大小FIFO中。设计内容(3)FIFO设置一1024bytes大小的双32bit端口的FIFO用来存储PCM码,每满一个BLOCK(512bytes)就发出DataReady脉冲信号,输出数据并存储至MicroSD卡。设计内容(4)模拟APB接口由于在本设计中不采用APB总线数据传输,设计模拟APB接口使得控制逻辑实现对SDIO模块的操作。该模拟接口接收FIFO和控制逻辑中传输过来的数据,输出信号为:PSEL、PWRITE、PWDATA、PADDR、PENABLE,用来实现和SDIO的连接。SDIOModuleAPB信号接口SD卡接口设计内容(5)SDIO模块SD控制器集成于芯片内部,用以与SD卡进行通信,实现系统的SD功能扩展,支持SD卡1/4位的传输模式。在本设计中选用1位传输模式,SDIO和MicroSD之间的通过CMD、DAT0、CLK三根信号线进行数据通信。设计实现主控逻辑移位寄存器逻辑FIFO模拟APB接口SDIOSD卡初始化读取卡容量等设计实现主控逻辑移位寄存器逻辑FIFO模拟APB接口SDIO移位寄存器逻辑移位寄存器是一种具有移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次左移或右移。既能左移又能右移的移位寄存器称为双向移位寄存器,只需要改变左、右移的控制信号便可实现双向移位。根据存取信息的方式不同移位寄存器可分为:串入串出、串入并出、并入串出、并入并出四种形式。设计实现主控逻辑移位寄存器逻辑FIFO模拟APB接口SDIOFIFO该FIFO的大小设置考虑如下:当FIFO中满512bytes的时候,数据向SDIOModule传输,SDIO的工作频率为128KHz,接收512bytes的数据所用的时间为512×8/128000=0.032s,在这段时间内FIFO所接收的ADPCM码为32kbit/s*0.032=128bytes因此只要FIFO的大小大于128+512=640单位字节。为了仿真方便,选取两片512bytes的SRAM模型设计实现主控逻辑移位寄存器逻辑FIFO模拟APB接口SDIO模拟APB总线当depth=512bytes的时候,DataReady信号置1,FIFO中数据通过模拟APB传输至SDIO,同时设置一参数m用来计算读取的数据量,当从FIFO中传输的数据达到512bytes(512BYTES*8/32=128即m=128)的时候,DataReady置0(m清0),数据不再传输。FIFO中数据继续存储,当depth再次达到512bytes的时候,FIFO中数据再次进行传输;模拟APB接口控制逻辑中ADDR寄存器的值,当FIFO中每产生一个DataReady脉冲的时候加1,以随时更新数据存储地址。模拟APB接口采集的语音数据从MicroSD的第二个BLOCK开始存储,第一个BLOCK用来记录卡中最后记录数据的BLOCK地址POWERON的时候,由控制逻辑读取MicroSD卡中第一BLOCK中数据,如果为0,则表示此卡为空,在初始化MicroSD之前,置控制逻辑中的ADDR寄存器值为0;如果第一BLOCK内容不为0,则保持ADDR寄存器的值不变模拟APB接口StateTransform本设计中SDIO有Idle、Ready2Trans、StandBy以及DataTrans四种状态:Idle状态为SDIO最初始状态;Ready2Trans表示初始化MicroSD卡完毕,SDIO等待数据传输;StandBy表示CMD25命令发送完毕,SDIO等待FIFO中DataReady脉冲进行数据传输;DataTrans状态表示SDIO将传输过来的数据进行存储至MicroSD操作;模拟APB接口IdleStateCMD0cmd55+acmd41cmd2cmd3cmd7PowerOnDataTransStateNoCRCErrorReady2TransStateStandByStateCRC:CMD25DataReadyCLKCRCErrorPowerOFF准备开始数据传输NoDataReadyCLKPowerOFFSoftware_ResetPowerOFF模拟APB接口SDIO处于Idle状态,SDIO配置固定不变,故PowerOn以后不需要对SDIO进行配置操作;在Ready2Trans状态,计算CMD25中Argument将要设置的addr值。模拟APB接口当电源开启产生PowerOn信号,控制逻辑完成对SDIOModule的Reset操作以后即开始对MicroSD卡进行初始化操作。对MicroSD卡的初始化操作即为SDIO发送CMD0、CMD55、ACMD41、CMD2、CMD3、CMD7的过程,在每个CMD命令发送完毕后读取返回的RESPONSE寄存器值来判断上一个CMD命令是否正确执行,如果读取的RESPONSE值正确,则进行下一个CMD命令的发送,否则就重新发送该CMD命令,直至该CMD命令完成。模拟APB接口CMD25中设置的地址值从控制逻辑的ADDR寄存器中读取若CRC=101有校验错误返回,则CMD25命令中的地址设置为发生数据传输错误的地址。CMD命令结束后,SDIO进入StandBy状态,等待进行数据传输;模拟APB接口SDIO在StandBy状态,当FIFO中的数据满512bytes的时候,输出一DataReady脉冲信号,表示数据准备传输,SDIO在接收到DataReady脉冲信号的时候,转入DataTrans状态,进行数据传输。在数据传输完毕后,若有CRC校验错误,则转入Ready2Trans状态,等待CMD25的重新发送,若没有CRC校验错误,则转入StandBy状态,等待下一个DataReady脉冲信号,再进行数据传输;设计实现主控逻辑移位寄存器逻辑FIFO模拟APB接口SDIOSDIO概述SD存储卡的物理参数,引脚定义以及数据传输的协议兼容MMC卡。SD存储卡的通信是基于一个高级的九针接口(时钟线,命令线,四针数据线,三针电源线),这个接口可以工作在最大频率25MHz和低电压范围。本设计中出于低功耗的要求,采用1bit传输模式。SD控制器集成于芯片内部,用以与SD卡进行通信,实现系统的SD功能扩展。SDIO特性与SDMemoryCardSpecificationVersion1.01完全兼容支持SD卡1/4位传输模式支持单/多Block传输,Block的长度以及数目可以配置读写数据以及响应的CRC检查,CRC出错产生相应中断只支持一张MMC/SD卡用到的SDIO接口信号及其寄存器功能说明SignalNumofBitsI/ODescriptionsin_PENABLE1I使能信号,高电平使能,低电平禁止。in_PSEL1I模块选择信号,高电平选中。in_PWRITE1I写信号,低电平表示从数据寄存器读数据到总线,高电平表示将数据总线数据写入到数据寄存器。in_PADDR8I8位地址信号,输入地址。in_PWDATA32I写入数据,APB总线32位写数据。clk_pclk1I与总线时钟同步的时钟输入,本设计中由RC振荡器提供。rst_preset_n_a1I复位信号,可以硬件或软件复位SDIO。in_sd_data4ISDIO的数据输入端口。in_sd_cmd1ISDIO的命令输入端口(接收命令反馈)。out_sd_data4OSDIO的数据输出端口。out_sd_cmd1OSDIO的命令输出端口。out_sd_clk1O输出给外接SD卡的工作时钟。SDIO寄存器定义寄存器地址名称读/写宽度描述0x10009000CLOCK_CONTROLr/w32时钟控制寄存器0x10009004SOFTWARE_RESETr/w32软件复位寄存器0x10009008ARGUMENTr/w32命令参数寄存器0xCOMMANDr/w32命令控制寄存器0x10009010BLOCK_SIZEr/w32数据块长度寄存器0x10009014BLOCK_COUNTr/w32数据块数目寄存器0x10009018TRANSFER_MODEr/w32传输模式选择寄存器0xRESPONSE0r32响应寄存器00x10009020RESPONSE1r32响应寄存器10x10009024RESPONSE2r32响应寄存器20x10009028RESPONSE3r32响应寄存器3SDIO时钟控制寄存器数据位名称类型缺省值描述31:16Reserved-保留未用15:8SDCLK_PDRW0SD时钟的分频因子,0为二分频,ffH为512分频,公式为F=(N+1)*27:3Reserved-保留未用2SDCLKENRW0SD时钟开关,1为开启,0为关闭1:0Reserved-保留未用SDIO的软件复位控制寄存器数据位名称类型缺省值作用描述31:1Reserved-保留未用0SOFTRSTRW0x1软件复位触发位,0触发软复位,1不触发。SDIO命令参数寄存器数据位名称类型缺省值作用描述31:0ARGUMENTRW0x0设置SD的命令参数。SDIO的命令控制寄存器数据位名称类型缺省值描述31:11Reserved-保留未用10:5CMD_INDEXRW0SD命令代号(CMD0-63,ACMD0-63)4Reserved-保留未用3CMD_ENRW0命令发送使能控制2DATA_READYRW0设置有否数据传输,1有数据传输,0无数据传输。1:0RESPONSE_TYPERW0命令反馈类型,00无反馈,01为136位长反馈,10为48位短反馈,11为48位反馈带busy判断。SDIO的数据块长度寄存器数据位名称类型缺省值

1 / 54
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功