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)生串行時(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)志位,主程序定期檢測標(biāo)志位,當(dāng)檢測到標(biāo)志位變化時(shí),調(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)部定時(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)生中斷,每次中斷程序檢測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ā)射信號(突發(fā)信號),在滿足定時(shí)和同步的條件下,基站可以在各時(shí)隙中接收到各移動(dòng)臺(tái)的信號而互不干擾。
在寄存器中劃分兩個(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í)隙號,從而達(dá)到預(yù)先通知其它臺(tái)站自身所占用的時(shí)隙號,確定在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í)分復(fù)用的算法,進(jìn)行一個(gè)海域內(nèi)的網(wǎng)絡(luò)劃分和聯(lián)接功能。這種DSP信號處理與嵌入式操作系統(tǒng)相結(jié)合的模式,可以廣泛應(yīng)用于通訊領(lǐng)域,具有廣泛的應(yīng)用前景。
評論