带稳定照明功能的rs232与vlc通信协议转换装置的制造方法

文档序号:9330578阅读:228来源:国知局
带稳定照明功能的rs232与vlc通信协议转换装置的制造方法
【技术领域】
[0001]本发明属于光通信技术领域,特别涉及一种带稳定照明功能的RS232与VLC通信协议转换装置。
【背景技术】
[0002]RS232 是美国电子工业协会 EIA (Electronic Industry Associat1n)制定的一种串行物理接口标准,是个人计算机上的一种常用的通讯接口,很多微控制器、无线通信模块、嵌入式设备都配制了 RS232接口,其应用场合比大家熟悉的USB接口更多。RS232作为一种典型的有线通信方式,一个串口数据包括:6位的二进制数据、I位或者O位校验位、I位或者2位的停止位。
[0003]可见光通信技术VLC(Visible Light Communit1n),是利用高速明暗变化的可见光信号来传输信息的,利用这种技术做成的系统能够覆盖室内灯光达到的范围,电脑不需要电线连接,因而具有广泛的开发前景。
[0004]为了实现通信设备在这两个通信方式下的转换,让VLC技术跟现有设备的兼容,以VLC技术的优势弥补现在技术的不足,更好的推广VLC这一绿色环保的通信技术,提出了本发明的协议转换装置。

【发明内容】

[0005]本发明的目的是提供一种带稳定照明功能的RS232与VLC通信协议转换装置。
[0006]本发明是这样实现的:一种带稳定照明功能的RS232与VLC通信协议转换装置,包括:发射模块和接收模块,发射模块在发送端,接收模块在接收端;其中发射模块由LED、驱动模块、编码器、发射控制模块和串口下行模块组成;接收模块由光电接收器、判决模块、解码器、接收控制模块和串口上行模块组成;驱动模块分别与LED和编码器电连接,发射控制模块分别与编码器和串口下行模块电连接;判决模块分别与光电接收器和解码器电连接,接收控制模块分别与解码器和串口上行模块电连接;串口下行模块用于从发送上位机接收串口数据,并输出到发射控制模块;发射控制模块用于将接收到的串口数据,转换成光数据帧,并输出到编码器;编码器用于将发射控制模块转换输出的光数据帧调制编码成适合可见光信号发送的形式,并输出信号到驱动模块;驱动模块用于接收编码器的信号输出,并驱动LED发送可见光信号;LED用于发送可见光信号;光电接收器用于接收LED发出的可见光信号,并转换成模拟电信号输出给判决模块;判决模块用于将光电接收器输出的电信号,转换成数字信号,并输出到解码器;解码器用于对判决模块的输出解调解码,还原成光数据帧,再输出到接收控制模块;接收控制模块用于将解码器的输出,转换成串口数据,并输出到串口上行模块;串口上行模块用于接收来自接收控制模块的串口数据,并上传到接收上位机。
[0007]上述通信协议转换装置的通信协议转换分为两个部分:1、在发送端,发射模块从发送上位机接收串口数据并转换为可见光信号发送出去;2、在接收端,接收模块接收可见光信号并转换为串口数据发送到接收上位机。
[0008]上述两个部分的协议转换过程,通过数据缓冲机制解决数据丢失的问题,数据缓冲机制,用于:1、在发送端,保证发送可见光信号的速度与发送上位机的串口向协议转换模块发送串口数据的速度匹配,避免发送端的上位机发送的串口数据量大,发射模块不能及时处理串口数据并转发出去而导致数据丢失;2、在接收端,保证协议转换模块接收并处理可见光信号的速度与向接收上位机的串口发送串口数据的速度匹配,避免接收模块不能及时处理光数据帧以及串口数据的处理和上传,而导致接收数据丢失。
[0009]上述数据缓冲机制,设置两级缓冲区:一级缓冲区、二级缓冲区;两级缓冲区利用数组来实现缓冲;发送端的数据缓冲机制功能在发射控制模块内完成;接收端的数据缓冲机制功能在接收控制模块内完成。
[0010]发送端的数据缓冲机制如下:
在发送端,一级缓冲区为下行缓冲区,用于暂存从发送上位机接收到的串口数据,用于匹配发送上位机设置的串口波特率;二级缓冲区为待发送区,用于暂存经过预处理的串口数据;二级缓冲区可存放的串口数据的数量小于一级缓冲区可存放的串口数据的数量。
[0011]在发送端,发射控制模块首先将从发送上位机接收到的串口数据暂存在一级缓冲区,与此同时,从一级缓冲区中逐个提取串口数据,将串口数据进行光数据帧打包前的预处理,丢弃停止位,再放入二级缓冲区;当二级缓冲区放入第一个数据时,开始缓冲延时计时,当二级缓冲区装满或者延时计时超时,就将二级缓冲区内经过预处理的串口数据一次性全部提取出来,打包成光数据帧,清空二级缓冲区,延时计时归零,等待下一个数据的存入后再进入下一个周期的缓冲。
[0012]接收端的数据缓冲机制如下:
在接收端,二级缓冲区为待处理区,用于暂存从解码器输出的解码后的光数据帧;一级缓冲区为上行缓冲区,用于暂存即将上传到接收上位机的串口数据,用于匹配接收上位机设置的串口波特率;当二级缓冲区有第一个数据时,开始缓冲延时计时,当二级缓冲区装满或者延时计时超时,就将二级缓冲区内收到的光数据帧一次性全部提取出来,将光数据帧解包还原成串口数据,再暂存在一级缓冲区,并清空二级缓冲区,延时计时归零,等待下一个数据的存入后再进入下一个周期的缓冲;一级缓冲区根据接收上位机设置的串口波特率,将一级缓冲区内的串口数据上传到接收上位机。
[0013]发送端的发送流程如下:
Tl、上电后,发射控制模块初始化;
T2、初始化完成后,开始扫描发送上位机的串口,检测是否有串口数据输入;
T3、当有串口数据输入时,进入数据缓冲机制的处理,并打包成光数据帧输出给编码器;
T4、编码器将光数据帧调制编码成适合可见光信号发送的形式,并输出到驱动模块。
[0014]T5、光数据帧经过编码器处理后,输出到驱动模块,用以驱动LED发送可见光信号。
[0015]接收端的接收流程如下:
R1、上电后,接收控制模块初始化;
R2、扫描检测判决模块的输出,当检测到判决模块的输出为有效的可见光信号的判决输出时,由解码器对数据处理成光数据帧,并进入数据缓冲机制;
R3、通过数据缓冲机制,将光数据帧进行解包,还原成串口数据,并输出到串口上行模块。
[0016]光数据帧由多个串口数据打包而成,光数据帧包括:前导码、数量字段、长度字段、数据字段、校验码、结束码。
[0017]前导码,用于表示一个光数据帧的开始以及可见光信号的发送速度,采用一组3-5个固定频率、固定振幅的正弦波或方波。发射控制模块对收到的串口数据进行预处理的方法为:将各串口数据帧的停止位丢弃,仅保留串口数据的数据部分以及校验位。
[0018]数量字段,用于表示光数据帧中,打包的串口数据的数量。
[0019]长度字段,用于表示光数据帧中,每一个经过预处理的串口数据的长度。
[0020]数据字段,用于存放经过预处理的串口数据。在发送端,将串口数据的数据部分和校验位提取出来,丢弃停止位,然后按发送上位机输出的先后顺序,将处理后的串口数据放入数据字段。在接收端,将发送端发送的可见光信号判决接收并解码
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1