嵌入式蓝牙PSTN语音接入点的设计与实现

发布者:悠然自在最新更新时间:2006-10-24 来源: EDN China关键字:双模  信号  网络  手机 手机看文章 扫描二维码
随时随地手机看文章
引言

源码开放的μClinux由于其强大的网络功能和较低的成本,得到了广泛的应用。嵌入式蓝牙公共交换电话网络PSTN(Public Switched Telephone Network)语音接入点,就是我们和广东省电信科学研究院合作,在μClinux系统上开发的一种具有广阔前景的应用。其应用场景如图1所示。

蓝牙GSM双模手机在进入蓝牙PSTN语音接入点的信号覆盖范围后,即自动通过接入点在PSTN网络上登记,这样用户的话务就被转移到PSTN网络,使用时只需缴纳固定电话费;网关具有小型交换机的功能,可以为多个蓝牙手机提供类似的服务;而且同一个接入点信号覆盖范围之内的蓝牙手机间,还可以不经过PSTN直接进行相互间通话,就像对讲机一样,不用付费。本文主要介绍接入点软硬件以及设备驱动程序的设计与实现。

1 硬件的设计与实现

嵌入式蓝牙PSTN语音接入点的硬件系统框图如图2所示。整个接入点主要由网关控制模块、电话线路接口模块和蓝牙收发模块组成。

1.1 网关控制模块

网关控制模块是整个网关软件的运行平台。ΜClinux操作系统运行于此硬件平台之上,而所有应用软件又运行于操作系统之上。复杂的控制流程以及大量的外扩模块要求MPU具有较强的处理能力。经多方权衡,本设计最终选用了Motorola公司的ColdFire嵌入式处理器MCF5272。

MCF5272内部的SRAM和ROM对于运行μClinux操作系统是远远不够的。本设计对MCF5272的RAM和ROM进行了扩充,外扩了16MB的SDRAM和4MB的Flash ROM。这样的存储器配置不仅满足了语音接入点软件的需要,还为网关增加各种功能留有较多的余地。

1.2 电话线路接口模块

电话线路接口模块是网关和PSTN的接口,由线路切换继电器、电话线接口芯片、DTMF接收电路、DTMF发送电路和FSK解调及振铃接收电路组成。它通过MCF5272的12根GPIO线和4个外部中断线和网关控制模块相连。线路切换继电器用于实现电话线上的信号在振铃接收电路和语音电路之间的切换,即实现摘机挂机的功能。在待机状态下继电器触点切换在振铃接收电路一侧,等待接收振铃信号。当需要摘机时,MCF5272控制继电器切换到话音电路一侧。

电话线路接口芯片选用Philips公司的TEA1062A。TEA1062A把电话线上送来的模拟语音信号放大后发送到蓝牙收到模块的PCM编解码器;相反,也把PCM编解码器送来的语音信号放大后,放到电话线上传输。此外,它还提供了消侧音、自动增益控制等功能。

网关还需具备转发来电显示信息的功能。常见的来电显示标准分为DTMF和FSK两种。我国的来电显示国家标准是FSK制式的,大部分PSTN交换机也支持FSK标准的来电显示信息;但是也有少量PSTN交换机和一些用户内部交换机发送的是DTMF标准的来电显示信息。我们HOLTEK的HT9170D以及HT9032C芯片分别接收DTMF及FSK来电显示信息。

网关向PSTN交换机拨号和普通的电话一样,采用DTMF信号,同时也可以用DTMF信号向PSTN交换机发送一些信令信息。网关的DTMF发送选用FOLTEK的HT9200A芯片。

1.3 蓝牙收发模块

蓝牙收发模块包括蓝牙射频电路、基带处理电路和PCM编解码电路,通过MCF5272的UART1和网关控制模块相连。语音信号通过PCM编解码器MC145483和电话接口芯片TEA1062A连接。语音信号通过PCM编解码器MC145483和电话接口芯片TEA1062A连接。MCF5272把蓝牙模块接收到的数据通过协议栈解释为摘机、挂机、拨号、来电显示等命令,并通过数据线控制电话语音接收与拨叫电路的各种操作。PSTN市话网用户线与电话线路接口模块连接,电话线路接口模块把外部PSTN电话网的振铃信号和来电显示信息通过数据线传递给MCF5272。MCF5272再把这些信号通过蓝牙软件栈打成数据包并送给蓝牙模块,由蓝牙模块通过无线信道发送给终端。电话线上的模拟语音信息通过PCM编解码器编码后经蓝牙模块发送给终端,同时蓝牙模块接收终端发送过来的语音数据,经过PCM编解码器解码,形成模拟语音信号,通过电话接口芯发送到电话线上。本设计中的蓝牙基带和射频电路由CSR的BlueCore01b芯片加上功放、低噪放、收发切换开关、滤波器和一些外围电路组成。

2 驱动程序的设计与实现

2.1 μClinux设备驱动程序概述

在μClinux下,所有的硬件设备都被视为文件,从设备接收输入数据和将输出送到设备就像从普通文件接收输入和将输出送到文件一样,可以使用read()、write()等系统调用。应用程序通过系统调用和内核交互,而内核则通过设备驱动程序和具体硬件交互,如图3所示。一般来说,操作系统内核需要访问三类主要设备:字符型设备、块型设备以及网络设备。本接入点的驱动程序属于字符设备驱动程序。

每个驱动都有一个称为file_operations的数据结构,包含指向驱动程序内部大多数函数的指针。当系统引导时,驱动程序初始化函数将file_operations结构的指针送给内核,内核就可以通过该指针访问驱动程序内的函数。因而,这些函数就是进入驱动程序的基本入口点。当用户程序执行系统调用时,将导致驱动程序内相应的函数被调用。

2.2 需求分析

嵌入式蓝牙PSTN语音接入点的硬件设计中,电话线路接口模块、蓝牙收发模块是外扩的模块,需要在μClinux内核为基提供支持。

蓝牙收发模块通过MCF5272的串口2和网关控制模块相连,因而直接使用μClinux自带的串口驱动程序就可以完成对此模块的控制;而电话线路接口模块通过GPIO口以及外部中断线与网关控制模块相连,必须由我们自由提供驱动程序。

2.3 FSK来电显示芯片驱动的设计与实现

FSK来电显示驱动的主要任务就是完成FSK来电显示信息的接收,总工作流程如图4所示。其主要功能由设备驱动程序基本入口点中的open、release、read、ioctl、select函数,以及设备初始化函数、中断处理函数、下半部分处理函数、定时器超时处理函数完成。下面对其中一些关键的函数进行简要介绍。

1)read函数

read、write称为对设备的I/O操作。当用户进程对设备执行I/O操作时,设备可能并不具备进行I/O操作的条件。这些情况下,用户进程可以选择继续等待,即通过interruptible_sleep_on()函数让用户进程进入睡眠状态;也可以选择不等待,立即返回。这就产生一两种类型的I/O操作,即阻塞型I/O和非阻塞型I/O。我们的驱动同时支持阻塞型和非阻塞型的读操作。

(2)ioctl函数

设备特殊文件之所以特殊就是因为它代表一个设备,可以通过它对设备的属性进行设置,这和对设备的I/O操作不同。我们通过ioct1函数来实现,ioct1的实质就是向设备发送命令来改变设备的属性。在实现此驱动的过程中发现,FSK来电显示芯片在没有真正的FSK数据的时候也会受到干扰,使数据线上有电平的跳动,从而产生不应该产生的中断对系统的性能造成影响,因而提供了2个ioct1命令给用户进程,来控制FSK中断的打开与关闭。

(3)select函数

为了使用户进程可以使用I/O多路转接技术,在驱动程序中实现了select函数。当用户进程执行select系统调用的时候,每一个加入select测试集合的设备的select函数都被调用,如果其中任何一个或多个设备可以进行要求的I/O操作,则select返回;否则,通过select_wait()函数让用户进程进入睡眠状态,直到有任何一个设备可以进行要求的I/O操作或超时为止。

(4)中断处理函数及下半部分处理函数

FSK来电显示芯片只有1根数据线连接到CPU的GPIO口上。这根数据线的每一字节数据都以0开始、以1结束,中间是8位的ASCII码,最低位最先发送,在没有数的时候数据线一直保护高电平。由于FSK来电显示数据具有这种特殊的格式,把这根数据线同时接到CPU的外部中断线上,并设置为下降沿触发,这样每来1字节数据就会产生一次中断。FSK数据帧由若干字节这样的数据组成。FSK数据速率是1.2kb/s,因而1个bit延续约0.83ms。这样收一个字节的数据就需要耗费约8.3ms的时间。显然在中断处理程序里面接收数据是不合适的,所以在中断处理程序中只调用mark_up函数标记数据的到来,而把接收及处理数据的任务留到下半部分程序中完成。

下半部分程序负责接收1字节的FSK来电显示数据,由于1字节数据中可能有多个下降延,所以在进入处理函数后首先要关闭FSK中断,然后每0.83ms读一次GPIO口,接收一位的数据,收完1字节数据后要打开FSK中断,以接收下一字节的数据。

根据本次FSK中断是否为此次通信的每一个中断,可以判断本次接收的是否为FSK数据帧的第一个字节,如果是,那么将启动一个内核定时器,其超时时间设为1s(因为一个FSK数据帧的传输时间不会超过1s)。在定时器超时后,内核将调用定时器超过时处理函数,提取出主叫用户的电话号码,并通过wake_up函数唤醒任何等待读此设备的用户进程。

2.4 DTMF语音拨号、来电显示驱动的设计与实现

由于DTMF芯片要提供双音多频拨号的功能,所以与FSK芯片驱动相比,DTMF芯片驱动中多了一个write函数。DTMF芯片的多音多频拨号部分有2根线和CPU相连:1根数据线、1根时钟线。Write函数实际上就是根据芯片的写时序把用户进程发来的数据传送到芯片上去。

相比于FSK来电显示信息的接收而言,DTMF来电显示信息的接收就比较容易了。DTMF来电显示芯片提供了1根中断信号线和4根并行数据线,每次中断来只需要读并行信号线,并进行简单的解码、缓存工作就可以了。此外为了方便,把摘、挂机,抬高、拉低静音等命令者包含此驱动的iotcl命令集中了;和FSK驱动一样,为了防止干扰对DTMF来电显示信息的影响,也在iotcl命令提供了打开、关闭DTMF来电显示中断的命令。

3 应用软件的设计与实现

接入点应用程序位于前面介绍的硬件平台以及设备驱动程序之上,三者之间的关系如图5所示。接入点应用程序是整个软件的核心,它与串口驱动程序、FSK来电显示驱动程序、DTMF来电显示驱动程序、DTMF拨号驱动程序、Flash驱动程序、振铃驱动程序交互,并通过后五个驱动程序控制具体硬件完成相关功能。接入点可以对允许接入的蓝牙终端属性进行设备,只有被授权的蓝牙终端才能通过接入点访问PSTN。接入点的Flash可设置多个允许接入的蓝牙终端,并可通过与网关并联的电话进行增添、删除一个或全部删除终端设置的操作。

对于设置为双模的蓝牙手机,必须先向网络登记,网络返回成功信息的方可与网关建立物理和逻辑链路;而在双模手机主动与网关拆开物理链路时,也必须向网络登记。接入点可以发现已登记的双模手机是否离开本网关信号覆盖范围,并自动向网络登记,将双模手机的话务切换回移动网络中,而并模终端无需这样的操作。网关可同时与7个蓝牙终端建立ACL(Asynchronous Connection Less)对于不同调制方式(FSK及DTMF)来电均能接收号码以及振铃,并根据来电号码分析被呼叫方,根据蓝牙无绳电话协议CTP(Cordless Telephony Profile)建立起TCS(Telephone Control Specification)链路、SCO(Synchronous Connection Oriented)链路。当来电显示为非特服号开头的号码时,表示来电来普通电话,所有与网关相连的分机终端都振铃。某一终端接听后,其它终端停止振铃,回到空闲状态。当来电显示为特服号开头的时候,表示来电为访问特定终端的话务,可以分析来电显示的格式得到接入顺序号,并使对应的蓝牙终端振铃。蓝牙双模或者单模终端能通过网关、PSTN网络拨打外部电话,网关支持终端多次拨号,并且外部电话能收到来电显示。

我们设计的应用程序流程如图6所示。在μClinux系统中,此应用程序被视为一个用户进程。在系统启动rc脚本文件的末尾添加该进程,则系统在完成初始化工作后会自动启动该进程。对用户进程而言,硬件设备被视为设备描述文件,它和普通的文件没有区别,可用文件描述符(一个非负整数)表示。在程序启动时,用Linux系统提供的open函数打开这些设备,同时设置这些设备的工作方式;启动蓝牙协议栈,并设置工作模式、服务发现数据库和其它参数,使网关始终处于被发现和被动建链的一方。


此后应用程序地侦听、等待各设备数据的到来,我们采用了I/O多咱转接的技术来实现对多个描述符的读、写和管理。该技术的基本思想是:先构造一张有关描述符的表,然后调用一个函数,它要到描述符中的一个已准备好表示I/O时才返回。在返回时,它告诉进程哪一个描述符已准备好可以进行I/O。select函数可以执行I/O多路转换,传向该函数的参数告诉内核我们所关心的描述符、对于每个描述符我们所关心的条件(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异常条件?)以及希望等待的时间(可以永远等待、等待固定时间或完全不等待)。我们在程序中设置了永远等待,即只有所指定的描述符中的一个已准备好或捕捉到一个信号才返回。从select返回时,内核告诉我们已准备好的描述符的数量和哪一个描述符已准备好读、写或异常条件,应用程序这个信息进入相应的处理子模块。

结语

基于嵌入式μClinux系统的蓝牙PSTN网关实现了上术的所有功能,使蓝牙三合一电话的应用成为现实。最多7个蓝牙终端能同时与该网关建立物理和逻辑链路,网关能建立起一条语音链路。经实测,在传输距离不超过10m的前提下,话音质量良好,清晰无失真;在传输距离超过10m后,由于蓝牙的自动功率控制功能,会增大发射功率,模拟语音电路部分引入的电磁干扰噪声增加,影响通话效果,此问题可以通过调整PCB布局布线和对易干扰电路增加屏蔽来消除。根据标准蓝牙协议,蓝牙终端和网关之间最多可建立起3条语音链路,这将在下一个版本中加以改进。

关键字:双模  信号  网络  手机 引用地址:嵌入式蓝牙PSTN语音接入点的设计与实现

上一篇:3G无线上网卡的架构与设计
下一篇:非线性放大引发无线电干扰的原理及评测

推荐阅读最新更新时间:2024-05-07 15:53

这款钱包除了防丢 还能帮你找手机和卡片
    据外媒Trusted Reviews报道,如果你经常忘记钱包放在哪里,那么这款名为“Walli”的产品可能会对你有用。 这款钱包除了防丢 还能帮你找手机和卡片(图片来自Trusted Reviews)     “Walli”是一款智能钱包,可以通过蓝牙无线连接至手机,当二者的距离超出一定范围时,就会触发通知提醒。同时,如果本应该放在钱包的卡片没有归位,“Walli”也会发出提醒,这一功能基于计时器机制。   如果丢失的不是钱包而是手机,“Walli”也能帮助你。如果两者的距离不超过30米,只需双击其表面,手机就会发出提示音,即使是在静音模式下。   安全性方面,“Walli”可以屏蔽RFID,避免他人通过扫描
[手机便携]
港专家:手机取代电脑 称霸社交平台
    Wise Search创办人、香港互联网专家林永君接受本报访问时表示,智能手机明年迎来普及年,预料本港机价和流动网络价格大幅下降,手机或取代电脑成为主流社交平台。他并指出,今年大受追捧的平板电脑因多用作浏览资讯,明年难有大发展。  林永君预计,流动网络普及后,手机社交应用程式用家将由现时约3成,大幅提升至7成,更多港人透过手机使用facebook等社交网络,「社交+手机」势成明年关键词。  林永君相信香港明年有机会踏入「物联网纪元」,指松下电器已在日本推出家电网络系统,用家可透过手机下载菜谱,透过雪柜内置镜头查看储存食物,甚至透过网络启动电饭煲。但这些基于无线射频辨识技术(RFID)的电器何时在港推出,目前尚未能知。至于机场
[手机便携]
乐视首款“全国产”手机 S1 将于9月30日10点开售
  乐视昨日在北京召开媒体沟通会,宣布旗下乐视手机正式回归,并推出回归后首款产品乐视手机 S1,目标用户是网约车司机、外卖小哥,以及父母一辈等。   今日,乐视宣布旗下首款“全国产”手机 —— 乐视手机 S1 将于 9 月 30 日 10 点在乐视商城开售,预计届时将公布产品售价。   IT之家了解到,乐视在沟通会展示了 S1 的工程机,一共有四款,只是机身材质有所不同,涵盖了从 AG 磨砂玻璃到素皮等市面上常见的材质。据悉该机采用一块 720P 级别的水滴屏,搭载虎贲 T7510 芯片,支持 5G 网络连接,背面则有三摄镜头模组和一颗实体指纹识别按键,电池容量为 4900mAh。   乐视手机 S1 内置了华为账
[手机便携]
普源DG4162信号发生器的产品功能和参数介绍
DG4000系列集函数发生器,任意波形发生器,脉冲发生器,谐波发生器,模拟/数字调制器,频率计等功能于一身的多功能信号发生器;该系列所有型号皆具有2个功能完全相同的通道,通道间相位可调。 DG4162信号发生器产品功能 1、宽大屏幕,新颖外观 DG4162信号发生器产品功能 清晰显示通道的参数设置值、波形形状及输出配置,使用户对仪器当前的输出状态一目了然。 2、等性能双通道,通道间相位精确可调 DG4162信号发生器产品功能 双通道性能完全相同,包括基本波、任意波、调制波、扫描、脉冲串等波形输出。通道间可进行波形或状态复制,也可以进行频率/幅度/相位耦合。通道间相位精确可调。 3、内置150种任意波形
[测试测量]
普源DG4162<font color='red'>信号</font>发生器的产品功能和参数介绍
三星手机霸主地位 还能保多久?
    ●三星手机霸主地位 还能保多久? 第三季以来,智慧手机市场上接连发生大事。微软收购诺基亚,苹果终于推出平价iPhone 5C。有人指出,这些大事使智慧手机市场再次掀起变化浪潮。但其实,手机市场在经历诸多变化后,已经趋于稳定。 微软进军手机制造领域早在意料之中。CEO鲍尔默在去年写给股东们的信中宣布:「微软将不再只是软体公司,而会向设备和服务公司发展。」但是,微软不会帮助诺基亚恢复竞争力。相反,今后这两家公司很有可能会在无休止的协调过程中因分歧和矛盾更快走向灭亡。未能妥善应对移动时代导致实力减弱的微软的操作系统,将更快失去力量。 收购摩托罗拉的谷歌也面临进退两难的处境。苹果市场占有率和收益率逐渐下降,也是事实。谷歌-摩托罗拉、
[手机便携]
交通部长体验自动驾驶,在释放什么信号
在沃尔沃汽车在北京西六环真实道路上进行自动驾驶测试一个多月后,交通部部长杨传堂18日到访瑞典与瑞典基础设施部部长Anna Johansson签署了双边合作备忘录加强中瑞在交通领域的合作。成立于2012年的中瑞交通安全研究中心将开展第二阶段的工作,重点开展智能交通安全、新能源汽车安全和自动驾驶等项目的研究,车与车及车与设施通信的自动和协同驾驶等前沿热门技术。同时也将关注交通安全政策、法律、法规和标准的制修订工作,在制度层面推动汽车智能技术被社会接受与认可。   1交通部长杨传堂来到瑞典 中国交通运输部部长杨传堂18日到访瑞典哥德堡,与瑞典基础设施部部长Anna Johansson签署双边合作备忘录,以进一步加强中瑞两国在交通领域的
[嵌入式]
家电和5G是重点 手机厂商集体等3月
每年1月科技圈都会迎来一场技术与产品的盛宴,那就是在阳光明媚的拉斯维加斯举办的国际消费电子展(以下简称CES 2019)。许多品牌都会在这里展示他们最新的技术和产品,可以说这一展会将给2019年开个头,甚至19年一些“重大改变”都能在这里感知到。   看CES 2019关注新浪科技,我们将为您带来最新最全的报道: 专题 。 国际消费电子展   和许多展会一样,在开展之前CES 2019的许多新品都保留着他们神秘的面纱,但是我们依然能从往日的消息中探个究竟。在CES 2019开展前,新浪数码为大家盘点一下CES 2019会有哪些看点。   三星:没有Galaxy S10,电视将成一大亮点   按照之前的传
[手机便携]
家电和5G是重点 <font color='red'>手机</font>厂商集体等3月
杨幂手机壳上热搜:本人自用手机品牌是realme
今天下午,微博话题“杨幂花少用手机壳照镜子”冲上热搜榜。据悉,杨幂参与湖南卫视《花儿与少年》录制时,被网友拍下本人用手机壳照镜子。   值得注意的是,杨幂本人自用手机是realme品牌。从个人发的微博动态来看,杨幂自用手机型号为realme GT Neo3。   这款手机最大的看点之一是全球首发150W光速秒充,5分钟充至50%,充到100%不到一刻钟,堪称是手机闪充界的“卷王”。它搭载光速秒充芯片,经过1600次循环充放电,电池有效容量≥80%,获得了莱茵安全快充认证。   此外,realme GT Neo3首批搭载联发科天玑8100芯片,这颗芯片采用台积电5nm制程工艺,由4颗主频为2.85GHz的Cortex-A78
[手机便携]
小广播
最新网络通信文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved