简介

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

在之前,同学们通过音箱播放信标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端口功能配置

2. STC8G1K08 MCU板设计

设计硬件工程文件:

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

(1) 无线调频电路:

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

▲ FM电路设计

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

(2)PWM低通滤波电路:

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

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

  • fOSC=35×106Hzf_{OSC} = 35 \times 10^6 HzfOSC​=35×106Hz
  • bPWM=6bitb_{PWM} = 6\,\,bitbPWM​=6bit
  • fPWM=fOSC/26=546.765kHzf_{PWM} = f_{OSC} /2^6 = 546.765kHzfPWM​=fOSC​/26=546.765kHz

设计RC低通滤波器的截止频率比fPWMf_{PWM}fPWM​低一个数量级左右。取C=0.1uF,R=220Ω,那么低通滤波器的截止频率为:fs=1RC=1220×0.1×10−6=45.5kHzf_s = {1 \over {RC}} = {1 \over {220 \times 0.1 \times 10^{ - 6} }} = 45.5kHzfs​=RC1​=220×0.1×10−61​=45.5kHz

(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欧姆

电路功能调试

软件工程文件:

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

1. PWM输出

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

▲ CCP2上的PWM波形输出

2. Chirp信号

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

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

Chirp生成的公式为:

tn=n⋅ts=nfs=n⋅10−4t_n = n \cdot t_s = {n \over {f_s }} = n \cdot 10^{ - 4}tn​=n⋅ts​=fs​n​=n⋅10−4
x[n]=sin⁡[2π⋅(fend−fstartt1⋅12tn2+fstart⋅tn)]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]=sin[2π⋅(t1​fend​−fstart​​⋅21​tn2​+fstart​⋅tn​)]

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

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

▲ PWM滤波后的Chirp信号

3. 射频信号

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

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

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

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

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

基于STC8G1K08信标信号板设计相关推荐

  1. 基于角色的权限设计(一)

    在任何系统中,权限设计是最基础的东西,本文给出一个基于角色的权限设计的循序渐进的设计方案. 在权限系统中,功能(权限)是最小的单位,比如起草新闻.编辑新闻.审核新闻.删除新闻等,而角色是一类功能的集合 ...

  2. (原创)基于ZedBoard的Webcam设计(二):USB摄像头图片采集+QT显示

    在(原创基于ZedBoard的Webcam设计(一):Zedboard上的USB摄像头(V4L2接口)的图片采集中,我们完成了ZedBoard上USB摄像头的单幅图片采集,采集到的图片是存储在文件系统 ...

  3. matlab设计长度为50的滤波器,实验5 基于Matlab的数字滤波器设计

    实验五 基于Matlab 的数字滤波器设计 实验目的:加深对数字滤波器的常用指标和设计过程的理解. 实验原理:低通滤波器的常用指标如下所述,其典型规格如下: ?? ????????≤≤≤≤+≤≤-πδ ...

  4. WeChat之小工具:基于C++程序代码设计的查看微信撤销、撤回消息(包括文本、图片、视频等)GUI小工具

    WeChat之小工具:基于C++程序代码设计的查看微信撤销.撤回消息(包括文本.图片.视频等)GUI小工具 导读      哈哈,千万不要给程序猿随便发信息,程序猿认真起来,别说你发的微信信息,就连你 ...

  5. 基于fdatool的滤波器设计(低通、带通、高通)

    体程序参考原文: 基于fdatool的滤波器设计(低通.带通.高通) - 子木的文章 - 知乎 https://zhuanlan.zhihu.com/p/47392900 一.关于 结合上一篇8PSK ...

  6. rffc2071_基于 RFFC2071的变频器设计

    基于 RFFC2071 的变频器设计 • 目的结合 RFMD 公司最新的高集成度 , 高线性 IC RFFC2071( 包括宽带 VCO, PLL 和泪 频器 ) 以及其他各类器件产品, 为客户提供最 ...

  7. 基于FPGA的FFT设计

    基于FPGA的FFT设计 1.verilog源代码还有实验报告 2.FFT的主要算法 FFT算法并不是一种新的理论算法,它只是用来计算DFT的快速算法,所以它是以DFT为基础的.本课题采用的是基-2 ...

  8. 基于RBAC的权限设计

    来源:http://www.phpchina.com/html/73/5173_itemid_10049.html 基于RBAC 的权限设计模型: 1        RBAC 介绍   RBAC 模型 ...

  9. 3制造数据集_基于MBD的产品设计制造技术研究

    本篇节选自论文<基于MBD的产品设计制造技术研究>,发表于<中国电子科学研究院学报>第8卷第6期,作者为中国电子科技集团公司第14研究所专家朱建军.本文经授权转载自公众号学术p ...

最新文章

  1. 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  2. React 服务端渲染方案完美的解决方案
  3. 详解H3C交换机“端口安全”功能
  4. python selenium爬虫爬京东评论_Python 不用selenium 带你高效爬取京东商品评论
  5. 使用分页插件PageHelper
  6. FinalTest 基于web的登录口令修改设计
  7. HDU 2588 GCD 【Euler + 暴力技巧】
  8. 基于SSM的作业管理(在线学习)系统
  9. 多关键字排序的c语言编程,常见排序——“计数排序(三关键字)”的源程序(C语言版)...
  10. 【图像处理】基于matlab GUI Hough变换+PDE图像去雨(带面板)【含Matlab源码 811期】
  11. idea 查看jsp是否被引用_idea 查看jsp是否被引用_IntelliJ IDEA解析JSP中的Web路径
  12. ArcMap表格操作
  13. 第一次:《三国志2017》游戏纯玩体验及总结
  14. H3C交换机配置的备份与恢复[3CDaemon]
  15. linux获取utc时间函数,Linux下的时间函数
  16. 05JavaScript输出
  17. 拉卡拉前三季度净利润7.35亿元 继续保持高速增长态势
  18. Linux怎么彻底删除用户
  19. vue中的子传父和父传子
  20. 经典文献阅读之--PL-SLAM(点线SLAM)

热门文章

  1. 听妈妈的话-07年感动的延续
  2. RPM包制作之Spec文件详解
  3. CF70D Professor's task(动态凸包)
  4. Docker学习之网络篇
  5. MSDN-9月杂志推荐
  6. Azure PowerShell (6) 设置单个Virtual Machine Endpoint
  7. NIO 拷贝文件真的比 IO 效率高 ?
  8. lnmp之mysql原码编译
  9. C语言 文件操作10--配置文件读写
  10. Java关键字this、super使用总结