基于STC8G1K08信标信号板设计

简介

第十五届智能车竞赛中的信标组别使用了新的声音信标作为车模导引信号。如何在新版信标还没有正式出品之前就开始车模信号接收和处理模块的调试是很多同学关心的问题。

在之前,同学们通过音箱播放信标Chirp音频文件来模拟信标发出的声音,调试相应的麦克风阵列。这种方式比较简单,但还是缺少信标中的调频无线发送的同步音频信号,这使得信标的检测精度降低,响应速度缓慢了。

下面介绍一种使用一款八管脚(SOP8封装)单片机 STC8G1K08来制作简化版的信标信号板,用于车模的调试。

功能定义

根据信标导航信号的要求,信号板需要具有以下四个方面的功能:

  1. 能够产生符合要求的Chirp信号,来驱动音频功放通过扬声器发出声音;并通过调频信号发送同步无线信号;
  2. 发送调频无线信号,提供给车模接收同步音频信号;并作无线导航。
  3. 驱动扬声器发送Chirp声音信号。
  4. 与信标控制板连接,检测控制板上的脉冲信号控制信号发送;

为了简化设计,信号板只需要能够产生Chirp信号,并通过调频无线发送即可。使用一个普通的调频收音机接收调频无线信号,并发出Chirp声响,作为实际信标的位置。通过外部连接一个开关来确定是否发出声响。

如果调试多个信标时,可以使用多个调频收音机,分别放在不同的地点。有人工打开或者关闭,模拟多个信标导航的情形。

电路设计

1. STC8G1K08单片机资源

STC8G1K08单片机,SOP8封装,除了电源(VCC),底线(GND)之外,其余管脚都可以使用,除了可以做普通的IO之外,还可以为内部的AD,TIMER,SPI, I2C,CCP等模块提供外部端口。

用于发送调频无线信号的QN8027使用I2C总线控制,使用到8G1K的I2C总结接口(P3.3:SDA, P3.2:SCL)。

由于8G1K08没有DA输出,可以使用其内部CCP模块产生PWM(P5.4:CCP2)信号,通过低通滤波来产生Chirp模拟信号。

输入端口P5.5(INT3)可以用于判断外部的开关信号确定是否发送信号。

最后还剩下UART的两个引脚,可以用于芯片程序下载。并作为普通的IO口来使用。

▲ STC8G1K08端口功能配置

▲ STC8G1K08端口功能配置

2. STC8G1K08 MCU板设计

设计硬件工程文件:

D:\zhuoqing\AltiumDesigner\SmartCar\2020\BEACONSTC8G1K08.PcbDoc *

(1) 无线调频电路:

无线调频电路包括调频信号发生IC(QN8027)电路以及无线信号功率放大部分。调频信号发生采用了QN8027集成电路设计,大大减少了外围电路设计以及调试过程。使用12MHz晶体提供标准的参考振荡频率。 从单片机输出的Chirp信号经过RA1,RA2分压之后,形成大约峰峰值为1V的模拟信号加在音频双声道输入端口ALI(PIN10),ARI(PIN9)。
▲ FM电路设计

▲ FM电路设计

产生的调频信号通过电容C6耦合到高频三极管T1(9018)进行功率放大输出,输出射频信号经过电容C3耦合到天线。

(2)PWM低通滤波电路:

由8G1K08产生的PWM信号,需要经过低通滤波形成模拟信号。为了提高信号的质量,需要提高PWM的频率 f P W M f_{PWM} 以及PWM的控制占空比的位数 b P W M b_{PWM} 。在单片机主频 f O S C f_{OSC} 一定的情况下,这两个参数相互牵连,它们之间满足: f O S C = f P W M × 2 b P W M f_{OSC} = f_{PWM} \times 2^{b_{PWM} }

在实际设计中,上述参数为:

  • f O S C = 35 × 1 0 6 H z f_{OSC} = 35 \times 10^6 Hz
  • b P W M = 6    b i t b_{PWM} = 6\,\,bit
  • f P W M = f O S C / 2 6 = 546.765 k H z f_{PWM} = f_{OSC} /2^6 = 546.765kHz

设计RC低通滤波器的截止频率比 f P W M f_{PWM} 低一个数量级左右。取C=0.1uF,R=220Ω,那么低通滤波器的截止频率为: f s = 1 R C = 1 220 × 0.1 × 1 0 6 = 45.5 k H z f_s = {1 \over {RC}} = {1 \over {220 \times 0.1 \times 10^{ - 6} }} = 45.5kHz

(3)电源电路:

由于QN8027只能工作在3.3V电压下。8G1k08单片机可以工作的电压范围比较宽,但是为了能够工作在35MHz的主频下,其电压VCC需要等于5V。另外,为了提高调频信号发射功率,电路的工作电压也需要更好一些。最后选择VCC= 5V。

因此需要单独使用一个3.3V的稳压芯片为AN8027提供电源。此外使用电阻-二极管钳位电路将单片机I2C的5V信号转换成3.3V信号接入QN8027。

▲ 电源电路与I2C总线接口电路

▲ 电源电路与I2C总线接口电路

(4)原理图总图:

完整的电路原理图如下图所示:
▲ 原理图设计

▲ 原理图设计

(5)PCB设计:

下图给出了快速制版布置的PCB版图,以及焊接之后的测试电路板。在调频无线输出端口,使用一条20厘米的多股铜丝线作为天线。
▲ PCB设计电路图

▲ PCB设计电路图

电路板下面有六针插座,便于在面包板上完成调试。调试完之后,便可以通过该接口连接工作电源以及外部的控制信号了。

六针的定义为:

序号 功能 描述
1 VCC 工作电源+5V
2 GND 电源地
3 TXD MCU串口输出
4 RXD MCU串口输入
5 INT3 开关量输入,控制信号板工作
6 CHIRP 音频信号输出,内阻200欧姆

电路功能调试

软件工程文件:

D:\zhuoqing\window\C51\STC\Tools\BeaconSTC8G1KSOP8\BeaconSTC8G1KSOP8.uvproj

1. PWM输出

下图实测在PWM设置为0x1f,输出为50%时,PWM波形以及对应的频率。

▲ CCP2上的PWM波形输出

▲ CCP2上的PWM波形输出

2. Chirp信号

设置单片机TIMER0,产生10kHz的中断,在中断程序中交替发送0.2048秒的Chirp信号以及0.2048秒的静音。

Chirp信号数据是建立在程序去中的2048字节长度的表格,预先通过PYTHON语言生成6bit的数据。

Chirp生成的公式为:

t n = n t s = n f s = n 1 0 4 t_n = n \cdot t_s = {n \over {f_s }} = n \cdot 10^{ - 4}
x [ n ] = sin [ 2 π ( f e n d f s t a r t t 1 1 2 t n 2 + f s t a r t t n ) ] x\left[ n \right] = \sin \left[ {2\pi \cdot \left( {{{f_{end} - f_{start} } \over {t_1 }} \cdot {1 \over 2}t_n^2 + f_{start} \cdot t_n } \right)} \right]

然后将x[n]转化成0~63的整形数。

下面是经过RC低通滤波之后的Chirp音频模拟信号。

▲ PWM滤波后的Chirp信号

▲ PWM滤波后的Chirp信号

3. 射频信号

使用DSA815频谱仪,外接一根拉杆天线,接收到信号板发送的调频无线信号,频谱的中心在95.1MHz。
▲ 信号板发送的调频无线信号的频谱

▲ 信号板发送的调频无线信号的频谱

调频信号的强度大于本地调频广播的无线信号10倍以上,即使该信号与调频广播电台重叠,信号板发送的调频信号也能够压制住调频广播电台的信号。

下面是通过调频收音机在95.1MHz接收到的音频信号。
▲ 调频收音机接收到的信号

▲ 调频收音机接收到的信号

发布了464 篇原创文章 · 获赞 552 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/zhuoqingjoking97298/article/details/105755250