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

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

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

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

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 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ù)采集傳輸中有廣泛的應(yīng)用。

要對ISA總線進行讀寫,首先需要打開設(shè)備文件“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ù)塊讀寫功能是通過設(shè)備驅(qū)動的DeviceIoControl來完成的,需要用到以下數(shù)據(jù)結(jié)構(gòu):
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ù)結(jié)構(gòu)中:

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

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

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

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

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

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

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

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

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

如果要執(zhí)行混合的數(shù)據(jù)塊的讀寫操作,則需要定義ISA_BLOCK_INFO數(shù)組,并根據(jù)實際應(yīng)用填寫數(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ù)結(jié)構(gòu)變量指針
dwTotalSize,//整個結(jié)構(gòu)數(shù)組的size
NULL, 0,//不使用這組參數(shù)
NULL, NULL);

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

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

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

    關(guān)注

    4

    文章

    3552

    瀏覽量

    88810
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6085

    瀏覽量

    35402
收藏 人收藏

    評論

    相關(guān)推薦

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術(shù)協(xié)會主辦,教育部教育管理信息中心教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會信創(chuàng)工委會支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?134次閱讀

    有方科技參編的信息技術(shù)團體標(biāo)準(zhǔn)發(fā)布

    近日,有方科技參編的《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第1部分:企業(yè)背景評價》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第2部分:技術(shù)掌控評價》《信息技術(shù)產(chǎn)品供應(yīng)鏈成熟度 共性指標(biāo) 第
    的頭像 發(fā)表于 12-23 10:44 ?152次閱讀

    龍芯中科助力2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    近日,2024首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽在北京航空航天大學(xué)成功舉辦。本次大賽由中國教育技術(shù)協(xié)會主辦,教育信創(chuàng)實驗室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會信
    的頭像 發(fā)表于 12-19 17:02 ?243次閱讀

    拓維信息參與牽頭組建!長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體正式獲批

    的長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體成功獲批,為長沙市信息技術(shù)產(chǎn)業(yè)發(fā)展注入了新的活力。圖/《2024年長沙市市級市域產(chǎn)教聯(lián)合體名單》長沙新一代信息技術(shù)產(chǎn)教聯(lián)合體將依托龍頭企
    的頭像 發(fā)表于 12-07 01:06 ?384次閱讀
    拓維<b class='flag-5'>信息</b>參與牽頭組建!長沙新一代<b class='flag-5'>信息技術(shù)</b>產(chǎn)教聯(lián)合體正式獲批

    AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊

    電子發(fā)燒友網(wǎng)站提供《AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊.pdf》資料免費下載
    發(fā)表于 11-14 15:07 ?0次下載
    AM<b class='flag-5'>335x</b>和AMIC110 Sitara?處理器<b class='flag-5'>技術(shù)</b>參考手冊

    中科創(chuàng)達榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達憑借非凡的技術(shù)實力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?497次閱讀

    AM335x功耗估算工具

    電子發(fā)燒友網(wǎng)站提供《AM335x功耗估算工具.pdf》資料免費下載
    發(fā)表于 10-12 11:46 ?0次下載
    AM<b class='flag-5'>335x</b>功耗估算工具

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

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

    AM335x硬件設(shè)計指南

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

    AM335x原理圖核對表

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

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

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

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

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

    龍芯中科突破“卡脖子”難題,構(gòu)建新型信息技術(shù)體系

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

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

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

    MES/MOM標(biāo)準(zhǔn)之ISA-95介紹

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