• 
    

    
    

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

      OMAPL138的雙核通信設(shè)計

      2014-05-10 07:52:24林淦劉建群許東偉李嘉健
      機床與液壓 2014年22期
      關(guān)鍵詞:共享內(nèi)存外設(shè)雙核

      林淦,劉建群,許東偉,李嘉健

      (廣東工業(yè)大學(xué)機電工程學(xué)院,廣東廣州510006)

      TI 公司于2009年推出了一款高性能、低功耗的浮點、定點能力兼?zhèn)涞娜码p核處理器——OMAPL138。OMAPL138 是基于DSP 的SoC,采用C6748 DSP 內(nèi)核+ARM9 內(nèi)核的雙核結(jié)構(gòu),可實現(xiàn)高達(dá)375/456MHz 的內(nèi)核頻率。利用片上嵌入式微處理器內(nèi)核ARM9,開發(fā)人員可以在操作系統(tǒng)平臺上充分利用浮定點兼容C6748 DSP 來支持高強度的數(shù)據(jù)實時處理計算,同時將非實時性任務(wù)交給ARM9 內(nèi)核負(fù)責(zé),這種優(yōu)異的架構(gòu)能幫助設(shè)計者開發(fā)出更為出色的產(chǎn)品[1]。

      文中主要介紹一種基于OMAPL138 雙核握手通信的機制。在ARM 端運行LINUX 系統(tǒng),主要處理人機交互、向DSP 發(fā)送數(shù)據(jù)等任務(wù);而在DSP 端運行DSPBIOS,循環(huán)地接收從ARM 傳來數(shù)據(jù),進行運算處理。該設(shè)計充分地利用ARM 和DSP 自身的強大優(yōu)勢,為工業(yè)控制上需要高強度運算的實時控制系統(tǒng)設(shè)計提供了一定的借鑒和參考。

      1 OMAPL138 整體架構(gòu)

      OMAPL138 是一款集成了ARM926EJ-S 和C6748 DSP 的雙核處理器。對比DSP C6000 系列,OMAPL系列更具有低功耗、高處理能力等優(yōu)勢。其內(nèi)部集成了EDMA3、EMIFA、EMAC、SPI 等豐富的外設(shè)接口,ARM 和DSP 都可以獨自操作這些外設(shè)。由于具有高運算處理能力和先進的電源管理,使得OMAPL 系列非常適合智能和工業(yè)行業(yè)的應(yīng)用[2]。OMAPL138 嵌入式雙核處理器的內(nèi)部系統(tǒng)框圖如圖1所示。

      該設(shè)計以O(shè)MAPL138 為硬件平臺,實現(xiàn)雙核快速、準(zhǔn)確地通信。該設(shè)計具有以下幾個優(yōu)勢:

      (1)OMAPL138 雙核之間大數(shù)據(jù)量通信的一般方式是采用發(fā)送方先往共享內(nèi)存(也就是在圖1 外設(shè)系統(tǒng)中128 kB RAM)寫數(shù)據(jù),然后直接給接收方一個中斷,接收方在響應(yīng)中斷后再進行讀寫數(shù)據(jù)。而該設(shè)計對于大數(shù)據(jù)量的傳輸是采用ARM 直接對DSP RAM 進行讀寫操作,大大提高了兩核之間的通信速度。

      (2)系統(tǒng)啟動后,兩核單獨運行,這樣就存在雙核運行速度不協(xié)調(diào)的問題。設(shè)計中,通過利用DSPLINK 中的MSG 模塊,協(xié)調(diào)兩核之間的運行速度,解決了雙核運行速度不協(xié)調(diào)的問題。

      (3)在DSP 端采用兩級循環(huán)緩存區(qū),避免了DSP 在進行高速實時運算時,雙核之間的數(shù)據(jù)讀寫沖突,并減少了DSP 讀取數(shù)據(jù)的時間,提高了系統(tǒng)的強實時性。

      圖1 OMAPL138 嵌入式雙核處理器的內(nèi)部系統(tǒng)框圖

      2 通信機制的整體設(shè)計框架

      OMAPL138 擁有總共4 GB 的存儲器地址空間,地址范圍為0x00000000-0xFFFFFFFF。OMAPL138 所有外設(shè)資源,包括片內(nèi)存儲器、片外存儲器和各個控制寄存器等共同分享了這4 GB 地址空間。其中,共享內(nèi)存的地址范圍為0x80000000-0x8001FFFF,占了128 kB[3-4]。DSPLINK 是TI 提供的通用雙核通信的API 函數(shù),它包含了PROC、MSG、CHNL、POOL 等組件。DSPLINK 大部分通信原理都是發(fā)送方(ARM或DSP)將數(shù)據(jù)放在128 kB 的共享內(nèi)存中,然后給接收方一個中斷,告知接收方可接收數(shù)據(jù)[5]。而這其中的實現(xiàn)過程都是由DSPLINK 封裝好的。

      該設(shè)計在ARM 端運行LINUX 操作系統(tǒng),加載dsplink.ko 驅(qū)動,在ARM 應(yīng)用程序中調(diào)用DSPLINK的函數(shù)庫。同時在DSP 端運行DSPBIOS 實現(xiàn)與ARM的握手通信,通信機制的整體設(shè)計框架如圖2所示[6-8]。

      圖2 通信機制的整體設(shè)計框架

      該設(shè)計使用了 PROC、MSG、POOL 這3 個DSPLINK 組件。其中:

      (1)PROC 組件。PROC_write 可對DSP 內(nèi)部的L2 RAM 直接進行寫操作,可以傳輸大容量數(shù)據(jù),無需通過共享內(nèi)存。

      (2)MSG 組件。MSG_put 和MSG_get 可進行信息發(fā)送和接收,所有信息內(nèi)容都被包含在SampleMessage 結(jié)構(gòu)體中。MSG 傳輸?shù)淖止?jié)大小就是sizeof(SampleMessage),它必須與128 字節(jié)對齊。而SampleMessage 結(jié)構(gòu)體的成員可自行定義,例如該設(shè)計就把PROC_write 在DSP RAM 寫的首地址和寫的長度封裝在結(jié)構(gòu)體中。

      #define DSPLINK_BUF_ALIGN 128

      DSPLINK _ ALIGN(sizeof(SampleMessage),DSPLINK_BUF_ALIGN)

      (3)POOL 組件。為MSG 組件在外設(shè)DDR 中分配內(nèi)存區(qū),其分配大小就是sizeof(SampleMessage)的大小。

      3 雙核的握手機制

      由于ARM 啟動后就會喚醒DSP,之后它們之間就各自運行自己的程序。為了解決兩核之間的協(xié)調(diào)問題,該設(shè)計利用了DSPLINK 中的MSG 組件。一方面,MSG 為兩核之間傳遞一些狀態(tài)變量,使它們可以獲取對方執(zhí)行的情況;另一方面,接收方接收消息是采用無限等待模式,這就解決了兩核之間執(zhí)行速度快慢不協(xié)調(diào)的問題。雙核的握手機制示意圖如圖3所示。

      圖3 雙核的握手機制示意圖

      4 兩級循環(huán)緩存區(qū)設(shè)計

      在工業(yè)控制應(yīng)用中,對于外接設(shè)備的控制,如伺服電機的控制等,都必須要求是實時的。這就要求DSP 必須不間斷地實時地在內(nèi)存中讀取數(shù)據(jù),運算后輸出控制命令。若采用DSP 處理完ARM 傳來的一幀數(shù)據(jù)后,再請求ARM 發(fā)另一幀數(shù)據(jù)來進行運算處理的方案,不能滿足強實時性的要求。因此,該設(shè)計建立了兩級循環(huán)緩存區(qū),以確保緩存區(qū)中總有數(shù)據(jù)供DSP 進行實時運算。

      DSP 端建立的兩級循環(huán)緩存區(qū)如圖4所示。DSP L2 RAM 為一級緩存區(qū),循環(huán)存儲從ARM 發(fā)過來的數(shù)據(jù),而在外設(shè)DDR 中開辟第二級緩存區(qū)。DSP 在第二級緩存區(qū)DDR 中讀取數(shù)據(jù),進行實時運算處理。建立兩級循環(huán)緩存區(qū)作用在于:(1)避免了DSP 進行實時運算時讀取數(shù)據(jù)與ARM 往DSP L2 RAM 寫數(shù)據(jù)的沖突;(2)減少了DSP 進行實時計算時的讀取數(shù)據(jù)的時間,提高了系統(tǒng)的強實時性。

      圖4 DSP 端建立的兩級循環(huán)緩存區(qū)

      首先,在ARM 端定義Message 結(jié)構(gòu)體,其狀態(tài)變量如下:

      Message 就是上面提到MSG 傳遞的結(jié)構(gòu)體。發(fā)送方通過修改該結(jié)構(gòu)體的成員變量,從而告知對方當(dāng)前的運行情況。

      其次,ARM 隨時用MSG_get 獲取Message 結(jié)構(gòu)體,查詢一級緩存區(qū)(DSP L2 RAM)的Empty 區(qū)的數(shù)據(jù)大小是否已經(jīng)大于one_rw_size,如果是就往一級緩存區(qū)寫one_rw_size 個數(shù)據(jù)。

      最后,當(dāng)ARM 需要往一級緩存區(qū)(DSP L2 RAM)的Empty 區(qū)寫數(shù)據(jù)且剩下的數(shù)據(jù)大小已經(jīng)小于或等于one_rw_size 的時候,ARM 置位gppwriteover,并將剩下的數(shù)據(jù)寫到一級緩存區(qū)(DSP L2 RAM)的Empty 區(qū)中。

      而在DSP 端,每次查詢二級緩存區(qū)(DDR)的Empty 區(qū)大小是否大于one_rw_size 并且dspreadover未置位,那么就從Ptr_ram_read 開始地址往下讀one_rw_size 個字節(jié)寫到二級緩存區(qū)(DDR)中。

      當(dāng)ARM 已經(jīng)置位gppwriteover 且二級緩存區(qū)(DDR)需要從一級緩存區(qū)(DSP L2 RAM)讀的數(shù)據(jù)大小已經(jīng)小于one_rw_size 的時候,DSP 將一級緩存區(qū)剩下的數(shù)據(jù)全部讀到二級緩存區(qū),并置位dspreadover。而當(dāng)DSP 在二級緩存區(qū)中讀取數(shù)據(jù)去進行運算的大小等于file_transfer_size 時,表示數(shù)據(jù)已經(jīng)執(zhí)行完,DSP 置位Processover,并通知ARM 程序執(zhí)行完畢。

      ARM 工作流程圖如圖5所示,DSP 工作流程圖如圖6所示。

      圖5 ARM 工作流程圖

      圖6 DSP 工作流程圖

      5 結(jié)束語

      設(shè)計了一種基于OMAPL138 的雙核通信機制:一方面,對于小數(shù)據(jù)量的消息傳輸,通過共享內(nèi)存進行交互通信;另一方面,對于大數(shù)據(jù)量的通信,直接采用ARM 往DSP RAM 里面進行讀寫,提高了通信速度。并且,在DSP 端建立了兩級循環(huán)緩沖區(qū),而ARM 端監(jiān)視緩沖區(qū),一旦緩沖區(qū)有空閑區(qū)域就往里面寫數(shù)據(jù),確保了緩沖區(qū)一直有數(shù)據(jù)供DSP 讀取進行運算。經(jīng)測試,該機制運行穩(wěn)定、快速,ARM 和DSP 都可以準(zhǔn)確地進行通信。

      [1]彭啟琮,楊錬,潘曄.開放式多媒體應(yīng)用平臺——OMAP處理器的原理及應(yīng)用[M].北京:電子工業(yè)出版社,2005.

      [2]TEXAS INSTRUMENTS.OMAP-L138 Applications Processor System Reference Guide[M],2010.

      [3]付浩,劉建群.基于OMAP-L138 的嵌入式運動控制器的設(shè)計與研究[J].科學(xué)技術(shù)與工程,2013,13(1):196-200.

      [4]TEXAS INSTRUMENTS.OMAP-L138 Applications Processor System Reference Guide[M],2010.

      [5]TEXAS INSTRUMENTS.Building DSPLink Applications version 1.65.00.02[M],2010.

      [6]趙加祥.DSP 系統(tǒng)設(shè)計和BIOS 編程及應(yīng)用實例[M].北京:機械工業(yè)出版社,2008.

      [7]CorbetRubini,Kroah Hartman.Linux 設(shè)備驅(qū)動程序[M].3 版.北京:中國電力出版社,2010:21-44.

      [8]宋寶華.設(shè)備驅(qū)動開發(fā)詳解[M].2 版.北京:人民郵電出版社,2010.

      猜你喜歡
      共享內(nèi)存外設(shè)雙核
      全球金融“F20”在此召開!橫瀝進入“雙核”時代
      通過QT實現(xiàn)進程間的通信
      基于PCI總線的多處理器協(xié)同機制研究
      新型夾心雙核配和物[Zn2(ABTC)(phen)2(H2O)6·2H2O]的合成及其熒光性能
      QNX下PEX8311多路實時數(shù)據(jù)采集的驅(qū)動設(shè)計
      電子世界(2014年21期)2014-04-29 06:41:36
      三螺旋N-N橋連的雙核Co(Ⅲ)配合物的合成、結(jié)構(gòu)和性質(zhì)
      一個雙核β-二酮鏑(Ⅲ)配合物的超聲化學(xué)合成、晶體結(jié)構(gòu)和磁性
      Microchip推出具備雙ADC外設(shè)的全新器件,擴展其低成本8位PIC?單片機產(chǎn)品線
      一種高效RTAI 共享內(nèi)存管理層的研究與實現(xiàn)*
      貼身呵護 必不可少的PSP外設(shè)
      廊坊市| 江山市| 安岳县| 临城县| 鹿邑县| 茌平县| 柯坪县| 勐海县| 万全县| 荃湾区| 安宁市| 盐池县| 综艺| 基隆市| 南江县| 长乐市| 东至县| 翁牛特旗| 湘阴县| 高青县| 杭州市| 三门峡市| 龙里县| 南靖县| 竹溪县| 临夏市| 上高县| 唐海县| 临澧县| 苏尼特右旗| 平昌县| 大洼县| 凤城市| 翁牛特旗| 黔东| 隆化县| 镇原县| 汶上县| 大足县| 修文县| 凤冈县|