第
26
卷 第
6
期
2004
年
12
月
电气电子教学学报
JOU R NA L OF EEE
V ol. 26 N o. 6
Dec. 2004
蓝牙
PSTN
½关及语音终端的设计和研制
夏玮玮, 宋铁成, 沈连丰
(
东南大学 移动通信½家重点实验室, 江苏 南京
210096)
摘 要:
本文基于蓝牙标准及其应用模型, 阐述了“
三合一电话”
的概念, 给出了所研制的两种版本的蓝牙
PSTN
½关和语音终端的设计及实现
情况。文章首先简述了所研制的
PC
版本协议栈的特点及其创新, 包括虚拟操½系统(
V O S)
的设计和实现以 及屏½字节序、
字节对½等措½,
接着给出了该版本设备的研制情况; 然后对嵌入式
PS TN
½关和语 音终端的设计和实现做了阐述, 着重讨论了嵌 入式½件以及支持多个终端
的
PSTN
½关的实现; 最后给出
PSTN
½关和语音终端的应用前景。
关键词:
蓝牙技术; 公众电话½; ½关; 语音终端; ½交换
中图分类号:
TN 929. 5 文献标识码: A
文章编号:
1008- 0686( 2004) 06- 0012- 06
Design and Devel opment of Bl uetooth PSTN Gateway and Audio Terminal
XIA Wei-
wei, SONG Tie-cheng, SHEN Lian-feng
(
N ational M obil e C ommunicat ion Research L aborator y, S outheast U niver sity
,
N anj ing
210096,
China)
Abstract:
Based on the Bluet ooth specif icat ion and prof iles, this paper discusses the concept of 3-
in-1 phone and
the design and realizat ion of t wo versions of Bluet oot h PST N gateway and audio term inal developed by t he au-
thors. F irst , this paper illust rat es t he charact erist ic and innovat ion of P C version of Bluetooth prot ocol st ack de-
veloped by us, w hich includes t he design and realizat ion of Virt ual Operat ing Syst em ( VOS) and such methods
as by tes sequence and byt es alig nment shield, and discusses the development of equipments. T hen, the design
and realization of embedded PST N g at ew ay and audio terminal are discussed, the realizat ion of em bedded sof t-
ware and P ST N gatew ay that supports multi-t erminals are emphasized. Finally , t he application prospects of
PST N gateway and audio terminal are int roduced.
Keywords
: t echnology of Bluet ooth ; PST N ; gat ew ay ; audio t erminal; soft w are sw it ch
术
[ 1]
。蓝牙(
Bluet ooth )
技术以其诸多优点在
WPAN
的技术中占有重要½½。
在蓝牙技术众多应用中, “
三合一电话”
是语音
应用的一种典型。所谓“
三合一”
通常有两种解释:
( 1)
以支持蓝牙技术的公众蜂窝½手机为基础, 通过
蓝牙电话 ½关(
Bluet oot h PST N Gat ew ay )
的接入,
一部手机可在蜂窝½、
市话½(
Public Sw it ched T ele-
0 引言
随着人们对移动通信要求的不断提高, 小区域
无线移动通信正成为½际标准化组织、
各个厂商和
科研机构关注和研究开发的热点, 近年出现的无线
个域½(
Wireless Personal Area Netw ork , WPAN )
颇
具代 表性, 其 核心是短 距离的 多媒½ 无线接 入技
收稿日期:
2004- 09- 10;
修回日期:
2004- 11- 05 ½家“
十五”
科技攻关项目(
N o: 2001BA 102C) ,
江苏省优先启动 的“
十五”
重大科技攻关
项目(
N o: BG 2000008) ,
½家自然科学基金项目(
N o: 60072016)
。
½者简介: 夏玮玮(
1975- ) ,
女, 江苏省句容人, 硕士, 助教, 研究方向为无线多媒½接入技术;
宋铁成(
1967- ) ,
男, 江苏省张家港人, 硕士, 教授, 研究方向为无线多媒½通信技术;
沈连丰(
1952- ) ,
男, 江苏省邳州人, 硕士, 教授, 博士生导师, 长期从事信息与通信工程的科研与教学工½。
第
26
卷第
6
期 夏玮玮等: 蓝牙
PST N
½关及语音终端的设计和研制
phone Net w ork , PST N )
和
PBX ( Privat e Branch
T elephone Ex change)
三种½络中互通, ½用户享受
更合理的资费服务;
( 2)
利用蓝牙技术将带蓝牙功½
的蜂窝电话、
无绳电话和多媒½计算机通过蓝牙电
话½关, 接入市话½或其它公众电信½, 见图
1。拥
有“
三合一电话”
的用户, 其½处是, 在设有蓝牙电话
½关的场合如同普通手机一样½用, 在户内½用只
需缴纳市话费, 而在办公室等场合则½½用内部电
话½络而无需付费。可见, 蓝牙
PST N
电话½关为
带有蓝牙功½的语音终端提供了一种与固定电话
½、
移动蜂窝½连接的新的短距离接入方式。
变斜率增量调制(
CVSD, Cont inuous Variable Slope
Delta Modulation )
编码, 也可是 对数
PCM
编码
( A
律或
律)
,
其速率½是
64kb/ s。我们研制的 PST N
½关和语音终端½用
CVSD
编码, 因为误码对它所
造成的½响较小, 即½比特错误率达到
4% , CVSD
编码的语音还是可听的。
1. 2 无绳电话应用模型
[
3]
蓝牙
PST N
½关和语音终端主要用 到的是蓝
牙规范
1. 1
版本中定义的
13
个应用模型中的通用
接入模型、
无绳电话应用模型、
内部互通应用模型和
服务发现应用模型。
无绳电 话应 用模 型建立 在通 用接 入模 型
( GAP )
和
T CS-BIN
协议基础之上。
内部互通应用模
型
(
终 端必须支 持内部互 通功½) 也 建立在
T CS-
BIN
协议层的基础之上。
无绳电话应用模型定义了½关和终 端两个角
色, ½关½为蓝牙语音终端到外部
PST N
电话½的
接入点, 处理内部蓝牙语音终端与外部½络的信息
交换并对多个语音终端进行管理。½关可以支持多
达
7
个被激活的蓝牙语音终端。
2 基于 PC
的
PSTN
½关及语音终端
试验平台
图
1 蓝牙 PST N
½关应用场合
本文 给出基于
PC
和嵌入式 两个版本 的符合
Bluetoot h V1. 1
标准的
P ST N
½关和语音终端的设
计和研制情况, 其中包括蓝牙协议栈的设计和研制,
蓝牙“
三合一电话”
应用的研究与实现, 向嵌入式平
台的移植,
PST N
½关点对多点功½的实现, 语音终
端的研究与实现等。
从蓝牙标准还在不断升级、
产品开发的周期性
以及芯片供应诸多因素考虑, 首先在基于
P C
的平
台上来开发蓝牙½关和语音终端设备是必不可少的
一步, 它不仅减少了基于嵌入式平台开发产品的工
½量和降½了风险, 而且开发出的几种
P C
版设备
本身也是具有广阔应用前景的产品。
2. 1 PC
版本的协议栈和应用程序的特点
蓝牙协议栈是一个实现特殊功½的程序集, 最
终, 它要被安装在某个具½的操½系统上才½实际
工½。因此, 从某种意义上来说, 蓝牙协议栈依赖于
具½的操½系统。另一方面, 在具½实现中, ½层的
接口如果同时被若干个上层程序同时调用, 有可½
导致程序的重入, 即某个全局变量被同时修改, 而导
致整个系统的崩溃。
出于以上两点的考虑, 在实现蓝
牙协议栈时, ½用了虚拟操½系统
VOS( Virt ual Op-
erat ion Syst em)
的概念。
虚拟操½系统实际上是在协议栈和操½系统之
间加了一个中间层, 协议栈中需要和操½系统交互
13
1 蓝牙语音传输标准及无绳电话应用
模型简介
蓝牙
1. 1
版本的标准对语音传输做了详细的规
定, 基于“
三合一电话”
应用的蓝牙
P ST N
½关和语
音终端符合蓝牙标准定义的无绳电话应用模型, 以
下先对有关标准和无绳电话应用模型½简单介绍。
1. 1 蓝牙语音传输标准简介
蓝牙协议规定, 语音在面向连接的同步链路即
SCO ( Synchronous Connection-Oriented )
链 路 中 传
输。语音在蓝牙空中接口的编码方式可以是连续可
[
2]
电气电子教学学报 26 卷
的地方均被虚拟操½系统取代。
根据以上的分析, 它
所提供的½用就是防止重入和提供可移植性。为了
防止重入, 研制中采用了消息机制, 如图
2
所示。虚
拟操½系统提供了一些消息½数, 并在内部维护了
一个消息链表, 依次从消息链表中取一个消息并执
行它的处理½数。
½上层协议调用下层接口时, 并不
是直接调用下层接口, 而是通过消息½数向虚拟操
½系统注册一个消息, ½消息从链表中取出时, 真正
的调用才被执行。
同样的, ½下层协议收到数据或响
应需要通知上层时, 也是向虚拟操½系统注册一个
消息, 并指明消息接收模块, ½该消息被从链表中取
出时, 则上层进行相应的处理。
2
中虚线箭头表示
图
上层和下层之间的逻辑调用关系, 实线箭头表示实
际的操½过程。
型数据只½存放在偶数内存地址处, 占四个字节的
int 32、 32
等类型数据只½存放在四的整数倍的
uint
内存地址处, 占
8
个字节的类型数据只½存放在八
的整数倍的内存地址处, 而在内存中只占一个字节
的类型数据可以存放在任意地址处。
由于这些限制,
在不同的平台上编程时有很大的不同。
首先, 结构½
成员之间会有空洞。
其次, 若对内存中数据以强制类
型½换的方式读取, 字节对½的不同会引起数据读
取的错误。
解决字节对½有许多方法, 比如可以在
GCC
的
项目 管 理 文 件
M akeF ile
中 增 加 编 译 选项
fpack-
st ruct,
½这种方法只½去除结构中的空洞, 并不½
解决强制类型½换引起的错误。为了增强½件的可
移植性以及和其他蓝牙产品的互通性, 我们研制的
P C
版本蓝牙协议栈在收数据包处增加了拆包的½
数, 发数据包处增加了组包的½数。
这两个½数解决
了字节序的问题也解决了字节对½的问题。即组包
时根据参数中的格式字符串将内存中的不同数据类
型的某段数据放在指定地址处, 组成包发给下层; 拆
包时, 根据参数中的格式字符串将收到的内存中的
图
2 消息调用机制
数据存放在不同类型的变量或结构成员中。在½数
中针对不同的数据类型做不同的处理。
2. 2 基于 PC
的
PSTN
½关和语音终端 设计与实
现
[
4]
P ST N
½关的总½结构如图
3
所示。
系统在
PC
机上运行蓝牙协议栈和½关应用程序, 蓝牙模块和
P C
机之间通过串口相连, 蓝牙模块将
PC
机送来的
数据包以无线的方式传给终端或者将终端送来的数
据包由串口送给协议栈处理。语音电路直接与外界
P ST N
相连, ½关程序通过数据线控制语音电路拨
号, 并且会不断查询数据线看是否有振铃信号。
话音
由语音电路经双工音频线给
PCM
编解码器进行编
码, 由蓝牙模块发送出去; 反之亦然。
PC
版本的蓝牙
PST N
电话½关和终端是基于
X86
平台的。X86 系列的处理器是
CISC
结构, 而大
多数的嵌入式平台是
RISC
或
PA-RISC
结构, 硬件
平台的差异带来了½件移植的诸多问题。可½出现
的问题有字节顺序、
字节对½等。
( 1)
字节顺序
X86
平台是
L it t le Endian
字节序的, 即½字节
数据存放在内存½地址处, 高字节数据存放在内存
高地址处, 而许多其它嵌入式平台则是
Big Endian
字节序的, 即高字节数据存放在½地址处, ½字节数
据存放在高地址处。因而对占内存多于一个字节的
数据类型的数据, 如
int , int 16, uint 16, uint32
等, 在
这些平台上应该变换其存储顺序。我们认为在空中
传输的字节的顺序即½络字节序为标准顺序, 考虑
到与蓝牙协议的一致以及与其他平台蓝牙产品的互
通, 在程序中发数据包时我们将主机字节序½换为
½络字节序, 收数据包处将½络字节序½换为主机
字节序。
( 2)
字节对½
许多微控制器的寻址方式与
X86
平台是不同
的, 比如: 在内存中占两个字节的
int16、 16
等类
uint
14
图
3 蓝牙 PST N
电话½关的总½结构
为了验证
PST N
½关的正确性, 我们也研制了
语音终端, 实现了½关与终端之间的正确互通, 其总
½结构如图
4
所示。
由图可见, 蓝牙语音终端由蓝牙
第
26
卷第
6
期 夏玮玮等: 蓝牙
PST N
½关及语音终端的设计和研制
模块、
话筒、
耳机和终端应用程
PCM
语音编解码器、
序组成。语音终端和½关之间的互操½符合无绳电
话应用模型。
嵌入式系统通常包括构成½件的基本运行环境的硬
件和操½系统两部分, 还有些嵌入式系统没有操½
系统。为了保证程序执行的实时性、
可靠性, 并减少
开发时间, 保障½件质量, 我们采用嵌入式操½系统
½为开发的方式。我们选用了中½科学院凯思昊鹏
½件技术工程有限公司提供的
Hopen OS
½为嵌入
式开发的½件平台
,
选用华邦的
W90221
½为硬
件平台 。
[ 8]
[ 7]
图
4 蓝牙语音终端的总½结构
Hopen OS
是按照嵌入式系统的要求设计的一
个操½系统, 其特点是微内核结构, 多任务实时, 可
抢占式任务调度, 可定制, 可裁减, 而且给用户提供
的½数接口非常清晰, 与
Windows AP I
非常接近,
具有中½自主知识产权, 这缩短了开发展期。
P ST N
电话½关的处理器与语音电路部分是由
数据线进行连接的, 我们实际采用了并口中的数据
线进行连接, 因而需要硬件平台有并口。其次, 我们
还需要有
RS232
串口来实现蓝牙主机与蓝牙基带
及射频模块的交互。
在终端, 处理器与拨号盘也是由
并口进行连接的。
在上述的要求下, 我们选择了基于
P A -RISC
结构的
Winbond 90221
嵌入式微控 制器
½为硬件平台。
它是
32
½的微控制器, 主存为
8M B
EDO RAM , F lash
为
2MB,
一个并口,
2
个串行口,
一个用于调试, 一个用于通讯。
上述选择不仅出于目
前工½的考虑, 也考虑到了将来的扩展应用。
3. 2 嵌入式 PSTN
½关的设计与实现
与
PC
版
P ST N
½关相比, 嵌入式½关的总½
结构由
W 90221
的微控制器代替了
PC
机运行蓝牙
协议栈和应用程序。结合
PST N
电话½ 关程序和
Hopen
操½系统的结构特点, 研制中采用了如图
5
所示的½件总½结构。
½关与终端之间的操½流程如下: 由终端发起
物理链路连接过程, ½在终端启动蓝牙功½时, 它会
主动地查询周围是否有支持蓝牙语音传输的设备,
½查询到这样的设备后, 终端会向该设备主动请求
建立物理连接。在无绳电话应用模型中规定½关与
终端工½在安全模式
2
或
3,
我们采用了安全模式
3
即在建立物理连接过程中进行鉴权和加密的过程。
在建链过程中首先进行配对的工½, 即先由基
带分别向终端和½关要
P IN ( Personal Ident if icat ion
Number )
码, 只有双方的
PIN
码一致才½建立起物
理连接, 从而保证了在实际应用中的安全性。
½关与
终端建立½物理链路后, 终端会请求发现½关是否
具有无绳电话的服务, 终端只和具有该服务的½关
建立
T CS
的连接, ½终端发现½关不具有这样的服
务时, 会断开和½关的物理连接。½为主机, ½关将
控制终端的电源模式, ½关通常把一个不传输信号
的终端½于节电模式。推荐½用的节电模式是休眠
( park)
模式。所以, 建立½
T CS
层的逻辑链路连接
后, ½关会要求终端进入
park
模式。在电话呼入呼
出的过程中, ½关与终端始终保持在逻辑链路层的
连接上。
我们已对基于
P C
和
VOS
的½关与终端根据
蓝牙的测试标准进行了测试, 实现了与外部
PST N
用户的互通, 也实现了与我们研制的嵌入式
PST N
电话½关和语音终端及其它厂家的终端间的互联互
通。在测试过程中解决了许多具½问题。
3 嵌入式蓝牙 PSTN
½关及语音终端
[
5, 6]
试验平台
3. 1 概述
嵌入式
PST N
电话½关的应用必然更为广泛。
图
5 基于 Hopen
操½系统的½关½件总½结构
运行于
Hopen OS
上的蓝牙
PST N
电话½关程
序须适应
Hopen
操½系统的要求, 因而在基于
PC
机的½关程序基础上, 嵌入式½关程序具有如下三
个特点。
15
电气电子教学学报 26 卷
1)
单线程的运行模式
基于
P C
机的½关程序是多线程的, 由三个线
程构成, 分别是用户界面主线程、
VOS
和
HCI
传输
层。
为了提高程序的运行效率, 在嵌入式½关中将多
线程的机制改进 为单线程, 整个程序 在
Hopen OS
启动时½为一个线程自动加½½于
Hopen OS
用户进
程模块中。
考虑到最终的产品是不需用户界面的, 因
而省去了用户界面线程。P
C
版的
HCI
传输层有一
个线程不断循环查询串口, 收集串口数据送给上层。
这种½询的方式比较耗用
CPU
资源, 而且对外界事
件响应慢, 嵌入式版本中我们采用中断的方式收集
串口数据, ½得
CP U
可 以在串口来数据时才予处
理, 提高了
CPU
的运行效率。
VOS
线程主要是收集
各蓝牙协议层送来的消息, 进行处理, 这个线程是不
可缺少的, 在嵌入式版本中, 我们在
Hopen OS
提供
的用户进程模块中创建该子线程。
2)
以中断的方式处理串口数据
在串口初始化时向
Hopen OS
系统注册一个回
调½数, ½串口来数据时, 串口中断处理程序会调用
该½数。
为了保证实时性, 中断处理程序中做的事要
½可½少, 而且不½有引起阻塞的操½, 把大部分工
½留给线程去做, 在该回调½数中只需½一个标志
½, 触发一个事件, 引起
VOS
线程的运行, 在
VOS
线程中从缓冲区读取数据。
3)
定时器的实现
PC
版 本
P ST N
电 话 ½ 关 程 序 的 定 时 器 由
WIN 32 API
实现, 而在
Hopen OS
中定时器的实现
依赖于图½用户接口, ½
PST N
½关不需要图½界
面, 因而只½自行编写代码来实现。为此, 我们定义
了一个结构数组, 每个定时器对应一个结构。
Hopen OS
的核心½数
OS Set T ickProc( )
是设
½周期调用的½数的, ½启动一个定时器时, 调用该
½数设½每隔一个时钟周期调用的½数, 并在结构
数组中分配一个结构给新定时器。
½一个时钟周期
到来时, 将定时器结构中的对应于定时时间的时钟
周期数成员减一, 直到减到零为止, 表明该定时器的
定时已到, 调用定时器超时处理½数, 同时检查定时
器结构数组, 如果数组中没有其他分配的定时器, 则
调用
OS SetT ickProc( )
终止周期½数的调用。
由于
PC
版本的蓝牙协议栈和应用程序具有较
高的移植性, 因而移植工½只花了很短的时间, 所做
16
的工½只是将
VOS
中调用
Window s API
的部分改
换成调用
Hopen OS
提供的
API
。
3. 3 支持多用户的 PSTN
½关的研制
蓝牙无绳电话应用模型规定, 一个½关可以支
持多达7个处于激活状态的终端的接入, 和多达256
个处于休眠模式的终端的接入。
前面已经介绍, 主设
备对一个 或多个从 设备可以 同时支持 多达3路 的
SCO
链路, 这样½关可以支持三路电话同时接入。
只要
P ST N
½关拥有
PST N
的三个电话号码, 它便
可以实际起到智½型小程控交换机的½用, 充分½
现了“
½交换”
的技术思想, 即通过½件的方式来实
现原来交换机的控制、
接续和业务处理等功½, 各功
½实½之间通过标准的协议进行连接和通信。
具有
“
½交换”
的功½是蓝牙
PST N
½关与普通无绳电
话的重要区别。
P ST N
½关也½支持终端之间的内部通话, 每
个终端设备被分给一个内部号码, ½一个终端设备
需要和另一个终端设备进行通话时, 它会告知½关
这一请求, 请求中包括对方内部号码, ½关根据这一
号码, 将请求½发给另一个终端, ½终端 接受请求
后, 两个终端就½直接建立物理、
逻辑链路的连接,
进而进行通话。
终端也可以直接和另一个终端建立
连接, 而不需½关的½接, 此时, 终端与终端之间的
通信过程应该符合内部互通应用模型的规定。
在一
个终端设备只½参加一个微微½的场合, 两个终端
设备建立连接之前需要分别和½关断开物理连接;
在一个终端设备½参加多个微微½的场合, 不需要
先断开与½关的物理连接。
3. 4 嵌入式语音终端的设计与实现
与
PC
版语音终端相比, 嵌入式语音终端½用
微控制器
W90221代替了 PC
运行蓝牙协议栈和应
用 程 序, 而 且 还 增 加 了 拨 号 盘 这 一 人 机 接 口。
W 90221通过串口和蓝牙模块相连,
与½关一样, 调
用
Hopen OS
提供的文件系统
API
读写串口, 通过
并口与拨号盘相连, ½用周期查询并口的方式获得
½前按下的按键。
实际研制中½用普通话机的键盘
并增添少数几个按键, 还增加了对按键抖动等问题
的处理。
嵌入式语音终端与½关做到了很½的互通, 话
音清晰, 传输距离增加。
(
下½第23页)
评论