上海婦科疾病研究所 上海女性不孕醫(yī)院 上海引產(chǎn)醫(yī)院 無(wú)痛引產(chǎn)痛不痛 上海人流醫(yī)院 白癜風(fēng)治療醫(yī)院 上海小兒腦癱醫(yī)院 上海女子醫(yī)院
有声小说打包下载,耳根

国产精品无码毛片AV_亚洲毛片精品在线_全球黄色短视频在线免费观看_亚洲一区二区爱av_成年人免费观看网址_欧美美女性爱喷水网址_亚洲毛片av无码不卡_国产无码视频在线观看_高清国语自产拍在线播放_女人午夜免费黄片

用戶名: 密碼:
主頁(yè) 設(shè)為首頁(yè) 加入收藏
      產(chǎn)品中心       技術(shù)中心       下載中心        社區(qū)新聞        誠(chéng)聘英才       大學(xué)計(jì)劃        關(guān)于我們       技術(shù)論壇
  您的當(dāng)前位置:ADSP開(kāi)源社區(qū) >> 技術(shù)中心 >> Blackfin 今天是:
技術(shù)中心  
SigmaDSP
SHARC
A2B音頻總線
Blackfin
ADI操作系統(tǒng)
ADSP-218X
TigerSAHRC
ADI DSP仿真器
產(chǎn)品導(dǎo)航
ADI DSP仿真器
SigmaDSP開(kāi)發(fā)板
ADI A2B總線開(kāi)發(fā)板
SHARC DSP開(kāi)發(fā)板
銷售網(wǎng)絡(luò)
Blackfin  
淺談BF537處理器中sport口時(shí)分復(fù)用的理解(轉(zhuǎn)載)
[ 作者:OP ] [ 來(lái)源:ADSP開(kāi)源社區(qū) ] [ 發(fā)布時(shí)間:2018-3-22 ]

1, 基礎(chǔ)知識(shí)

    在給出例程之前,先了解一下相關(guān)的基礎(chǔ)知識(shí)。

    Sport接口提供一種多通道的操作模式,運(yùn)用這種模式可以以時(shí)分復(fù)用的方式進(jìn)行通信。在多通道模式中,每個(gè)數(shù)據(jù)字都占用一個(gè)獨(dú)立的通道。每個(gè)sport最多可以進(jìn)行128個(gè)通道的通信,sport口可以自動(dòng)地選擇某個(gè)通道而忽略其他的通道。Sport在每個(gè)通道中都可以進(jìn)行發(fā)送,接收,或者同時(shí)發(fā)送和接收,或者什么都不做。多通道也可以運(yùn)行在DMA模式下。

    Sport多通道發(fā)送選擇寄存器和多通道接收選擇寄存器的設(shè)置必須在sport發(fā)送或者接收使能事前進(jìn)行。也就是sport,DMA使能是所有相關(guān)寄存器設(shè)置之后的最后一步。

    下圖表示了一個(gè)多通道傳輸?shù)膶?shí)例,它具有以下特點(diǎn):

    在一個(gè)串行總線上用時(shí)分復(fù)用的模式進(jìn)行傳輸,它的數(shù)據(jù)的發(fā)送和接收占用不同通道。
獨(dú)立的選擇發(fā)送或者接收通道
RFS信號(hào)最為幀開(kāi)始的標(biāo)志
TFS信號(hào)作為數(shù)據(jù)有效的標(biāo)志
通道0和2用于接收,通道1和2用于發(fā)送多通道幀延時(shí)設(shè)置為1
多通道操作的使能
   SPORTx_MCM2中的MCMEN位置位使能SPORT多通道模式,sport的接收和發(fā)送時(shí)同時(shí)使能的,所有如果使能sport發(fā)送,那么接收也必須用多通道模式。 
幀同步信號(hào)
在多通道模式中所有的接收和發(fā)送設(shè)備都必須有一個(gè)唯一的參考時(shí)序。RFS用來(lái)做為這個(gè)唯一的參考時(shí)序,RFS標(biāo)志著一個(gè)數(shù)據(jù)塊的開(kāi)始。
       在sport多通道模式下,接受方和發(fā)送方都用RFS來(lái)做為幀同步信號(hào)。RFS標(biāo)志著多通道傳輸?shù)拈_(kāi)始。   
RFS在被發(fā)送方接收的到時(shí)候,傳輸就開(kāi)始了,在傳輸期間的其他的RFS信號(hào)時(shí)背忽略的。
多通道幀同步延時(shí)
在多通道模式中, SPORTx_MCMC2寄存器的MFD域定義了在幀同步的有效沿和第一個(gè)數(shù)據(jù)位的時(shí)鐘個(gè)數(shù)。這個(gè)位的設(shè)置為不同的設(shè)備接口提供了方便。MFD為0的時(shí)候,第一個(gè)數(shù)據(jù)位是和幀同步位同時(shí)發(fā)出的,也就是說(shuō)沒(méi)有延時(shí)。MFD最大的可設(shè)定值是15。
窗口大小
       窗口大小定義了被多通道選擇寄存器使能的通道的個(gè)數(shù)。被使能的序列被稱為被激活的窗口。WSIZE[3:0]的值可以取0—15,對(duì)應(yīng)8---128個(gè)窗口大小,遞增值是8個(gè)通道。默認(rèn)值是0,對(duì)應(yīng)8個(gè)通道。WSIZE[3:0]的值與被激活的通道個(gè)數(shù)的關(guān)于如下:
Number of words in active window = 8 x (WSIZE + 1)
分布在窗口外面的多通道被使能將要被忽略。
窗口偏移
       窗口偏移說(shuō)明了,在1024個(gè)通道里面,被激活的窗口的起始位置。0表示沒(méi)有偏移。例如wsize=0 woff=93,表示被激活的通道是8個(gè),起始位置是93,即93—100通道是被激活。在sport被使能之后,這兩個(gè)值是不能改變的。
通道選擇寄存器
       這里的通道就是指的時(shí)分復(fù)用里的通道,每個(gè)通道一般是3—32位的一個(gè)數(shù)據(jù)字,具體字長(zhǎng)可以自由設(shè)定。多通道選擇寄存器中的每個(gè)位對(duì)應(yīng)一個(gè)通道,置1說(shuō)明使能對(duì)應(yīng)的通道,0表示不使能對(duì)應(yīng)的通道。SPORTx_MRCSn 和 SPORTx_MTCSn被用來(lái)使能接收和發(fā)送的有效通道。發(fā)送和接收分別有四個(gè)32位寄存器,共可以設(shè)置128個(gè)通道。

2, 多通道設(shè)置例程
多通道應(yīng)用背景:三個(gè)過(guò)程板與一個(gè)中心處理單元用sport總線相連,數(shù)據(jù)單向移動(dòng),從過(guò)程板向中心處理單元傳送,傳送方式:基于自動(dòng)緩沖的DMA模式的sport多通道時(shí)分復(fù)用。
多通道時(shí)分復(fù)用的時(shí)候,sport口寄存器的設(shè)置:例如,兩個(gè)設(shè)備,設(shè)備1設(shè)備2都向設(shè)備3發(fā)送,采用時(shí)分復(fù)用的方式主要寄存器設(shè)置如下:
基本參數(shù):DSP : blackfin536
                 SCLK  100MHz
發(fā)送端沒(méi)什么可說(shuō)的,重點(diǎn)解釋下面兩個(gè)寄存器的設(shè)置
設(shè)備一:(發(fā)送)
       *pSPORT1_MCMC1 =0x1000;//設(shè)備1窗口大小是16,偏移量是0
       *pSPORT1_MCMC2 =MFD_1 |MCMEN;
       *pSPORT1_MTCS0 = 0x0000FFFF; 發(fā)送通道是16個(gè)通道
設(shè)備二:(發(fā)送)
*pSPORT1_MCMC1 =0x1010;//設(shè)備2窗口大小是16,偏移量是16
       *pSPORT1_MCMC2 =MFD_1 |MCMEN;
       *pSPORT1_MTCS0 = 0x0000FFFF; 發(fā)送通道是前16個(gè)通道
設(shè)備三:接收設(shè)備  系統(tǒng)時(shí)鐘100MHz
       *pSPORT0_TCR1 = TCKFE | ITCLK;
       *pSPORT0_TCR2 = SLEN_32 ;//| TSFSE;  //這里設(shè)置字長(zhǎng)是32位,可根據(jù)需要設(shè)定
           
       *pSPORT0_RCR1 =  RCKFE | IRFS | IRCLK;  //多通道時(shí)發(fā)送端提供幀同步
       *pSPORT0_RCR2 = SLEN_32 ;  //這里設(shè)置字長(zhǎng)是32位,可根據(jù)需要設(shè)定
       *pSPORT0_RCLKDIV = 0x0001;   //發(fā)送時(shí)鐘分頻,可根據(jù)需要設(shè)定
       *pSPORT0_RFSDIV = 0x03C0;    //幀同步分頻
     
           
       *pSPORT0_MCMC1 = 0x3000;  //窗口大小是32.就是說(shuō)每個(gè)接收循環(huán)接收32個(gè)字,窗口偏移是0,就是從0通道開(kāi)始接收
       *pSPORT0_MCMC2 =  MFD_1 | MCMEN;
       *pSPORT0_MTCS0 = 0x00000000;
       *pSPORT0_MTCS1 = 0x00000000;
       *pSPORT0_MTCS2 = 0x00000000;
       *pSPORT0_MTCS3 = 0x00000000;
       *pSPORT0_MRCS0 = 0xFFFFFFFF;  接收通道,32個(gè)通道
       *pSPORT0_MRCS1 = 0x00000000;
       *pSPORT0_MRCS2 = 0x00000000;
       *pSPORT0_MRCS3 = 0x00000000;

調(diào)試過(guò)程中遇到的問(wèn)題:收到的數(shù)據(jù)出現(xiàn)丟包或者重復(fù)包的現(xiàn)象。

原來(lái)是發(fā)送端的寄存器設(shè)置的問(wèn)題,在DMA3_CONFIG這個(gè)寄存器中有個(gè)SYNC項(xiàng)的設(shè)置,在運(yùn)用多通道時(shí)分復(fù)用的時(shí)候錯(cuò)誤的將SYNC位置1了,就出現(xiàn)了上述的現(xiàn)象。原來(lái)這個(gè)SYNC位的作用是這樣的:當(dāng)DMA發(fā)送緩沖區(qū)的數(shù)據(jù)的最后一個(gè)數(shù)據(jù)移到sport FIFO中去的時(shí)候,就發(fā)生中斷,然后刷新緩沖區(qū),這是沒(méi)有置位SYNC的情況。在置位SYNC之后的情況就變了,是sport FIFO中的數(shù)據(jù)的最后一個(gè)數(shù)倍發(fā)送出去之后才會(huì)產(chǎn)生中斷,這樣的話就會(huì)出現(xiàn)上述的錯(cuò)誤現(xiàn)象,為什么會(huì)出現(xiàn)這樣的現(xiàn)象呢?這是因?yàn)镈MA緩沖區(qū)向sport FIFO中轉(zhuǎn)移數(shù)據(jù)與sport FIFO向tx寄存器中發(fā)送數(shù)據(jù)的過(guò)程是連續(xù)的,加上SYNC這個(gè)位之后,當(dāng)DMA緩沖區(qū)內(nèi)的最后一個(gè)數(shù)據(jù)移動(dòng)到SPORT FIFO中去的時(shí)候,并沒(méi)有產(chǎn)生中斷,這時(shí)發(fā)送過(guò)程還是正在執(zhí)行的,當(dāng)下一次再?gòu)腄MA 緩沖區(qū)向FIFO中移動(dòng)數(shù)據(jù)的時(shí)候,因?yàn)橹皼](méi)有中斷發(fā)生,DMA的緩沖區(qū)也沒(méi)有刷新,它里面還是以前的數(shù)據(jù),所以它又從第一個(gè)數(shù)據(jù)開(kāi)始移動(dòng),所以這時(shí)又把DMA緩沖區(qū)內(nèi)的第一個(gè)數(shù)據(jù)移出來(lái)了。當(dāng)這個(gè)過(guò)程進(jìn)行兩次的時(shí)候,sport把這個(gè)循環(huán)進(jìn)行完了,產(chǎn)生中斷,這時(shí)DMA緩沖區(qū)的數(shù)據(jù)才開(kāi)始刷新,所以,下一包數(shù)據(jù)實(shí)際上是前一包的數(shù)據(jù)的前兩個(gè)字,加上DMA緩沖區(qū)刷新的數(shù)據(jù)的第三個(gè)字往后的數(shù)據(jù),以此往復(fù)。

聯(lián)系我們 | 關(guān)于我們 | 免責(zé)聲明 | 誠(chéng)征英才 | 友情鏈接
Copyright 2019 All rights reserved  本網(wǎng)頁(yè)版權(quán)屬Open ADSP所有
北京海淀區(qū)中關(guān)村大街32號(hào)新中發(fā)市場(chǎng)3659 郵編100100
電話 18611096839 
粵ICP備14035876號(hào)-1