1 引言
电信网和因特网是两大网络系统,必然存在两个网络数据或信息的互通问题,例如:VoIP、混合视频会议等新业务。
E1接口和以太网接口分别是电信网和因特网使用最为普遍的接入端口,设计一个嵌入式网关设备,通过这两种端口将两大网络连接起来就显得尤为迫切、重要。本文介绍的AT91RM9200处理器处理能力强、接口丰富,内部集成了同步串口和以太网接口,是嵌入式小型网关控制器的理想选择。
2 AT91RM9200和DS21554
AT91RM9200内部集成了一个ARM920T—ARM Thumb处理器,在180 MHz时钟时运行速度高达200 MI/s;内部有16 KB的数据Cache、16 KB指令Cache、写缓冲区、全功能的MMU(存储器管理单元);片内带有调试通道的仿真器、16 KB的SRAM和128 KB的ROM,支持SDRAM、SRAM、Burst Flash,无缝连接CompactFlashTM,SmartMediaTM和NAND Flash;增强型的时钟产生器和电源管理控制器,包括周期性中断、看门狗和带有报警中断的实时时钟;带有8个优先级、可单个屏蔽中断源、7个外部中断源和一个快速中断源;122个可编程I/O引脚(多功能复用);20通道DMA(直接存储器存取)控制器;10/100 Base-T型以太网控制器及介质无关接口MII,全速USB 2.0接口(12 Mb/s,2主1从),3个同步串行控制器(SSC),4个通用同步/异步串口(USART),主机/从机串行外设接口(SPI),两线接口(TWI),两个3通道16位定时/计数器(TC)。超强的处理能力和丰富的接口使得该处理器广泛应用于各种嵌入式通信和控制系统中,尤其是同步串口和以太网接口,使其可以作为网关设备核心处理器。
电信网中数据以TDM(时分复用)形式传输,采用E1帧结构,相应网络接口包括电气接口和帧结构,符合ITU-T的G.703/G.704规范或者国标GB7611。DS21554是一个符合该规范的E1成帧器集成电路,内部集成了线路接口和成帧器,其主要性能有:符合规范的完整PCM30/32 E1收发器:内含一个64 KB缓冲器的HDLC控制器;8 bit并行控制器接口;提供随路信令(CAS)、共路信令(CCS)和CRC4帧格式;回环测试功能;HDB3编码的线路接口等。线路接口支持75 Ω同轴电缆或者120 Ω双绞线连接;背板接口可以根据需要在主、从模式下工作,提供同步接收、发送数据信号(RSER/TSER),收发帧定位信号(RSYNC/TSSYNC),收发时钟信号(RSYSCLK/TSYSCLK);四个DS21554可以实现背板信号菊花链连接,提供8192 KB/s字节复用同步数据流。
3 SSC特性分析
AT91RM9200提供三个独立的同步串行控制器(SSC)与外部器件进行同步通信。它支持音频和电信应用中常用的串行同步通信协议,如I2S、短帧同步、长帧同步方式等。
每个SSC包含独立的接收器、发送器以及一个时钟分频器。发送器/接收器分别有三个信号引脚:数据TD/RD信号、时钟TK/RK信号及帧同步。TF/RF信号,由于这些引脚与通用I/O引脚复用,初始化程序必须配置使其在SSC模式下工作;每帧最多由16个32位字组成,可编程设定为自动启动或在帧同步信号检测到不同事件时启动。SSC与内部两个32位专用外设数据直接存取控制器PDC(Pe-ripheral DMA Controller)通道连接,可在没有处理器干涉的情况下进行连续的高速率数据传输。初始化程序配置使每帧为16个16位半字即每帧32字节,与E1帧对应;串口发送/接收时钟由其工作模式决定,从模式时,TK/RK和TF/RF均为输入端子,由外部提供时钟和帧定位型号。主模式时,TK/RK和TF/RF均为输出端子,对E1成帧器提供时钟和帧定位信号,此时,时钟信号TK/RK来源非常灵活。
内部发送时钟TCLK(接收时钟RCLK)来源非常灵活,可以来自处理器主时钟MCK经SSC分频后得到的分频时钟D_CLK、TK引脚(RK引脚)或者RCLK(TCLK),如图1所示。处理器内部主时钟MCK通过初始化程序配置时钟选择器、预分频器和分频器得到MCK,再经过SSC分频器使得分频时钟D_CLK为2.048 Mb/s,如图2所示。主模式下帧定位信号TF/RF也非常灵活,通过配置相关寄存器,可以使其为正脉冲或者负脉冲,脉冲宽度可以调节,与发送/接收信号的相位关系也可以灵活调整,能够与标准的E1成帧器背板信号直接连接。数据流中可以发送或者接收一个特定标记数据(帧同步数据),类似于E1帧结构中的帧同步数据。每帧起始位置可以通过寄存器设置,帧脉冲生效后,数据起始位置与时钟信号有关,主要有4种模式:连续、TK/RK上升或下降沿触发、TK/RK高或低电平触发、TK/RK电平变化或沿跳变触发,如图3所示,接收起始模式与发送类似。
发送数据或者接收数据帧格式由发送器帧模式寄存器(SSC_TFMR)以及接收器帧模式寄存器(SSC_RFMR)编程设定,可以分别设置的参数有:
启动数据传输条件;
帧脉冲前沿到第一个数据位的延时;
数据长度(DATLEN);
每帧传输的数据数(DATNB);
帧同步数据寄存器长度(FSLEN);
比特意义:高位或低位在前(MSBF)。
上述设置可以配置SSC同步串口每帧长度最大为512位长,由于E1帧格式每帧固定长度8×32位=256位,因此,配置适当SSC相关寄存器不仅可以保证SSC同步串口与E1接口时钟、帧脉冲、收/发数据等时序一致,而且数据帧格式也能保持一致。
专用外设数据直接存取控制器PDC(PeripheralDMA Controller)用于UART、USART、SSC、SPI、MC等片上串行外设与片内、片外存储器间传输数据。使用外设数据直接存取控制器能够提高数据传输能力,减轻处理器运行负担。这样显著降低了外设与存储器之间数据传输所需的时钟周期数,因此也提高了微控制器的性能,使处理器工作更有效。PDC通道是成对构建的,每对对应一个指定的外设。通道中一个负责接收、另一个负责发送。PDC用户接口集成在每个外设存储空间中,它包括:1个32位存储器指针寄存器、1个16位传输计数寄存器、1个32位寄存器(用作下个存储器指针)、1个16位寄存器(用作下个传输计数)。
外设使用发送与接收信号触发PDC传输,在传输数据过程中,相应的外设产生一个传输结束中断请求结束本次传输。三个独立的SSC同步串口对应三对PDC。
PDC与SSC传输数据特性为:存储器到SSC的传输需一个主机时钟周期,SSC到存储器间的传输需两个主机时钟周期。
配置PDC通道可以控制各个通道的数据传输,PDC通道的用户接口集成在与其对应的SSC外设接口上(偏移0x100)。
每个SSC包含4个32位指针寄存器(RPR、RNPR、TPR及TNPR)与4个16位计数寄存器(RCR、RNCR、TCR及TNCR)。缓冲器的大小(传输数据数量)在内部16位传输计数寄存器中配置,可在任意时刻读取每个通道待传输数据的大小。通过定义存储器访问的首地址位置,在32位存储器指针配置存储器基地址,可在任意时刻读取下一次传输的存储空间位置和待传输的数目。PDC有专门的状态寄存器指示各通道传输是否使能,各通道工作状态指示位于SSC状态寄存器中。设置PDC传输控制寄存器的TXTEN/TXTDIS与RXTEN/RXTDIS位可使能和(或)禁用传输,这些控制位使能时,可以安全读取指针及计数寄存器,在读取的过程中不会有危险。
每个PDC通道有一个内部的32位存储器指针,每个存储器指针可指向存储空间的任意位置(片上存储器或外部总线接口存储器)。根据传输类型的不同(字节、半字或字),外设传输的存储器指针以1、2或4增加。若PDC工作时对存储器指针重新编程,传输地址改变,在新地址执行PDC传输。
每个PDC通道有一个内部16位传输计数器用来计算已传输块的大小。每次数据传输完成后计数器减一。当计数器到零时,传输完成,PDC停止传输数据。若下一个计数寄存器(Next Counter Regis-ter)等于零,PDC禁用触发并激活相关的外设结束标志。若PDC工作时修改计数器值,PDC使用新值开始计数。每个通道中,有两个状态位来标识传输结束,这些位直接映射到外设状态寄存器。当写入一个计数器寄存器(计数器或下次计数器)时,外设结束标志自动清零。
当SSC接收到一个外部字符时,它向PDC发送一个接收就绪信号,PDC再向系统总线请求访问,当访问得到许可,PDC开始读取外设接收保持寄存器(RHR)并触发存储器写操作。每次传输后,相关PDC存储器指针递增,而待传输数目递减。当达到存储器块大小时,向外设发送一个信号并停止传输。对于发送数据传输,处理过程与上述相反。
4 同步串口SSC的典型应用
SSC同步串口特性决定了AT91RM9200不仅可以用于工业控制领域,而且可以很方便地用于电信设备。它能够直接与I2S总线接口的音频编解码器、符合电话接口的PCM编解码器连接,如图4所示。更主要的是,它可以提供三个独立接口,直接和电信应用中的E1接口连接,高性能内核ARM920T可处理高速同步数据流。因此,借助于内部提供的10M/100Mb/s以太网接口,将AT91RM9200作为E1与以太网转换的网关核心处理器是一个理想的选择。
在网关应用中,SSC包含独立的接收器、发送器及时钟分频器。每个发送器及接收器分别有3个信号引脚:数据TD/RD信号、时钟TK/RK信号及帧同步TF/RF信号,可以直接与E1成帧器DS21554的背板对应信号连接。网关可以在主、从两种模式下工作,主模式时,DS21554不需要跟踪上级同步时钟;从模式时,跟踪上级同步时钟。前者,同步串口SSC不需要单独时钟电路,配置AT91RM9200 SSC寄存器,使SSC接口工作在主动模式,产生时钟和帧定位信号,提供给DS21554,也可以直接将TK/TF连接到RCK/RSY,同时断开RK/RF。若为后者,网关为一个电信系统中的终端,通过配置寄存器使SCC接口工作在被动方式,TK/TF/RK/RF和TCK/TSS/RSS/RCK一样,均为输入信号端子,提取接收时钟,通过锁相环同步后产生时钟和帧定位信号。不论哪种形式,配置时钟信号均为2 048 kHz,32个时钟周期出现一个帧定位信号以满足E1帧格式,参考器件手册,可以通过调整DS21554和AT91RM9200寄存器设置,使得SSC信号时序和E1成帧器背板信号时序匹配。根据实际需求,三个SSC同步串口可以同时连接三个E1成帧器,考虑到音视频数据流量和以太网有效吞吐能力,有效数据量达2 Mb/s~6Mb/s,可满足不同应用的音视频数据传输,如图5所示。
5 结束语
基于ARM内核的处理器是目前嵌入式系统的主流,但是,同时内置同步串口和10 Mb/s~100 Mb/s以太网接口的ARM处理器为数却很少。AT91RM9200处理器集成了同步串口和以太网控制器,是一款高性能处理器。本文重点分析了该处理器的同步串口特性,介绍其具体应用。采用此器件,笔者实现了VoIP网关设备,性能稳定,可靠性高而且成本低。