基于FPGA 的紫外光字符通信系统设计
2021-03-06杨永坤白晓晨
杨永坤 白晓晨
(西安工程大学 电子信息学院,陕西 西安710048)
紫外光(UV)通信是一种新兴的通信方式,因其独特的通信优势,受到越来越多学者的关注[1]。波长在200-280 nm 范围内的紫外光是UV 通信所采用的波段,这是因为该波段的紫外光被大气平流层中的臭氧所吸收,导致到达地球表面的太阳辐射几乎可以忽略,因此该波段被称作“日盲区”,也为UV 通信创造了接近零背景辐射的条件[2]。UV通信的另一大特点是大气散射性强。大气中存在大量的气体分子、粉尘、气溶胶等微粒,并且由于UV 波长短,UV 光子在传输的过程中会与这些微粒不断地发生碰撞而产生散射作用,这种散射特性使得信号能够绕障传播,实现非直视的通信[3-4]。
在通信系统中系统的信源消息是一个很重要的条件,常见的信源消息包括文字、语音、图片、视频。因此为了实现人机交互式的通信方式,本文设计了以文字信息为发射信源的紫外光通信系统。以FPGA 为核心,系统由发送端和接收端构成,将文字信息通过ASCII 编码协议驱动紫外LED 灯发送到空间大气中,通过接收端得到发送的ASCII 码值回传给电脑。在上位机上显示发送消息。
1 紫外光LED 通信系统设计
1.1 系统框图
基于紫外光LED 通信系统由发送端和接收端两部分组成,发端主要完成光信号产生,收端主要完成信号转换为电信号的接收[5]。紫外光通信系统框图如图1 所示。
图1 紫外光通信系统框图
图2 UART 传输时序图
如图1 所示电脑输入的携带字符信息的电信号经过USB接口数据线输入FPGA,通过FPGA 程序接收处理和光源驱动电路,之后电信号点亮紫外LED 灯,通过LED 灯发送出去。接收端通过滤光片和光电探测器将光信号转换成电信号,经过放大电路把信号给了FPGA,FPGA 程序接收信号解调之后在回传给上位机。
1.2 FPGA 程序设计
在FPGA 开发板设计中,UART 用来与PC 进行通信,包括数据通信,命令和控制信息的传输。UART 首先将接收到的并行数据转换成串行数据来传输。消息帧从一个低位起始位开始,后面是7 个或8 个数据位,一个可用的奇偶位和一个或几个高位停止位。UART 传输时序如图2 所示。
为了满足UART 协议本文基于Vivado 2018.3 使用VerilogHDL 设计了串口回传的程序代码,根据图2 可以看出,串口属于异步的传输时序,因此发端FPGA 和收端FPGA 采用了回环的串口通信方式。
图3 RTL 视图
程序设计包括2 部分构成:数据发送模块,数据接收模块,通过顶层文件将上述的2 个模块进行实例化,以参数化的方式来设置系统时钟和波特率方便之后对于程序的移植。发端FPGA 程序将UART_TX 端口设置在了FPGA 的通用I/O 口上,使得电脑发送的串口数据可以通过I/O 口输出用来点亮紫外LED 灯。接收端FPGA 程序将UART_RX 端口设置在了FPGA 的通用I/O 口上,将通过光电倍增管的接收数据输入FPGA 端口,程序就可以再次解调串口数据最终回传给电脑。经过Vivado 2018.3 分析综合之后的RTL 视图如图3所示。
1.3 硬件设计
对发送端而言要满足紫外LED 的额定工作条件,本文设计如图4 所示的驱动电路[6]。OPA2613 具有输出电流大,响应速度快,共模抑制比高的特性,该电路的工作原理就是一个设定阈值的比较电路。当信号的电压大于设定值是LED 不亮,当信号的电压小于设定的阈值是LED 亮,从而实现以OOK 的调制方式将信号发送出去。
对接收端而言,光电倍增管接收到的光信号转换为一个电流信号,需要外界电阻将电流信号转换为电压信号并满足电平标准,所以接收电路如图5 所示,其中图5 所示的R4 变阻器用调节信号的电压幅值。使得满足FPGA 的接口电平标准LVTTL3.3。
2 实验结果分析
2.1 实验硬件
通过对系统设备关键电路的设计,最终的系统发送端和接收端实物如图6 所示。
图4 运放驱动电路
图5 信号接收电路
2.2 发送端和接收端调试
在连接好发送端和接收端设备之后,通过USB 串口线连接电脑和开发板,在串口助手中可以输入任意的汉字、字母或者数字,发送的文本信息通过USB 线,驱动电路板来点亮紫外LED 灯。在接收端进行相同的连接并设置电脑串口助手。对于本次实验串口助手设置波特率为9600bps,没有校验位,停止位的时间为1 个比特周期。本文为了分析有关串口通信的协议,因此实验结果只选取了示波器屏幕可以截取的部分,发送了Hello 的字母消息。其中串口软件图如图7 所示,示波器对于接收端的波形图如图8 所示。
图6 紫外通信实物图
图7 软件串口图
图8 Hello 字符对应的波形图
图8 中对应的信息为00001 0010 1 0 1010 0110 1 0 0011 0110 1 0 0011 0110 1 0 1111 0110 1 其中加粗部分对应的分别为H、e、l、l、o 的ASCII 码。
3 结论
本文详细介绍了基于FPGA 的紫外光通信系统设计,给出了整体的实验方案,驱动电路和接收电路,使用FPGA 完成了相关的Verilog 串口代码设计,实际的测试结果良好。通过示波器观测UART 协议表明信号质量符合解调要求,最终可以无误码的观测到上位机信息,同时在非直视的条件下也可以做到字符通信,提高了实际的紫外光通信系统的实用性。下一步可以继续研究其他信源信息,如音频、图像等,完善紫外光通信装置。