菜鸟谈一谈对模拟对讲机的理解

此篇文章在2022年7月1日被记录

一个好用的对讲机首先包含的基本功能:对讲发送、对讲接受、频率设置、音量设置、低功耗功能。
高级功能:尾音抑制、哑音功能、免按键通话、宽窄带切换、遇忙禁发、参数配置

最开始我认为所有的音频信号需要经过单片机处理,可能涉及到信号采集、解码编码、模拟发送等功能,现在看来以前的理解是错误的,在现在什么东西都模块化的时代,使用的是独立的对讲芯片完成这些功能,一个对讲芯片就可以完成上述所有功能,单片机只用与芯片通信,做一些判断、配置、开关通路等功能就可以了。

  • 对讲发送状态

单片机判断发送条件(遇忙禁发、低电量、高温等),配置芯片为发射状态(发射功率、发射频率、哑音、MIC增益等),开启发射并且打开发射通路,然后不断判断发射终止事件(超时、过热、低电量、按键释放、其他事件等),最后终止发射,完成一轮循环。

  • 对讲接受

在空闲状态下不断判断接收门限(RSSI、SQ、哑音等),满足条件后进入到接受模式、等待尾音,检测到尾音或者信号丢失后关闭接受,当然在这个循环中也需要不断的进行异常检测。

  • 频率设置

通信通道发生改变后,重新设置接收频率。

  • 音量设置

音量发生变化后、重新设置输出功放增益。

  • 低功耗功能

在空闲状态下休眠固定时间,这个低功耗功能测量起来比较麻烦,我在代码里面实现了,但是实际上也不知道有没有进去,需要配合硬件部门的人来测量。

  • 尾音抑制

为什么要尾音抑制?没有尾音抑制的话,只能等到信号丢失再关掉扬声器,此时会有一段较大的白噪音,影响使用体验,因此,现在的对讲机再发送完成后持续发送一段人们听不到的音频,通常为55HZ的哑音,这样,接收方在接收到这段音频后,会主动关闭喇叭,不产生那段影响体验的白噪音。现在的对讲芯片通常也集成了这个功能,只用读取相关寄存器就可以判断是否具有哑音。

  • 哑音功能

为什么使用哑音?在同一个通道对话时,可能会听到其他人的讲话,我们不想在这个通道中听取其他人的声音,于是加入哑音功能,哑音就是在我们的正常的对讲音频中叠加一段人耳听不到的声音,通过对对讲芯片配置,在接受时判断一下是不是想要的哑音通道,如果哑音不匹配,就不打开扬声器了,这样的话就实现了防止外部干扰的功能,但是如果一个接收机没有打开哑音功能,发射机开启了哑音功能,那么接收机是可以听到声音的,接收机可以接收到同频道的所有信号。这部分的代码主要是逻辑判断。

  • 免按键通话

不用按下按键就可以说话的功能,主要是在空闲状态下不断判断麦克风的阈值,当达到一定的值后,直接开启对讲状态,很好理解。

  • 宽窄带切换

直接操作芯片切换宽窄带,窄带的通信距离更远,其实到现在为止我还不太清楚宽在哪里窄在哪里。

  • 遇忙禁发

这个也很好理解,甚至不涉及到硬件,也就是在忙的状态下禁止发送,比如在接收状态下,按下按键禁止发送。

  • 信号调制

由于模拟对讲机之间只可以传输模拟信号,需要传输数字信号的话,需要依赖于对讲芯片的信号调制功能,大部分对讲芯片一般会自带一个FSK或者常见类型的信号调制器,FSK可以在模拟通信上实现数字通信,也就是说,通过对讲机发送0、1值,这种工作状态是在一个固定频率的载波上叠加不同的频率实现0、1的收发,比如在固定频率433Mhz上叠加1Khz的波形代表0,叠加2Khz的波形代表1,这种通信方式注定了通信速率不会很高,在对讲芯片中,速率通常为1200或者2400bps,发送200字节大概需要1.6秒。

posted @ 2024-12-10 14:52  shumei52  阅读(207)  评论(0)    收藏  举报