ADSP2189M在船舶自動識別系統(tǒng)開發(fā)中的應(yīng)用
引言
AIS系統(tǒng)是海上移動VHF波段采用TDMA技術(shù)交換數(shù)據(jù)的一種避碰系統(tǒng),產(chǎn)品開發(fā)基于國際海事組織頒布的ITU-R M1371協(xié)議。在開發(fā)中采用ADSP2189M作為其數(shù)據(jù)處理平臺,完成各種數(shù)據(jù)處理,轉(zhuǎn)換,時隙的劃分等主要功能。系統(tǒng)的模式如圖1所示。
由電臺在161.975MHz和162.025MHz的兩個頻點上接收GMSK信號,經(jīng)GMSK調(diào)制解調(diào)芯片把模擬數(shù)據(jù)轉(zhuǎn)換成數(shù)字信號,數(shù)據(jù)流通過上位機(jī)完成對正確數(shù)據(jù)的判定,并且刪去數(shù)據(jù)段的起始、填充和結(jié)束位,把數(shù)據(jù)通過并行口發(fā)往DSP,DSP完成對接收到數(shù)據(jù)的處理與分析,建立整個海域的時隙表,完成TDMA的網(wǎng)絡(luò)登陸、維護(hù),把相關(guān)的數(shù)據(jù)再以不同格式發(fā)送到不同的串口輸出,按照ITU-R M.1371協(xié)議,以ITDMA(增量時分多址)方式接入網(wǎng)絡(luò),以SOTDMA(自控時分多址)方式連續(xù)運行,從而達(dá)到整個網(wǎng)絡(luò)的TDMA完整性。因此,信號處理單元在系統(tǒng)中處于重要的位置。
圖1 DSP與外部設(shè)備接口
ADSP2189M芯片
ADSP2189M芯片是一種定點DSP,其指令周期為13.3ns,運行速度可達(dá)75MIPS。處理器包括算術(shù)/邏輯單元(ALU),乘法/累加器(MAC)和桶狀移位器。存儲器采用哈佛結(jié)構(gòu),有48K的PRAM和32K的DRAM。兩個SPORT同步串口,一個定時器以及主機(jī)接口可以和主機(jī)處理器直接相連。DMA接口包括內(nèi)部DMA接口(IDMA)和字節(jié)DMA接口(BDMA)。
AIS系統(tǒng)中2189M的硬件設(shè)計
部分電路如圖2所示。
·芯片外接33M的晶體,其內(nèi)部自動倍頻到66M;
·一個同步串口SPORT與外部的MCU相連,引腳要接上拉電阻;
·把SPORT1設(shè)置成第二種工作模式,并用軟件把I/O口模擬UART,與MAX232芯片連接,數(shù)據(jù)送往簡易顯示;
·采用IDMA方式與MCU相連,16條并口線連接,啟動模式設(shè)置為IDMA方式,其4個MODEA~D設(shè)置分別為1,0,1,0;
·完成IDMA引導(dǎo)裝載的步驟如下;
PWD、EBR、BR、ERSET四個調(diào)試引腳必須外接上拉電阻;
最后寫PM(0X0000)的值,程序開始自動執(zhí)行。
圖2 AIS系統(tǒng)的部分電路圖
圖3 串口接收時序圖
圖4 時隙劃分圖[!--empirenews.page--]ADSP2189M接口的軟件設(shè)計
Sport0的設(shè)置
采用同步串口與MCU通訊
DM(0X3FF6)—串口控制寄存器設(shè)置如表1所示。
表1中0~3:接收發(fā)送字長,我們定義為16位字長,設(shè)置為1111。6~7:幀同步信號電平,為0,高電平有效。8~9:幀同步信號源,為1,內(nèi)部產(chǎn)生幀同步信號。
10~11:成幀方式,為1,第二成幀方式。12~13:幀同步,為0,發(fā)起通訊必須要幀同步信號,以后不再考慮幀同步信號。14:SCLK的產(chǎn)生方式,為1,內(nèi)部產(chǎn)生串行時鐘。
DM(0X3FF5)—串口時鐘分頻系數(shù)寄存器dm(sclkdiv)
在ADSP2189芯片中,采樣率與分頻數(shù)之間的關(guān)系如下式F(sclk)=f(clkout)/(sclkdiv+1)/2
其中,F(xiàn)(sclk)表示運行時鐘,F(xiàn)(clkout)表示外接晶振的輸出時鐘,sclkdiv表示分頻數(shù),即存儲器應(yīng)該賦予的值。
當(dāng)控制寄存器設(shè)置好以后,串口接收時序如圖3所示,接收到的數(shù)據(jù)放在接收緩存區(qū),每接收完一組數(shù)據(jù),寫一次接收標(biāo)志位,主程序定期檢測標(biāo)志位,當(dāng)檢測到標(biāo)志位變化時,調(diào)用接收處理子程序。
Sport1和timer的設(shè)置
由于DSP要輸出數(shù)據(jù)到簡易顯示,通過UART口相連接,因此把Sport1設(shè)置為第二種工作模式(如表2所示)。
DM(0X3FFF)—系統(tǒng)控制寄存器(如表3所示)。
表3中,12:SPORT0的使能,設(shè)置為1。11:SPORT1的使能,設(shè)置為1。10:SPOER1的功能選擇,設(shè)置為0。
用I/O口模擬UART,以9600波特率采樣,內(nèi)部定時中斷產(chǎn)生速率為3×9600,在一個電平跳變中產(chǎn)生3次采樣,取中間的采樣值有效。
DM(0X3FFD)—定時周期寄存器
DM(0X3FFC)—定時計數(shù)寄存器
外接33M晶體,寄存器存放的數(shù)值為:
period=frequence×2/(3×9600)-1=2314
芯片以28800波特率產(chǎn)生中斷,每次中斷程序檢測UART的標(biāo)志位,當(dāng)標(biāo)志位有變化時,每3次中斷設(shè)置一次I/O的輸出,直到發(fā)送數(shù)據(jù)結(jié)束。
部分代碼設(shè)置如下:
ax0 = 2314; //定時器設(shè)置
dm(0x3ffc) = ax0;
dm(0x3ffd) = ax0;
ax0 = 0;
dm(0x3ffb) = ax0; //控制寄存器的設(shè)置
ax0 = b#0001100000000000;
ax0=b#0111111000001111;
dm(0x3ff6)=ax0; //sport0設(shè)置
ax0=0x001f;
dm(0x3ff5)=ax0; //SCLKDIV0
mstat = 0x10; // 乘法器設(shè)置
ifc=b#0000000001100001; imask=b#0000100001; //中斷開啟
ena timer;
//開啟定時
主體軟件流程
系統(tǒng)采用自主式時分復(fù)用,把時間分成周期性的幀,每一幀再分割成若干時隙(無論幀或時隙都是互不重疊的),每個時隙就是一個通信信道,分配給一個用戶。系統(tǒng)根據(jù)一定的時隙分配原則,使各個移動臺在每幀內(nèi)只能按指定的時隙向?qū)Ψ桨l(fā)射信號(突發(fā)信號),在滿足定時和同步的條件下,基站可以在各時隙中接收到各移動臺的信號而互不干擾。
在寄存器中劃分兩個信道的空間作為海域的時隙表,如圖4所示。
網(wǎng)絡(luò)登陸采用概率持續(xù)算法(當(dāng)發(fā)現(xiàn)一個候選時間段時,臺站在0到100之間隨機(jī)選取一個概率值LME.RTP1,該值與一個0到10的概率LME.RTP2比較,如果LME.RTP1小于或等于LME.RTP2,則選擇這個時間段,反之,LME.RTP2加上一個概率增量與下一個候選時間段比較)。在2250個時間段上隨機(jī)選擇一個空閑時隙作為網(wǎng)絡(luò)的接入點,然后以ITDMA方式接入。這種方式是一種先報告先占用的形式,在當(dāng)前發(fā)射的數(shù)據(jù)中指明下一個需要發(fā)送數(shù)據(jù)的時隙號,從而達(dá)到預(yù)先通知其它臺站自身所占用的時隙號,確定在60秒中需要占用的空間。在以后的連續(xù)階段,移動臺以SOTDMA方式完成網(wǎng)絡(luò)的維護(hù)和時隙的重新劃分。由于協(xié)議規(guī)定的數(shù)據(jù)格式中最大只能預(yù)知到7分鐘的占用情況,所以每隔7分鐘,需要在一定范圍內(nèi)重新選擇一個新的空閑時隙發(fā)送,以次類推,一直以這種連續(xù)的狀態(tài)運行下去。當(dāng)速度發(fā)生改變的時候,系統(tǒng)重新以ITDMA的方式完成新的速率下的網(wǎng)絡(luò)登陸。
結(jié)語
采用時分復(fù)用的算法,進(jìn)行一個海域內(nèi)的網(wǎng)絡(luò)劃分和聯(lián)接功能。這種DSP信號處理與嵌入式操作系統(tǒng)相結(jié)合的模式,可以廣泛應(yīng)用于通訊領(lǐng)域,具有廣泛的應(yīng)用前景。