微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ADSP2189M在船舶自动识别系统开发中的应用

ADSP2189M在船舶自动识别系统开发中的应用

时间:07-16 来源: 点击:

引言
  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;
//开启定时
主体软件流程
  系统采用自主式时分复用,把时间分成周期性的帧,每一帧再分割成若干时隙(无论帧或时隙都是互不重叠的),每个时隙就是一个通信信道,分配给一个用户。系统根据一定的时隙分配原则,使各个移动台在每帧内只能按指定的时隙向对方发射信号(突发信号),在满足定时和同步的条件下,基站可以在各时隙中接收到各移动台的信号而互不干扰。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top