发明名称 一种照度均衡的RS232与VLC通信协议转换方法
摘要 本发明公开了一种照度均衡的RS232与VLC通信协议转换方法。建立一种RS232与VLC通信协议转换装置,包括发射模块和接收模块;发射模块由LED、驱动模块、编码器、发射控制模块、串口下行模块组成;接收模块由光电接收器、判决模块、解码器、接收控制模块、串口上行模块组成;协议转换实现了发射模块从上位机接收串口数据并转换为可见光信号发送出去;及接收模块接收可见光信号并转换为串口数据发送到上位机;协议转换过程通过数据缓冲机制设置两级缓冲区来解决数据丢失的问题;用光数据帧打包发送串口数据;设置了均衡照明功能,让LED在进行通信时能够兼顾稳定的照明。本发明提供配备RS232串口的设备接入VLC网络的“即插即用”,能更好的助推VLC的应用推广。
申请公布号 CN105245273A 申请公布日期 2016.01.13
申请号 CN201510534005.7 申请日期 2015.08.27
申请人 桂林理工大学 发明人 邓健志;邓卓洪
分类号 H04B10/114(2013.01)I;H04B10/116(2013.01)I;H04L29/06(2006.01)I;H04L29/08(2006.01)I 主分类号 H04B10/114(2013.01)I
代理机构 代理人
主权项 一种照度均衡的RS232与VLC通信协议转换方法,其特征在于具体步骤为:(1)建立一种RS232与VLC通信协议转换装置,包括发射模块和接收模块,发射模块在发送端,接收模块在接收端;其中发射模块由LED、驱动模块、编码器、发射控制模块和串口下行模块组成;接收模块由光电接收器、判决模块、解码器、接收控制模块和串口上行模块组成;驱动模块分别与LED和编码器电连接,发射控制模块分别与编码器和串口下行模块电连接;判决模块分别与光电接收器和解码器电连接,接收控制模块分别与解码器和串口上行模块电连接;串口下行模块用于从发送上位机接收串口数据,并输出到发射控制模块;发射控制模块用于将接收到的串口数据,转换成光数据帧,并输出到编码器;编码器用于将发射控制模块转换输出的光数据帧调制编码成适合可见光信号发送的形式,并输出信号到驱动模块;驱动模块用于接收编码器的信号输出,并驱动LED发送可见光信号;LED用于发送可见光信号;光电接收器用于接收LED发出的可见光信号,并转换成模拟电信号输出给判决模块;判决模块用于将光电接收器输出的电信号,转换成数字信号,并输出到解码器;解码器用于对判决模块的输出解调解码,还原成光数据帧,再输出到接收控制模块;接收控制模块用于将解码器的输出,转换成串口数据,并输出到串口上行模块;串口上行模块用于接收来自接收控制模块的串口数据,并上传到接收上位机;(2)采用步骤(1)建立的RS232与VLC通信协议转换装置进行RS232与VLC通信协议转换,具体如下:协议转换分为两个部分:1、在发送端,发射模块从发送上位机接收串口数据并转换为可见光信号发送出去;2、在接收端,接收模块接收可见光信号并转换为串口数据发送到接收上位机;这两个部分的协议转换过程需要通过数据缓冲机制解决数据丢失的问题;数据缓冲机制,用于:1、在发送端,保证发送可见光信号的速度与发送上位机的串口向协议转换模块发送串口数据的速度匹配,避免发送端的上位机发送的串口数据量大,发射模块不能及时处理串口数据并转发出去而导致数据丢失;2、在接收端,保证协议转换模块接收并处理可见光信号的速度与向接收上位机的串口发送串口数据的速度匹配,避免接收模块因为不能及时处理光数据帧,以及不能及时处理和上传串口数据,而导致接收数据丢失;数据缓冲机制,设置两级缓冲区:一级缓冲区、二级缓冲区;两级缓冲区利用数组来实现缓冲;发送端的数据缓冲机制功能在发射控制模块内完成;接收端的数据缓冲机制功能在接收控制模块内完成;发送端的数据缓冲机制如下:在发送端,一级缓冲区为下行缓冲区,用于暂存从发送上位机接收到的串口数据,用于匹配发送上位机设置的串口波特率;二级缓冲区为待发送区,用于暂存经过预处理的串口数据;二级缓冲区可存放的串口数据的数量小于一级缓冲区可存放的串口数据的数量;在发送端,发射控制模块首先将从发送上位机接收到的串口数据暂存在一级缓冲区,与此同时,从一级缓冲区中逐个提取串口数据,将串口数据进行光数据帧打包前的预处理,丢弃停止位,再放入二级缓冲区;当二级缓冲区放入第一个数据时,开始缓冲延时计时,当二级缓冲区装满或者延时计时超时,就将二级缓冲区内经过预处理的串口数据一次性全部提取出来,打包成光数据帧,清空二级缓冲区,延时计时归零,等待下一个数据的存入后再进入下一个周期的缓冲;接收端的数据缓冲机制如下:在接收端,二级缓冲区为待处理区,用于暂存从解码器输出的解码后的光数据帧;一级缓冲区为上行缓冲区,用于暂存即将上传到接收上位机的串口数据,用于匹配接收上位机设置的串口波特率;当二级缓冲区有第一个数据时,开始缓冲延时计时,当二级缓冲区装满或者延时计时超时,就将二级缓冲区内收到的光数据帧一次性全部提取出来,将光数据帧解包还原成串口数据,再将还原后的串口数据暂存在一级缓冲区,并清空二级缓冲区,延时计时归零,等待下一个数据的存入后再进入下一个周期的缓冲;一级缓冲区根据接收上位机设置的串口波特率,将一级缓冲区内的串口数据上传到接收上位机; 发送端的发送流程如下:T1、上电后,发射控制模块初始化;T2、初始化完成后,开始扫描发送上位机的串口,检测是否有串口数据输入;T3、当有串口数据输入时,进入数据缓冲机制的处理,并打包成光数据帧输出给编码器;T4、编码器将光数据帧调制编码成适合可见光信号发送的形式,并输出到驱动模块; T5、光数据帧经过编码器处理后,输出到驱动模块,用以驱动LED发送可见光信号;接收端的接收流程如下:   R1、上电后,接收控制模块初始化;R2、扫描检测判决模块的输出,当检测到判决模块的输出为有效的可见光信号的判决输出时,由解码器对数据处理成光数据帧,并进入数据缓冲机制;R3、通过数据缓冲机制,将光数据帧进行解包,还原成串口数据,并输出到串口上行模块;光数据帧由多个串口数据打包而成,光数据帧包括:前导码、数量字段、长度字段、数据字段、校验码、结束码;前导码,用于表示一个光数据帧的开始以及可见光信号的发送速度,采用一组3‑5个固定频率、固定振幅的正弦波或方波;发射控制模块对收到的串口数据进行预处理的方法为:将各串口数据帧的停止位丢弃,仅保留串口数据的数据部分以及校验位;数量字段,用于表示光数据帧中,打包的串口数据的数量;长度字段,用于表示光数据帧中,每一个经过预处理的串口数据的长度;数据字段,用于存放经过预处理的串口数据;在发送端,将串口数据的数据部分和校验位提取出来,丢弃停止位,然后按发送上位机输出的先后顺序,将处理后的串口数据放入数据字段;在接收端,将发送端发送的可见光信号判决接收并解码解调得到的光数据帧,按照发送上位机输出的先后顺序,将光数据帧解包,并逐个将串口数据的数据部分和校验位提取出来,并补充停止位,还原成完整的串口数据;校验码,用于提供光数据帧的奇偶校验码;结束码,用于表示一个光数据帧的结束,采用一组3‑5个固定频率、固定振幅的正弦波或者方波;装置有均衡照明功能,用于提供亮度稳定的照明,照度均衡的实现方法为:在无数据发送时,LED以固定频率、固定振幅,持续发送正弦波或方波,该正弦波或方波与前导码频率和振幅都相同且相位相反的正弦波或方波,用于保证有无串口数据发送时,LED的照度一致。
地址 541004 广西壮族自治区桂林市建干路12号