0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

英創(chuàng)信息技術(shù)ESM335x工控主板ISA總線DMA數(shù)據(jù)傳輸簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-07 10:42 ? 次閱讀

在《EM335x主板ISA總線的高級(jí)應(yīng)用》一文中介紹了WEC7版的ESM335x精簡ISA總線數(shù)據(jù)"塊"讀寫方法,對(duì)于多字節(jié)數(shù)據(jù)塊的連續(xù)讀寫,采用塊讀寫方式可以減少驅(qū)動(dòng)程序API的調(diào)用次數(shù),提高ISA總線的訪問效率。

數(shù)據(jù)塊讀寫功能是通過設(shè)備驅(qū)動(dòng)的DeviceIoControl來完成的,需要用到以下數(shù)據(jù)結(jié)構(gòu):

typedef struct

{

PBYTE pReadBuf; //ISA讀數(shù)據(jù)buffer, 只能一個(gè)buffer有效

PBYTE pWriteBuf; //ISA寫數(shù)據(jù)buffer, 只能一個(gè)buffer有效

DWORD dwDataLength; //length of data in byte

DWORD dwDataPortOfs; //讀寫的起始地址 = 0x00 – 0xFF

DWORD dwInc; //= 0: 固定地址, > 0: 讀寫后地址自動(dòng)增加

} ISA_BLOCK_INFO, *PISA_BLOCK_INFO;

在上述數(shù)據(jù)結(jié)構(gòu)中:

pReadBuf為進(jìn)行讀操作時(shí)的數(shù)據(jù)buffer,讀操作具體為8-bit數(shù)據(jù)讀。注意:數(shù)據(jù)結(jié)構(gòu)中,pReadBuf和pWrietBuf只能有一個(gè)有效。

pWriteBuf為進(jìn)行寫操作時(shí)的數(shù)據(jù)buffer,寫操作具體為8-bit數(shù)據(jù)讀。注意:數(shù)據(jù)結(jié)構(gòu)中,pReadBuf和pWrietBuf只能有一個(gè)有效。

dwDataPortOfs為讀寫的端口地址,范圍為0x00 – 0xFF。

dwDataLength為本數(shù)據(jù)塊讀或?qū)懙淖止?jié)數(shù)。

dwInc為每次讀寫后,地址的自動(dòng)增量,dwInc = 0:表示固定地址讀寫,dwInc > 0: 表示每次讀寫后,地址會(huì)自動(dòng)增加dwInc,作為下一次的讀寫地址。當(dāng)?shù)刂烦^0xFF時(shí),會(huì)折回到地址0x00。

數(shù)據(jù)塊讀寫方式雖然減少了頻繁調(diào)用系統(tǒng)API而產(chǎn)生的系統(tǒng)開銷,但數(shù)據(jù)讀寫過程還是需要CPU的全程參與,為了進(jìn)一步提高CPU的利用效率,我們升級(jí)了ISA的驅(qū)動(dòng)程序,實(shí)現(xiàn)了DMA方式的數(shù)據(jù)傳輸?;谥С諨MA操作的ISA驅(qū)動(dòng),應(yīng)用程序在調(diào)用DeviceIoControl進(jìn)行塊讀寫操作時(shí),如果訪問固定地址(即將設(shè)置參數(shù)dwInc為0),則驅(qū)動(dòng)程序就會(huì)自動(dòng)啟用DMA方式進(jìn)行數(shù)據(jù)傳輸。

采用DMA進(jìn)行數(shù)據(jù)傳輸可以進(jìn)一步提高ISA總線的數(shù)據(jù)傳輸速度,同時(shí)大大降低總線數(shù)據(jù)傳輸對(duì)CPU負(fù)載率的影響。當(dāng)不使用DMA進(jìn)行數(shù)據(jù)傳輸,ESM335x CPU全速運(yùn)行時(shí)(CPU負(fù)載100%),ISA總線的讀寫速度在3MB/s左右,使用DMA方式后,ESM335x ISA總線速度可達(dá)到5MB/s左右,扣除驅(qū)動(dòng)程序必要處理開銷,在應(yīng)用層實(shí)測的數(shù)據(jù)塊讀速度為4.17MB/s、數(shù)據(jù)塊寫速度為4.5MB/s,而此時(shí)CPU的負(fù)載率在15%左右。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6084

    瀏覽量

    35155
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LORA模塊的數(shù)據(jù)傳輸速率

    LoRa(Long Range)是一種用于物聯(lián)網(wǎng)(IoT)應(yīng)用的低功耗廣域網(wǎng)(LPWAN)技術(shù)。它以其長距離通信能力和低功耗特性而聞名。LoRa模塊的數(shù)據(jù)傳輸速率可以根據(jù)不同的配置和地區(qū)的規(guī)定
    的頭像 發(fā)表于 10-31 17:03 ?483次閱讀

    網(wǎng)絡(luò)數(shù)據(jù)傳輸速率的單位是什么

    網(wǎng)絡(luò)數(shù)據(jù)傳輸速率的單位是 bps(bit per second) ,即比特每秒,也可以表示為b/s或bit/s。它表示的是每秒鐘傳輸的二進(jìn)制數(shù)的位數(shù)。比特(bit)是計(jì)算機(jī)中數(shù)據(jù)量的單位,也是
    的頭像 發(fā)表于 10-12 10:20 ?785次閱讀

    高速串行總線,數(shù)據(jù)傳輸離不開它!#高速串行總線 #電路知識(shí) #數(shù)據(jù)傳輸

    電路數(shù)據(jù)傳輸
    安泰儀器維修
    發(fā)布于 :2024年08月20日 15:42:00

    總線——MCU有線數(shù)據(jù)傳輸

    交互直接透傳協(xié)議的,但可以實(shí)現(xiàn)二根線上完成數(shù)據(jù)傳輸+供電,尤其適合樓宇里的智能設(shè)備聯(lián)動(dòng)控制,如煙霧報(bào)警器與報(bào)警主機(jī)之間,如智能燈光控制等等一切合理的應(yīng)用。 POWERBUS二總線技術(shù),是近些年具備現(xiàn)場驗(yàn)證的一種二
    發(fā)表于 07-23 13:28

    SDIO支持哪些數(shù)據(jù)傳輸模式?

    1、當(dāng) SDIO 時(shí)鐘頻率為 25 MHZ 時(shí),總線速度可達(dá)多少? 還是 832MBPS? 2、SDIO 支持哪些數(shù)據(jù)傳輸模式? --1 位、2 位、3 位或 4 位? 3、哪個(gè) SDIO 引腳具有中斷功能? --DAT[0]? [1]?[2]?[3]?
    發(fā)表于 07-22 06:37

    經(jīng)驗(yàn)分享 | DMA助力實(shí)時(shí)控制

    的響應(yīng)速度和處理能力?!ぜ涌?b class='flag-5'>數(shù)據(jù)傳輸速度:針對(duì)多總線高性能MCU,DMA可以避免不同總線同步問題,提供更高的數(shù)據(jù)傳輸速率。·降低系統(tǒng)延遲:由
    的頭像 發(fā)表于 07-18 08:18 ?665次閱讀
    經(jīng)驗(yàn)分享 | <b class='flag-5'>DMA</b>助力實(shí)時(shí)控制

    can總線數(shù)據(jù)傳輸過程是什么

    CAN總線(Controller Area Network)是一種用于汽車和工業(yè)控制系統(tǒng)的通信協(xié)議。它具有高可靠性、實(shí)時(shí)性和靈活性,因此在許多領(lǐng)域得到了廣泛應(yīng)用。本文將詳細(xì)介紹CAN總線數(shù)據(jù)傳輸
    的頭像 發(fā)表于 06-16 10:18 ?2233次閱讀

    GMSL技術(shù) 實(shí)現(xiàn)高帶寬、低延遲和高可靠性數(shù)據(jù)傳輸# ADI# GMSL# 汽車# 數(shù)據(jù)傳輸

    adi數(shù)據(jù)傳輸電機(jī)
    Excelpoint世健
    發(fā)布于 :2024年05月17日 16:34:25

    醫(yī)療設(shè)備CAN/CANopen總線數(shù)據(jù)傳輸解決方案

    盟通提出的醫(yī)療設(shè)備CAN/CANopen總線數(shù)據(jù)傳輸解決方案是基于IXXAT的高性能CAN設(shè)備,助力您實(shí)現(xiàn)穩(wěn)定、便捷的數(shù)據(jù)采集和分析,為您的項(xiàng)目創(chuàng)新提供有利支持。
    的頭像 發(fā)表于 03-18 14:26 ?1414次閱讀
    醫(yī)療設(shè)備CAN/CANopen<b class='flag-5'>總線</b><b class='flag-5'>數(shù)據(jù)傳輸</b>解決方案

    CW32L052單片機(jī)支持DMA實(shí)現(xiàn)高速數(shù)據(jù)傳輸

    CW32L052支持DMA(Direct Memory Access),即直接內(nèi)存訪問,無需CPU干預(yù),實(shí)現(xiàn)高速數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 02-27 11:36 ?932次閱讀

    多業(yè)務(wù)光端機(jī):實(shí)現(xiàn)高速數(shù)據(jù)傳輸的關(guān)鍵技術(shù)解析

    隨著信息技術(shù)的迅猛發(fā)展,網(wǎng)絡(luò)傳輸速度的需求日益提高。在這樣的背景下,多業(yè)務(wù)光端機(jī)作為一種高速數(shù)據(jù)傳輸的關(guān)鍵設(shè)備,逐漸受到了業(yè)界的廣泛關(guān)注。本文將對(duì)多業(yè)務(wù)光端機(jī)的關(guān)鍵技術(shù)進(jìn)行深入解析,以
    的頭像 發(fā)表于 02-23 14:10 ?559次閱讀

    總線數(shù)據(jù)傳輸的要求有哪些 can總線和lin總線的區(qū)別

    數(shù)據(jù)傳輸應(yīng)該是可靠的,即確保數(shù)據(jù)無誤、完整地從發(fā)送方傳輸到接收方。這可以通過使用糾錯(cuò)編碼、檢驗(yàn)和校驗(yàn)等技術(shù)來實(shí)現(xiàn)。
    發(fā)表于 01-10 16:18 ?1417次閱讀

    dma和通道技術(shù)的區(qū)別

    DMA(Direct Memory Access)和通道技術(shù)是計(jì)算機(jī)系統(tǒng)中用來優(yōu)化數(shù)據(jù)傳輸和處理的重要技術(shù)。盡管它們都與數(shù)據(jù)傳輸相關(guān),但它們
    的頭像 發(fā)表于 01-04 14:31 ?2143次閱讀

    ADXRS453Z的芯片支持使用STM32單片機(jī)的DMA數(shù)據(jù)傳輸功能嗎?

    ADXRS453Z的芯片支持使用STM32單片機(jī)的DMA數(shù)據(jù)傳輸功能嗎?如果,不能,考慮到我們的數(shù)據(jù)傳輸還是挺多的,那么常規(guī)的SPI通信方式占用大量的CPU控制權(quán),勢必會(huì)影響其他任務(wù)的運(yùn)行,那么我該如何做?是否需要對(duì)這個(gè)ADI芯
    發(fā)表于 12-29 07:47

    如何實(shí)現(xiàn)MQTT協(xié)議數(shù)據(jù)傳輸?

    如何實(shí)現(xiàn)MQTT協(xié)議數(shù)據(jù)傳輸? 隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的設(shè)備和應(yīng)用需要實(shí)現(xiàn)互聯(lián)互通。而MQTT作為一種輕量級(jí)的發(fā)布/訂閱消息傳輸協(xié)議,在物聯(lián)網(wǎng)領(lǐng)域應(yīng)用廣泛,成為了許多設(shè)備之間數(shù)據(jù)
    的頭像 發(fā)表于 11-15 17:23 ?1087次閱讀