蓝牙跳频算法的研究与仿真

2016-09-12 02:34刘晓东
电子设计工程 2016年4期
关键词:频点内核C语言

黄 祥,刘晓东

(1.武汉邮电科学研究院 湖北 武汉 430027;2.武汉虹旭信息技术有限责任公司 湖北 武汉 430027)

蓝牙跳频算法的研究与仿真

黄 祥1,2,刘晓东1,2

(1.武汉邮电科学研究院 湖北 武汉 430027;2.武汉虹旭信息技术有限责任公司 湖北 武汉 430027)

为了实现蓝牙跳频方案,本文采用了研究相关原理并且着重分析蓝牙Basic Hop Selection Kernel与Adapted Hop Selection Kernel这两种选频方案以及使用C语言代码进行软件仿真的方法,结合蓝牙协议4.0版本中提供的Sample Data数据进行了实验,得出最终的软件仿真结果是正确的结论。

蓝牙;选频;算法;C

蓝牙,是一种短距离无线通信技术,它的工作频段处于世界开放的ISM频段。在蓝牙通信过程中,跳频技术作为蓝牙的关键技术,主要目的就是为了用来增强蓝牙通信的抗干扰能力。其频率均匀分布在2.4~2.483 5 GHz这个频段内,总共包含79个频点[1]。跳频技术通过两个方面来提高蓝牙通信的抗干扰能力:首先,将传统的窄带通信扩频到一个很宽的频带上,这就使得信号不容易受到其他信号的干扰;其次,跳频技术使两蓝牙设备在通信的过程中使用的频点不断的发生跳变,并不是一直使用一个频点通信,这样一来,一旦哪一个频点受到干扰,就可以马上跳到另外一个频点上,这样就避免了由于频点干扰带来的差错。在BR/EDR版本的蓝牙协议规范中,总共包括两种选频方案,分别为 Basic Hop Selection Kernel与Adapted Hop Selection Kernel这两种[2]。本文就是在研究了这两种选频方案的基础上,使用C语言代码软件仿真出这两种选频方案。

1 蓝牙跳频算法的研究

跳频的工作原理是指收发双方传输信号的载波频率按照相同的规律进行不断变化来通信的通信方式。也就是说,收发双方所采用的载波频率是一起同步变化。从时域上来看,是一个多频率的频移键控通信,从频域来看,是在一个很宽的频带上以不等的间隔随机的进行跳变。

1.1 蓝牙跳频序列标准

我国采用的是79跳的系统,这里就只介绍79跳系统对跳频序列的标准定义。信道跳频序列具有较长的周期,一段时间内跳频图案不出现重复,并且均匀的分布在79 MHz的范围内[3]。

1.2 Basic Hop Selection选频方案

蓝牙选频方案包括两大部分:一是通过一定的跳频算法得到一个跳频序列,二是将跳频序列映射到具体的频点上。整个过程是在选频内核中实现的,在实现选频算法的时候,跳频算法的初始条件包括两部分:时钟值与输入地址。这两个初始条件对于不同的状态所选取的具体值是不一样的。本文中是为了实现Basic Hop Selection Kernel与Adapted Hop Selection Kernel这两种选频方案,而这两种选频方案只是在连接状态才会有区别,所以,选频初始条件中,所选择的时钟值与地址输入是在主从设备已经建立连接的状态下。在连接状态,选频内核输入的时钟是主设备的时钟,输入的地址是主设备的地址,具体的相应位会在后面介绍。下图是Basic Hop Selection Kernel选频内核的方框图[4]:

如图1中所示,Basic Hop Selection选择内核包括第一次相加、异或运算、换位操作、第二次相加,最后输出对寄存器操作进行频点选择。当然,本文中针对的是连接状态的频点选择,所以,选频内核相关的输入参数都是在连接状态的。具体的输入在协议4.0上面有详细的描述。

图1 蓝牙Basic Hop Selection选择内核Fig.1 Bluetooth Basic Hop Selection select kernel

下面,对选频内核中主要的两个过程加以阐述。

1.2.1 异或运算

第一次相加再进行mod运算以后得到的5位数据与输入参数B的4位数据进行异或运算得到5位的输出数据,假设第一次相加得到的结果为Z’0到Z’4,经过异或运算以后输出结果为Z0到Z4,又由于B的输入为设备地址的19到22位,设为A22-19,那么,该异或运算的原理图如下[4]:

图2 异或运算原理图Fig.2 The Schematic of XOR

如图2所示,对应的输入与输出的关系如下:

第一次全国水利普查主要包括河湖基本情况普查、水利工程基本情况普查、经济社会用水情况调查、河湖开发治理保护情况普查、水土保持情况普查及其他普查等内容。主要是收集我国河流、湖泊、流域的水资源与水文特征,河湖的利用与保护情况,水利工程的数量、分布、规模、效益,社会经济用水及其水环境,水土流失与水土保持措施的特点、分布、数量,以及进行水利行业能力建设情况、灌区专项、地下水取水井专项普查等。

Z0=A19 xor Z’0;

Z1=A20 xor Z’1;

Z2=A21 xor Z’2;

Z3=A22 xor Z’3;

Z4=Z’4。

1.2.2 换位操作(PERM5)

在选频内核中,换位操作是根据控制字P来对输入的5位数据进行相关的互换位置的操作。在选频内核中,D0~D8对应控制字P0~P8,而P(i+9)对应于选频内核中的Ci xor Y1,其中i为0到4。下表为相应的控制字以及对应的交换操作[4]:

表1 换位操作的控制Tab.1 Transposition operation control

1.2.3 频点映射

在最后一步,运用前面所有运算的最后结果从存放频点的寄存器中寻址找到计算得到的相应频点。频点在寄存器中的存储方式是偶数频点放在前面,奇数频点放在后面,并且都是升序的形式。

1.3 Adapted Hop Selection选频方案

Adapted hop selection选频 方 案 是 基 于 Basic hop selection选频方案的基础上进行的,产生频点的运算内核是一样的。唯一的区别在于,当主从设备的AFH_mode的值设为1的时候,也就是说主从设备的自适应跳频功能都使能的时候,双方会通过AFH_channel_map信息定义哪些信道可用,哪些信道不可用。然后,当通过Basic hop selection选频内核计算出一个频点后,会通过查询前面建立的频点列表,看看这个频点是否可用,如果该频点可用,那么直接将该频点运用到下一个时隙,如果该频点不可用,那么会经过频点重定位功能模块,将改频点重新映射到可用频点中去[4]。下图是Adapted hop selection选频方案方框图:

图3 Adapted hop selection选频内核Fig.3 Adapted hop selection frequency selection kernel

如图3所示,Adapted hop selection选频方案比Basic hop selection选频方案就是多了一个Re-mapping Function的功能模块。该模块中,计算K’的计算公式如下:

EQ1中,F’的定义为主设备时钟的7到27位对应的值乘以16以后再与N进行mod运算所得到的结果;N代表的是根据AFH_channel_map信息中的值定义的可用信道的数量;其他变量的定义与Basic hop selection选频方案中的定义完全一样。在Re-mapping Function的功能模块中的Mapping Table是根据FH_channel_map信息中的值定义的可用信道编号,也是按照偶数频点在前,奇数频点在后,并且是升序的规定进行存储频点号的。

2 蓝牙选频算法的C语言实现

在使用C语言实现蓝牙选频方案的时候,本文分别实现了Basic Hop Selection与Adapted Hop Selection这两种选频方案。并且,这两种方案的实现是集合在一个实现代码中,只是在分别实现的时候要进行相关的选择设置。同时,在进行结果验证的时候,采用的对比数据是 BLUETOOTH SPECIFICATION Version 4.0协议中P1236页的Sample Data提供的相关条件以及频点结果[5]。

1)C语言程序流程图

C語言程序流程图如图4所示。

图4 C语言实现流程图Fig.4 C language implementation flow chart

图5 AFH功能使能时选频结果对比Fig.5 AFH selected frequency results contrast

2)代码运行结果与协议中提供的数据对比

如图5所示,当AFH功能使能的时候,C语言实现的频点选择与协议中提供的频点结果的对照[6]。可见,C语言实现的频点选择与协议中提供的频点结果是一致的[7]。

3 结束语

蓝牙选频算法在实际应用中是通过硬件电路实现的,本文的设计是通过对蓝牙两种版本的选频方案进行分析[8],然后通过C语言进行软件仿真[9],最后得到的结果与协议中提供的数据进行对比,每一个频点都是一一对应的。本文的研究对实现蓝牙通信的同步是很有指导意义的,并且是软件实现,可移植性比较强。

[1]张禄林,雷春娟,郎晓红.蓝牙协议及其实现[M].北京:人民邮电出版社,2001.

[2]朱刚,谭振辉.蓝牙技术原理与协议[M].北京:清华大学出版社,2002.

[3]潘启飞.认知跳频传输技术研究[D].哈尔滨工业大学,2010.

[4]Bluetooth SIG.BLUETOOTH SPECIFICATION Version 4.0 [S].2010.

[5]徐金苟.蓝牙4.0底层核心技术协议研究与实现 [D].上海交通大学,2012.

[6]黄鑫.蓝牙跳频算法研究及基带跳频的VLSI实现[D].西安电子科技大学,2009.

[7]施先旺,王鹏武.发动机工况实时调节软件设计[J].火箭推进,2012(5):70-76.

[8]熊来红,高健,汪皓钰.COM技术和遗传算法在无功优化软件开发中的应用[J].陕西电力,2011(12):22-26,75.

[9]尤裕荣,袁洪滨,王春民,等.PWM高速开关阀动态调节特性仿真研究[J].火箭推进,2013(1):24-29.

The study and simulation of bluetooth frequency hopping algorithm

HUANG Xiang1,2,LIU Xiao-dong1,2
(1.Wuhan Research Institute of Posts and Telecommunications,Wuhan 430027,China;2.Wuhan Hongxu Information Technologies co.,LTD,Wuhan 430027,China)

In order to achieve the Bluetooth frequency hopping scheme,In this paper,adopting methods to Research relevant principles and Analysis the Bluetooth Basic Hop Selection Kernel and Adapted Hop Selection Kernel Both frequency selection scheme and Use the C language code for software emulation,Combined with Bluetooth 4.0 protocol Sample Data provided experimental data,Arrive at a final software simulation results are correct conclusion.

bluetooth;frequency selection;algorithm;C

TN918.91

A

1674-6236(2016)04-0111-03

2015-04-02 稿件编号:201504014

黄 祥(1988—),男,湖北安陆人,硕士研究生。研究方向:无线通信技术。

猜你喜欢
频点内核C语言
多内核操作系统综述①
强化『高新』内核 打造农业『硅谷』
基于变邻域粒子群的短波频率选择算法
活化非遗文化 承启设计内核
基于Visual Studio Code的C语言程序设计实践教学探索
LTE系统下D2D功能高层协议探析
51单片机C语言入门方法
Linux内核mmap保护机制研究
一种高速跳频图案的高效同步方法
基于C语言的计算机软件编程