首页 > 其他分享 >基于STM32的激光通信系统设计

基于STM32的激光通信系统设计

时间:2024-11-02 20:42:01浏览次数:1  
标签:激光 系统 通信 STM32 信号 串口 调制

备忘
编者按:激光通信具有保密性强、通信容量大、重量轻、功耗和体积小、制造和维护费用低等特点。为满足民用领域对于激光通信的需求,设计了一种基于STM32的激光通信系统。该系统由激光发射模块、激光接收模块,STM32F407主控模块组成,采用双音多频方式进行调制。在实验室环境下进行了环回通信实验,实验表明,系统具有较长的通信距离,较高的通信速率,实现了数据的稳定收发。该激光通信系统具有成本低,通信稳定性强,保密性好等特点,为民用激光通信提供了解决方案。

https://www.eepw.com.cn/article/202307/449089.htm

0 引言

激光通信在卫星通信,水下通信,无人机通信等领域都有广泛应用。激光通信作为一种光通信方式,与无线电通信相比,具有保密性强,通信容量大,重量轻,功耗和体积小,成本低等特点[1]。激光通信由于其系统较为复杂的原因,在民用领域还不够普及。

红外通信是一种光通信方式,广泛应用于民用领域,但其传输距离通常较短,文献[2] 设计了一种数字模拟混合红外通信系统,其通信距离仅有1.2M,实用型较差。文献[3]设计了一种近场无线激光通信系统,但其系统组成复杂,生产成本较高,不适合民用领域量产。文献[4]设计了基于脉冲拨号的抗抖动激光通信系统,但其发送时间过长,通信速率较低。

为解决上述问题,本文设计了一种基于STM32 的激光通信系统,该系统由激光发射模块、激光接收模块和F407 主控模块组成,采用双音多频调制方式进行信号调制。系统可以通过上位机经由串口进行控制,实现数据的收发,为低成本民用激光通信提供了解决方案。

1 激光通信系统总体设计

激光通信系统共分为软件层和硬件层,软件层由C语言编写,微控制器为软件层的运行载体,硬件层总体设计如图1 所示。

 

 图1 激光通信系统硬件结构图

硬件层由激光发射模块、激光接收模块和主控模块组成。激光发射模块包括激光二极管(LD)、激光准直系统和高精度LD 驱动电流源,激光接收模块包括光电二极管(PD)和激光接收前端电路。激光发射模块和激光接收模块分别通过D/A 通道和A/D 通道与单片机相连接。激光通信系统和上位机通过串口相连接,通过串口AT 指令对激光通信系统进行控制和数据的收发。

激光通信系统A、B 两个终端在进行通信时,只需将A 和B 终端的传光通路联通即可,可通过光纤进行联通,也可直接在空间中进行传输。

2 激光通信系统系统硬件设计

激光通信系统的硬件部分包括主控及其外围电路,电源模块,激光发射电路和激光接收前端电路。

2.1 主控及其外围电路设计

激光通信系统主控采用意法半导体公司的STM32F407VET6处理器,该微控制器具有丰富的模拟外设和高性能的Cortex-M4 内核,同时具有FPU 单元,有效提升浮点运算速度,为快速傅里叶变换提供了性能支持。主控采用RC 复位电路,预留SWD 接口进行调试。主控与上位机通过串口进行数据传输,由于PC 机无TTL 串口,通过CH340 芯片进行USB 和TTL 串口的转换。主控及其外围电路如图2所示。

 

图2 主控及其外围电路设计

2.2 电源模块设计

系统需要3.3 V、5 V 双电源和1.235 V 三种规格的电源,其中,5 V 双电源用于模拟部分的供电,包括激光发射模块和激光接收模块。

3.3 V 电源用于数字电路的供电。1.235 V 电源为LD 驱动高精度电流源提供电压基准。

系统的电源树有三个分支:系统总电源通过USB 5 V电源输入,分别接入TPS65133 双5 V 电源,MT2492斩波降压3.3 V 电源,LM385 高精度1.235 V电压基准。

MT2492是西安航天民芯的一款斩波降压控制器芯片,具有最高96% 的效率。电源模块原理图如图3 所示,

输出电压满足公式

 输出电压需设定为3.3V,故将电阻配置为:RHS=67.5 kΩ, RLS=15 kΩ。

 

图3 MT2492电源

LM385 为凌特公司的高精度电压基准芯片,输出电压为1.235 V,具有1% 的电压精度,低达60 μV(RMS)的噪声。根据芯片数据手册中对其工作电流的要求,配置限流电阻R0=2 kΩ。

2.3 激光发射电路设计

激光发射电路由LD 驱动高精度电流源和激光二极管组成,该电流源为激光二极管提供了稳定的静态工作电流。由于激光二极管的发光强度和电流近似为正比关系,所以对电流进行调制即可实现激光二极管发光强度的调制。其原理图如图4 所示。

 图4 LD驱动高精度电流源

该电流源的主要器件为调整管Q1,电流采样电阻R2和运算放大器U1.1。调整管Q1工作在恒流区,可等效为1 个压控电流源,用于调整激光二极管上通过的电流。电阻R2对流过激光二极管的电流进行采样,将其转换成电压信号。运算放大器U1.1 用于建立负反馈环路,实现电流的负反馈。根据运算放大器的虚短虚断关系,最终流过LD 的电流可通过下式计算:ILD=VIN+/R2。电压基准芯片 U4 提供 1.235 V 的参考电压,R6和R4对基准电压进行分压,接入运算放大器的同相输入端,通过调整R4的值即可调整ILD ,从而调整激光二极管的静态工作点。

运算放大器U1.2 连接成电压跟随器,单片机ADC信号通过电压跟随器后,经过耦合电容叠加在节点电压VIN+上,实现流过激光二极管电流ILD 的调制,从而实现激光二极管发光强度的调制。

2.4 激光接收电路设计

激光接收电路由I/V 转换电路,前置可变增益放大电路,ADC 前端抗混叠滤波器组成,其原理图如图5所示。

 图5 激光接收电路

I/V 转换电路将PD 输出的电流信号转换为电压信号,方便后续进行处理,其跨阻由电阻R6 的阻值决定。由于光电二极管存在结电容,其高频特性会受到影响,在使用时需加偏压,减小结电容的影响。本电路中的偏压通过稳压管D1 实现,D1 的稳压值即为光电二极管上所加偏压。

完成光电二极管的I/V 转换后,将得到的电压送入前置可调增益放大器,对电压进行二次放大,该级的增益可通过电位器R8 进行调节。放大后的信号通过抗混叠滤波器送入单片机ADC 引脚进行采集。

为防止信号在ADC 采集过程中发生频谱混叠,需对输入信号进行滤波。二阶低通抗混叠滤波器元器件参数通过TI Filter Design Tool 进行设计,其截止频率为1 MHz。

3 激光通信系统系统软件设计

激光通信系统的软件部分包括初始化程序,上位机通信程序,数据调制发送程序, A/D 转换信号解调程序。

初始化程序对单片机系统时钟树及各个外设进行初始化,包括串口的初始化,ADC 的初始化,DAC 的初始化,DMA 的初始化,定时器的初始化等。

3.1 上位机通信程序设计

上位机通信程序用于实现上位机和单片机之间的通信。上位机对系统的控制主要通过串口AT 指令实现,串口的通信协议设计如表1。

表1 串口AT指令协议设计

 

开启传输后,激光通信系统进入串口透传模式,通过串口直接发送数据。

串口AT 指令的执行通过有限状态机结构实现,程序运行分为有限个状态,AT 指令作为状态转换条件触发不同状态之间的转换。

当程序开启传输后,将串口接收到的上位机数据传输至数据缓冲区,同时在数据结构体中将标志位置1,在数据调制发送程序中进行处理和发送。同时,以程序查询的方式检测接收数据缓冲区是否更新,如果更新,将接收到的数据直接通过串口发送至上位机。

3.2 数据调制发送程序设计

数据调制发送程序主要由调制和发送两部分组成。调制程序通过双音多频调制方法将串口传输到缓冲区的数据进行处理,产生调制波。发送程序在产生完1 个字节数据的调制波后通过DAC 输出,叠加到激光发射电路上的调制端,对发射的激光强度进行调制。

多音双频调制信号由高群和低群组成,高低群各包含4 个频率。1 个高频信号和1 个低频信号叠加组成1个组合信号,共16 种组合,表示四位二进制数据。在高群和低群中各加入1 个单频信号作为起始信号和结束信号。传输时将1 个字节数据分为高半字和低半字,先后进行传输。各群频率分配和帧格式如图6 所示。

 

图6 双音多频采用的频率组合及通信帧结构

每字节信号开始传输后,会产生1 个起始单频信号,然后先后产生两个包含半字节数据的多频信号,最后产生1 个终止单频信号,该字节数据传输完成。传输的时序由定时器控制,定时器每产生1 次中断为1 个单位时间,起始信号,半字节数据信号,终止信号各占1 个单位时间,传输1 字节数据共用4 个单位时间。

3.3 A/D转换信号解调程序设计

A/D 转换信号解调程序主要由A/D 转换程序和信号解调程序组成。A/D 转换程序将前端信号通过ADC 进行采集,生成离散序列。信号解调程序将采集到的时间序列进行处理,还原出数据。

A/D 转换程序由定时器进行驱动,将ADC 设置为定时器触发,将定时器周期设置为0.5 μs,实现ADC固定采样频率采样,待转换完成后,会产生事件触发DMA 传输,读出采集到的电压序列到数据缓冲区中。

解调程序将采集到的电压序列分块后,使用ST 官方DSP 库进行快速傅里叶变换(FFT),得到当前数据块中的频谱序列,检测到起始信号后,按照时序将缓冲区的时间序列分块进行FFT 运算。对得到的频谱序列进行检测,得到双频信号的频率,按照图6 转换成数据,检测到结束信号后,将数据送入串口发送数据缓冲区中,上位机通信程序启动串口将数据传输到上位机,实现数据的解调和上传。

4 激光通信系统测试

为测试激光通信系统的有效性和实用性,在实验室环境下搭建激光通信系统实验装置并进行通信测试。在距离激光通信系统25 m 处使用平面镜将激光束反射回系统的接收端,对激光通信系统进行环回通信测试。搭建的激光通信系统实验平台如图7 所示。

 图7 激光通信系统实验装置

在调整好激光二极管静态电流和前置放大器增益后,进行数据传输测试,发送数据内容为7 个字符,共56 个bit,发送间隔为30 ms,波特率为1 866 bit/s。数据传输结果如图8 所示。

经测试,该系统通信距离可达50 m,通信波特率可达1 800 bit/s 以上,具有较强的通信稳定性。

 图8 环回通信实验结果

5 结束语

为解决现有的民用光通信系统制造成本高,通信距离短,通信速率慢的问题,设计了基于STM32 的激光通信系统,该激光通信系统采用双音多频调制方式,通过上位机串口控制实现数据的收发。实验结果表明,该系统具有较长的通信距离,较高的通信速率,为低成本民用激光通信提供了解决方案,在民用激光通信领域的应用前景广阔。

参考文献:

[1] 刘润芃,佟首峰,张鹏,等.水下可见光通信技术研究[J/OL].光通信研究2023:1-6.

[2] 胡旭光,陶坎,邓彬伟.模拟数字混合红外信道通信装置的设计[J].电子产品世界,2015,22(12):27-29+36.

[3] 王琛,马拥华,王茗,等.一种近场无线激光通信系统[J].光通信技术,2022,46(4):51-55.

[4] 林晨岚,陈香宇,宋欣然,等.基于脉冲拨号的抗抖动激光通信系统设计[J].吉林大学学报(信息科学版),2022,40(1):125-131.

[5] 王勉,郭永刚,赵高院.基于STM32实现双音多频信号(DTMF)的检测与识别[J].电子测试,2012,257(9):80-85.

[6] 范迪,王侃侃,高洁,等.数字信号处理中DTMF信号检测案例设计及教学应用[J].中国多媒体与网络教学学报(上旬刊),2022(5):61-64.

[7] 王俊,谭荣华.基于嵌入式技术的超低功耗红外光通信系统设计[J].激光杂志,2020,41(3):177-181.

(本文来源于《电子产品世界》杂志2023年7月期)

标签:激光,系统,通信,STM32,信号,串口,调制
From: https://www.cnblogs.com/firespeed/p/18522435

相关文章

  • STM32 第21章 DMA--直接存储器访问
    时间:2024.10.31-11.2参考资料:《零死角玩转STM32》“DMA--直接存储器访问”章节编程部分的代码基于12-GPIO输出-使用固件库点亮LED灯一、学习内容1、DMA功能框图和DMA初始化结构体1.1DMA功能框图1.1.1DMA简介DMA:DataMemoryAccess,直接存储器访问。和GPIO、串口等一......
  • stm32读取麦克风inmp441数据并实时播放
    概述最近在做一个功能类似于对讲机通话的功能,本来在网上感觉很容易找到同样的案例复刻,结果发现大多数都是用esp32,或者说电脑作为上位机传输wav音频解码播放的效果,也有很相仿的,但是都测试结果不尽人意,经过不断摸索下面是我给出的方案。但是本篇文章只限于单片机mcu芯片通......
  • 基于STM32F407系列外部中断学习
    STM32外部中断学习1)外部中断概述1.外部中断描述在日常生活中,例如早上在睡觉被闹钟吵醒,你去关闭闹钟就属于中断事件。在主函数里的代码是由CPU运行的,CPU在执行过程中突然发生了异常事件(中断),CPU必须暂停当前的工作(设下断点),然后跑去处理这个异常事件的函数(中断服务函数),处理......
  • STM32(4)输出比较和输入捕获
    OC输出比较OC(OutputCompare)输出比较输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形每个高级定时器和通用定时器都拥有4个输出比较通道高级定时器的前3个通道额外拥有死区生成和互补输出的功能 输......
  • stm32疑难杂症之电压不够程序跑飞
    在开发阶段,如果出现程序不断重启的情况。首先先检查是不是代码问题。1.数组越界。定义的数组只有50个单元,但是程序运行的过程中,却给他赋给50+个单元。2.中断耗时太长,刚出中断又进去了。这时的现象是程序一直在中断中执行,回不到主函数。一般出现在中断嵌套中。3.中断或主函......
  • 基于stm32f403zet6游戏摇杆手柄
     一、硬件准备    (1)stm32f403zet6   (2)游戏摇杆扩展板                (3)oled模块        (4)hc-05蓝牙模块(5)电动小马达(6)其它模块温湿度模块,led灯和其它按键都集成在stm32f403zet6上了。如果有需要,也可以单独购买。二、设......
  • 3.多路复用网络通信
    1.NIO提供的多路复用的通信1.1传统的socket通信模型传统的socket通信的模型是服务器启用socket服务,然后通过accept()方法阻塞等待客户端的连接,对每一个客户端创建一个线程进行io的处理缺点:随着客户端数量的增加,如果要保持持续通信,那么就不能摧毁这些线程,而是需要一直保留(但......
  • STM32开发 —— 新工程创建思路终于清晰了
    目录工程创建三步法一、工程文件夹创建二、管理工程项三、配置工程参数工程创建三步法从ST官网下载好stm32标准库或HAL库,HAL库目录如下。在Keil开发环境中创建STM32工程,分三大步即可完成工程的创建:一步:在本地磁盘创建工程文件夹,从下载好的库文件中拷贝相关文件......
  • 《Linux系统编程篇》消息队列(Linux 进程间通信(IPC))——基础篇
    文章目录引言消息队列(MessageQueue)消息队列的特点消息队列的特性消息队列的操作ipcs-q拓展ipcrm拓展注意事项结论“山重水复疑无路,柳暗花明又一村。”——陆游引言《Linux系统编程篇》——基础篇首页传送门想象一下,你正在开发一个多任务处理的应用程序,其中......
  • 系统网络通信异常Read timed out排查及解决过程
    用户反馈应用连接数据库经常出现网络通信异常相关sql语句在数据库在数据库客户端能正常执行,执行时间不到1s检查数据库参数,运行日志,网络方面,驱动版本都正常查看应用报错日志,里面有readtimdout报错,一般是连接超时导致的 检查durid连接池配置如下 Druid连接池conne......