引言
CTCSS (Continuous Tone Controlled Squelch System,连续语音控制静噪系统)是一种将低于音频频率的频率(67.0~250.3 Hz)附加在音频信号中一起传输的技术。国际标准的CTCSS编码一共有38组频率,因为这些静噪信号频率为67.0~250.3 Hz,低于话音通信带宽的下限,所以被称为“亚音频”。CTCSS技术已经广泛用于无线电通信中,是传统无线电台通信中一种常见的收发限制手段。在电台的中继站和对讲机中,采用CTCSS技术可以避免接收到不相干的呼叫。
在对讲机设计中采用亚音频技术,其目的是避免不同用户的相互干扰,避免收听无关的呼叫和干扰信号。因为它可以在共同信道中制止来自其他用户的话音和信令干扰,故也称为音锁(tone lock)。当对讲机的发射机发送话音信号的同时不断发出亚音频连续信号,经调制后在同一信道发射出去。当接收机收到载波信号和亚音频信号后进行调解。亚音频信号经过滤波器整形输入CPU中进行解码后,与本机预置的CTCSS码进行比较以决定是否开启静噪电路。只有亚音频码相同时,静噪电路音频输出才能打开,通过扬声器发出声音。如果没有检测到CTCSS信号,或者信号和当前设置不符,则关闭静噪,扬声器听不到声音[1]。本文就此提出一种基于STC12C2052单片机的对讲机加密系统设计方案。
1 STC12C2052单片机简介
STC12C2052是宏晶科技推出的STC12系列增强型8051单片机,速度比普通的8051快12倍,具有较宽的操作电压范围。其片上集成:256字节的RAM;15个通用可编程I/O口,可以设置成准双向口/弱上拉、推挽/强上拉、仅为输入/高阻、开漏(复位后为准双向口/弱上拉模式) 4种模式; EEPROM功能;2个16位定时器/计数器;RC振荡器,在精度要求不高时可以省略外部晶振;独立的片内看门狗定时器。
1.1 STC12C2052的PCA/PWM工作原理
STC12C2052单片机中的PCA可编程计数器阵列含有一个特殊的16位定时器,它可与2个16位捕获/比较模块相连。每个模块可编程工作在4种模式下,即上升/下降沿捕获、软件定时器、高速输出和可调制脉冲输出。设计时,可将模块0连接到P3.7(CEX0/PCA0/PWM0),模块1连接到P3.5(CEX1/PCA1/PWM1)。由于寄存器CH和CL的内容是正在自由递增计数的16位PCA定时器的值,因此,PCA定时器可作为2个模块的公共时间基准,并可通过编程工作在1/12振荡频率、1/2振荡频率、定时器0溢出或ECI脚的输入(P3.4)。定时器的计数源由CMOD SFR的CPS1和CPS0位来确定[2]。
1.2 STC12C2052的PCA脉宽调节模式
所有PCA模块都可用作PWM输出。其输出频率取决于PCA定时器的时钟源。由于所有模块共用仅有的PCA定时器,所以它们的输出频率相同。各个模块的输出占空比是独立变化的,与使用的捕获寄存器对EPCnL、CCAPnL有关。当CL SFR的值小于EPCnL、CCAPhL时,输出为低;而当PCA CLSFR的值等于或大于EPCnL、CCAPnL时,输出为高。当CL的值由FF变为00溢出时,EPCnH、CCAPnH的内容将被装载到EPCnL、CCAPnL中,这样就可无干扰地更新PWM。使能PWM模式时,模块CCAPMn寄存器的PWMn和ECOMn位必须置位。由于PWM是8位的,所以可用下式来计算PWM的信号频率:
图1 脉冲宽度调制原理
2 PWM调制原理
脉宽调制(Pulse Width Modulation,PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。脉冲宽度调制原理如图1所示。
简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通,即直流供电被加到负载上时;断,即供电被断开时。只要带宽足够,任何模拟值都可以使用PWM进行编码。
PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数/模转换。让信号保持为数字形式可将噪声影响降到最小。只有噪声在强到足以将逻辑1改变为逻辑0,或将逻辑0改变为逻辑1时,才能对数字信号产生影响。
PWM相对于模拟控制的另外一个优点是对噪声抵抗能力强,这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波,并将信号还原为模拟形式。
许多微控制器内部都包含有PWM控制器。例如,STC12C2052内含两个PWM控制器,每一个都可以选择接通时间和周期。占空比是接通时间与周期之比;调制频率为周期的倒数。执行PWM操作之前,这种微处理器要求在软件中完成以下工作:
① 设置提供调制方波的片上定时器/计数器的周期;
② 在PWM控制寄存器中设置接通时间;
③ 设置PWM输出的方向,这里是通用I/O引脚;
④ 启动定时器;
⑤ 使能PWM控制器(虽然具体的PWM控制器在编程细节上会有所不同,但它们的基本思想是相同的)。
3 硬件设计
CTCSS系统的设计是围绕一组低频率音频信号(67.0~250.3 Hz)进行的(32 或 38,根据不同的标准)。这些亚音频信号是完全正弦波,且频率差很要求很严格。
在大多数设计中采用求定点正弦函数值的做法:以产生正弦波为例,采用定点法来生成波形,即将一个周期的正弦波按360°等分为若干点,计算出各点的正弦函数值,并转化相应的D/A转换器输入数值,这样得到一个正弦函数表。通过程序将该表存于单片机的程序存储器中,利用单片机的定时器来产生定时,每当定时时间到时,查表得到该点对应的输出值,然后通过D/A转换得到该点对应的电压值。如此,周而复始地查表输出,就可以得到所要的正弦波。由于一个周期正弦波的点数固定,因此改变定时器的定时值就改变相邻两点的间隔时间,从而改变正弦波的频率[3]。
在此,通过另外一种更简便的方法来产生多种波形。使用单片机的PWM调制信号产生多种波形,但此种方法的缺陷就是产生波形的频率有限。
3.1 亚音频信号的产生方法
计算公式:y = 256/2+80*sin(2PI*x/512)。
通过下面的代码生成正弦表:
code BF_U8 Sin[256] ={
128,
130,132,134,136,138,140,142,144,
145,147,149,151,153,155,157,159,
160,162,164,166,167,169,171,172,
174,176,177,179,180,182,183,185,
186,187,189,190,191,192,193,194,
196,197,198,199,199,200,201,202,
图3 硬件电路图
203,203,204,205,205,206,206,206,
207,207,207,208,208,208,208,208,
208,208,208,208,207,207,207,206,
206,206,205,205,204,203,203,202,
201,200,199,199,198,197,196,194,
193,192,191,190,189,187,186,185,
183,182,180,179,177,176,174,172,
171,169,167,166,164,162,160,159,
157,155,153,151,149,147,145,144,
142,140,138,136,134,132,130,128,
126,124,122,120,118,116,114,112,
110,109,107,105,103,101,99,97,
96,94,92,90,89,87,85,84,
82,80,79,77,76,74,73,71,
70,69,67,66,65,64,63,61,
60,59,58,57,57,56,55,54,
53,53,52,51,51,50,50,49,
49,49,49,48,48,48,48,48,
48,48,48,48,49,49,49,49,
50,50,51,51,52,53,53,54,
55,56,57,57,58,59,60,61,
63,64,65,66,67,69,70,71,
73,74,76,77,79,80,82,84,
85,87,89,90,92,94,96,97,
99,101,103,105,107,109,110,112,
114,116,118,120,122,124,126,128,};
假设PWM的频率为32 768 000/256 Hz,那么在每次PWM中断时改变一次PWM的占空比(改变的规律如正弦表所示)。最终输出波形经过低通滤波器滤波之后就变成了正弦信号,如图2所示。
图2 正弦信号的产生
3.2 亚音频信号的硬件电路
加密系统主要由键盘电路、在线程序下载电路和电源电路组成。其硬件电路如图3所示。其中,XW5LOW为稳压输出芯片。
(1)键盘电路。由于本系统所需要的按键数量较少,因此采用独立式按键即可达到要求。将6个独立式按键与单片机P1口的6根线相连。这6个按键最多可以形成64种组合,可以完成对任意频率的亚音频信号的设定工作。
(2)在线编程电路。在电路中将GND、P3.1、P 3.0、VCC、P1.1、P1.0这6个信号线引出来,这样用户就可以在自己的系统中直接编程了。
(3)电源电路和低通滤波电路。经稳压芯片稳压和电容滤波后产生电路所需的电源,滤波电路是由RC滤波电路实现的。
图4 主程序流程
4 软件设计
软件设计包括主程序和看门狗子
程序、读取按键子程序、定时器0中断服务子程序、定时器1中断服务子程序。主程序首先完成对看门狗、与PWM相关的各个特殊功能寄存器,以及定时器0和定时器1的初始化设定。然后对当前的按键进行判定,根据所按的按键产生相应的亚音频信号。系统主程序流程如图4所示。
定时器0中断子程序主要完成PWM的定时器和捕获寄存器的值的更新,并在P3.5、P3.7脚输出相应的脉冲信号(即正弦波信号)。定时器1中断子程序主要完成各个亚音频信号的周期的定时工作。
5 结论
以往的实现方法都是使用音频锁相环进行检测和生成亚音频,设计难度较大,调试麻烦,而本文的数字化方案无需任何调试即可实现高精度、高稳定性的亚音频,且大大降低制作成本。
CTCSS可以在共用信道中制止来自其他用户的无用话音以及其他信令干扰。它是通过亚音频(数字亚音频)信令编/解码来提高通信网络抵御外界干扰能力,并解决非网络用户入网问题的信令识别系统。同时,CTCSS具有选择呼叫功能,可利用连续单音频编码(数字编码)进行选择呼叫,并始终和传输话音信号同时进行,也是当前最有效的选呼方式。主呼叫只要按PTT就能发出群呼或全呼,当对讲机通话结束后无需按键挂机,较之以电话互连方式人工编码选呼(DTMF)要更为方便、快捷。