CTCSS(亚音频静噪)是传统无线电台通信中使用的一种常见的收发限制手段,区别于常用的靠接收信号强度电平控制静噪关和使用DTMF(双音多频)静噪,有很大的优势。国际标准的CTCSS编码一共有38组频率,因为这些静噪信号频率为67.OHz-250.3Hz,低于话音通信带宽的下限,所以被称为亚音频。
CTCss静噪的原理是当信号发射的时候,发射机将CTCSS信号混合在话音信号中一起发送出去。接收机收到后,监测其中的CTCss信号,检测到符合当前设置的C'TCSS频率的时候,即打开静噪开关,迭出话音t如果没有检测到CTCSs信号,或者信号和当前设置不符,则关闭静噪,扬声器听不到声音。因为话音送到音频功放前要经过一级带通滤波器,所以亚音频信号不会泄漏到功放,也就不会被我们的耳朵听到,不会影响话音质量。
本文就此提出一种基于单片机的亚音频信号发生器设计方案,电路原理图见下图。
1.估号发生器原理本设计采用了价廉的AT89C2O5l芯片(目前一片价格在3元一5元左右),芯片只有20个引脚,核心部分为8031内核。片内集成2KBFlashROM程序存储器、l28KBSRAM数据存储器、2个硬件定时/计数器、1个模拟比较器、15个I/0口和1个硬件UART,15个I/0口分别是P3的部分口和P1口,因为不能外扩存储器,所以PO口和P2口省略了。
DAC为数字/模拟转换器,主要用于将MCU产生的数字频率信号变为模拟信号输出。在这里,我们只要采用8bit精度的就可以了。在本设计中,采用了电阻分压式的DAC。为了抑制DAC转换时产生的脉冲干扰和数字谐波,在这里只要采用简单的一阶RC滤波就可以达到效果了。
2.系统方案分析
本设计的功能只是产生高精度的规定频率的正弦波,所以采用了容易计算的时钟频率l2MHz。这样,每个机器周期就是lμs。要同时具有频率稳定和调整方便的特点,我们选择了一种新的频率合成算法DDS(直接数字合成器)。其实,DDS并不是什么新的技术,成品DDS芯片早就已经上市了,以它的使用方便、可靠、调整范围宽等特点,赢得了不少设计者的青睐。如AD公司的AD9850芯片,可以直接合成0-50MHz的频率,频率步进还不到0.lHz。但是这种器件价格较贵(目前每片价格在百元左右),主要用于要求较高的高档设备中,所以,不能直接使用现成的芯片,那么我们就用MCU模拟出一个DDS的算法来。
上图是DDS原理框图,图中相位累加器可在每一个时钟周期来临时将频率控制码所决定的相位增量△phase累加一次,如果记数大于2N,则自动溢出,而只保留后面的N位数字于累加器中。正弦查询表ROM用于实现从相位累加器输出的相位值到正弦幅度值的转换,并根据输入到正弦查询表ROM的相位值取出ROM中与其对应的幅值,然后送到DAC中将其转变为模拟量,最后通过滤波器输出正弦波信号。
在上图中,累加器的两个加数分别是步进和加法的结果,是一个以相位步进为幅度的累加器,如果累加器的长度足够长,那么就等于把一个正弦波分成2的累加器长度次方的分数,所以,频率步进可以做到足够细。按我们的设计,在这里累加器的长度为24bit,取最高8bit去转换为波形数据。
另外,因为这个设计是要精确考虑时间的,所以不使用高级语言进行开发,而用汇编语言来编写。
部分源程序为:
ORG 0 0 0 OH
LJMP BEGIN ;
ORG 0030H
BEGIN :
MOv P1,#OOH;初始化寄存器
MOV RO, #00H
MOV Rl , #0 OH
MOV R2. # 0 OH
MOV RO, A
MOV DPH,# 0 4H;取相位值
存放在FLASH中的 Ox400地址
MOV DPL,RO;以后,共占
256B
MOV A, 6iDPTR
MOV P1,A;输出到 P1
RJMP LOOP:;循环
ORG -04 00H
DB 044H, 041H, 03FH, 03CH,
0 3 9 H , 0 3 7 H , 0 3 4H , 0 3 2 H , 0 2 FH ,
O2DH, O2BH, 028H
DB 026H, 024H, 022H, 020H,
OIEH, OICH , OIAH, 018H, 016H,
015H, 013H, Ol1 H, O10H, 00FH,
00DH, 00CH
DB- 00BH, 00AH, 008H, 007H,
006H, 006H, 005H, 004H, 003H,
003H,002H,002H,002H,0 OIH,
0 OIH,000H
Ds 000H, 000H, 001H, 001H,
002H,002H,002H, 003H, 003H
004H, 005H, 006H, 006H, 007H
008H , 0 OAH
DB 00BH, 00CH, 00DH, 00FH,
010H, 011H, 013H, 015H, 016H
0 18H , 0 1AH , 0 lCH , 0 lEH , O2 OH
022H, 024H
DB 026H, 028H, O2BH, O2DH,
O2FH, 032H, 034H, 037H, 039H
03CH, O3FH, 041H, 044H, 047H
O4AH, O4DH
DB O4FH, 052H, 055H, 058H,