您现在的位置是:首页 > 单片机

基于TMS320C54X的双调制解调器的设计与实现

2020-05-27 05:01:06

【摘 要】 介绍了一种在有差错信道中能够高可靠性传输数据的双调制解调器的实现方案。它主要由DSP最小系统,串行通信接口,A/D转换电路和CPLD控制逻辑构成。系统采用两条线路同时传输数据,接收端则根据误码率的高低在两条线路间进行智能切换,选择性地接收,以此来实现数据的高可靠性传输。
   关键词:双调制解调器 数据传输 误码率 DSP 闪烁存储器 A/D转换器
  
1 引 言
  在有差错信道中进行数据的高可靠性甚至无误码传输,可采用传统的差错重传(ARQ)和前向纠错(FEC)等技术,但这些技术都不可避免地存在时延和时延抖动,信道利用率低,开销大等弊端,不适合于需要一定的可靠性又要求实时传输或对突发业务立即进行处理的场合 ,如多媒体数据(语音,图像 ,文本数据)的通信、电力调度系统之间的通信、公安系统突发任务的下达等。基于TMS320C54的双MODE M可在一定程度上避免这些问题,它采用两路全双工的数据通信链路来进行数据传输,相当于用两条线路来传输一路信息,接收端根据两条线路的接收质量智能地决定接收哪路信息,自动切换,无需采用A RQ或FEC等技术就可实现数据的高可靠性传输。该系统采用DSP技术,以平衡对称设计思路 ,实现双MOD EM在同一平台上实施 ,并利用软件无线电技术实现多种选择灵活搭配,除了具有电路设计 、调试简单 、可靠性高和抗噪声能力强等特点外,还具有以下优点:
  ·传输中心频率灵活可变,可适用于上音频电力线载波(f=2880Hz,3000Hz)、微波(f=1700Hz)、无线(f=1500Hz),以及电力线载波机话音通道(f=1200Hz)组成的通讯网中,采用本机传送数据可统一所有的MODEM型号,便于互换与维修。
   ·解调部分具有AGC(自动增益控制)功能。  
   ·具有定性的误码显示,线路信噪比状况一目了然。
  ·支持两个MODEM独立使用。
2 双MODEM的硬件设计及其实现
2.1 双MODEM系统的组成
                      
    双MODEM系统的组成如图1所示,主要由以下五部分构成:
   (1)DSP最小系统
   数字处理系统由于其可靠性高、可编程性强等优势在通信、航天制导、仪器仪表等各个领域正得到越来越广泛的应用。在双MODEM中由一片TMS320C5402 DSP芯片和一片EPROM构成的DSP最小系统是整个系统的关键部分。TMS320C54X是TI公司TMS320系列芯片中新一代16-bit定点DSP,适合于高速的数字信号处理。其特点如下:
  ·先进的多总线结构,一条程序总线,三条数据总线,四条地址总线,使得灵活性和性能大大提高。 
  ·外接1024kHz晶振,指令周期为10ns,100MIPS运算速度。
   ·提供Power Down低功耗方式。
  ·17×17-bit的并行乘法器为非流水单周期的乘法/累加(MAC)操作产生40-bit的乘积 。
  ·8个辅助寄存器和一个专用运算单元支持间接寻址。
  ·4级流水操作用于延迟分支,调用和返回指令。
  ·16个软件可编程的等待状态发生器,用于程序、数据、I/O存储器空间的延时等待操作。
  ·可访问的扩展存储器空间为192k×16-bit(其中64k程序存储器、64k数据存储器、64kI /O存储器)。
  ·支持多达16个用户可屏蔽中断(SINT15—SINT0),JTAG扫描仿真逻辑(IEEE1149.1)  
  (2)CPLD控制逻辑
  现场可编程逻辑门阵列(FPGA)和高性能数字信号处理器(DSP)是信号处理领域两大关键器件,FPGA和DSP的运算速度及并行处理能力成为制约高速信号处理应用的主要因素,FPGA以其设计灵活性及硬件高密度性在信号处理领域显示出越来越重要的作用。该系统的CPLD控制逻辑采用XILIN的XC9536来完成,XC9536的可编程I/O引脚,可以实现DSP、SCC、A/D转换等所需的控制逻辑。
  (3)A/D变换
  系统接收时首先将模拟的语音信号通过A/D转换变为数字信号送入TMS320C5402DSP,发送时将数字调制信号通过D/A转换变为模拟信号后再上信道传输,为此我们选择了TI公司单片集成AD和DA转换通道的音频模数和数模转换器320AD56作为系统的A/D转换器件,该器件采用Σ-Δ转换方法,采样率为22.05kHz,带宽为8.8kHz,分辨率为16Bits,功耗为150mW,+5 V单电源供电,同时320AD56的时钟可以直接与TTL、CMOS、或正的ECL逻辑电平相连。
  (4)闪烁存储器(Flash)
  Flash Memory是一个非易失性固态存储器,这种存储器的特点是在写之前要以块为单位执行擦除命令,即:使所有字节均变为0XFF,然后再写入数据,而且断电以后数据不丢失。我们采用AMD公司的AM28F010作为系统的EPROM,它工作所需的时序信号/WE、/RD、/BCE由CP LD控制逻辑提供。AM28F010的工作电压为+5V,容量为64k×8bit,速度为150ns。
  (5)串口通信模块
  MODEM从发送方串行接收数据,然后经过调制将数字信号转换为模拟信号,最后通过线路传送到接收方。接收方也需要通过MODEM从线路上将信号解调,将模拟信号转换为数字信号,然后串行发送给接收方。本系统中为了实现串行通信,采用AM85C30作为串口通信控制器(SC C),AM85C30是AMD公司的Zilog系列产品,采用CMOS结构,是一种全双工双通道、多数据协议的数据通信控制器,可以通过软件设置实现多种数据通信方式。AM85C30的每个通道都有一套自己的读/写寄存器集,所有通信模式都是通过操作写寄存器来实现的,同时所有状态判断都是通过操作读寄存器来实现的,随着数据接收/发送,读寄存器的值可能会发生变化,这些变化能触发程序活动或内部硬件设置变化。
2.2 RS-232接口电路的设计
  RS-232标准的接口应能承受接口引脚中任何两个引脚的短接,而其本身及所联设备不受到损坏,其电平标准规定了双极性逻辑电平,即逻辑电平由电压幅值和极性共同来描述,输入的逻辑电平是+3V到+15V和-3V到-15V,电压-3V到+3V之间属于不确定的;输出的逻辑电平是+5V到+15V和-5V到-15V,电压-5V到+5V之间属于不确定的。由此可知,RS-232的电压和逻辑电平不能直接用于计算机电路,需要进行电平转换。在双MODEM系统中,采用了三片SN75196集成芯片作为RS-232线路驱动器和线路接收器,以此来实现RS-232和计算机电路之间的电平转换。SN75196是一种专用的多路RS-232收发器,其驱动器/接收器·82·数目为5/3,工作所需的电源电压为±9V和+5V。
3 双MODEM的软件设计及其实现
  双MODEM的软件设计采用标准的C语言和TMS320C54X的汇编语言混合编制完成,主要由以下几个要点构成:
3.1 系统初始化
  系统上电工作之前,首先必须进行初始化。主要包括对TMS320C5402DSP的状态寄存器ST0 、ST1,处理器模式状态寄存器PMST,时钟模式寄存器CLKMD和软等待状态寄存器SWWSR的初始化。对AM85C30通信口的初始化,包括设置合适的数据传输格式,数据传输波特率,中断允许寄存器等。其中波特率的设置只需将除数因子写入AM85C30的“波特率除数锁存器”WR12、WR 13中,用TMS320C54汇编语言编制的初始化程序将在C语言的主程序中调用。
3.2 中断服务程序
  中断服务处理子程序是通信应用程序的核心,当系统上电初始化时,在中断向量表的相应位置将初始化为一个临时中断服务处理子程序的入口地址,一旦初始化结束,每当一个指定的通信事件出现时,AM85C30将产生一次通信中断,CPU将依据此中断号查看中断向量表,调用执行所指向的新的中断处理程序,完成收/发处理。收/发数据的程序流程如图2、图3所示:
                                               
3.3 环行缓冲区与帧结构 
  (1)环行缓冲区
                     
    在数据通信过程中,发送端和接收端都需要采用一定大小的缓冲区,缓冲区的操作需要采用先进先出(FIFO)的原则,即保证新插入的数据不能覆盖尚未处理的数据,采用环形缓冲区技术则可很好地解决这个问题,假设数据缓冲区为buffer〔len〕,即长度为len的缓冲区 ,为了达到环形缓冲区操作的目的,需要定义一控制块结构:
   typedef struct{
   int cnt;
   int rdi;
   int wri;int*buf; 
   }BCB
  cnt域表示当前缓冲区内的数据长度,rdi表示从当前环形缓冲区中读取数据的指针位置,wri表示往当前环形缓冲区中存放数据的指针位置,buf指针指向缓冲区的首地址。
  (2)帧结构
  由于双MODEM系统接收数据时要依据误码率的高低在两条线路间进行智能切换,有选择性地接收,从而实现数据的高可靠性传输。误码率的大小虽然是衡量线路传输状况的指标 ,但它是一个长期统计的结果,与当前线路传输质量无线性比例关系,在一小段时间内,有可能误码率高的线路传输的数据更正确,由于这种长期统计和短时数据的正确与否无线性比例关系,如果直接用数据流方式进行热切换,就存在误判并导致数据的误收和对短时突发误码反映迟钝和误码扩大的现象。因此必需将数据以一定长度为单位划分为一个个的帧(fra me),再以帧为单位结合误码率进行判断、切换,这样就可以把误码发生的位置定位在一帧长度内,使切换更准确,数据更可靠,在分帧切换当中,发送端先将数据装帧打包,帧结构至少应包括帧号、帧数据长度、帧数据等。为此,我们定义了如图4所示的帧结构。帧结构采用类似HDLC的帧结构,帧起止标志固定为0x7e的8位数据,两端以0结束,中间是六连1,便于与帧数据相区分,帧结束标志与帧开始标志相同。CRC采用16位的M序列,为了提高CRC校验的计算速度,采用了查表法。
                      
4 结束语  
   实际信道都不是理想的无差错信道,所传输的 数据总会出现一定的误码。为此,我们采用高速DSP技术所设计的双MODEM系统,除了具有一般MODEM的通用功能之外,更主要的是可在有差错的信道中,实时地进行数据的高可靠性甚至无误码传输。实际线路测试结果表明该系统在工作条件范围内,当归一化信噪比≥17dB时,对511伪随机码的误码率Pe≤1×10-6,在中低速语音压缩编码后使用双MODEM技术进行数据传输将有广阔的市场发展前景。

 

>  参考文献