摘要:本文介绍了ADSP2189M芯片在AIS船舶自动识别系统开发中的应用。分析了ADSP2189M芯片的外部硬件连接和内部软件的设置,以及各种片上资源的应用,针对不同的通讯方式采用不同的连接模式,并实现了IDMA方式与上位机完成启动和通讯。
引言
AIS 系统是海上移动VHF波段采用TDMA技术交换数据的一种避碰系统,是国际海事组织规定每条船只必须安装的设备之一,产品开发基于国际海事组织颁布的 ITU-R M1371协议。在开发中采用ADSP2189M作为其数据处理平台,完成各种数据处理,转换,时隙的划分,网络登陆和维护等算法,实现其大部分的主要功能。系统的模式如图1所示。
由电台在161.975MHz和162.025MHz的两个频点上接收GMSK信号,经GMSK调制解调芯片把模拟数据转换成数字信号,数据流通过上位机完成对正确数据的判定,并且删去数据段的起始、填充和结束位,把数据通过并行口发往DSP,DSP完成对接收到数据的处理与分析,建立整个海域的时隙表,完成TDMA的网络登陆、维护,把相关的数据再以不同格式发送到不同的串口输出,按照ITU-R M.1371协议,以ITDMA(增量时分多址)方式接入网络,以SOTDMA(自控时分多址)方式连续运行,从而达到整个网络的TDMA完整性。因此, 信号处理单元在系统中处于重要的位置。
图1 DSP与外部设备接口
ADSP2189M芯片
ADSP2189M芯片是一种定点DSP,其指令周期为13.3ns,运行速度可达75MIPS。处理器包括算术/ 逻辑单元(ALU),乘法/累加器(MAC)和桶状移位器。存储器采用哈佛结构,有48K的PRAM和32K的DRAM。两个SPORT同步串口,一个定时器以及主机接口可以和主机处理器直接相连。DMA接口包括内部DMA接口(IDMA)和字节DMA接口(BDMA)。
AIS系统中2189M的硬件设计
部分电路如图2所示。
芯片外接33M的晶体,其内部自动倍频到66M;
一个同步串口SPORT与外部的MCU相连,引脚要接上拉电阻;
把SPORT1设置成第二种工作模式,并用软件把I/O口模拟UART,与MAX232芯片连接,数据送往简易显示;
采用IDMA方式与MCU相连,16条并口线连接,启动模式设置为IDMA方式,其4个MODEA~D设置分别为1,0,1,0;
完成IDMA引导装载的步骤如下;
PWD、EBR、BR、ERSET四个调试引脚必须外接上拉电阻;
最后写PM(0X0000)的值,程序开始自动执行。
图2 AIS系统的部分电路图
图3 串口接收时序图
图4 时隙划分图
ADSP2189M接口的软件设计
Sport0的设置
采用同步串口与MCU通讯
DM(0X3FF6)—串口控制寄存器设置如表1所示。
表1 中0~3:接收发送字长,我们定义为16位字长,设置为1111。6~7:帧同步信号电平,为0,高电平有效。8~9:帧同步信号源,为1,内部产生帧同步信号。10~11:成帧方式,为1,第二成帧方式。12~13:帧同步,为0,发起通讯必须要帧同步信号,以后不再考虑帧同步信号。14:SCLK的产生方式,为1,内部产生串行时钟。
DM(0X3FF5)—串口时钟分频系数寄存器dm(sclkdiv)
在ADSP2189芯片中,采样率与分频数之间的关系如下式F(sclk)=f(clkout)/(sclkdiv+1)/2
其中,F(sclk)表示运行时钟,F(clkout)表示外接晶振的输出时钟,sclkdiv表示分频数,即存储器应该赋予的值。
当控制寄存器设置好以后,串口接收时序如图3所示,接收到的数据放在接收缓存区,每接收完一组数据,写一次接收标志位,主程序定期检测标志位,当检测到标志位变化时,调用接收处理子程序。
Sport1和timer的设置
由于DSP要输出数据到简易显示,通过UART口相连接,因此把Sport1设置为第二种工作模式(如表2所示)。
DM(0X3FFF)—系统控制寄存器(如表3所示)。
表3中,12:SPORT0的使能,设置为1。11:SPORT1的使能,设置为1。10:SPOER1的功能选择,设置为0。
用I/O口模拟UART,以9600波特率采样,内部定时中断产生速率为3×9600,在一个电平跳变中产生3次采样,取中间的采样值有效。
DM(0X3FFD)—定时周期寄存器
DM(0X3FFC)—定时计数寄存器
外接33M晶体,寄存器存放的数值为:
period=frequence×2/(3×9600)-1=2314
芯片以28800波特率产生中断,每次中断程序检测UART的标志位,当标志位有变化时,每3次中断设置一次I/O的输出,直到发送数据结束。
部分代码设置如下:
ax0 = 2314; //定时器设置
dm(0x3ffc) = ax0;
dm(0x3ffd) = ax0;
ax0 = 0;
dm(0x3ffb) = ax0; //控制寄存器的设置
ax0 = b#0001100000000000;
ax0=b#0111111000001111;
dm(0x3ff6)=ax0; //sport0设置
ax0=0x001f;
dm(0x3ff5)=ax0; //SCLKDIV0
mstat = 0x10;
// 乘法器设置
ifc=b#0000000001100001; imask=b#0000100001; //中断开启
ena timer;
//开启定时
主体软件流程
系统采用自主式时分复用,把时间分成周期性的帧,每一帧再分割成若干时隙(无论帧或时隙都是互不重叠的),每个时隙就是一个通信信道,分配给一个用户。系统根据一定的时隙分配原则,使各个移动台在每帧内只能按指定的时隙向对方发射信号(突发信号),在满足定时和同步的条件下,基站可以在各时隙中接收到各移动台的信号而互不干扰。
在寄存器中划分两个信道的空间作为海域的时隙表,如图4所示。
网络登陆采用概率持续算法(当发现一个候选时间段时,台站在0到100之间随机选取一个概率值LME.RTP1,该值与一个0到10的概率LME.RTP2比较,如果 LME.RTP1小于或等于LME.RTP2,则选择这个时间段,反之,LME.RTP2加上一个概率增量与下一个候选时间段比较)。在2250个时间段上随机选择一个空闲时隙作为网络的接入点,然后以ITDMA方式接入。这种方式是一种先报告先占用的形式,在当前发射的数据中指明下一个需要发送数据的时隙号,从而达到预先通知其它台站自身所占用的时隙号,确定在60秒中需要占用的空间。在以后的连续阶段,移动台以SOTDMA方式完成网络的维护和时隙的重新划分。由于协议规定的数据格式中最大只能预知到7分钟的占用情况,所以每隔7分钟,需要在一定范围内重新选择一个新的空闲时隙发送,以次类推,一直以这种连续的状态运行下去。
当速度发生改变的时候,系统重新以ITDMA的方式完成新的速率下的网络登陆。
结语
本文提出的设计方案,充分利用了DSP的高性能数据处理功能和嵌入式操作系统的实时稳定的特点,采用时分复用的算法,进行一个海域内的网络划分和联接功能。这种DSP信号处理与嵌入式操作系统相结合的模式,可以广泛应用于通讯领域,具有广泛的应用前景。