APP下载

无线传真软硬件接口的设计与实现

2015-06-01陈治清卢梦怡

关键词:波特率报文嵌入式

李 哲,陈治清,卢梦怡

(西安邮电大学电子工程学院,西安 710061)

无线传真软硬件接口的设计与实现

李 哲,陈治清,卢梦怡

(西安邮电大学电子工程学院,西安 710061)

针对传统无线传真实时方案开发周期长、难度大的问题,提出一种基于存储转发的通用无线传真接口方案.选用带有并行EPI接口的LM3S9B6和CY62157EV30作为处理器和存储器,将传真数据存储起来,这样就实现了传真机与处理器之间通信和无线模块与处理器之间通信过程的分离.同时在深入研究T.30、T.4的基础上,在此硬件设计实现了通用的、可靠地传真通信软件.通过对实际系统的运行结果分析,能有效地缩短无线传真的开发周期和降低开发难度.

无线传真;存储转发;语音通信;T.30;T.4.

传真通讯是一种传输静态图文信息的通信手段.无线传真技术的应用在偏远地区远程医疗、移动办公等有着十分重要的实用价值.

无线传真[1]有GSM[2-3]、CDMA[4]、短波等实现方式.文献[1]GSM传真系统让GSM模块和传真接口模块同时工作,传真接口直接将数据转给GSM模块.文献[3]CDMA无线模拟传真系统,采用FIFO机制来解决无线模块和传真通信模块的速度不一致问题,相对文献[1]效率有所提高.上述两种方法,实时性好,但是实时方案不利于模块化的开发思想,每个开发者必须理解T.30[5]协议,增加了开发难度;再者,故障定位困难,当传真失败时,不能马上定位是传真与处理器、处理器与无线终端还是无线终端与无线终端之间出现故障.这样就增加了开发难度.

为了更好地解决这些问题,本设计利用ARM7处理器、嵌入式Modem、收号器、音频放大电路、用户接口电路、无线接口模块搭建基于存储转发方案的通用传真接口硬件平台,分离了无线和传真通信过程,并在此硬件平台上实现了传真和语音通信的功能,对传真接口硬件平台进行测试和分析.

1 系统工作原理

1.1 传真通信规程

根据国际电联ITU-T.30建议书,完成一次传真通信过程,需要经历以下5个过程.

(l)阶段A:呼叫建立阶段.传真通信过程的呼叫建立与电话呼叫建立基本相同.主叫拨号、被叫应答之后,传真机连接到线路上;主叫发送主叫单音CNG,被叫发送应答单音CED.

(2)阶段B:报文前过程.此阶段完成了传真机通信能力的协商过程,并用1.5 s的时间发送连续的0完成训练,训练成功后进入C阶段.

(3)阶段C:报文过程.阶段C分为Cl和C2,Cl为报文中过程,C2为报文传输过程,两个过程被安排在同一段时间内.即在传送报文的同时应按照一定的规程进行某些控制.报文中规程的内容包括:报文中的同步信号、差错检测和纠正、线路监测.

(4)阶段D:报文后过程.包括报文结束信号、接收证实信号、多页信号及传真过程结束信号.

(5)阶段E:呼叫释放.传真通信结束并得到接收证实后,传真机释放线路,将电路交还给电话机.

1.2 无线传真系统的工作原理

无线传真通用硬件平台如图1所示.

传真模块作为传真通信系统的核心,ARM控制器作为其主控单元,控制着嵌入式Modem完成传真的5个阶段、传真数据存取、无线传真的模块的收发、收号器的收号以及语音通信过程.

常见的无线收发传真模块有:与传真模块以网络接口相连的短波电台、与传真模块以串口、USB接口相连的2G/3G、GPRS的无线模块.这些无线模块都可以作为传真和语音的传输通道.本设计将这些接口引出来提供给无线通信模块.

传真机发送传真:先摘机,传真模块检测到摘机,根据收号器收到的号码判断是传真还是电话,若是传真,传真模块软件模拟接收方,通过T.30协议接收来自T.4[6]格式的传真页数据,存储在SRAM存储器.然后,ARM控制器读出传真数据,通过网络接口传送到短波电台模块,或者通过USB接口(USB协议)、串口的2G/3G模块,再通过无线模块发送到远端.

传真机接收传真:先将远端传真页数据,通过天线接收到无线模块,无线模块通过相应的接口协议传送到传真模块,存储在传真模块SRAM存储器.传真模块向传真机振铃,传真机摘机,再通过T.30传输协议,将存储区的传真内容发送到传真机.

1.3 通话链路的建立过程和语音通信过程

图2中拨号音、拨号信令、摘机指令是ARM控制器通过串口,在AT+FLASS=8模式下,向嵌入式MODEM发送语音AT指令所产生的;振铃是ARM控制器控制用户接口电路产生的.

图2 通信链路的建立过程

2 整体硬件电路

整体硬件结构图如图3.

图3 整体硬件结构图

ARM处理器主要功能有:控制用户接口电路(AG1170)FR和RM管脚产生振铃、读取SHK引脚识别摘挂机;通过串口控制MODEM完成传真数据发送和接收;控制语音通话的挂断和接通;读取收号器的号码;控制SPI总线完成数据的存储和读取;控制EPI总线完成传真数据的写入和读出,控制串口GSM模块、CDMA模块;控制网口完成短波模块数据的收发.用户接口电路功能有:向电话或传真发送振铃;识别摘挂机;完成2—4线转换,完成语音信号输出.调制解调器:完成调制和解调的功能.收号器:将双音频模拟信号变成数字信号.存储模块:包括串行存储模块:SPI接口的1M Flash,EPI接口的SDRAM.模拟放大模块:完成语音信号的放大、缩小.无线通用接口平台:串口、网口、USB口.

3 T.30通信协议软件设计与实现

为了能从传真机接收传真页数据和将存储的传真页数据发向传真机,传真机打印传真页数据,在ARM控制器运行软件控制嵌入式Modem和传真机之间的通信.传真收发过程就是对Modem不断操作的过程,通过Modem完成数据的收发及信号的握手[5].DTE向调制解调器发送命令,调制解调器DCE对命令做出响应,完成该命令的操作,并返回命令执行的结果码.DTE上的软件要用到Modem的AT指令和T.30所规定的HDLC帧.

在T.30中规定了MODEM与传真机、MODEM与MODEM的传真传输协议,它规定了一次传真的具体步骤过程;而在T.31中规定了DTE(Data Terminal Equipment在本设计中就是CPU)控制DCE(嵌入式Modem)的控制协议的具体实现.所有的控制过程都采用HDLC(High Level Data Link Control,高级链路控制)帧结构,HDLC帧包括标识字段、地址字段、控制字段、信息字段、校验字段.

根据T.30协议,在拨号建立连接之后,主叫端本地有文件需要发送,则自己作为传真发送方,若本地没有文件需要发送,则被叫作为发送传真方;否则作为传真接收方.然后,传真发送方和接收方进行性能、速率的协商,发送文件方发送DIS标识自己的能力,接收方和自己的能力的比对,将自己的能力告知发送方.经过协商之后,需要把发送命令的发送波特率300 bps变为发送传真页数据的波特率,发送方和接收方都需要将自己的波特率提高,这个过程需要时间,根据T.30协议需要等待75±20 ms时间,ARM控制器发送AT+FTS=8来等待调制解调方式的改变,再发送AT+FTM=所协商的波特率,返回connect结果码之后,需要对所协商的波特率进行训练.用于检验信道是否能接受给出的速率指示,根据T.30协议,训练需要发送1.5 s±10%的0串.因此根据公式1.5 s±10%*波特率/8算出需要发送的0串的个数.接收端正确接收到训练后发送CFR(Confirmation To Receive)信号,否则发送FTT(Failure To Train)信号,发送端更新DCS相应字段并重发降速训练序列,直至接收到CFR.在收发双方确定连接所能够支持的最大速率传输速率下传输报文.非纠错模式的报文在阶段C一次性全部传输完毕,其报文后命令有3种,分别为多页信号MPS、传真过程结束信号EOP和报文结束信号EOM.正确接收报文后接收端发送MCF(Message Confirmation)信号.发送端收到MCF后,进入E阶段,并发送DCN(Disconnect)信号,双方拆链路.

图4 发送一页传真流程图

由于篇幅有限在图4中只展现了ARM控制器作为主叫发送一页的过程.

4 整个系统的验证软件及实现

本系统设计的目的是为无线传真提供一个通用的软硬件平台,由于不同的无线传真使用的协议不同,从而导致传真数据包的组包形式不同,但相对传真页数据来说,都是透明传输,所以本系统软硬件的验证可采用以太网代替无线模块传真页数据的传输.在KeilUvision4下完成代码的编写,将所设计的软件程序下载到开发板,在线调试.最后下载到flash中离线运行,实现了传真机与传真机之间的语音通信和收发传真.在测试过程中先假设收号器收到“*#”为传真,收到“55”为电话.测试的主要软件如图5所示.

00空闲状态,用来监测本地传真机是否摘机和监测网口,看对方是否有传真或者电话;02接续状态,通过网络将电话发出,等待对方的闲忙回应;07被传真状态,fclass=1,ata,进入B阶段;08主网发送状态,进入网络传真发送,正常结束指示灯慢闪5 s,异常结束,指示灯快闪;14被传识别状态,若忙等待,若闲,送忙音.

测试的主要内容为:(1)发送接收传真测试:任意一传真机拨号*#,向对方传真机发送传真页数据,另一传真机能够顺利地将传真页数据接收回来,并打印.(2)语音功能测试:任一传真机拨号55,对方传真机在不忙的情况下能正常进行语音通信.经过大量商用传真机,进行测试,几乎所有G3传真机都能在class=1下进行通信,发送传真页和接收传真页经对比字迹清晰,传真内容完整.同时,语音清晰,无噪音.

图5 整体软件验证测试状态转移图

5 结语

本文分析了传真通信的原理;设计了能满足语音通信和传真通信,以及提供无线模块的通用接口的硬件平台;针对该硬件平台设计了传真机和处理器的收发传真,以及提供了无线模块的接口函数的软件.这种无线传真软硬件接口系统,采用传真存储转发的方式,分离了无线和传真通信过程.同时为无线传真提供了通用的硬件接口和软件接口,使用者只需根据自己无线模块应用层协议,将数据按自己规定的帧格式打包送入无线模块即可.从而实现了软硬件平台的通用性,降低了开发难度,缩短了开发周期.

[1] 蒋维刚,刘立柱.基于无线通信网络的G3传真终端的实现[J].微计算机信息,2005,21(06X):66-67.

[2] 王爱,刘彦明.基于ARM的GSM网络G3无线传真接入终端的研究和实现[D].西安:西安电子科技大学,2007:1 -69.

[3] 牛小立,刘立柱.GSM网络传真通信技术研究[J].无线通信技术,2004,13(1):41-43.

[4] 孙家泽,武波.CDMA无线模拟传真的设计和实现[D].西安:西安电子科技大学,2006:1-72.

[5] ITU-T Recommendation T.30,Procedures for Document Facsimiletransmissionin the Ge-neral Switched Telephone Network[S].2005

[6] ITU-TRecommendation T.4,Standardizatin of Group 3 Facsimile Terminals for Docum-ent Transmission[S].2003.

[责任编辑马云彤]

Design and Im plementation of W ireless Fax Software and Hardware Interface

LIZhe,CHEN Zhi-qing,LU Meng-yi

(School of Electronic Engineering,Xi'an University of Posts and Telecommunications,Xi'an 710061,China)

To address the lengthy cycle and difficulties in developing traditionalwireless fax real-time scheme,we propose a storage-and-forwarding-based general wireless fax interface scheme.LM3S9B6 and CY62157EV30 with parallel EPI interface are used as the processor and memory to store fax data.Thus,the communication separation between the faxmachine and the processor,and the wireless module and the processor is realized.Meanwhile,based on the study of T.30 and T.4,the hardware design and implementation leads to the application of a universal and reliable fax communication software.An analysis of the system running shows that the scheme is effective in shortening the wireless fax development cycle and reducing the difficulties.

wireless fax;caching scheme;voice communication;T.30;T.4

TN919.72

A

1008-5564(2015)02-0046-05

2015-01-08

李 哲(1963—),男,陕西武功人,西安邮电大学电子工程学院教授,硕士生导师,主要从事嵌入式系统与自动控制研究;

陈治清(1987—),男,陕西安康人,西安邮电大学电子工程学院硕士研究生,主要从事嵌入式系统设计研究.

猜你喜欢

波特率报文嵌入式
基于J1939 协议多包报文的时序研究及应用
UART 波特率检测电路的FPGA 设计算法与实现
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
CTCS-2级报文数据管理需求分析和实现
CAN 总线波特率自适应程序设计
浅析反驳类报文要点
TS系列红外传感器在嵌入式控制系统中的应用
可以同时应用于不同终端设备的波特率发生器
搭建基于Qt的嵌入式开发平台
波特率自适应的CAN驱动在嵌入式Linux下的实现①