那曲檬骨新材料有限公司

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

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

3天內不再提示

精簡ISA擴展總線接口讀寫操作

英創信息技術 ? 作者:英創信息技術 ? 2019-10-17 11:26 ? 次閱讀

英創公司的嵌入式主板系列產品為了支持客戶的各種應用擴展,所有的ARM9系列和X86系列的嵌入式主板均帶有精簡ISA擴展總線。ISA總線是PC機最經典的擴展總線(在嵌入式領域,通常以PC104總線的形式出現),在工業控制領域有著廣泛的應用,以及深厚的應用基礎。所謂精簡ISA總線就是在保持通用ISA總線時序不變的前提下,僅保留常用的總線信號,以最大限度的減少總線總的信號數量,以適應模塊的小型化。英創公司的精簡ISA總線包括8位數據總線、5位地址總線(可擴展到13位)、片選控制線、讀寫控制線以及中斷請求線。英創公司所提供的評估開發底板將這些信號線制定了一個接口標準,采用雙排20芯 IDC插針,用戶可利用精簡ISA總線進行系統功能的擴展。

在英創的精簡ISA總線中,設置了2條獨特的片選控制信號CS0#和CS1#,這樣就省去了大量的高位地址總線。CS0#和CS1#為低電平有效的脈沖信號。在x86 系列的嵌入式產品中,CS0#片選信號的地址區域為0x200–0x21F,CS1#片選信號的地址區域為0x300 – 0x31F。在ARM9系列的嵌入式產品中,客戶就不用關心精簡ISA總線的絕對地址,只要選定一個片選信號及基于這個片選的地址偏移量即可。如在X86系統下選用了CS1作片選信號,對0x301進行操作,則相對于ARM系統,可使用CS1#、地址偏移量為1的端口。ARM9系列板卡的CS0#、CS1#所對應的地址區域范圍有所不同。EM9000有13條地址線,每位片選可訪問8K的地址空間。EM9160、EM9161的每位片選可訪問32 個地址空間。EM9260、EM9360的CS0#可訪問到8K的地址空間,CS1#可訪問到1K的地址空間。

以下是英創公司所提供的精簡ISA擴展總線接口的信號定義:

信號名稱及簡要描述 精簡ISA 信號名稱及簡要描述
PIN# PIN#
RESET#,復位輸出,低有效 1 2 SA0,地址總線
SD0,數據總線,LSB 3 4 SA1,地址總線
SD1,數據總線 5 6 SA2,地址總線
SD2,數據總線 7 8 SA3,地址總線
SD3,數據總線 9 10 SA4,地址總線
SD4,數據總線 11 12 WE#,寫信號控制線,低有效
SD5,數據總線 13 14 RD#,讀信號控制線,低有效
SD6,數據總線 15 16 CS1#,I/O片選線,低有效
SD7,數據總線,MSB 17 18 VCC,電源輸出
IRQ,中斷請求,上升沿有效 19 20 GND,公共地

為了便于用戶理解精簡ISA總線接口如何進行編程,本節以x86指令和ARM系統為例,簡單介紹基于英創嵌入式主板的精簡ISA的應用。由于x86、EM9000、EM9x6x三種系統的ISA總線讀寫操作函數不一樣,所以在具體使用時,應當參考相應的'*.h'文件。以下是基于英創的嵌入式主板的精簡ISA總線操作指令表,以便查詢:

系統 ISA讀 ISA寫
x86系列 inport( ) 或 inportb( ) outport( ) 或 outportb( )
EM9000 EM9000_READ( ) EM9000_WRITE( )
EM9x6x系列 ISA_ReadUchar( ) ISA_WriteUchar( )

X86系統使用DOS操作系統,其指令也是標準的C函數,所以操作ISA時使用的時絕對地址。ARM嵌入式主板使用的WINCE操作系統,存在地址映射問題,同時使用戶更加方便對ISA的使用,所以對ISA操作的過程被封裝成一個操作函數后再提供給用戶,在對ISA操作時不需要給出絕對地址,但是需要指明所使用的片選信號及基于當前片選信號的偏移地址。下面的讀操作也是相同的。

ISA總線的寫操作:

C語言ISA總線寫操作函數:

outportb ( 0x301, ub1 ); // 將ub1的數據寫入0x301地址或寄存器

EM9000 ISA總線寫操作函數:

#define CS1# 1 // ARM系統的CS1片選信號的定義,以下不再說明
EM9000_WRITE ( CS1# , 0x1 , ub1 ); // 將ub1的數據寫入CS1片選信號使能的1偏移地址

EM9x6x ISA總線寫操作函數:

ISA_WriteUchar ( CS1#, 0x1 , ub1); // 將ub1的數據寫入CS1片選信號使能的1偏移地址

對應的總線寫時序圖為(本文中的總線周期示意圖以ARM系列模塊為例):

ISA總線的讀操作:

C語言ISA總線讀操作函數:

UCHAR ub1 = inportb ( 0x301 ); // 將0x301地址或寄存器的數據讀入ub1

EM9000 ISA總線讀操作函數:

UCHAR ub1 = EM9000_READ ( CS1# , 0x1 ); // 將CS1片選信號使能的1偏移地址的數據讀入ub1

EM9x6x ISA總線讀操作函數:

ISA_ReadUchar ( CS1#, 0x1 , &ub1);// 將CS1片選信號使能的1偏移地址的數據讀入ub1

對應的總線時序關系為:

如果應用程序要讀寫一個16-bit的數據,即一個字時,在x86系統中,可以使用:

unsigned int ui1 = inport(0x301);// 讀16位數據

outport(0x301, ui1);// 寫16位數據

利用C函數一次性完成操作,在ISA總線上會自動生成兩個8位數據的讀寫周期,分別訪問低位字節和高位字節。在AD、DA的訪問中經常會碰到這樣的情形。

對ARM9系統,應用只能通過兩次調用總線讀寫函數分別處理16位數據的低位字節和高位字節,如用EM9000 ISA讀寫操作為例:

UCHAR ub1 = EM9000_READ ( CS1# , 0x1 );// 獲得低位字節。
UCHAR ub2 = EM9000_READ ( CS1# , 0x2 );// 獲得高位字節。
ui1 =( ub2 << 8)| ub1;?????????????? // 高低位字節合成16位數據

如果是寫操作,則使用同樣的方式:

EM9000_WRITE ( CS1# , 0x1 , (ub1&0xff) ); // 寫低字節數據
EM9000_WRITE ( CS1# , 0x2 , (ub1>>8) );// 寫高字節數據

在使用精簡ISA總線進行擴展時,為了使總線的信號傳輸更加可靠,應在總線上的所有信號線加上RC網絡以達到最佳的信號傳輸,同時,在高速的數據總線上,可以使用HCT245作一次驅動。如下圖所示:

擴展應用

1、用精簡ISA進行數據I/O擴展

用戶如果使用的I/O較多,英創提供的嵌入式主板上的數據I/O又不夠使用要求,則用戶可以使用精簡ISA總線來進行擴展。僅使用3片簡單的74邏輯器件,就可方便擴展出8路輸入8路輸出。英創公司的ETA716擴展模塊就是按照這種方式來實現的。

接口譯碼電路用一片74HCT139做完成。

在X86系統下,應用程序執行讀操作時:

unsigned char ub1 = inportb ( 0x300 ); // 把外部狀態讀取并存放到ub1中

在EM9000系統下,應用程序執行讀操作:

UCHAR ub1 = EM9000_READ (CS1# , 0x0);

74HCT245被譯碼信號RD300H#選通,外部的輸入狀態INPUT0 – INPUT7將呈現在數據總線SD0 – SD7上,CPU將在RD300H#的上升沿時刻把總線上的數據鎖存到ub1。

類似的,當應用程序執行寫操作時:

X86系統下寫:

outportb ( 0x300 , ub1 );// 把ub1數據輸出送到0x300端口

在EM9000系統下:

EM9000_WRITE (CS1# , 0x0 , ub1);

把ub1的數據送到ISA數據總線上,譯碼信號WE300H#變低有效,并在其上升沿時刻把總線上的數據鎖存到74HCT273的8個寄存器中,74HCT273的8個寄存器的輸出OUTPUT0 – OUTPUT7將保持不變,直至有新數據寫入。當系統復位或上電啟動時,低有效的復位信號RESET#將保證把74HCT273的輸出清零。

2、用精簡ISA總線進行A/D采集擴展(應用模塊:ETA197)

用戶還可以通過精簡ISA總線來擴展具有通用并行接口的A/D轉換器,以實現簡單的數據采集。以下是通過ISA總線連接MAX197的信號接法,由于MAX197只有12位數據寬度,這里使用SA0地址線來作為高、低字節數據的選擇,正好形成了兩個連續的地址,方便函數的操作。

對MAX197進行AD轉換的基本步驟為:

X86系統下:

1、寫控制字節,啟動AD轉換:outportb(0x300, CtrlByte);
2、延時15us
讀取轉換數據:unsigned int ub1 = inport(0x300);
// ub1為讀入的16位數據

或EM9000系統下:

1、寫控制字節,啟動AD轉換:

EM9000_WRITE(CS1# , 0x0 , CtrlByte );

2、延時15us

3、讀取轉換數據:

ub1 = EM9000_READ(CS1# , 0x0 );

ub1 = ub1 << 8 ;

ub1 = ub1 | (EM9000_READ(CS1# , 0x0 ) & 0xff );

對于不同的系統,請參見相應的ETA197測試程序。

3、用精簡ISA總線進行串口擴展(應用模塊:ETA502)

同樣的,用戶也可以使用精簡ISA總線來擴展串口,如使用16C550芯片等。一片16C550需要占用8個I/O端口地址,所以,要使用到三條地址線,且這三條地址線最好是連續的地址線,以方便應用程序的開發與控制。 要注意的是,16C550的復位是高電平復位,而精簡ISA總線上的復位信號是低信號復位有效,所以在使用時,要將ISA總線上的復位信號進行反向,再連接到16C550的復位上。如果要控制MODEM,則需要將16C550輸出的信號經過RS232電平信號轉換芯片的轉換,再接一個DB9的接頭,則構成了一個標準的RS232通訊接口。

除了以上的應用以外,用戶還可以利用英創的精簡ISA總線,方便地完成其它多種功能模塊的擴展,如10M/100M以太網口、CAN總線接口、USB主控模塊、24位通用數字IO等等,英創公司也相應地提供了應用模塊ETA719、ETA718、ETA701、ETA608、 ETA724等供客戶參考。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6086

    瀏覽量

    35614
收藏 人收藏

    評論

    相關推薦

    如何用labview 對isa接口進行讀寫操作

    各位前輩,我們的labview如何才能對isa接口進行操作呢?互連接口中的。i/0讀寫可以嗎?請前輩指條明路。。感激不盡
    發表于 11-09 14:18

    ESM335x擴展總線中斷智能塊讀寫

    1、綜述  ESM335x 嵌入式主板的提供帶中斷的精簡ISA擴展總線,主要用于支持高速數據采集、多路串口擴展以及其他的高級
    發表于 06-12 15:31

    EM335x主板ISA總線的高級應用

      對工控主板EM335x精簡ISA擴展總線基本讀寫操作的介紹,已包含在EM335x編程手冊中。
    發表于 07-11 11:04

    WinCE精簡ISA總線和外部中斷的相關接口函數

    WinCE下精簡ISA總線硬件中斷的使用方法
    發表于 09-27 13:22

    ISA總線接口擴展方案

    英創公司的嵌入式網絡模塊系列產品均具有精簡 ISA 擴展總線,通常包括若干地址總線、8位數據總線
    發表于 06-09 15:54 ?43次下載
    多<b class='flag-5'>ISA</b><b class='flag-5'>總線</b><b class='flag-5'>接口</b><b class='flag-5'>擴展</b>方案

    ETA203 ISA總線擴展模塊使用手冊的詳細資料免費下載

    精簡 ISA 總線是英利工控主板的一大特色功能。在英利公司所提供的開發評估底板上有一個精簡 ISA 總線
    發表于 11-21 08:00 ?7次下載

    英創信息技術C#使用COM組件接口操作精簡ISA總線淺談

    英創ARM9工控主板的數據采集功能通常采用板上的GPIO實現數字輸入輸出、通過精簡ISA總線擴展相應的外部控制電路(如控制繼電器或AD或DA實現模擬數據的輸入輸出等)。
    的頭像 發表于 11-12 10:24 ?1656次閱讀
    英創信息技術C#使用COM組件<b class='flag-5'>接口</b><b class='flag-5'>操作</b><b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>淺談

    英創信息技術EM9170工控主板ISA總線數據介紹

    精簡ISA總線進行系統功能的擴展。本文著重從軟件開發使用的角度來介紹ISA總線
    的頭像 發表于 01-14 14:58 ?1425次閱讀

    英創信息技術EM335x精簡ISA擴展總線地址總線介紹

    英創公司新近推出的工控主板EM335x支持精簡ISA擴展總線。由于主板管腳的限制,ISA總線采用
    的頭像 發表于 01-17 10:20 ?1418次閱讀
    英創信息技術EM335x<b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>擴展</b><b class='flag-5'>總線</b>地址<b class='flag-5'>總線</b>介紹

    英創信息技術EM335x主板ISA總線的高級應用介紹

    對工控主板EM335x精簡ISA擴展總線基本讀寫操作的介紹,已包含在EM335x編程手冊中。本文
    的頭像 發表于 02-03 10:00 ?1110次閱讀
    英創信息技術EM335x主板<b class='flag-5'>ISA</b><b class='flag-5'>總線</b>的高級應用介紹

    英創信息技術ESM335x擴展總線中斷智能塊讀寫

    1、綜述 ESM335x 嵌入式主板的提供帶中斷的精簡ISA擴展總線,主要用于支持高速數據采集、多路串口擴展以及其他的高級
    的頭像 發表于 02-04 10:38 ?1089次閱讀
    英創信息技術ESM335x<b class='flag-5'>擴展</b><b class='flag-5'>總線</b>中斷智能塊<b class='flag-5'>讀寫</b>

    英創信息技術精簡ISA總線Linux編程–Part1

    精簡ISA總線接口是一種8-bit寬度的雙向并行擴展總線,其特點是地址數據分時復用8-bit
    的頭像 發表于 02-07 11:19 ?1202次閱讀
    英創信息技術<b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程–Part1

    英創信息技術精簡ISA總線Linux編程 – Part2簡介

    精簡ISA總線接口是一種8-bit寬度的雙向并行擴展總線,其特點是地址數據分時復用8位
    的頭像 發表于 02-11 16:50 ?1362次閱讀
    英創信息技術<b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程 – Part2簡介

    英創信息技術精簡ISA總線Linux編程 – Part3簡介

    精簡ISA總線接口是一種8-bit寬度的雙向并行擴展總線,其特點是地址數據分時復用8位
    的頭像 發表于 02-11 16:48 ?1443次閱讀
    英創信息技術<b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程 – Part3簡介

    英創信息技術精簡ISA總線WinCE編程簡介

    ISA總線簡介 英創精簡ISA總線接口是一種8-bit寬度的雙向并行
    的頭像 發表于 02-11 16:55 ?1345次閱讀
    英創信息技術<b class='flag-5'>精簡</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>WinCE編程簡介
    银河百家乐官网的玩法技巧和规则 | 七匹狼百家乐的玩法技巧和规则| 开心8百家乐官网娱乐城| 百家乐是娱乐场最不公平的游戏| 金城百家乐官网平台| bet365代理| 伯爵百家乐官网娱乐平台| 德州扑克游戏规则| 百家乐国际娱乐平台| 永利百家乐官网的玩法技巧和规则 | 百家乐赌博分析网| 巴比伦百家乐官网的玩法技巧和规则| 太阳城77scs| 网上百家乐指| 百家乐博彩开户博彩通| 网络百家乐官网怎样出千| 米林县| 大发888英皇国际| 百家乐玩揽法的论坛| 535棋牌游戏| 百家乐斗地主| 百家乐软件购买| 百家乐官网赌场讨论群| 川宜百家乐官网破解版| 保险百家乐官网怎么玩 | 百家乐官网哪家信誉好| 哈密市| 足球投注现金网| 棋牌室标语| 大发888下载专区| 大发888娱乐平台下载| 迪士尼百家乐的玩法技巧和规则| 娱乐城百家乐可以代理吗 | 安桌百家乐官网游戏百家乐官网 | qq德州扑克官网| 大发888娱乐场电话| 大发888娱乐城存款| 三国百家乐的玩法技巧和规则| 百家乐怎么玩最保险| 百家乐娱乐送白菜| 百家乐路单破|