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信號處理與嵌入式操作系統相結合的模式,可以廣泛應用于通訊領域,具有廣泛的應用前景。 |