• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于S3C6410的DMA數(shù)據(jù)跟蹤技術(shù)在TD-LTE中的實現(xiàn)*

      2012-02-06 07:02:58陳安地李小文
      電子技術(shù)應(yīng)用 2012年5期
      關(guān)鍵詞:原語外設(shè)數(shù)據(jù)量

      陳安地,李小文

      (重慶郵電大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,重慶 400065)

      原語是從物理層到非接入層各層間的通信數(shù)據(jù),這些數(shù)據(jù)包含帶有大量標識信息的頭。在TD-LTE無線綜合測試儀表數(shù)據(jù)傳輸過程中,從最上端非接入層開始向下逐層將數(shù)據(jù)加頭并加入本層的有效數(shù)據(jù),到物理層后向上反饋并逐層解析頭提取本層所需數(shù)據(jù)。這些數(shù)據(jù)的正確性是確保整個通信系統(tǒng)正常運作的關(guān)鍵所在,因此,在系統(tǒng)設(shè)計與調(diào)試過程中對這些數(shù)據(jù)的實時跟蹤檢測十分必要。

      本文介紹了在TD-LTE中基于三星ARM1176JZF芯片S3C6410的DMA技術(shù)的具體應(yīng)用實現(xiàn) (即原語跟蹤技術(shù)),以及在具體環(huán)境中不同技術(shù)方案的對比分析。最終的設(shè)計方案充分利用了DMA在基帶芯片中的可用性與占用CPU資源小的優(yōu)勢[1],實現(xiàn)了高效實時可靠的原語跟蹤。

      1 S3C6410中DMA控制器特性

      S3C6410包含4個DMA控制器,每個DMA控制器由8個傳輸通道組成。DMA控制器的每個通道能在主AXI(Advanced Extensible Interface)總線的設(shè)備和外部 AXI總線之間通過AHB(Advanced High performance Bus)到AXI進行單向數(shù)據(jù)傳輸。DMA控制器結(jié)構(gòu)框圖如圖1所示,每個控制器提供16個外設(shè)DMA請求,并且DMA控制器支持外部中斷響應(yīng),即每個通道可以支持從內(nèi)存到外設(shè)、從內(nèi)存到內(nèi)存、從外設(shè)到內(nèi)存、從外設(shè)到外設(shè)4種模式的數(shù)據(jù)傳輸。在TD-LTE系統(tǒng)中,原語跟蹤使用的是內(nèi)存到外設(shè)模式,每個外設(shè)連接到DMA控制器,可以產(chǎn)生DMA脈沖請求或是單一DMA請求,脈沖大小可編程。DMA內(nèi)部有4個字的 FIFO通道,支持8 bit、16 bit、32 bit寬度處理。由于原語跟蹤采用的外設(shè)是UART支持的8 bit輸出,故本文在設(shè)計中DMA也采用8 bit處理[2]。

      2 DMA信號處理流程與跟蹤步驟

      數(shù)據(jù)跟蹤的基本機制如下:首先為各層的數(shù)據(jù)在內(nèi)存中開辟存儲空間,將數(shù)據(jù)存儲到指定緩存中,再由DMA實現(xiàn)內(nèi)存到外設(shè)的數(shù)據(jù)搬移。本文的外設(shè)是UART,將數(shù)據(jù)搬移到UART的輸出緩存區(qū)以實現(xiàn)數(shù)據(jù)跟蹤。DMA控制器和外設(shè)的信號交互如圖2所示。

      當請求被允許且剩余數(shù)據(jù)量大于脈沖大小時,DMA控制器發(fā)送全部數(shù)據(jù)脈沖;而剩余數(shù)據(jù)量小于脈沖大小時,DMA控制器將再次監(jiān)控請求信號等待下次傳輸[3]。本文在數(shù)據(jù)跟蹤時將脈沖設(shè)置為1以滿足數(shù)據(jù)跟蹤實時性的要求。此外,由于單次數(shù)據(jù)量并不是很大(最大不過字節(jié)單位的數(shù)據(jù)量),因此沒有采用鏈表模式來傳輸數(shù)據(jù)。整個跟蹤過程主要包括以下幾個步驟:首先DMA接收到外設(shè)驅(qū)動初始化完畢后發(fā)送的DMA請求;然后DMA控制器請求CPU將數(shù)據(jù)搬移到需要使用的總線交給DMA控制,將數(shù)據(jù)預(yù)讀取到DMA-FIFO中(即DMA數(shù)據(jù)搬移內(nèi)部過程);最后打開DMA通道將DMA-FIFO中的數(shù)據(jù)傳輸?shù)経ART的輸出緩存中,輸出到顯示設(shè)備。其中只有驅(qū)動初始化和總線釋放過程有CPU參與,而驅(qū)動初始化過程是一次性的,之后的步驟都由DMA單獨控制從而釋放CPU資源以繼續(xù)執(zhí)行系統(tǒng)的其他工作。工作中會產(chǎn)生更多的原語需要DMA反復(fù)運行支持實時跟蹤,圖3為數(shù)據(jù)跟蹤基本設(shè)計流程。

      3 DMA跟蹤數(shù)據(jù)方案設(shè)計與分析

      數(shù)據(jù)在內(nèi)存中的緩存處理方案是:根據(jù)TD-LTE無線綜合測試儀表系統(tǒng)單次跟蹤的數(shù)據(jù)量大小以及原語產(chǎn)生地址與時間的隨機不連續(xù)性,DMA搬移數(shù)據(jù)時設(shè)置了100 KB的數(shù)據(jù)緩存區(qū),以統(tǒng)一數(shù)據(jù)地址提高跟蹤效率[4],從而在合理利用存儲空間的同時也保證了數(shù)據(jù)在傳輸過程中的高效與完整性,設(shè)計中采用起始地址和結(jié)束地址標志相減的方式判斷單次數(shù)據(jù)量大小。當數(shù)據(jù)存儲到100 KB緩存邊界緩存溢出時,需要采用一定的數(shù)據(jù)處理機制來做溢出判斷,其處理方式如圖4所示。將本次的數(shù)據(jù)量分成A、B兩塊,分兩次分別傳輸,A部分是本次數(shù)據(jù)搬移起始位置到100 KB邊界位置的數(shù)據(jù)量,B部分是當前數(shù)據(jù)總量減去A部分數(shù)據(jù)后的剩余數(shù)據(jù)量。這里要注意的是:A部分數(shù)據(jù)傳輸完成后,系統(tǒng)可能又產(chǎn)生了新的原語數(shù)據(jù)塊C,因此設(shè)計中,在傳輸數(shù)據(jù)塊B時要重新讀取數(shù)據(jù)的終止標志位加上后面產(chǎn)生的新的數(shù)據(jù)塊C,以保證數(shù)據(jù)的實時性與完整性。

      在TD-LTE無線綜合測試儀表系統(tǒng)中,原語是單條產(chǎn)生的,并帶有一定的時間間隔。為滿足系統(tǒng)對實現(xiàn)數(shù)據(jù)跟蹤的實時性要求,在跟蹤數(shù)據(jù)時也是單條實時顯示。這就要求在設(shè)計中判定DMA在每次傳輸是否完成,避免本次傳輸還未完成而下一次傳輸已經(jīng)開始,導(dǎo)致本次傳輸數(shù)據(jù)不完整。因此在設(shè)計過程中,采用了中斷判斷模式和中斷標志位判斷模式兩種方案來判定傳輸是否完成并獲取總線來執(zhí)行下一次數(shù)據(jù)搬移。

      3.1 中斷判定模式

      根據(jù)S3C6410中DMA控制器特性,DMA在數(shù)據(jù)搬移結(jié)束時可以產(chǎn)生數(shù)據(jù)計數(shù)中斷或數(shù)據(jù)錯誤中斷兩種中斷。設(shè)計中打開DMA對應(yīng)的GPIO(General Purpose Input Output)口并初始化相對應(yīng)的 41號 VIC(Vectored Interrupt Controllers)中斷向量,就可以利用數(shù)據(jù)計數(shù)中斷來完成系統(tǒng)的外部中斷響應(yīng),進入中斷函數(shù),在中斷函數(shù)中再次調(diào)用DMA以此完成多次數(shù)據(jù)搬移[4]。在使能DMA通道并且數(shù)據(jù)傳輸完成后由硬件自動響應(yīng)中斷,有效避免了DMA設(shè)備在傳輸過程中被下一次傳輸請求打斷,而搬移數(shù)據(jù)和系統(tǒng)其他程序的執(zhí)行完全互不干擾。這種模式可以在各種數(shù)據(jù)量大小的數(shù)據(jù)搬移過程中最大限度地利用CPU資源。但是,由于采用了上述的數(shù)據(jù)緩存機制,而且在TD-LTE系統(tǒng)中斷處理中比DMA計數(shù)中斷優(yōu)先級高的中斷還有很多,因此采用中斷模式在實際運用中會出現(xiàn)以下三種典型不穩(wěn)定的情況及所采取的措施:

      (1)在CPU向緩存中搬移數(shù)據(jù)過程中產(chǎn)生了中斷,此時會出現(xiàn)當前一次要搬移的數(shù)據(jù)在內(nèi)存中不完整或標志位混亂的情況,因此,在設(shè)計時搬移數(shù)據(jù)前還需要增加內(nèi)存數(shù)據(jù)是否存儲完成的標志位判定。由于中斷類型眾多,設(shè)計有一定難度。

      (2)最后幾條原語數(shù)據(jù)在存入內(nèi)存緩存區(qū)后,若前面的搬移數(shù)據(jù)還沒有完成,則無法獲取總線,則會導(dǎo)致最后幾條原語無法跟蹤。因此,需要在原語全部發(fā)送完畢后在系統(tǒng)程序靠后的固定位置添加一條空的原語跟蹤語句來跟蹤最后幾條。

      (3)當出現(xiàn)較大數(shù)據(jù)量搬移時耗時較長,可能超過上層系統(tǒng)原語發(fā)送的間隔時間,后面幾條原語將堆積到緩存中,等待下一次DMA總線獲取后,一次性搬出,這樣會導(dǎo)致下一次數(shù)據(jù)搬移時間的延長。這一條是基于機制的本質(zhì)問題,實時性和數(shù)據(jù)完整性預(yù)計會受到較大影響。

      3.2 中斷標志位判定模式

      這種方案的基本思路與中斷模式相似,也需要解決DMA反復(fù)獲取總線的問題。方案中屏蔽了DMA控制器在ARM中的中斷響應(yīng),在每次系統(tǒng)上層調(diào)用數(shù)據(jù)緩存的過程中加入了DMA接口函數(shù),以這種方式在系統(tǒng)上層作為數(shù)據(jù)緩存時主動獲取總線[5]。采用軟件的方式編程判斷DMA數(shù)據(jù)計數(shù)中斷標志位(在DMACIntTCStatus寄存器中)是否拉高置 1,然后以消耗 CPU資源為代價來等待傳輸完成或是傳輸完成后直接進行下一次DMA總線獲取。這種模式以軟件方式代替硬件中斷響應(yīng),可以保證每一條原語在數(shù)據(jù)緩存后的及時跟蹤,也能滿足實時性與數(shù)據(jù)完整性的要求。但該方案也存在機制上的缺陷,其表現(xiàn)為在連續(xù)大數(shù)據(jù)量跟蹤時會出現(xiàn)持續(xù)消耗CPU、等待DMA數(shù)據(jù)搬移完成的情況,從而影響系統(tǒng)運行效率。

      4 方案性能對比分析

      由于兩種方案各有優(yōu)缺點,在調(diào)試過程中對兩種方案做了詳細的對比與分析,最后根據(jù)TD-LTE無線綜合測試儀表系統(tǒng)的具體特性與應(yīng)用要求選擇了較優(yōu)的中斷標志位判定模式。

      首先,根據(jù)設(shè)計原理和調(diào)試中呈現(xiàn)的不穩(wěn)定情況,通過對兩種方案進行資源占用時間分析,了解它們對系統(tǒng)的影響,圖5中分別列出了兩種方案中正常情況和不穩(wěn)定狀態(tài)下的典型資源占用時間情況。

      由圖 5(a)可以看出,采用中斷模式(方案 1)出現(xiàn)不穩(wěn)定情況時,在下次跟蹤時會累計更多條原語從而使DMA占用更多時間,雖然CPU資源利用率較高,但是會產(chǎn)生惡性循環(huán),導(dǎo)致最后大量數(shù)據(jù)無法輸出,破壞數(shù)據(jù)完整性,同時也降低了數(shù)據(jù)跟蹤的實時性。圖5(b)中采用中斷標志位判定模式(方案2),在出現(xiàn)不穩(wěn)定情況時,由于各條原語跟蹤相對獨立,僅在當前一條的原語跟蹤后出現(xiàn)對CPU資源占用,雖然對系統(tǒng)總體CPU利用率產(chǎn)生影響,但是不會對后面的原語跟蹤產(chǎn)生任何影響。

      其次,對兩種方案中不穩(wěn)定情況在TD-LTE無線綜合測試儀表系統(tǒng)中發(fā)生的可能性進行分析,主要需要考慮系統(tǒng)產(chǎn)生原語數(shù)據(jù)量的大小以及產(chǎn)生時間間隔這兩個參數(shù)。在整個調(diào)試流程中UART波特率為56000baud/s,系統(tǒng)時鐘ARMCLK為667MHz、PCLK為66.7MHz、HCLK為133MHz,產(chǎn)生原語平均大小為128B(其中大部分原語數(shù)據(jù)量小于這個值,由于個別數(shù)據(jù)量較大而將平均值拉大)。通過示波器分析可以看出,在單次跟蹤數(shù)據(jù)量為128 B、總次數(shù)為10次的數(shù)據(jù)跟蹤條件下,平均時間間隔(每次產(chǎn)生數(shù)據(jù)跟蹤間隔的時間)與小時間間隔(產(chǎn)生數(shù)據(jù)跟蹤間隔的時間小于數(shù)據(jù)跟蹤所需時間)時兩種方案的測試情況,其波形與時間分析如圖6所示。圖6中,A波形為128 B原語數(shù)據(jù)單次跟蹤波形,△X為所需要的時間;B波形為正常時間間隔下連續(xù)10次、128 B數(shù)據(jù)量原語跟蹤,其中的間隔時間△X內(nèi)CPU仍然在運行,中斷模式與中斷標志位判定模式在A、B兩種情況下的輸出占用時間大體相同。C波形是中斷標志位判定模式下小時間間隔10次、128 B數(shù)據(jù)量原語跟蹤所輸出的波形,在沒有原語跟蹤的情況下CPU執(zhí)行時間在190 ms,而這里消耗了227 ms,跟蹤數(shù)據(jù)正常,只是多占用了37 ms的CPU資源。D波形為中斷模式下小時間間隔10次、128 B數(shù)據(jù)量原語跟蹤所輸出的波形,根據(jù)波形輸出情況可以斷定發(fā)生了圖5中數(shù)據(jù)積累情況,導(dǎo)致后面有兩條原語在跟蹤時由于DMA沒有獲取到總線而沒有輸出,對數(shù)據(jù)跟蹤的實時性和完整性影響頗大。

      本文介紹的兩種DMA原語跟蹤方案已經(jīng)在ARM Workbench IDE v4.0與RealView Debugger v4.0上編譯調(diào)試,并通過了測試板驗證和聯(lián)機驗證。在反復(fù)驗證后,采取了中斷標志位判定模式來實現(xiàn)跟蹤。該方案的運行結(jié)果與理論值一致,不受系統(tǒng)中其他諸如DSP數(shù)據(jù)中斷、FPGA指針中斷等高優(yōu)先級中斷的干擾[4],具有較強的獨立性和穩(wěn)定性,優(yōu)化了系統(tǒng)CPU資源利用率,實現(xiàn)了DMA數(shù)據(jù)跟蹤的高強度反復(fù)穩(wěn)定運行。

      [1]Tang Dan,Bao Yungang,Hu Weiwu,et al.DMA cache:using on-chip storage to architecturally separate I/O data from CPU data for improving I/O performance[C].High Performance Computer Architecture(HPCA),2010 IEEE 16th International Symposium.Bangalore,India.January 9-14.2010:1-12.

      [2]唐中燕.DMA技術(shù)在嵌入式現(xiàn)場前端設(shè)備中的應(yīng)用[J].電測與儀表,2006,43(483):60-61.

      [3]Samsung Electronics.S3C6410X RISC microprocessor user's manual[R].2008.

      [4]HESSEL S,SZCZESNY D,BRUNS F,et al.Architectural analysis of a smart DMA controller for protocol stack acceleration in LTE terminals[C].The Sixteenth IEEE International Conference on Embedded and Real-Time Computing Systems and Applications.Macau,China.Aug 23-25,2010:309-315.

      [5]DASYGENIS M,BROCKMEYER E,DURINCK B,et al.A combined DMA and application-specific prefetching approach for tackling the memory latency bottleneck[J].Very Large Scale Integration(VLSI)Systems.2006,14(3):279-291.

      猜你喜歡
      原語外設(shè)數(shù)據(jù)量
      測試原語:存儲器故障最小檢測序列的統(tǒng)一特征
      基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
      計算Lyapunov指數(shù)的模糊C均值聚類小數(shù)據(jù)量法
      高刷新率不容易顯示器需求與接口標準帶寬
      寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設(shè)計與研究
      電子制作(2019年13期)2020-01-14 03:15:18
      密碼消息原語通信協(xié)議介紹及安全分析
      Microchip推出具備雙ADC外設(shè)的全新器件,擴展其低成本8位PIC?單片機產(chǎn)品線
      基于原語自動生成的安全協(xié)議組合設(shè)計策略及應(yīng)用研究
      貼身呵護 必不可少的PSP外設(shè)
      “原語效應(yīng)”在漢英口譯中的運用及局限性研究
      固始县| 莱州市| 左贡县| 建瓯市| 阜城县| 杭州市| 抚远县| 息烽县| 宜兰县| 瓮安县| 乡宁县| 鹤山市| 仁寿县| 当雄县| 阿拉尔市| 齐齐哈尔市| 宝鸡市| 东丰县| 郯城县| 甘谷县| 志丹县| 延津县| 信丰县| 鹤峰县| 南阳市| 青冈县| 余姚市| 德昌县| 大新县| 六安市| 湘乡市| 扎囊县| 遵义市| 黔东| 新和县| 加查县| 湾仔区| 赣州市| 馆陶县| 金昌市| 贵港市|