简介
第十五届智能车竞赛中的信标组别使用了新的声音信标[1]作为车模导引信号。如何在新版信标还没有正式出品之前就开始车模信号接收和处理模块的调试是很多同学关心的问题。
在之前,同学们通过音箱播放信标 Chirp 音频[2]文件来模拟信标发出的声音,调试相应的麦克风阵列。这种方式比较简单,但还是缺少信标中的调频无线发送的同步音频信号,这使得信标的检测精度降低,响应速度缓慢了。
下面介绍一种使用一款八管脚(SOP8 封装)单片机 STC8G1K08 来制作简化版的信标信号板,用于车模的调试。
功能定义
根据信标导航信号[3]的要求,信号板需要具有以下四个方面的功能:
能够产生符合要求的 Chirp 信号[4],来驱动音频功放通过扬声器发出声音;并通过调频信号发送同步无线信号;
发送调频无线信号,提供给车模接收同步音频信号;并作无线导航。
驱动扬声器发送 Chirp 声音信号。
为了简化设计,信号板只需要能够产生 Chirp 信号,并通过调频无线发送即可。使用一个普通的调频收音机接收调频无线信号,并发出 Chirp 声响,作为实际信标的位置。通过外部连接一个开关来确定是否发出声响。
如果调试多个信标时,可以使用多个调频收音机,分别放在不同的地点。有人工打开或者关闭,模拟多个信标导航的情形。
电路设计
1. STC8G1K08 单片机资源
STC8G1K08 单片机,SOP8 封装,除了电源(VCC),底线(GND)之外,其余管脚都可以使用,除了可以做普通的 IO 之外,还可以为内部的 AD,TIMER,SPI, I2C,CCP 等模块提供外部端口。
用于发送调频无线信号的 QN8027[5]使用 I2C 总线控制,使用到 8G1K 的 I2C 总线接口(P3.3:SDA, P3.2:SCL)。
由于 8G1K08 没有 DA 输出,可以使用其内部 CCP 模块产生 PWM(P5.4:CCP2)信号,通过低通滤波来产生 Chirp 模拟信号。
输入端口 P5.5(INT3)可以用于判断外部的开关信号确定是否发送信号。
最后还剩下 UART 的两个引脚,可以用于芯片程序下载。并作为普通的 IO 口来使用。
▲ STC8G1K08 端口功能配置
2. STC8G1K08 MCU 板设计
(1) 无线调频电路:
无线调频电路包括调频信号发生 IC(QN8027)电路以及无线信号功率放大部分。调频信号发生采用了 QN8027 集成电路设计,大大减少了外围电路设计以及调试过程。使用 12MHz 晶体提供标准的参考振荡频率。从单片机输出的 Chirp 信号经过 RA1,RA2 分压之后,形成大约峰峰值为 1V 的模拟信号加在音频双声道输入端口 ALI(PIN10),ARI(PIN9)。
▲ FM 电路设计
产生的调频信号通过电容 C6 耦合到高频三极管 T1(9018)进行功率放大输出,输出射频信号经过电容 C3 耦合到天线。
(2)PWM 低通滤波电路:
由 8G1K08 产生的 PWM 信号,需要经过低通滤波形成模拟信号。为了提高信号的质量,需要提高 PWM 的频率以及 PWM 的控制占空比的位数。在单片机主频一定的情况下,这两个参数相互牵连,它们之间满足:
在实际设计中,上述参数为:设计 RC 低通滤波器的截止频率比低一个数量级左右。取 C=0.1uF,R=220Ω,那么低通滤波器的截止频率为:
(3)电源电路:
由于 QN8027 只能工作在 3.3V 电压下。8G1k08 单片机可以工作的电压范围比较宽,但是为了能够工作在 35MHz 的主频下,其电压 VCC 需要等于 5V。另外,为了提高调频信号发射功率,电路的工作电压也需要更好一些。最后选择 VCC= 5V。
因此需要单独使用一个 3.3V 的稳压芯片为 AN8027 提供电源。此外使用电阻 - 二极管钳位电路将单片机 I2C 的 5V 信号转换成 3.3V 信号接入 QN8027。
▲ 电源电路与 I2C 总线接口电路
(4)原理图总图:
完整的电路原理图如下图所示:
▲ 原理图设计
(5)PCB 设计:
下图给出了快速制版布置的 PCB 版图,以及焊接之后的测试电路板。在调频无线输出端口,使用一条 20 厘米的多股铜丝线作为天线。
▲ PCB 设计电路图
电路板下面有六针插座,便于在面包板上完成调试。调试完之后,便可以通过该接口连接工作电源以及外部的控制信号了。
六针的定义为:
序号 | 功能 | 描述 |
---|---|---|
1 | VCC | 工作电源+5V |
2 | GND | 电源地 |
3 | TXD | MCU 串口输出 |
4 | RXD | MCU 串口输入 |
5 | INT3 | 开关量输入,控制信号板工作 |
6 | CHIRP | 音频信号输出,内阻 200 欧姆 |
电路功能调试
1. PWM 输出
下图实测在 PWM 设置为 0x1f,输出为 50%时,PWM 波形以及对应的频率。
▲ CCP2 上的 PWM 波形输出
2. Chirp 信号
设置单片机 TIMER0,产生 10kHz 的中断,在中断程序中交替发送 0.2048 秒的 Chirp 信号以及 0.2048 秒的静音。
Chirp 信号数据是建立在程序区中的 2048 字节长度的表格,预先通过 PYTHON 语言生成 6bit 的数据。
Chirp 生成的公式为:
然后将 x[n]转化成 0~63 的整形数。
下面是经过 RC 低通滤波之后的 Chirp 音频模拟信号。
▲ PWM 滤波后的 Chirp 信号
3. 射频信号
使用 DSA815 频谱仪,外接一根拉杆天线,接收到信号板发送的调频无线信号,频谱的中心在 95.1MHz。
▲ 信号板发送的调频无线信号的频谱
调频信号的强度大于本地调频广播的无线信号 10 倍以上,即使该信号与调频广播电台重叠,信号板发送的调频信号也能够压制住调频广播电台的信号。
下面是通过调频收音机在 95.1MHz 接收到的音频信号。
▲ 调频收音机接收到的信号
参考资料
[1]声音信标: https://zhuoqing.blog.csdn.net/article/details/104231420
[2]信标 Chirp 音频: https://zhuoqing.blog.csdn.net/article/details/105575349
[3]信标导航信号: https://zhuoqing.blog.csdn.net/article/details/105004283
[4]Chirp 信号: https://zhuoqing.blog.csdn.net/article/details/105762739
[5]QN8027: https://zhuoqing.blog.csdn.net/article/details/104710034