Audio驱动涉及的硬件相关介绍

PS:之所以写这些东西,很大一部分原因是希望自己可以通过记录的方式,提高自己的理解和对整体的把握程度。

 

首先看AT91SAM9260与音频接口芯片的示意图,举最简单的PCM系列为例如下,

 

SSC的TK对应的PCM系列的BCK,TF对应的LRCK,TD对应的DATA

 

而对于SSC与PCM的数据通信格式,使用的是I2S

I2S的数据通信格式如右上图所示,

更清晰的可以看PCM1754文档中的图,如下,

 

fs对应的是采样率,学过通信的都知道奈奎斯特采样定律,对于人耳语音能听到的频率范围为20~20KHZ,所以一般情况下设置的采样频率均为44.1KHZ

对于I2S数据格式,LRCK对应的是左右声道的数据保存时钟,当LRCK为低电平时,存放的是左声道的数据,为高时,则为右声道数据。

同时,BCK,比特采样时钟,必须是48fs或者64fs,一般情况下,I2S支持的数据格式为16bit   to 24 bit

 

这样看来,只要SSC照着I2S的数据格式发送数据,同样PCM照着这种格式接收。

先看SSC的发送

对于串口数据通信,显然是没有I2S这种数据格式的,需要通过模拟的方式来实现,具体的就是通过设置SSC的相关寄存器进行实现。

同时,音频数据的读写速度相对较快,最好使用DMA的方式,所以这里使用到了PDC

 

PDC,就是Peripheral DMA Controller,这里PDC的两个通道用于与SSC交互数据,

PDC主要设置8个寄存器,分别是RPR(receive point R),RCR(receive count R),RNPR(receive next point R),RNCR,TPR,TCR,TNCR,TNPR,其余的就是PTCR(xfer control R),PTSR(Xfer status R),接着就是使能时钟了

 

同时,PDC中断触发有四处,分别是数据发送结束,数据接收结束,接收缓存满,发送缓存空,理解这些就能更好的理解驱动

 

对于PDC和SSC的这些寄存器,均使用内存映射的方式是实现对寄存器的操作。

 

SSC中还有一个时钟没有说明,就是SCLK,系统时钟。一般而言,对PCM1754,可以根据下面这种表来选择时钟,同时文档中也有一些特殊的规定,如使用48fs的BCK,则SCLK只能为192fs,384fs,768fs等,具体需要看文档。

 

 

对于SCK和LCRK(采样率),AT91SAM9260文档中有提到相关寄存器,

对于ARM9的时钟设为XMHZ,则SCK=X/(2*div) (div为相应的分频数)

而对于采样率LCRK,则为LCRK=SCK/(2*(period+1)),period可以理解为帧数

 

同时来看PCM1754,

有三个PIN,分别是13pin DEMP,14pin MUTE,15pin FMT

分别代表着44.1KHZ的重音,弱音,数据格式

一般情况下,将三者均接低,就是没有重音,没有弱音,使用的数据传输格式为I2S,16bit-24比特

 

在驱动中,我们提到过又一个MIXER组件,对于的硬件就是这些PIN,不过由于PCM1754不支持变成控制,所以MIXER组件可以不用实现

 

而对于PCM1753/1755,则可实现MIXER组件。

该两款芯片中,FMT对应的是ML,MUTE对应的MC,DEMP对应的MD,

 

根据时序实现寄存器的写操作,共有寄存器16到寄存器22,共实现了12个control

 

具体参数设置就不说了,看文档吧~

 

 

 

 

 



驱动(Driver)是指一种软件,它允许计算机操作系统或其他软件与硬件设备通信和交互。驱动硬件设备的控制程序,它们提供了操作系统或其他软件与硬件设备之间的接口,使它们能够相互通信并实现所需的功能。 以下是一些常见的驱动概念: 1. 设备驱动程序(Device Driver):设备驱动程序是一种软件,它允许操作系统与硬件设备通信。设备驱动程序可以控制设备的各种功能,例如输入、输出、存储等。 2. 内核驱动程序(Kernel Driver):内核驱动程序是一种特殊的设备驱动程序,它直接与操作系统内核交互。内核驱动程序通常具有更高的权限和更快的执行速度,因为它们直接访问硬件设备,而不需要通过操作系统的中间层。 3. 文件系统驱动程序(File System Driver):文件系统驱动程序是一种驱动程序,它允许操作系统访问磁盘驱动器上的文件系统。文件系统驱动程序可以读取、写入和管理文件系统中的文件和文件夹。 4. 打印机驱动程序(Printer Driver):打印机驱动程序是一种设备驱动程序,它允许计算机与打印机通信。打印机驱动程序可以控制打印机的各种功能,例如打印速度、纸张类型、打印质量等。 5. 音频驱动程序(Audio Driver):音频驱动程序是一种设备驱动程序,它允许计算机与音频设备通信。音频驱动程序可以控制音量、音调、音效等各种功能,使用户可以听到音乐、语音等声音。 总之,驱动是计算机系统中非常重要的组成部分,它使操作系统和硬件设备之间的通信变得更加高效和可靠。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值