找回密码
 注册
关于网站域名变更的通知
查看: 230|回复: 1
打印 上一主题 下一主题

基于FPGA的音频编解码芯片接口设计

[复制链接]
  • TA的每日心情
    开心
    2019-11-19 15:19
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2019-11-27 18:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    本帖最后由 Allevi 于 2019-11-28 15:07 编辑
    / c% O: a2 @  W$ a) N4 b
    4 U2 h" M3 F0 D; J
    基于FPGA的音频编解码芯片接口设计
    7 t' e! v5 \! D9 S9 L. J5 O' A0 Q

    ; Q. ]- k' `7 L/ \8 N: @1 概 述
    # @) l3 c# }8 f. Y/ U- f! g6 Z6 F& j/ p- o# t
      WM873l是一款功能强大的低功耗立体声24位音频编解码芯片,其高性能耳机驱动器、低功耗设计、可控采样频率、可选择的滤波器使得WM8731芯片广泛使用于便携式MP3,CD,PDA的场合。其结构框图如图1所示。$ F  v  T. H8 u) N/ z
    1 o5 R" `& I* E9 a! `

    2 w1 W2 E( Q3 J4 h4 M7 j8 V# \, p3 _# v
      WM8731包含2个线路输入和1路麦克风输入并可以进行音量调节;内置片上ADC(模拟数字转换器)及可选择的高通数字滤波器;采用高品质过采样率结构的DAC(数字模拟转换器);线路输出和耳机输出;内置晶体振荡器以及可配置的数字音频接口和2或3线可选的微处理器控制接口等。控制器可通过控制接口(Control InteRFace)对WM8731进行配置,然后通过数字音频接口(Digtal audio Interface)读写数据音频信号。本文设计了一种基于FPGA的驱动模块,将WM8731的控制接口与数字音频接口转换为控制器通用的总线接口,使控制器可以像读写外部寄存器一样对WM8731芯片进行控制使用。
    1 |, a5 }* j* ?) f. b3 X0 W% _0 c; g3 S8 b# \4 Y7 R$ }. f
      2 WM8731芯片接口时序介绍- L9 ~+ ~3 H4 Q+ U5 @
    3 w5 J, J! S5 R5 m6 C
      2.1 控制接口时序
    . _% x# P3 _, z$ I* U$ A+ W+ G
    2 {8 m5 a2 e# Q5 H# b5 v0 z  WM8731的控制接口有4根引脚,分别为:MODE(控制接口选择线)、CSB(片选或地址选择线)、SDIN(数据输入线)和SCLK(时钟输入线)。它具有2线和3线两种模式。2线为MPU接口,3线为兼容spi接口。对控制接口的配置选择可通过设置MODE脚的状态完成。选择MODE为0时为2线模式,1时为3线模式。本文采用2线模式对WM8731进行控制。其时序图如图2所示。' _" h4 B  V, b: W3 _5 ]
    : g0 G% `8 N! C+ r& [
    ! W( `8 G& B# O) z9 T

    7 g; |: J$ |3 A7 t  e8 ]/ n; G7 _  2.2 数字音频接口时序% F; A5 C6 o6 C/ c2 L" D, I
    . N+ V( ?0 C# n
      WM8731的数字音频接口有5根引脚,分别为:BCLK(数字音频位时钟)、DACDAT(DAC数字音频数据输入)、DACIRC(DAC采样左/右声道信号)、ADC-DAT(ADC数字音频信号输出)、ADCLRC(ADC采样左/右声道信号)。
    ( S1 ~6 q' D) D! Z" V' n  o/ h* L& R" a+ P  z
      数字音频接口可以工作在主模式和从模式下。地址为0000111的寄存器的第6位设置数据的主/从模式:“1”为主模式,“0”为从模式。ADCDAT、/DACDAI和ADCLRC/DACLRC与位时钟BCIK同步,在每个BCLK的下降沿进行一次传输。BCLK和ADCLRC/DACLRC在主模式时为输出信号,从模式下为输入信号。DAC-DAT始终为输入信号,ADCDAT始终为输出信号。
    3 G2 _7 y! s2 @+ g% ^- S
    9 f/ ~' e0 B0 n8 E  数字输出支持4种音频数据模式:右对齐、左对齐、I2SDSP模式。通过对寄存器的不同配置,可以设置传输的数据格式。寄存器配置值如下:
    ( D+ L  ^* q0 u4 o6 m
    8 p( u( i" k2 q5 U- ], @" s  寄存器地址0000111的1~0位设置音频格式:“11”时为DSF’格式,“10”为I2S格式,“01”为左对齐格式,“00'’为右对齐格式。
    5 `0 {, f% h2 J# P2 j/ R! @5 v& I- ]1 {- M
      3~2位设置字长:“11”时为32位,“10”为24位,“01”为20位,“00'’为16位。
    7 c  [, e9 u, l$ C- Z5 s
    * }, `7 p) U! Y3 C  这四种音频格式都是高位(MSB)在前,16~32位。但32位数据不支持右对齐模式。
    & H+ k; B6 Q" N! d! q7 s8 a! r3 W( I3 Y( `$ k! L
      本文采用主模式的左对齐数据格式,左对齐数据格式传输如图3:左对齐格式时,MSB在BCLK的第一个上升沿有效,紧接着是一个ADCLRC或DACLRC传输。
    # K  b! U7 l1 U% M
    ) D) M7 O: y9 u$ K8 |+ d9 p) n4 i  a7 {
    ; ~: S# l2 {1 m1 W3 a! e$ g% S, ^: x# t* O" Q$ t5 l! L: f
      3 WM8731芯片驱动的FPGA设计
    9 j3 m6 B7 n; e8 b( d% t) ~6 l2 |6 }4 s/ S+ i- y
      3.1 驱动器的总体设计方案
    ; M- d; P1 s% E5 }1 X; ?) X( \  q$ C; P; c& P% b3 z( Y/ Q* o
      本文设计驱动器在使用时的框图如图4所示。双口RAM和驱动器一同连接在控制器的数据总线和地址总线上,控制器只需提供少量的控制线即可完成对音频编解码芯片wM8731的控制及数据交换功能。
    1 D2 R5 ^3 a$ g3 v2 m; [6 h1 v0 g' V( S
    4 h! n  r6 A: E+ \! X5 k, y5 {

    7 z6 [7 w4 B& ]' H; A  驱动器内部结构框图如图5所示。控制部分提供驱动器与控制器之间的接口(包含有数据总线信号、地址总线信号和控制信号),同时产生控制字转换单元和数字音频接口单元的控制信号;内部寄存器缓存控制字和状态字;控制字转化单元负责将控制字串行发送给WM8731,同时效验传送信号;数据音频接口单元完成WM8731与外部双口RAM的串并转换,实现对数字音频信号的发送和接收功能。
    ( s5 g- ~1 R* Y! T0 T4 c, P
    5 H8 b1 K6 N3 e- K ; y" r: o3 ^# n

    4 _2 U4 w- e" z
    7 n- V" K0 ^8 A/ Z1 y; w! C7 D$ h0 P3 h- `
    ' V0 ~, ^& D& @4 N2 A

    1 ]& [" ^1 K/ o. [: {  3.2.2 控制字转换单元; F2 M8 Y) P) G  m

    / f! B& z/ T8 {* t  当start控制位置‘1’时,将控制字寄存器中的数据串行发送给WM8731,当传输出现错误时,将状态寄存器中的ACK位置1。如图6所示。: S, G5 g3 u$ I

    8 U& U% X$ T1 P0 z, c. h0 s
    % D5 }* X9 ^; d3 g3 e
    $ c1 d, `( ]9 s! t& q# N  `# s9 g  3.2.3 数字音频接口单元
      F0 V5 z+ b/ F/ x1 Q1 {6 q( B+ A6 p) b1 c
      当读入数字音频标志位C1为‘1’,接收WM873l芯片传来的数字音频数据并将其存入外部双口RAM中,当输出数字音频数据标志位C2为‘1’时,将双口RAM中的音频数据发送给wM8731。如图7所示。+ Z6 H9 b% h1 S  |
    7 o& M# b( e' I) L6 n. m+ `  O
    # t0 z/ K8 j, G  Y& f" w8 j
    3 A" P! y) d! @! G$ \- L8 v& [
      3.3 系统仿真
    5 u8 ?/ |0 w) n/ F% [9 S9 b( V7 q% J3 q/ M  r6 @5 z5 S
      下面给出控制器通过该驱动模块对WM8731写控制字的时序仿真如图8所示。图中各引脚定义如表2所示。: V! V7 {6 S) D' P: b7 A( |- B& C
    # u$ n: K0 T* x+ \- l$ ]
    * b3 d: I# `0 _* O" T

      \% j0 {' S3 o+ O- [3 A0 e  t2 _
    9 g- O2 T4 F; D' _5 o3 J3 [; P( l; ]  F: b( n( d! b
      4 结 语: B  K. T1 F8 x9 H
    * F) \+ L6 `" v! r
      利用FPGA对音频编解码芯片WM8731进行接口电路的设计,实现了控制接口与数字音频接口的统一控制,简化了对音频编解码芯片WM8731的使用步骤,具有扩展性好、使用简单方便、易于升级等优点,对其他芯片的接口设计也有一定的参考意义。5 L' ]9 a( S4 C, z
    游客,如果您要查看本帖隐藏内容请回复

    * s- b0 T1 L8 U/ y. g) T
  • TA的每日心情
    开心
    2020-12-3 15:53
  • 签到天数: 38 天

    [LV.5]常住居民I

    2#
    发表于 2019-11-27 23:32 | 只看该作者
    学习一下      
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-19 19:49 , Processed in 0.140625 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表