可见光导览系统终端设备的设计与仿真研究
2017-06-05于正永钱建波董进徐彤
于正永 钱建波 董进 徐彤
摘要:可见光导览系统终端设备一方面用于处理光接收机解析的VLID广播帧,广播帧经过采样、解码、CRC校验后通过UART发送操作指令给PAD自动播放音视频文件。另一方面用于处理PAD经UART向FGPA发送的管理类型指令,FPGA接收并生成相应的管理类型帧,经曼彻斯特编码、CRC运算,按照特定频率发送给可见光发射机。最后采用FPGA开发环境搭建了仿真平台,经验证,终端设备所采用的软件算法具有错误检测、灾难恢复、屏蔽重复VLID广播帧的功能,其表现出的稳定性和强壮性良好。
关键词:可见光;导览系统;FPGA;终端设备;软件设计
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)07-0201-03
伴随着半导体工艺的改进、成本的降低以及LED(LightEmitting Diode,LED)照明具有节能效果好、使用寿命长、可控性能高等显著优点,符合国家能源、环保政策的半导体照明技术正日益得到广泛的应用。另外,半导体LED器件具有高速点灭的发光响应特性,使其还可在无线光通信等领域具有巨大的应用前景。
在当今这个信息时代,人们对海量信息的处理能力是永远没有止境的。而随着物联网技术的日益受到重视,对信息的存储、处理、传送、保密等方面的要求,特别是信息的无线通信方面的要求,必将越来越高。因此,利用半导体照明器件,将信号调制到LED可见光上进行传输,使可见光通信与LED照明相结合,构建LED照明和通信两用基站灯,可为光通信提供一种全新的宽带接入方式,可为无线宽带接入的快速部署提供一种灵活的解决方案。本文提出了一种可见光导览系统终端设备的软件设计方法,并运用FPGA开发平台进行仿真实现,所得实验结果符合系统指标要求。
1总体设计
1.1设计思路
可见光导览系统终端设备程序設计主要包括数据接收端、主控程序、数据发送端三个部分。该软件总体设计思路如图1所示。
具体功能介绍如下:
(1)VLC接收模块。按照总体设计,VLC接收模块主要功能为采样数据、曼彻斯特解码。
(2)VLC帧处理模块。该模块主要功能为解析VLC帧格式,CRC校验等。
(3)VLC发送模块。该模块主要功能为根据系统配置寄存器产生VLID广播帧。
(4)UART收发、控制模块。发送、接收串口数据已经相关时钟、控制程序。
(5)复位控制模块。系统复位控制模块,可以响应复位帧进行动态复位操作。
(6)主控程序。管理系统时钟信号,协调各模块之间信号传输。
1.2可见光导览系统指令集设计
可见光导览系统的帧通信格式(即称;指令集)如图2所示。该指令集约定了可见光导览系统中设备间通信数据的帧格式基本要求,具有VLID广播、亮度管理、VLID无线管理、密钥管理以及强度管理等功能。在可见光导览系统中,所有设备通信时发送的帧均由类型位、指令位、校验位三个字段组成,其中类型位由固定的4bit组成,定义了帧的数据类型,指令位根据不同类型的帧具有不同的长度和意义,校验位为8bit的CRC校验,只有通过CRC校验才能正确接收该帧信息,否则视为错误数据丢弃。
1.3自动导览指令集设计
其中,Normal vie id标识了PAD接收到的UART格式,offset字段为8bits,发送顺序即为图3所示的顺序。例如收到外部器件请求播放id=1的视频,则显示在串口助手的数据为:0x0,0x0,0x0,0x0,0x0,0x1。
前两个0x0,0x0为offset字段,后面0x0,0x0,0x0,0x1合一起即为16h01;作为扩展,运用offset字段最多可以支持256×216个VLID。目前本系统仅支持offset=0的指令格式;管理类型的指令是PAD发给外面器件的格式,需要在app中的管理员模式中支持三种功能:
(1)是生成一个新的vlc id,在app中输入要修改的id并封装成上图中vlc id management的格式发出去即可。例如,输入十进制15,确定后通过UART发送0x2,0x0,0x0,0x0,0对。第一个Ox2为control字段,后面的0x0,0x0,0x0,0xf表示16'hf。
(2)是密钥管理,在密钥管理界面中输入一个新的密钥,确认后按照key management的格式发送出去即可。
(3)是照明管理。在照明管理界面中输入一个零到十的数据,按照brightness managment的格式发出去即可。例如,将照明设置一半,则发送0x4 0x5,其中第一个数据0x4位控制字段,0x5表示照明数值。
(4)extend operation为扩展字段,目前尚未支持。
1.4系统强壮性设计
自由空间中充斥大量的干扰源可能错误的触发系统采样、解析等操作。系统需要能够检测该类型的错误数据帧,并经一段短暂的时间后自动恢复到正常状态。可见光导览系统中的VLID由可见光发射机周期性广播。基于此VLID终端设备在产生自动导览指令之后能够屏蔽具有相同VLID的广播帧,如图4所示。具体来说,在终端设备中设置老化计数器,当收到VLID广播帧后判断该计数器是否为0,当前vlid是否为记录的vlid。
如果计数器为0,则发送自动导览指令;如果当前vlid不等于记录的vlid,则发送自动导览指令;如果上述都不满足,则不发送自动导览指令,系统将初始化该计数器为1,并根据系统时钟自加1。
2仿真结果与分析
2.1VLID广播帧
本系统仿真设置的基本参数如表1所示。
在表1基本参数配置下,VLID广播帧数值(vlidFramelByte)为0x110719,如图5(a)所示,其中类型位等于0xl,VLID长度为0xl,VLID值为0x07,CRC8校验位为0x19,符合设计期望。根据VLC强度配置,在数据帧(dataOut)中表示高电平的值为10101111(二进制)如图5(b)所示,符合设计期望。
2.2VLLD管理帧
(1)VLLD管理类型帧
仿真期望通过VLID管理类型帧将RX端的VLID值设定为0x07。
从图6可以看出,在VLC接收模块收到经曼彻斯特编码后的串行数据(pinDatalnput),经采样、解码后的得到帧数据(dataln)为0x2FFFF10780,在完整的接受数据后通过CRC校验,最终根据帧的类型产生对应的写操作(vlidWrEn)并将VLID修改为07,成功的实现VLID无线管理功能。
(2)VLC强度管理类型
仿真期望通过VLC强度管理类型帧对重置VLID广播设备上的VLC信号强度配置。
从图7可以看出,在RX端收到类型位等于5的帧并成功通过校验,最终按照设计期望将内部的VLC强度寄存器(signPower)改写为5,符合设计期望。
3结束语
本文给出了可见光导览系统终端设备的软件设计思路,并详细介绍可见光导览系统指令集设计、自动导览指令集设计以及系统强壮性设计,最后运用FPGA开发环境搭建了仿真系统,通过仿真实验验证,终端设备的算法具有错误检测、灾难恢复、屏蔽重复VLID广播帧的功能,具有较高的稳定性和强壮性,所得测试结果完全符合设计期望,极大提升了可见光导览系统的可维护性和可扩展性。