首页> 中国专利> 电话POS FSK通信软件调制解调的实现方法

电话POS FSK通信软件调制解调的实现方法

摘要

本发明涉及一种电话POSFSK通信软件调制解调的实现方法,通过电话POS的CPU、DMA、ADC、DAC以及后台定时器配合完成:其软件调制是通过所述CPU经调制算法实时计算FSK、DTMF、CAS音数据,定时器按照固定采样频率触发DAC,该DAC触发直接内存存储器DMA,将数据传输到DAC输出寄存器,输出模拟信号,实现软件调制;其软件解调是通过所述定时器按照固定采样频率触发ADC,该ADC触发DMA将采样数据从ADC数据寄存器传输至指定的缓冲区;然后经解调算法,实时计算缓冲区的数据,实现软件解调。本发明改变了现有依靠专用芯片实现调制解调的方案,不仅节省了成本,而且缩小了设备的体积,稳定性高,具有较好的实用价值。

著录项

  • 公开/公告号CN102447660A

    专利类型发明专利

  • 公开/公告日2012-05-09

    原文格式PDF

  • 申请/专利权人 福建联迪商用设备有限公司;

    申请/专利号CN201110349202.3

  • 发明设计人 张炽成;程环;颜恒;

    申请日2011-11-08

  • 分类号H04L27/10;H04M1/253;

  • 代理机构福州元创专利商标代理有限公司;

  • 代理人蔡学俊

  • 地址 350003 福建省福州市鼓楼区洪山园路68号实达科技城

  • 入库时间 2023-12-18 05:04:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-03-11

    授权

    授权

  • 2012-06-27

    实质审查的生效 IPC(主分类):H04L27/10 申请日:20111108

    实质审查的生效

  • 2012-05-09

    公开

    公开

说明书

技术领域

本发明涉及电话POS通信领域,特别是一种电话POS FSK通信软件调制解调的实现方法。

背景技术

目前,电话POS的FSK通信解决方案包括以下几点:

1)多为专用芯片CMX865实现,采用中断信号或查询方式,与CPU同步。

2)DTMF音的软件解调,当前主要采用DFT、FFT或Goertzel算法计算时域信号的频谱,经比较分别得出高频组和低频组的最相似频率,从而得到两个高低频组的频率值,继而得到DTMF码。

3)FSK的软件解调,目前有移位相关、2点DFT、跳变沿统计等解调方案。这些方案,对处理器的外围器件资源(定时器)和运算能力要求也不一,性能也各有差异。

4)一般的DTMF、FSK软解调技术,多采用数字信号处理方法在DSP上运行,在STM32(72MHz主频)上运行比较吃力。

采用专用调制解调芯片CMX865解决方案,有以下缺点:

1)      该芯片无数据缓冲区。CPU驱动它时,一般采用中断信号与其同步。每次接收或发送一个字节时,CPU都必须进入中断程序,对软件系统的实时性要求较高。

2)      该芯片对信道质量适应性较差。对较差的线路,需要通过设置灵敏度来解决,即需要用户在通信失败时,进行灵敏度设置。这就可能导致客户对我司电话POS产生反感情绪,甚至影响市场业务的进行;同时还增加了研发人员出差的费用支出。

3)      该芯片成本较高。一块CMX865芯片需要大约12元钱,如果每年电话POS销量在30万台左右,那么在这种芯片解码方案上的成本就达到360万,如果使用软解码,那么这部分的成本就可以节省下来。

发明内容

有鉴于此,本发明的目的是提供一种电话POS FSK通信软件调制解调的实现方法,改变了现有依靠专用芯片实现调制解调的方案,不仅节省了成本,而且缩小了设备的体积,提高了通信的可靠性。

本发明采用以下技术方案实现:一种电话POS FSK通信软件调制解调的实现方法,其特征在于:通过电话POS的CPU、直接内存存储器DMA、ADC、DAC以及后台定时器配合完成软件调制和软件解调:

所述的软件调制是通过所述CPU经调制算法实时计算FSK、DTMF、CAS音数据,放置直接内存存储器DMA的缓冲区;所述定时器按照固定采样频率触发DAC,该DAC触发直接内存存储器DMA,将数据传输到DAC输出寄存器,输出模拟信号,实现软件调制;

所述的软件解调是通过所述定时器按照固定采样频率触发ADC,该ADC触发直接内存存储器DMA将采样数据从ADC数据寄存器传输至指定的缓冲区;然后所述CPU按照FSK、DTMF、CAS音、信号音数据的特征,经解调算法,实时计算缓冲区的数据,实现软件解调; 

在本发明一较佳实施例中,所述软件调制中直接内存存储器DMA传值个数到一半或全部时,触发相应的调制中断,在中断服务程序中,调用调制算法,进行软件调制计算。

在本发明一较佳实施例中,所述的调制算法包括FSK调制、DTMF调制和CAS音调制;

所述的FSK调制支持bell202和v23两种FSK协议,在初始化时,根据不同的协议设置,将频率变量因子初始化为不同的频率值。FSK计算公式为:

A*cos(φ+2*π*(fc±fm)*t)

式中,A为输出幅值,φ为上一比特结束时的相位,fc为载波频率,fm为调制频率,如bell202协议,fc=1700Hz,fm=500Hz;±的取法为:当输出比特1时,取减号;输出比特0时,取加号;中断时调用调制接口,计算对应空闲半缓冲区的值;调制计算时,某相位的余弦值,通过查表法获取;

所述DTMF调制,其流程和上述FSK调制相似,DTMF计算公式为:

A*(cos(2*π*f1*t)+cos(2*pi*f2*t))/2

式中,A为输出幅值,f1为低频,f2为高频;其取值视要发送的字符而定,具体参见标准文档DTMF频率表;

所述CAS调制,与DTMF一样,不同的是f1和f2的取值固定,分别为2130Hz和2750Hz。

在本发明一较佳实施例中,所述软件解调中直接内存存储器DMA传值个数到一半或全部时,触发相应的解调中断,在中断服务程序中,调用解调算法,进行软件解调计算。

在本发明一较佳实施例中,所述的调制算法包括FSK解调、DTMF解调、CAS解调和信号音解调;

所述的FSK解调步骤如下:

步骤11,将原始ADC采样数据,通过一个IIR带通滤波器,滤除FSK频带以外的噪声,得到初步处理后的信号数据;

步骤12,根据所述信号数据,计算信号数据中两频率点(fc+fm)和(fc-fm)的能量差;fc及fm的值,根据不同的协议进行设置,对算得的能量差,将其作为基带信号;

步骤13,对所述的基带信号,按照采样率和波特率的比例关系,进行抽样判决,得出比特流;

步骤14,根据所述的比特流,进行寻找同步码、字节合成、CRC校验处理,按照FSK链路协议进行字节合成,完成后进行CRC校验,若校验通过,则提取出消息字节,送往应用层;若校验错误,则进行错误处理;

所述DTMF解调包括以下步骤:

步骤21,DTMF是两组频率信号的叠加,低频组频率为697、770、852、941,高频组为1209、1336、1477、1633,单位Hz,根据ADC采样数据,计算DTMF信号总能量值及以上8频点能量值,查找各组能量最大频率点,计算其所占总能量比例;同时计算各频点二次谐波能量及带通滤波后的总能量,供后续判决使用;

步骤22,对所述比例,进行判决;若二者均大于所设定阈值,则认为是DTMF字符;若不满足,则认为是静音;判决后将形成字符流和静音流;

步骤23,将所述的字符流或静音流,进行重复确认;重复次数依据计算所使用的采样数据时长及时间间隔设置;然后判决所得字符,送往应用层;

所述CAS音解调:CAS音,是频率为2130Hz、2750Hz的合成音,其实就是特殊的DTMF音,解调技术和上述DTMF一样;

所述信号音解调包括以下步骤:

步骤31,将ADC原始数据,通过一个IIR低通滤波器,滤除高频噪声及其可能存在的高次谐波分量;

步骤32,根据步骤31的结果,分别计算频率430、440、450、460、470Hz的能量,取其最大值,作为信号音的能量;计算信号总能量;计算信号音能量与总能量的比值;

步骤33,根据所述的比值进行阈值判决,若大于60%,则认为是信号音,若小于60%,则认为不是信号音。

本发明采用软调制解调方案,替代现有CMX865方案。这不仅能更好地适应各种线路环境,无须用户手动设置解调灵敏度,用SoftFsk相比CMX865,加了特殊滤波算法,更适宜中国众多非标准电话交换机导致的复杂线路环境;而且本发明采用软解码替代原有的专用芯片,每个电话POS可以节省大约12元钱的成本,为我司在电话POS领域的市场竞争上提供更好的支持。

附图说明

图1是本发明实施例DAC、DMA调制输出示意图。

图2是本发明实施例ADC、DMA解调输入示意图。

图3是本发明外围接口调制部分电路原理示意图。

图4是本发明外围接口解调部分电路原理示意图。

具体实施方式

本发明实施例提供一种电话POS FSK通信软件调制解调的实现方法,其特征在于:通过电话POS的CPU、直接内存存储器DMA、ADC、DAC以及后台定时器配合完成软件调制和软件解调:所述的软件调制是通过所述CPU经调制算法实时计算FSK、DTMF、CAS音数据,放置直接内存存储器DMA的缓冲区;所述定时器按照固定采样频率触发DAC,该DAC触发直接内存存储器DMA,将数据传输到DAC输出寄存器,输出模拟信号,实现软件调制;为了支持实时调制,当DMA传输输出数据到一半或全部时,即启动中断服务,调用调制算法,为对应空闲半缓冲补充数据;如图1所示。

所述的软件解调是通过所述定时器按照固定采样频率触发ADC,该ADC触发直接内存存储器DMA将采样数据从ADC数据寄存器传输至指定的缓冲区;然后所述CPU按照FSK、DTMF、CAS音、信号音数据的特征,经解调算法,实时计算缓冲区的数据,实现软件解调;为了支持实时解调,当DMA传输采样数据到一半或全部时,即启动中断服务,调用解调算法,计算对应半缓冲的采样数据;如图2所示。

具体的,调制过程中,直接内存存储器DMA将数据传输到DAC输出寄存器,当传值个数到一半或全部时,系统触发相应的调制中断,在中断服务程序中,根据当前的调制模式,调用相应的功能调制算法;利用相应的调制算法,为输出缓冲区补充数据。本实施例POS的FSK通信软件调制子系统,其信息流向依次为应用层、调制器(FSK/DTMF/CAS)、DAC输出数据、DAC口线信号、信道信号。其中,调制器为软件调制系统的核心。为满足电话POS的FSK通信需求,调制器应能支持以下几种模式:FSK调制(支持bell202和v23),DTMF调制,CAS调制。

FSK调制,为了支持bell202和v23两种FSK协议,在初始化时,根据不同的协议设置,将频率变量因子初始化为不同的频率值。FSK计算公式为:

A*cos(φ+2*π*(fc±fm)*t)

式中,A为输出幅值,t表示采样时间,A为幅值,φ为上一比特结束时的相位,fc为载波频率,fm为调制频率,如bell202协议,fc=1700Hz,fm=500Hz。±的取法为,当输出比特1时,取减号;输出比特0时,取加号。当输出DMA传输一半或全部数据时,触发中断服务,调用调制接口,计算对应空闲半缓冲区的值。调制计算时,某相位的余弦值,通过查表法获取。

DTMF调制,流程和上述FSK调制相似。DTMF计算公式为:

A*(cos(2*π*f1*t)+cos(2*pi*f2*t))/2

式中,A为输出幅值,f1为低频,f2为高频。其取值视要发送的字符而定,具体参见标准文档DTMF频率表。

CAS调制,与DTMF一样。不同的是f1和f2的取值固定,分别为2130Hz和2750Hz。

在解调过程中,从ADC数据寄存器传输数据至DMA的采样缓冲区,当传值个数到一半或全部时,触发相应的解调中断,在中断服务程序中,调用解调算法,进行软件解调计算。本实施例POS的FSK通信软解调子系统,其信息流向依次为信道信号、ADC口线信号、AD采样数据、解调(FSK/DTMF/CAS/信号音)、应用层。为满足电话POS的FSK通信需求,解调器有以下几种模式:FSK解调(支持bell202和v23),DTMF解调,CAS解调,信号音解调。

以下分述各解调模式的原理及步骤:

FSK解调:

对于FSK软解调,该技术有移位相关运算、2点DFT运算、跳变沿统计等解调方法,各有优缺点。其中移位相关运算较快,但不够精确,对小信号的相位造成模糊。跳变沿统计法最快,但也不够精确。2点DFT运算,运算量最大,需对每个采样点附近采样值都计算能量信息,但其解调效果较好,对大信号失真和小信号都不敏感。

本实施例采用2点DFT算法,对FSK信号进行解调。步骤如下:

1.    将原始ADC采样数据,通过一个IIR带通滤波器,滤除FSK频带以外的噪声,得到初步处理后的信号数据,送往下步。

2.    根据上步的计算结果,计算两频率点(fc+fm)和(fc-fm)的能量差。fc及fm的值,根据不同的协议进行设置,如bell202协议规范规定,fc = 1700Hz,fm = 500Hz。对算得的能量差,可将其作为基带信号,送往下步;

3.    对上步所算得的基带信号,按照采样率和波特率的比例关系,进行抽样判决,得出比特信息,送往下步;

4.    根据上步送来的比特流,进行寻找同步码、字节合成、CRC校验处理。按照FSK链路协议进行字节合成,完成后进行CRC校验。若校验通过,则提取出消息字节,送往应用层。若校验错误,则进行错误处理。

DTMF解调:

1.    DTMF音是两组频率信号的叠加。低频组频率为697、770、852、941,高频组为1209、1336、1477、1633,单位Hz。故可根据ADC采样数据,计算信号总能量值及以上8频点能量值,查找各组能量最大频率点,计算其所占总能量比例,送往下步。根据配置,还可计算各频点二次谐波能量,及带通滤波后的总能量,供下步判决使用。

2.    对于上步算得的两个最大值比例,进行判决。若二者均大于所设定阈值(如40%),则认为是DTMF字符;若不满足,则认为是静音。根据配置,可进行谐波判决及带内带外能量判决,可减少误判。判决所得的字符流或静音流,送往下步;

3.    对2步送来的字符流或静音流,进行重复确认。重复次数依据1步计算所使用采样数据的时长及时间间隔设置。然后判决所得字符,送往应用层。

CAS解调:

CAS音,是频率为2130Hz、2750Hz的合成音,其实就是特殊的DTMF音,解调技术和上述DTMF一样,不再赘述。

信号音解调:

在和电信交换机通信过程中,交换机可能发出不同的信号音,时长不同,其含义也不同,如拨号音、回铃音、忙音等。信号音,是425-475Hz的单音信号。对于信号音的解调,主要有以下步骤:

1.      将ADC原始数据,通过一个IIR低通滤波器,滤除高频噪声及其可能存在的高次谐波分量;

2.      根据1步的结果,分别计算频率430、440、450、460、470Hz的能量,取其最大值,作为信号音的能量;计算信号总能量;计算信号音能量与总能量的比值,送往下步;

对上步所得比值进行阈值判决,若大于60%,则认为是信号音,若小于60%,则认为不是信号音。

这里要说明的是,本发明软件调制解调,对硬件只关心到DAC和ADC口线为止。DAC及ADC口线至电话线接口之间的调理电路,原理图如图3和图4所示。

调制部分,CPU的DAC器件,将信号输出至DAC口线(即TXOUT引脚)。TXOUT信号经三极管放大后,输出至电话电路总线TEL_LINE上,最终送入实际电话线上。

解调部分,电话线信号耦合至TIP_IN,TIP_IN信号,经过滤波、运算放大电路放大后送往CPU的ADC口线。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号