发明内容
以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。
根据本发明的一方面,提供了一种用于自动调整可见光通信***中的时钟的方法,该可见光通信***包括接收端和至少一个发射端。该方法包括:接收来自该至少一个发射端中的第一发射端的可见光信号;根据接收自该第一发射端的该可见光信号确定该第一发射端的时钟变化参数和该接收端的时钟变化参数;根据该第一发射端的该时钟变化参数和该接收端的该时钟变化参数确定该第一发射端的时钟快慢因子;以及根据该第一发射端的该时钟快慢因子每隔预定时间更新接收端本地存储的该第一发射端的时钟信息。
在一实例中,该第一发射端的时钟变化参数是指对应于该第一发射端的***时间的单位时间实际经历的标准时间,以及该接收端的时钟变化参数是指对应于该接收端的***时间的该单位时间实际经历的标准时间,其中所实际经历的标准时间都是以该接收端的晶振的***周期为单位来计量的。
在一实例中,该第一发射端的时钟快慢因子为对应于该接收端的***时间的该单位时间实际经历的标准时间与对应于第一发射端的***时间的该单位时间实际经历的标准时间之比。
在一实例中,该预定时间是该接收端的***时间的预定时间,每隔该预定时间,该接收端本地存储的该第一发射端的该时钟信息的误差为该预定时间减去该第一发射端的时钟快慢因子与该预定时间的乘积,其中更新该接收端本地存储的该第一发射端的该时钟信息包括用本地存储的该第一发射端的该时钟信息减去该误差。
在一实例中,该单位时间为接收自该第一发射端的该可见光信号的一个光脉冲的标称持续时间,该标称持续时间等于该可见光信号的标称波特率的倒数。
在一实例中,对应于该第一发射端的***时间的该单位时间实际经历的标准时间是在该接收端处测量接收自该第一发射端的该可见光信号的一个光脉冲的持续时间得到的并以该接收端的晶振的***周期为单位记为M·T2***,以及对应于该接收端的***时间的该单位时间实际经历的标准时间被计算为(T0标称·f2标称)·T2***,其中T0标称为该可见光信号的一个光脉冲的标称持续时间,f2标称为该接收端的晶振的标称频率,以及T2***为该接收端的晶振的***周期。
在一实例中,在该接收端处测量接收自该第一发射端的该可见光信号的一个光脉冲的持续时间包括:将接收自该第一发射端的该可见光信号转换成数字信号;以及从该数字信号的一个脉冲的高电平或低电平开始以该接收端的晶振的***周期进行计时直至该高电平或低电平结束。
在一实例中,将接收自第一发射端的可见光信号转换成数字信号包括:通过光电二极管将该可见光信号转换成电脉冲信号,当该光电二极管通过的电流值高于门限值时输出高电压电平,以及当该光电二极管通过的电流值低于该门限值时输出低电压电平。该门限值是根据预定数学模型至少由接收端与第一发射端之间的距离来决定的。
在一实例中,该方法还包括:在后续每一次接收到来自该第一发射端的可见光信号时,重复该确定该第一发射端的时钟变化参数和该接收端的时钟变化参数至更新所存储的该第一发射端的该时钟信息的步骤。
在一实例中,在后续每一次接收到来自该第一发射端的可见光信号时,根据所存储的该第一发射端的该时钟信息来选择对应的伪码信号对接收到的可见光信号进行解码。
在一实例中,该接收端本地存储的该第一发射端的该时钟信息最初是在该接收端首次接收到该第一发射端的可见光信号时存储的并且被设为等于该接收端当时的时钟信息。
根据本发明的另一方面,提供了一种用于自动调整可见光通信***中的时钟的通信装置,该可见光通信***包括至少一个发射设备和该通信装置,该通信装置包括:接收器,其接收来自该至少一个发射设备中的第一发射设备的可见光信号;时钟变化参数确定模块,其根据接收自该第一发射设备的该可见光信号确定该第一发射设备的时钟变化参数和该通信装置的时钟变化参数;时钟快慢因子确定模块,根据该第一发射设备的该时钟变化参数和该通信装置的该时钟变化参数确定该第一发射设备的时钟快慢因子;以及时钟信息调整模块,其根据该第一发射设备的该时钟快慢因子每隔预定时间更新该通信装置本地存储的该第一发射设备的时钟信息。
根据本发明的又一方面,提供了一种通信装置,包括:处理器,该处理器被配置成接收来自该至少一个发射设备中的第一发射设备的可见光信号,根据接收自该第一发射设备的该可见光信号确定该第一发射设备的时钟变化参数和该通信装置的时钟变化参数,根据该第一发射设备的该时钟变化参数和该通信装置的该时钟变化参数确定该第一发射设备的时钟快慢因子,以及根据该第一发射设备的该时钟快慢因子每隔预定时间更新该通信装置本地存储的该第一发射设备的时钟信息;以及耦合至该处理器的存储器。
根据本发明的再一方面,提供了一种设备,包括:用于接收来自至少一个发射设备中的第一发射设备的可见光信号的装置;用于根据接收自该第一发射设备的该可见光信号确定该第一发射设备的时钟变化参数和接收设备的时钟变化参数的装置;用于根据该第一发射设备的该时钟变化参数和该接收设备的该时钟变化参数确定该第一发射设备的时钟快慢因子的装置;以及用于根据该第一发射设备的该时钟快慢因子每隔预定时间更新该接收设备本地存储的该第一发射设备的时钟信息的装置。
根据本发明的另一方面,提供了一种计算机程序产品,其包括计算机可读介质,该计算机可读介质包括:用于接收来自至少一个发射设备中的第一发射设备的可见光信号的代码;用于根据接收自该第一发射设备的该可见光信号确定该第一发射设备的时钟变化参数和接收设备的时钟变化参数的代码;用于根据该第一发射设备的该时钟变化参数和该接收设备的该时钟变化参数确定该第一发射设备的时钟快慢因子的代码;以及用于根据该第一发射设备的该时钟快慢因子每隔预定时间更新该接收设备本地存储的该第一发射设备的时钟信息的代码。
根据本发明的方法和装置,接收端本地保存的发射端的时钟信息可以及时地更新,从而与发射端真实的时钟信息基本一致。这对于收发两端的通信是具有重要意义的。在可见光信号用根据发射端的时钟信息变化的伪码信号进行加密的情况下,接收端可以根据本地所存储的该发射端的时钟信息来选择对应的伪码信号以对接收到的可见光信号进行解码。由此选择的伪码序列必然与发射端处用于加密的伪码序列是对应的,从而保证了正确地解密。
具体实施方式
以下结合附图和具体实施例对本发明作详细描述。注意,以下结合附图和具体实施例描述的诸方面仅是示例性的,而不应被理解为对本发明的保护范围进行任何限制。
图1示出了一种可在其中实现本发明的可见光通信***100。可见光通信***100包括发射端110和接收端120。发射端110包括编码器111以及与编码器111相耦合的伪码信号发生器112。编码器111接收原始通信数据,并采用伪码信号发生器112产生的伪码信号对原始通信数据进行编码以产生扰码信号。由于产生的扰码信号与原始通信数据不同,因此起到了加密的作用。如在本文中使用的,术语“加密”和“编码”,以及“解密”和“解码”可以互换地使用。原始通信数据可以是与发射端110相关联的ID信息。编码器111将扰码信号输出至发光单元113,后者将接收到的扰码信号以可见光的形式发送出去。发光单元113可以是LED或其他具有发光功能的元件。发射端110可以是光子物联网中的手持式客户端。
接收端120包括用于接收发射端110发射的可见光信号、并将可见光信号转换为数字信号的接收单元123。解码器121接收由接收单元123输出的数字信号并采用伪码信号发生器122产生的伪码信号对其进行解码,以恢复出原始通信数据。在图1所示的可见光通信***100中仅示出了一个发射端110,但是本领域技术人员容易领会,对应于一个接收端120往往存在多个发射端110。
为了使发射端110和接收端120之间的通信具有更高的安全性,防止高速摄像机拍摄复制光信号,所以在发射端110和接收端120中都使用了随时间变化的伪码序列对原始通信数据进行了加密和解密。因此,如图1所示,伪码信号发生器112以晶振114提供的时钟信号为基准根据发射端110的状态机的状态输出随时间变化的伪码信号。相应地,接收端120中的伪码信号发射器122也以晶振124提供的时钟信号为基准根据接收端120的状态机的状态输出随时间变化的伪码信号。
图2示出了一种在可见光通信***100中使用的加解密方法的流程图。在步骤201,发射端110对原始通信数据与随时间变化的第一伪码信号进行逻辑运算以获得扰码信号。原始通信数据可以是要发送的信息,例如用户身份(ID)信息等,并且可以是一种数字序列信号。伪码信号可以是随单位时间变化的数字序列,其中该单位时间可以根据需要设置,例如,每天、每小时、每分钟、每秒等。原始通信数据与第一伪码信号的逻辑运算可以是逻辑与、逻辑或、逻辑异或等,也可以是上述运算中的任意两者或更多者的组合。
例如原始通信数据为发射端的用户ID,并且始终为00001101。在经过5个单位时间T后所对应的发射端状态N+5下,第一伪码信号可以为10101010,则原始通信数据与第一伪码信号的逻辑运算,例如“异或”的过程如下表所示:
原始通信数据 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
第一伪码信号 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
扰码信号 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
在步骤202,发射端110将该扰码信号以可见光信号的形式发送出去。例如,发射端110通过LED灯以闪光形式将调制信号发送出去。针对上述扰码信号10100111,LED灯可产生高频率闪烁,有光可代表1,无光可代表0,或者反之亦然,从而有效地实现了可见光通信。
在步骤203,接收端120接收发射端110发送的可见光信号,并将该可见光信号转换为数字信号。例如,对于LED灯产生的高频率闪烁,有光可代表1,无光可代表0,或反之,从而可将接收的可见光信号转换为数字信号。光信号转换为数字信号的过程如下:首先是光电转换,利用光电二极管的电信号与光信号的特性,形成电脉冲信号。但是由于发射端与接收端的位置不一样,即每个发射端发射到接收端的光信号强度是不一样的,所以其电信号强弱也是不一样的,所以需要对光电二极管所形成的电流进行整流比较。如当二极管通过的电流值高于某一定门限值时,光电转换电路将输出的电压电平值调整为高电平;当通过光电二极管的电流值低于某一门限值时,光电转换电路将输出的电压电平值调整为低电平。该门限值的设定是通过一个数学模型根据不同的环境来设定的,如距离较远时,门限值可能会降低;距离近时门限值可能会相对升高,即门限值与门限值之间的变化关系由数学模型决定,可以是线性关系,也可以是非线性关系。通过以上过程,可以将电平调整到一定范围内,以此保证正确的脉冲形状,以保证采样的正确,从而保证时钟计算的正确性。
在步骤204,接收端120对该数字信号与第二伪码信号进行解码例如逻辑运算,以获得原始通信数据。具体地,在经过5个单位时间T后所对应的接收端状态N+5下,第二伪码信号也为10101010,与第一伪码信号码型、起止相位相同。接收端120对接收到的信号与第二伪码信号的逻辑运算,例如“异或”过程如下表所示:
接收到的信号 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
第二伪码信号 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
解码输出信号 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
可见,解码输出信号为00001101,与原始通信数据相同,即解码出了原始通信数据。
如上文所述,为了使接收端能正确解码,接收端的伪码信号发生器产生的伪码信号需要与发射端的伪码信号发生器产生的伪码信号同步变化。具体地,伪码信号的变化是由收发两端的状态机的状态决定的,在经过一定的单位时间(例如,1秒、1分钟或其他规定的时间段)后,收发两端的状态机的状态就会由上一个状态跳变到下一个状态,同时与状态机状态对应的加密和解密所使用的伪码信号也会作相同的变化。
在可见光通信***中,可见光发射端110和接收端120的时钟***的精准度由各自的晶振114、124所决定。由于制造工艺、工作环境等各方面的原因,晶振114、124都会存在一定的误差,这就使得发射端110和接收端120的时间变化会不一样。假设收发两端都从0秒开始计时,但接收端120的时钟***相对快点,如以标准的时间为参照,经过1秒的时间,可能发射端110中的时钟***才到达0.999999秒,但这时接收端120的时钟***已经到达1.000001秒,两者的误差为1.000001-0.999999=0.000002秒,在经过标准时间的500000秒后,收发两端的时钟***显示将相差1秒。
在***的具体实现中,收发两端时钟***的时间变化是以各自的***最小单位时间——即晶振的周期——数目来计量的,注意,此处晶振的周期是指晶振的实际周期(下文称为晶振的***周期)。例如,假设发射端110的晶振114的标称频率为f1标称=1MHz,晶振的标称周期T1标称=10-6s。理想地,若晶振114绝对精准没有误差,即晶振114的实际频率(下文称为晶振的***频率)f1***=f1标称=1MHz,则晶振114的实际周期T1***=T1标称=10-6s,发射端110处每f1标称(=106)个T1***记为发射端时钟***的***时间1秒钟,这种理想情况下,发射端***时间1秒钟等于标准时间1秒钟。类似地,假设接收端120的晶振124的标称频率为f2标称=1MHz,晶振的标称周期T2标称=10-6s。理想地,若晶振124绝对精准没有误差,即晶振124的***频率f2***=f2标称=1MHz,则晶振124的实际周期T2***=T2标称=10-6s,接收端120处每f2标称(=106)个T2***记为接收端时钟***的***时间1秒钟,这种理想情况下,接收端***时间1秒钟等于标准时间1秒钟。
然而,由于制造工艺或工作环境等各方面的因素,晶振的实际频率与标称频率之间存在一定误差,并不相等。例如,若f1***<f1标称=1MHz,则T1***>T1标称=10-6秒,然而发射端110仍然是将f1标称(即106)个T1***记为时钟***时间的1秒钟,这一点对于理解发射端的***时间的快慢原因非常重要。此时,发射端110处的时钟***的1秒钟,实际经历了即f1标称·T1***的标准时间,该实际经历的标准时间大于1秒的标准时间,即发射端110处的***时间较标准时间慢。若f2***>f2标称=1MHz,则T2***<T2标称=10-6秒,然而接收端120仍然是将f2标称(即106)个T2***记为时钟***时间的1秒钟。此时,接收端120处的时钟***的1秒钟,实际经历了f2标称·T2***的标准时间,该实际经历的标准时间小于1秒的标准时间,即接收端120处的***时间较标准时间快。由此可清楚地看到,收发两端的时钟***的***时间是缘何快于或慢于标准时间的。
发射端110和接收端120的状态变化都是以自身的时钟***为基准的,由于上述收发两端的时钟***之间的误差,导致发射端110和接收端120的状态机的状态变化可能不同步。以收发两端的状态机以标准的单位时间T变化为例,假设发射端110的时钟***比标准时间慢,而接收端120的时钟***比标准时间快。在经过某一标准时间后,发射端110和接收端120的***时间相差一个单位时间T。此时,发射端110处于状态N,而接收端120处于状态N+1,即接收端120用来解密的伪码信号与发射端110用来加密的伪码信号不一样,因此接收端120不能正确解密。
图3是示出了发射端和接收端的状态机的状态随时间变化的示意图。如图3所示,在标准时间t0时刻,假设发射端和接收端的时钟***是对准的,发射端与接收端都处于状态N,在经过一段时间后,到达标准时间t1时刻。此时,发射端由于时钟***较慢,还处于状态N+5,而接收端由于时钟***较快,已经处于状态N+6。因此接收端所选用的解密的伪码信号与发射端选用的加密的伪码信号不一致,导致解密出错。
如上所述,时钟***的***时间可能快于或慢于标准时间,为了衡量发射端110和接收端120的***时间的快慢程度,本发明中引入了“时钟变化参数”的概念。时钟变化参数可以是对应于***时间的单位时间实际经历的标准时间。假定以1秒钟为单位时间。如上所述,对应于发射端110的***时间的单位1秒钟时间,实际经历的标准时间为f1标称·T1***。取决于***时钟的快慢,该实际经历的标准时间f1标称·T1***可能小于或大于1秒钟标准时间。对应于接收端120的***时间的单位1秒钟时间,实际经历的标准时间为f2标称·T2***,该实际经历的时间取决于***时钟的快慢也可能小于或大于1秒钟标准时间。
对应于收发两端同样大小的***时间,却实际经历不同标准时间的事实反映了它们***时间之间的快慢关系。在本文中,将对应于接收端120的***时间的单位时间实际经历的标准时间与对应于发射端110的***时间的同样单位时间实际经历的标准时间之比称为发射端110的时钟快慢因子。以单位时间为1秒钟为例,发射端110的时钟快慢因子Q=(f2标称·T2***)/(f1标称·T1***)。显然,该时钟快慢因子等于经过相同时间发射端的***时间的变化幅度与接收端的***时间的变化幅度之比。因此,可以在接收端120处根据接收端120的***时间的变化确定发射端110的***时间的变化。
为了能够在接收端120处确定该时钟快慢因子,可以用接收端120本地晶振的***周期T2***的数目来计量对应于收发两端的***时间的单位时间实际经历的标准时间。令该单位时间为发射端110发射的可见光信号的一个光脉冲的标称持续时间T0标称。T0标称是由信号的标称波特率决定的,具体地为波特率的倒数。例如,在标称波特率为4800bps的情况下,一个光脉冲的标称持续时间T0标称=1/4800秒。在可见光通信***中,用于通信的可见光的波特率一般是由收发两端协定的,因此已为接收端120所知晓。对应于接收端120的***时间的T0标称实际经历的标准时间可以计算得到,具体为(T0标称·f2标称)·T2***,即(T0标称·f2标称)个***周期。对应于发射端110的***时间的T0标称实际经历的标准时间可以在接收端120处实际测量来自发射端110的可见光信号的一个光脉冲的持续时间得到并以接收端120的晶振的***周期为单位记为M·T2***。相应地,发射端110的时钟快慢因子Q=(T0标称·f2标称)/M。由此,根据接收端120经过的***时间,可以计算出发射端110的***时间的变化。
一般地,在可见光通信***建立的早期,收发两端时钟***的误差还没有随时间被放大,因此可以认为是对准的。因此,在早期例如设备调试期间接收端120与发射端110初次通信时,在接收端120本地存储发射端110的时钟信息,具体地可以将发射端110的时钟信息设为与此时接收端120的时钟信息一致。时钟信息可以指时钟***的***时间值。假设此时发射端110与接收端120的时钟***的***时间值为0时。由于收发两端时钟***是对准的,所以此时接收端120本地存储的发射端110的时钟信息与发射端110的真实的时钟信息是一致的。
注意,接收端120处保存的发射端110的时钟信息的变化是与接收端120自身的***时间的变化相一致的,因此,在***建立后随着时间的流逝,接收端120处保存的发射端110的时钟信息与发射端110处的真实的时钟信息之间产生误差。具体地,经过接收端120的***时间的预定时间,接收端120本地存储的发射端110的时钟信息的变化幅度也为该预定时间,但是实际上,发射端110真实的时钟信息的变化幅度应为该预定时间乘以发射端110的时间快慢因子。因此,每隔该预定时间,产生的该误差等于该预定时间减去发射端110的时钟快慢因子与该预定时间的乘积。相应地,可用所存储的发射端110的时钟信息减去该误差以对其进行更新。每隔预定时间段,接收端120就在所存储的发射端110的时钟信息上消除该误差量,以使得更新后的发射端110的时钟信息与发射端110处的真实的时钟信息相一致。
作为说明性示例,假设该预定时间为5分钟,并且假设Q=4/5。从0时开始,当接收端120处经过***时间5分钟时,接收端120本地保存的发射端110的时钟信息为0时5分。然而,发射端110真实的时钟***的变化是5×4/5=4分钟,即误差为5-4=1分钟。相应地,将本地保存的发射端110的时钟信息0时5分减去1分钟误差,更新为0时4分。类似地,当接收端120处再经过5分钟***时间时,本地保存的发射端110的时钟信息为0时9分,其中又包含所产生的误差1分钟,因此,更新后的发射端110的时钟信息为0时8分。
由于收发两端晶振的误差有可能随温度等环境条件变化,因此发射端110的时钟快慢因子也可能变化。所以,后续每次收到该发射端110的可见光信号时,都可以根据新接收到的可见光重新计算该时钟快慢因子。相应地,接收端120根据本地所存储的发射端110的时钟信息来选择用于解密的伪码信号。由于,本地所存储的发射端110的时钟信息是每隔预定时间段自动调整的,所以与发射端110处的真实的时钟信息的误差不会放大。进而,保证了根据接收端120处所存储的发射端110的时钟信息选择的伪码信号能够与发射端110处根据真实的发射端110时钟信息选择的伪码信号能够同步。
图4是示出了根据本发明的一方面的用于自动调整可见光通信***中的时钟的方法的流程图。尽管为使解释简单化将该方法图示并描述为一系列动作,但是应理解并领会,这些方法不受动作的次序所限,因为根据一个或多个实施例,一些动作可按不同次序发生和/或与来自本文中图示和描述的其他动作并发地发生。
在步骤401,接收端接收来自至少一个发射端中的第一发射端的可见光信号。该接收端可以是图1中的接收端120,第一发射端可以是图1中的发射端110。该可见光信号是光脉冲信号,例如有光代表1,无光代表0,或反之。该可见光信号一般包含该第一发射端的用户身份(ID)信息,该ID信息是采用随第一发射端的***时间变化的伪码信号进行加密的。另外,该可见光信号还包括用于标识该第一发射端的标识符,例如第一发射端的设备号。发射端的设备号在***中是唯一性的,因此可通过设备号来唯一地标识某一发射端。该标识符是未加密的,可以被接收端直接解读得到。
在步骤402,根据接收自第一发射端的可见光信号确定第一发射端的时钟变化参数和接收端的时钟变化参数。如上文提及的,第一发射端的时钟变化参数是对应于第一发射端的***时间的单位时间所实际经历的标准时间,其中该实际经历的标准时间可以用接收端的晶振的***周期为单位来计量。在一实例中,该单位时间为来自第一发射端的可见光信号的一个光脉冲的标称持续时间,后者等于可见光信号的标称波特率的倒数。对应于第一发射端的***时间的该单位时间所实际经历的标准时间可以通过在接收端处实际测量该可见光信号的一个光脉冲的持续时间得到并以接收端的晶振的***周期为单位记为M·T2***。在一实例中,接收端可以将该可见光信号转换成数字信号,并且从该数字信号的一个脉冲的高电平或低电平开始直至该高电平或低电平结束对经历了多少个T2***进行计数,得到的数目即为M。
接收端的时钟变化参数可以是指对应于接收端的***时间的该单位时间实际经历的标准时间,其中该实际经历的标准时间可以用接收端的晶振的***周期为单位来计量。在该单位时间为来自第一发射端的可见光信号的一个光脉冲的标称持续时间T0标称的实例中,对应于接收端的***时间的该单位时间实际经历的标准时间被计算为(T0标称·f2标称)·T2***。
在步骤403,根据第一发射端的该时钟变化参数和接收端的该时钟变化参数确定第一发射端的时钟快慢因子。第一发射端的时钟快慢因子为对应于接收端的***时间的该单位时间实际经历的标准时间与对应于第一发射端的***时间的该单位时间实际经历的标准时间之比。在该单位时间为来自第一发射端的可见光信号的一个光脉冲的标称持续时间T0标称的实例中,该第一发射端的时钟快慢因子Q=(T0标称·f2标称)/M。由于T0标称、f2标称皆是接收端已知的,而M是实际测量得到的,因此,在接收端可以得到第一发射端的时钟快慢因子的大小。
在步骤404,根据第一发射端的该时钟快慢因子每隔预定时间更新该接收端本地存储的第一发射端的时钟信息。如上所述,时钟快慢因子等于经过相同时间,第一发射端的***时间的变化幅度与接收端的***时间的变化幅度之比。因此,接收端处每流逝该预定时间的***时间,第一发射端的***时间的真实变化幅度应为该时钟快慢因子与该预定时间的乘积,但接收端本地存储的第一发射端的***时间的变化幅度为该预定时间,所以本地存储的第一发射端的时钟信息的误差为该预定时间减去该乘积。进而,用本地存储的第一发射端的时钟信息减去该误差以进行更新可以消除该误差。以此方式,每经过该预定时间,就更新一次本地存储的第一发射端的时钟信息。
接收端本地的该第一发射端的时钟信息最初可以是在接收端与第一发射端在***建立初期(例如,首次)通信时存储的并且可以被设为等于接收端当时的时钟信息。这是因为可见光通信***中的收发两端的首次通信一般是在***建立初期,例如在***建立调试期间,此时接收端处还没有存储第一发射端的时钟信息。由于在***建立初期认为收发两端的时钟信息基本是一致的,所以,可以直接将接收端当前的时钟信息作为第一发射端的时钟信息存储在接收端本地。时钟信息可以指时钟***的***时间。例如,接收端在首次接收到第一发射端的可见光信号时,可以从可见光信号中直接解读出第一发射端的标识符,诸如设备号,并在本地与该第一发射端的标识符相关联地存储第一发射端的时钟信息。
尽管图4中未明确示出,但是该方法还可以包括在后续每一次接收到来自该第一发射端的可见光信号时,可以根据新接收到的可见光重新计算该时钟快慢因子,从而根据新计算出的时钟快慢因子每隔该预定时间来更新本地存储的第一发射端的时钟信息。通过这种方式,接收端本地保存的发射端的时钟信息可以及时地更新,从而与发射端真实的时钟信息基本一致。接收端在后续接收到第一发射端的可见光时,可以用根据本地所存储的第一发射端的时钟信息来选择对应的伪码信号对接收到的可见光信号进行解码。由此选择的伪码序列必然与第一发射端处用于加密的伪码序列是对应的,从而保证了正确地解密。
图5是示出了根据本发明的一方面的通信装置500的框图。接收器502可接收来自至少一个发射设备中的第一发射设备的可见光信号。时钟变化参数确定模块504可根据接收自第一发射设备的可见光信号确定第一发射设备的时钟变化参数和通信装置500自身的时钟变化参数。如前文所述的,时钟变化参数可以是对应于***时间的单位时间实际经历的标准时间。在该单位时间为来自第一发射设备的可见光信号的一个光脉冲的标称持续时间的情况下,对应于第一发射设备的***时间的单位时间实际经历的标准时间由时钟变化参数确定模块504在该通信装置500处测量接收自第一发射设备的可见光信号的一个光脉冲的持续时间得到并以通信装置500的晶振的***周期为单位记为M·T2***,以及对应于该通信装置500的***时间的该单位时间实际经历的标准时间由时钟变化参数确定模块504计算为(T0标称·f2标称)·T2***,其中T0标称为该可见光信号的一个光脉冲的标称持续时间,f2标称为该通信装置500的晶振的标称频率,以及T2***为该通信装置500的晶振的***周期。时钟快慢因子模块506可根据第一发射设备的时钟变化参数和通信装置500自身的时钟变化参数确定第一发射设备的时钟快慢因子。根据本发明的一方面,时钟快慢因子确定模块将第一发射设备的时钟快慢因子确定为对应于该通信装置500的***时间的该单位时间实际经历的标准时间与对应于第一发射设备的***时间的该单位时间实际经历的标准时间之比。时钟信息调制模块508根据第一发射设备的时钟快慢因子每隔预定时间更新通信装置500本地存储的第一发射设备的时钟信息。根据本发明的一方面,该预定时间是通信装置500的***时间的预定时间,每隔该预定时间,通信装置500本地存储的第一发射设备的时钟信息的误差为该预定时间减去第一发射设备的时钟快慢因子与该预定时间的乘积,由此,时钟信息调整模块508用本地存储的第一发射设备的时钟信息减去该误差以进行更新。在后续每一次接收到来自第一发射设备的可见光信号时,解码器510可根据所存储的第一发射设备的时钟信息来选择对应的伪码信号对接收到的可见光信号进行解码。
通信装置500还可包括存储器514。存储器514可存储时钟信息516,例如第一发射设备的时钟信息。通信装置500还包括处理器512。该处理器512可以是专用于分析接收器502收到的信息的处理器、控制通信装置500的一个或多个组件的处理器、和/或既分析接收器502收到的信息又控制通信装置500的一个或多个组件的处理器。
图6是示出了根据本发明的一方面的通信装置600的框图。应当领会到,通信装置600被表示为包括功能块,这些功能块可以表示由处理器、软件或其组合(例如固件)实现的功能块。通信装置600包括可协作的电子组件的逻辑分组602。例如,逻辑分组602可包括用于接收来自至少一个发射设备中的第一发射设备的可见光信号的电子组件604。逻辑分组602可包括用于根据接收自该第一发射设备的该可见光信号确定该第一发射设备的时钟变化参数和接收设备的时钟变化参数的电子组件606。逻辑分组602还可包括用于根据该第一发射设备的该时钟变化参数和该接收设备的该时钟变化参数确定该第一发射设备的时钟快慢因子的电组件608。此外,逻辑分组602还可包括用于根据该第一发射设备的该时钟快慢因子每隔预定时间更新接收设备本地存储的该第一发射设备的时钟信息的电子组件610。另外,通信装置600可包括保存用于执行与电子组件604、606、608、和610相关联的功能的指令的存储器612。尽管示为处于存储器612的外部,但是应当理解电子组件604、606、608、和610中的一个或多个可存在于存储器612内。
本领域技术人员将可理解,信息和信号可使用各种不同技术和技艺中的任何技术和技艺来表示。例如,以上描述通篇引述的数据、指令、命令、信息、信号、位(比特)、码元、和码片可由电压、电流、电磁波、磁场或磁粒子、光场或光学粒子、或其任何组合来表示。
本领域技术人员将进一步领会,结合本文中所公开的实施例来描述的各种解说性逻辑板块、模块、电路、和算法步骤可实现为电子硬件、计算机软件、或这两者的组合。为清楚地解说硬件与软件的这一可互换性,各种解说性组件、框、模块、电路、和步骤在上面是以其功能性的形式作一般化描述的。此类功能性是被实现为硬件还是软件取决于具体应用和施加于整体***的设计约束。技术人员对于每种特定应用可用不同的方式来实现所描述的功能性,但这样的实现决策不应被解读成导致脱离了本发明的范围。
结合本文所公开的实施例描述的各种解说性逻辑板块、模块、和电路可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其设计成执行本文所描述功能的任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,该处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可以被实现为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、与DSP核心协作的一个或多个微处理器、或任何其他此类配置。
结合本文中公开的实施例描述的方法或算法的步骤可直接在硬件中、在由处理器执行的软件模块中、或在这两者的组合中体现。软件模块可驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域中所知的任何其他形式的存储介质中。示例性存储介质耦合到处理器以使得该处理器能从/向该存储介质读取和写入信息。在替换方案中,存储介质可以被整合到处理器。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替换方案中,处理器和存储介质可作为分立组件驻留在用户终端中。
在一个或多个示例性实施例中,所描述的功能可在硬件、软件、固件或其任何组合中实现。如果在软件中实现为计算机程序产品,则各功能可以作为一条或更多条指令或代码存储在计算机可读介质上或藉其进行传送。计算机可读介质包括计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。存储介质可以是能被计算机访问的任何可用介质。作为示例而非限定,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或能被用来携带或存储指令或数据结构形式的合意程序代码且能被计算机访问的任何其它介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来,则该同轴电缆、光纤电缆、双绞线、DSL、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文中所使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多用碟(DVD)、软盘和蓝光碟,其中盘(disk)往往以磁的方式再现数据,而碟(disc)用激光以光学方式再现数据。上述的组合也应被包括在计算机可读介质的范围内。
提供对本公开的先前描述是为使得本领域任何技术人员皆能够制作或使用本公开。对本公开的各种修改对本领域技术人员来说都将是显而易见的,且本文中所定义的普适原理可被应用到其他变体而不会脱离本公开的精神或范围。由此,本公开并非旨在被限定于本文中所描述的示例和设计,而是应被授予与本文中所公开的原理和新颖性特征相一致的最广范围。