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