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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

英創(chuàng)信息技術EM335x主板ISA總線的高級應用介紹

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

對工控主板EM335x精簡ISA擴展總線基本讀寫操作的介紹,已包含在EM335x編程手冊中。本文將介紹在Windows CE平臺上,通過精簡ISA總線進行數(shù)據(jù)塊讀寫的方法。所謂數(shù)據(jù)塊讀寫,是指一次API調(diào)用對一個地址端口讀寫多個數(shù)據(jù)的操作。數(shù)據(jù)塊讀寫能有效提高數(shù)據(jù)讀寫的效率,在數(shù)據(jù)采集傳輸中有廣泛的應用。

要對ISA總線進行讀寫,首先需要打開設備文件“ISA1:”如下:

打開ISA文件
HANDLE hISA;
hISA = CreateFile(_T('ISA1:'),//name of device
GENERIC_READ|GENERIC_WRITE,//desired access
FILE_SHARE_READ|FILE_SHARE_WRITE,//sharing mode
NULL,//security attributes (ignored)
OPEN_EXISTING,//creation disposition
FILE_FLAG_RANDOM_ACCESS,//flags/attributes
NULL);//template file (ignored)

數(shù)據(jù)塊讀寫功能是通過設備驅(qū)動的DeviceIoControl來完成的,需要用到以下數(shù)據(jù)結構:
typedef struct
{
PBYTE pReadBuf;//ISA讀數(shù)據(jù)buffer, 只能一個buffer有效
PBYTE pWriteBuf;//ISA寫數(shù)據(jù)buffer, 只能一個buffer有效
DWORD dwDataLength;//length of data in byte
DWORD dwDataPortOfs;//讀寫的起始地址 = 0x00 – 0xFF
DWORD dwInc;//= 0: 固定地址, > 0: 讀寫后地址自動增加
} ISA_BLOCK_INFO, *PISA_BLOCK_INFO;

在上述數(shù)據(jù)結構中:

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

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

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

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

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

如果要進行單一數(shù)據(jù)塊讀寫功能,只需定義一個ISA_BLOCK_INFO結構變量,如BlockInfo,并按照應用需求填寫相應的參數(shù)。然后就可調(diào)用系統(tǒng)API進行設置了:

ISA_BLOCK_INFO BlockInfo;
memset(&BlockInfo, 0, sizeof(ISA_BLOCK_INFO));
//填寫輸入?yún)?shù)值BlockInfo...

對讀操作,直接調(diào)用標準讀函數(shù):
DWORD dwNbBytesRead = 0;
BOOL bRet = ReadFile(hISA,//打開“ISA1:”返回的Handler
&BlockInfo,//輸入數(shù)據(jù)結構指針
sizeof(ISA_BLOCK_INFO),//數(shù)據(jù)結構Size
&dwNbByteRead, NULL);

對寫操作則為:
DWORD dwNbBytesWritten = 0;
BOOL bRet = WriteFile(hISA,//打開“ISA1:”返回的Handler
&BlockInfo,//輸入數(shù)據(jù)結構指針
sizeof(ISA_BLOCK_INFO),//數(shù)據(jù)結構Size
&dwNbByteWritten, NULL);

如果要執(zhí)行混合的數(shù)據(jù)塊的讀寫操作,則需要定義ISA_BLOCK_INFO數(shù)組,并根據(jù)實際應用填寫數(shù)組參數(shù)。例如需要進行3組數(shù)據(jù)塊讀寫,實現(xiàn)代碼如下:
ISA_BLOCK_INFO BlockInfo[3];
DWORD dwTotalSize = sizeof(ISA_BLOCK_INFO) * 3;
memset(BlockInfo, 0, dwTotalSize);
//填寫輸入?yún)?shù)值BlockInfo...

BOOL bRet = DeviceIoControl(hISA,//打開“ISA1:”返回的Handler
0,//無需定義命令碼,置為0
(LPVOID)BlockInfo,//塊讀寫數(shù)據(jù)結構變量指針
dwTotalSize,//整個結構數(shù)組的size
NULL, 0,//不使用這組參數(shù)
NULL, NULL);

上述操作的主要特點是提高訪問ISA總線的效率,因為每次調(diào)用驅(qū)動程序API,都會有一個幾微秒的系統(tǒng)開銷。對多字節(jié)的數(shù)據(jù)塊讀寫,這樣的開銷應用程序就需要注意,否則會發(fā)現(xiàn)CPU的負載不合理的升高。

相關閱讀:《ESM335x工控主板ISA總線DMA數(shù)據(jù)傳輸》

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

    關注

    3

    文章

    3503

    瀏覽量

    87884
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6081

    瀏覽量

    34942
收藏 人收藏

    評論

    相關推薦

    創(chuàng)國產(chǎn)化背景下的工控主板發(fā)展現(xiàn)狀

    創(chuàng),是信息技術應用創(chuàng)新產(chǎn)業(yè)的簡稱,于2016年“信創(chuàng)工委會”(信息技術應用創(chuàng)新工作委員會)提出,目的就是要推動我們國內(nèi)軟硬件關鍵技術的研發(fā)
    的頭像 發(fā)表于 09-21 16:15 ?47次閱讀

    AM335x硬件設計指南

    電子發(fā)燒友網(wǎng)站提供《AM335x硬件設計指南.pdf》資料免費下載
    發(fā)表于 09-19 11:05 ?0次下載
    AM<b class='flag-5'>335x</b>硬件設計指南

    AM335x原理圖核對表

    電子發(fā)燒友網(wǎng)站提供《AM335x原理圖核對表.pdf》資料免費下載
    發(fā)表于 09-19 11:03 ?0次下載
    AM<b class='flag-5'>335x</b>原理圖核對表

    梯度科技入選2023年信息技術應用創(chuàng)新解決方案名單

    日前,工業(yè)和信息化部網(wǎng)絡安全產(chǎn)業(yè)發(fā)展中心(工業(yè)和信息化部信息中心)在天津舉辦2024信息技術應用創(chuàng)新發(fā)展大會暨解決方案應用推廣大會。會上正式公布了2023年
    的頭像 發(fā)表于 09-09 16:29 ?270次閱讀

    現(xiàn)場總線的種類介紹及其特點分析

    高級控制系統(tǒng)之間的信息傳遞?,F(xiàn)場總線技術的出現(xiàn),極大地推動了工業(yè)自動化水平的提高。本文將詳細介紹現(xiàn)場
    的頭像 發(fā)表于 06-06 11:40 ?472次閱讀

    龍芯中科突破“卡脖子”難題,構建新型信息技術體系

    胡偉武強調(diào),在Wintel和AA體系主導全球電子產(chǎn)業(yè)的環(huán)境下,中國需建立獨立于X86和ARM的第三套信息技術體系和產(chǎn)業(yè)生態(tài),解決關鍵技術被封鎖的困境,加速形成新質(zhì)生產(chǎn)力,從而創(chuàng)造新的競爭優(yōu)勢。
    的頭像 發(fā)表于 05-20 16:12 ?453次閱讀

    龍芯中科三項信創(chuàng)方案入圍工信部2023年信息技術應用創(chuàng)新應用示范案例名單

    近日,工業(yè)和信息化部通報了2023年信息技術應用創(chuàng)新解決方案征集遴選結果,本次共評選出典型解決方案173個、應用示范案例83個、單項創(chuàng)新案例64個。
    的頭像 發(fā)表于 03-07 16:45 ?675次閱讀
    龍芯中科三項信<b class='flag-5'>創(chuàng)</b>方案入圍工信部2023年<b class='flag-5'>信息技術</b>應用創(chuàng)新應用示范案例名單

    軟通動力與捷創(chuàng)技術簽訂戰(zhàn)略合作協(xié)議

    近日,軟通動力信息技術(集團)股份有限公司(以下簡稱“軟通動力”)與寧波捷創(chuàng)技術股份有限公司(以下簡稱“捷創(chuàng)技術”)正式簽訂戰(zhàn)略合作協(xié)議,并
    的頭像 發(fā)表于 02-03 16:35 ?1001次閱讀

    MES/MOM標準之ISA-95介紹

    今天我們來分享MES/MOM行業(yè)國際標準:ISA-95基礎內(nèi)容介紹
    的頭像 發(fā)表于 01-08 10:45 ?2185次閱讀
    MES/MOM標準之<b class='flag-5'>ISA</b>-95<b class='flag-5'>介紹</b>

    闡述量子信息技術的研究現(xiàn)狀與未來

    20世紀 80 年代, 科學家將量子力學應用到信息領域, 從而誕生了量子信息技術, 諸如量子計算機、量子密碼、量子傳感等. 這些技術的運行規(guī)律遵從量子力學, 因此不僅其原理是量子力學, 器件本身也
    發(fā)表于 11-22 11:40 ?674次閱讀
    闡述量子<b class='flag-5'>信息技術</b>的研究現(xiàn)狀與未來

    開鴻智谷受邀參加2023軟件和信息技術服務業(yè)創(chuàng)新發(fā)展論壇

    10月18日,以“智薈雄安創(chuàng)想未來”為主題的雄安新區(qū)2023軟件和信息技術服務業(yè)創(chuàng)新發(fā)展論壇在雄安新區(qū)國際酒店會議中心召開。本次論壇以推動軟件和信息技術服務業(yè)創(chuàng)新發(fā)展為目的,邀行政校企各級單位共商共建。開鴻智
    的頭像 發(fā)表于 10-20 08:30 ?689次閱讀
    開鴻智谷受邀參加2023軟件和<b class='flag-5'>信息技術</b>服務業(yè)創(chuàng)新發(fā)展論壇

    基于ISA總線與KH-9300的數(shù)據(jù)采集系統(tǒng)軟件設計

    電子發(fā)燒友網(wǎng)站提供《基于ISA總線與KH-9300的數(shù)據(jù)采集系統(tǒng)軟件設計.pdf》資料免費下載
    發(fā)表于 10-13 14:36 ?2次下載
    基于<b class='flag-5'>ISA</b><b class='flag-5'>總線</b>與KH-9300的數(shù)據(jù)采集系統(tǒng)軟件設計

    AM335x開發(fā)資料

    am335xam335x:am335x是ti(德州儀器)基于
    發(fā)表于 10-10 06:53

    EVB-335X/EVB-T335開發(fā)資料打包

    電子發(fā)燒友網(wǎng)站提供《EVB-335X/EVB-T335開發(fā)資料打包.rar》資料免費下載
    發(fā)表于 10-07 15:39 ?1次下載
    EVB-<b class='flag-5'>335X</b>/EVB-T<b class='flag-5'>335</b>開發(fā)資料打包

    信息技術是干什么?

    廣播電子技術信息技術
    橙群微電子
    發(fā)布于 :2023年09月22日 09:17:48