|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
声音的产生是由于发声物体以一定的频率振动,带动周围的空气振动,使动耳朵内的听小骨一起振动,这些振动被转换为微弱的电子脑波,它就使我们觉察到了声音。不同的发声物体(声源)音色不同。声源振动的快慢不一样即产生的频率不一样,故有高音、低音、中高音、中低音等区分。由于声源振动的幅度大小不一样,所以我们听到的声音有大小的区分。本文主要通过对输入的时钟频率按不同的分频比进行分频,以达到产生不同频率的声音。
6 S A6 H2 T6 O: s) y% N
; P2 D% m" k) l9 k0 B1 音频发生器基本原理及顶层设计
3 \, z$ ] H6 i- X- d音频发生是基于声音的发生原理,利用外部晶振输入固定的频率(12MHz),由内部进行不同的分频得到,由于从数控分频器出来的信号是脉冲极窄的脉冲信号,为了能有效的驱动扬声器,需要外加一个D触发器以便于均衡占空比,这样出来的信号的频率就只有原信号的一半(6MHz)。/ O3 @' R+ r/ H4 X& t
; N& q& o9 B5 ]- e本音频发生器主要实现两个功能,通过按键选择。功能一可以通过按键让喇叭发出不同频率的声音,功能二可以预播放预设置的音频。
4 {1 J8 [+ y! E: y0 w! O1 F% v4 O8 f
2 底层模块设计" b, ^6 Y. l& U4 D
# T" b b: S' g- g; B
图1 音频发生器顶层各模块连接图
% ^9 M1 |* o3 N
' A" G$ c& F* x/ ]2.1 按键模块8 x2 A- S* W" K; `7 H$ r
由于本模块可以实现13个不同的音调(7个低音,6个高音),所以在按键模块有13个拨码开关输入,采用编码的方式把13中不同的编码转换为4为的数据输出。为了同步于自动播放的模块,本模块与自动模块采用同一时钟信号(8Hz),以上升沿触发的形式触发得到按键的输入。
4 A. ` V) t( v [5 C$ D& P3 @% M( C! g. w
2.2 信号选择模块- m' H3 P; L. ?; M" o. ~, W' ^' y
由于本模块可以实现自动播放于手动输入音调的功能,为此为了能实现单一的信号输入,必须在音频信号处理之前对输入的信号给予选择。此模块有三个信号输入,一个信号选择短,两个输入信号。还有一个信号输出端,对于选中的信号直接输出。
, _- x D1 I J( l8 \1 c/ H' D, P3 S
* T2 I+ v/ @9 g2.3 自动信号产生模块
; m$ x7 a% _9 H, e; w由于本模块可以实现自动播放内置歌曲的功能,所以必须要有一个模块来产生播放信号,此模块由8Hz 时钟输入,以计时器的方式产生4位的信号输出。
/ ~! a3 Y* l# P2 K8 l
2 d. v& s2 X4 x0 N2.4 译码模块
& U3 J1 w# G5 m# Q此模块的输入由选择器的输出的得,由于选择的输出是4位数据,所以需要由此模块进行译码以判断输出的高音/ 低音,也便把输入的数据输出显示,并且的到分频比以便于用于下一模块的分频。
) g5 [. Q4 S3 ^ `4 l' m9 T6 L- l1 |! g- O: m* n7 e
2.5 分频模块; g7 N5 ?: M) D! y9 I0 ?( c
此模块有输入12MHz时钟频率,由输入的4位总线型数据控制对12MHz的信号进行不同比例的分频,然后经D触发器进行脉冲展宽,使扬声器有足够的功率发音。2 k4 F* C, B; b6 L8 K/ O: f
* H* X* u3 u9 \$ K
如:将PreCLK为CLK的16分频
# ]5 d3 _3 U# DDivideCLK : PROCESS(clk)3 J2 |) Y, N3 \, _, h
VARIABLE Count4 : STD_. T5 }6 @1 b0 w+ C4 D0 }
LOGIC_VECTOR (3 DOWNTO 0) ;
6 Q C& O) K! g4 kBEGIN
" Z9 ?. k% h& z0 o5 bPreCLK 11 THEN PreCLK- J5 I* i, k1 n2 C6 C+ A5 i/ ]
6 N. u. w3 L. i; n! C经过仿真,证实系统方案可行。
C [$ c" {( g- ]$ L0 q& y, V6 g9 D$ x" ]9 G! L2 p8 y
|
|