当前位置:无忧公文网 >范文大全 > 征文 > 一种改善室内可见光通信频闪效应的设计与实现

一种改善室内可见光通信频闪效应的设计与实现

时间:2022-05-11 15:55:03 浏览次数:

评价标准

采用IEEE推荐的闪烁评价方法[2]。IEEE Std 1789-2015[3]中将频闪风险分为几个等级,如图2所示,左下角灰度区域覆盖的是无危害的等级,中间区域是低风险,而超过中间区域的白色区域是不能被人眼所接受的。

根据IEEE Std 1789-2015标准,用闪烁频率和波动深度两个指标来评价照明设备的频闪效应。在本课题中采用OOK调制方式,以LED灯的亮灭变化来传输信息,例如灯亮表示1,灯灭表示0,通过快速的亮灭来传输一长串的0和1的序列。在通信过程中,驱动电路尽可能地让LED高电平时最亮,低电平时最暗,最好处于熄灭状态,而且亮灭切换之间的响应要尽可能变得迅速,以更准确地传输信息。所以在系统硬件理想的情况下,波动深度为1,没有评价的意义,故只需观察它的闪烁频率指标即可。

在室内无线光通信中,当发送数据近似连“0”或连“1”出现,就会使发送灯的闪烁频率降低,导致出现严重的频闪效应。为了改善室内可见光通信过程中频闪效应的发生,采用了基于8B/10B的信道简单编码方案,用以解决数据中01电平分布不均导致的频闪效应。

2  8B/10B编码降低频闪效应的设计与实现

2.1  8B/10B编码原理

8B/10B编码是由IBM公司在1983年所提出的一种编码方式。该编码根据对应的映射码表和极性取值规则把8 bit码字编码成10 bit来传输,使编码后的二进制序列中0、1的个数基本均衡。创造这种编码的目的在于解决在高速串行数据传输时,若出现多个连0或连1,接收端就会出现时钟漂移或同步丢失的问题。而且8B/10B编码可以根据特定的编码规则,在接收端检测出传输过程中出错的信息[4]。

在編码过程中,8 bit原始码字被分成两部分:低位5 bit记为EDCBA(设其十进制数值为X),高位3 bit记为HGF(设其十进制数值为Y),则该8 bit数据码记为D.x.y。与数据码的记法类似,控制码记为K.x.y[5]。

如图3所示,在8B/10B编码时,低5位的EDCBA经过5B/6B编码成为6位的abcdei,高3位的HGF经过3B/4B编码成为4位的fghj,最后再将两部分组合起来形成一个10 bit码abcdeifghj。10 bit码在发送时,按照先低位再高位的顺序。

在8B/10B编码中使用 “不一致性(Disparity)”来描述编码中“1”的位数和“0”的位数的差值。如图4所示,在所有的6B或4B编码中,要么0比1多2个,要么0、1个数相等,要么1比0多2个。对应的“不一致性”就只有D=+2、D=-2、D=0这三种状况。由于比特流不停地从发送端向接收端传输,前面所有已发送数据的不一致性累积产生的状态被称为“运行不一致性(Runing Disparity,RD)”。而RD仅会出现+1与-1两种状态,分别代表位“1”比位“0”多或位“0”比位“1”多,其初始值是-1。当已编码序列整体为RD=-1时,表示之前传输的数据中“0”的个数多于“1”的个数,若下一个要选取的6B或4B编码的“不一致性”为0,则编码后序列整体的“运行不一致性”依然为RD=-1;若下一个要选取的6B或4B编码的“不一致性”为+2,则编码后序列整体的“运行不一致性”就变为RD=+1。反之亦然。当目前已编码序列整体的RD为RD+时,下一位就选择RD-的编码,序列整体的RD就变为RD+,以平衡整个序列的“运行不一致性”(即0、1的平衡)。

通过8B/10B编码后,整个编码序列最多只会出现连续的5个“1”或“0”,绝对不会超过5 bit。显然,无论信源数据分布如何,理论上8B/10B编码都可以起到均匀序列中0和1分布的作用,从而实现频闪效应的降低。

2.2  8B/10B编码的FPGA实现

为了验证室内可见光通信中8B/10B编码对改善频闪效应的可靠性与合理性,对编码电路在Vivado 2017.4中使用Verilog HDL语言[6]进行编程仿真,并且在A7系列FPGA(型号:XC7A35TFTG256)开发板上测试,通过开发板的IO口串行输出编码后的数据。

图5所示为FPGA实现8B/10B编码并串行输出数据的系统逻辑框图。在此系统中,8 bit并行数据先进行编码,并行输出10 bit编码后数据,通过并串转换模块最终在IO口输出,用以驱动LED灯发送。

FPGA设计后,波特率设置为1 Mbps,仿真结果如图6所示。其中Data_8bit是8 bit原始数据,Data_10bit是经过8B/10B编码器编码后的10 bit数据,Serial_out_10bit是并串转换模块输出的串行数据。从仿真结果可以看出,整个编码输出过程准确无误。

图7所示为8 bit数据在8B/10B编码后与编码前串行输出波形数据。上半部分波形为经过编码后的串行输出波形,下半部分波形为未编码的串行输出波形。对比可发现:8B/10B编码能够有效地去除串行输出数据中连续的“0”和“1”。根据章节1.2中频闪效应的评价标准所述,需要测出LED的闪烁频率,即要对FPGA的IO口输出串行数据进行频谱分析。通过FFT便可知编码前后闪烁频谱特性,以验证编码改善频闪效应的有效性。

3  编码前后频谱对比

在通信系统中,连续信号频谱经常使用FFT算法获得。FFT不但能够反映出信号的频谱特性,而且比DFT更容易处理与计算[7]。利用安捷伦DSO7054A示波器对串行输出数据进行采样和FFT运算,以获得数据的频谱特性。

为了研究由信源01分布不均产生的频闪效应,本文中信源模拟传输音色绚丽、变化丰富的音乐信号,这种信号中具有的01分布不均的特性正是引起LED灯产生频闪效应的原因,有利于更加形象地突出8B/10B编码对于改善频闪效应的有效性。

如图8所示,未经过8B/10B编码的串行数据波形有连续的“0”和“1”出现,FFT频谱分析中含有80 Hz的低频分量信号,这种频率的信号引起的频闪效应在IEEE Std 1789-2015标准中被定义为高风险闪烁频率。但如图9所示,信号通过8B/10B编码后,输出的波形中不会出现超过5个连续的“0”或“1”,且可以发现FFT频谱分析中信号的最低频率为101 kHz,远远超出了能对人产生频闪效应的频率范围。因此,证实了经过8B/10B编码输出数据的频谱分布明显避开了对人体有不良生理反应的频闪效应范围。

4  结束语

本文分析室内可见光通信发生频闪效应的原因,提出了一种基于8B/10B信道编码的解决方案。通过在Vivado 2017.4软件中使用Verilog HDL语言,对8B/10B编码进行了编写、仿真和物理实现实测验证,并对串行输出进行FFT频谱分析验证,结果显示8B/10B对信号低频分量有明显抑制作用。

本方案实现简单,能够有效改善室内光通信中频闪效应的发生,在室内可见光通信中具有良好的应用价值。

致谢

感谢北方工业大学信息学院电子系、北京市大学生科学研究与创业行动计划项目资助与支持。

参考文献

[1] 陆世鸣, 刘磊, 俞安琪. 照明产品的频閃分析及对功能性照明的影响[J]. 灯与照明, 2014(4): 22-27.

[2] 盛迎晓, 李晓妮, 胡余兵, 等. 照明产品频闪的国际标准进展及其测量方案[C]// 2016年中国照明论坛——半导体照明创新应用暨智慧照明发展论坛论文集. 2016.

[3] Recommended Practices for Modulating Current in High-Brightness LEDs for Mitigating Health Risks to Viewers: IEEE Std 1789-2015 [S].

[4] 李宥谋. 8B/10B编码器的设计及实现[J]. 电讯技术, 2005, 45(6): 26-32.

[5] 陈章进, 钟国海, 毕卓. 一种基于低成本FPGA的高速8B/10B编解码器设计[J]. 微计算机信息, 2012(10): 189-190.

[6] 袁俊泉, 孙敏琪, 曹瑞. Verilog HDL数字系统设计及其应用[M]. 西安: 西安电子科技大学出版社, 2002.

[7] 程佩青. 数字信号处理教程: 第三版[M]. 北京: 清华大学出版社, 2007.

推荐访问: 效应 光通信 改善 室内 设计