一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

精簡(jiǎn)ISA擴(kuò)展總線接口讀寫操作

英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2019-10-17 11:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

以下是英創(chuàng)公司所提供的精簡(jiǎn)ISA擴(kuò)展總線接口的信號(hào)定義:

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

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

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

X86系統(tǒng)使用DOS操作系統(tǒng),其指令也是標(biāo)準(zhǔn)的C函數(shù),所以操作ISA時(shí)使用的時(shí)絕對(duì)地址。ARM嵌入式主板使用的WINCE操作系統(tǒng),存在地址映射問(wèn)題,同時(shí)使用戶更加方便對(duì)ISA的使用,所以對(duì)ISA操作的過(guò)程被封裝成一個(gè)操作函數(shù)后再提供給用戶,在對(duì)ISA操作時(shí)不需要給出絕對(duì)地址,但是需要指明所使用的片選信號(hào)及基于當(dāng)前片選信號(hào)的偏移地址。下面的讀操作也是相同的。

ISA總線的寫操作:

C語(yǔ)言ISA總線寫操作函數(shù):

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

EM9000 ISA總線寫操作函數(shù):

#define CS1# 1 // ARM系統(tǒng)的CS1片選信號(hào)的定義,以下不再說(shuō)明
EM9000_WRITE ( CS1# , 0x1 , ub1 ); // 將ub1的數(shù)據(jù)寫入CS1片選信號(hào)使能的1偏移地址

EM9x6x ISA總線寫操作函數(shù):

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

對(duì)應(yīng)的總線寫時(shí)序圖為(本文中的總線周期示意圖以ARM系列模塊為例):

ISA總線的讀操作:

C語(yǔ)言ISA總線讀操作函數(shù):

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

EM9000 ISA總線讀操作函數(shù):

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

EM9x6x ISA總線讀操作函數(shù):

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

對(duì)應(yīng)的總線時(shí)序關(guān)系為:

如果應(yīng)用程序要讀寫一個(gè)16-bit的數(shù)據(jù),即一個(gè)字時(shí),在x86系統(tǒng)中,可以使用:

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

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

利用C函數(shù)一次性完成操作,在ISA總線上會(huì)自動(dòng)生成兩個(gè)8位數(shù)據(jù)的讀寫周期,分別訪問(wèn)低位字節(jié)和高位字節(jié)。在AD、DA的訪問(wèn)中經(jīng)常會(huì)碰到這樣的情形。

對(duì)ARM9系統(tǒng),應(yīng)用只能通過(guò)兩次調(diào)用總線讀寫函數(shù)分別處理16位數(shù)據(jù)的低位字節(jié)和高位字節(jié),如用EM9000 ISA讀寫操作為例:

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

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

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

在使用精簡(jiǎn)ISA總線進(jìn)行擴(kuò)展時(shí),為了使總線的信號(hào)傳輸更加可靠,應(yīng)在總線上的所有信號(hào)線加上RC網(wǎng)絡(luò)以達(dá)到最佳的信號(hào)傳輸,同時(shí),在高速的數(shù)據(jù)總線上,可以使用HCT245作一次驅(qū)動(dòng)。如下圖所示:

擴(kuò)展應(yīng)用

1、用精簡(jiǎn)ISA進(jìn)行數(shù)據(jù)I/O擴(kuò)展

用戶如果使用的I/O較多,英創(chuàng)提供的嵌入式主板上的數(shù)據(jù)I/O又不夠使用要求,則用戶可以使用精簡(jiǎn)ISA總線來(lái)進(jìn)行擴(kuò)展。僅使用3片簡(jiǎn)單的74邏輯器件,就可方便擴(kuò)展出8路輸入8路輸出。英創(chuàng)公司的ETA716擴(kuò)展模塊就是按照這種方式來(lái)實(shí)現(xiàn)的。

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

在X86系統(tǒng)下,應(yīng)用程序執(zhí)行讀操作時(shí):

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

在EM9000系統(tǒng)下,應(yīng)用程序執(zhí)行讀操作:

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

74HCT245被譯碼信號(hào)RD300H#選通,外部的輸入狀態(tài)INPUT0 – INPUT7將呈現(xiàn)在數(shù)據(jù)總線SD0 – SD7上,CPU將在RD300H#的上升沿時(shí)刻把總線上的數(shù)據(jù)鎖存到ub1。

類似的,當(dāng)應(yīng)用程序執(zhí)行寫操作時(shí):

X86系統(tǒng)下寫:

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

在EM9000系統(tǒng)下:

EM9000_WRITE (CS1# , 0x0 , ub1);

把ub1的數(shù)據(jù)送到ISA數(shù)據(jù)總線上,譯碼信號(hào)WE300H#變低有效,并在其上升沿時(shí)刻把總線上的數(shù)據(jù)鎖存到74HCT273的8個(gè)寄存器中,74HCT273的8個(gè)寄存器的輸出OUTPUT0 – OUTPUT7將保持不變,直至有新數(shù)據(jù)寫入。當(dāng)系統(tǒng)復(fù)位或上電啟動(dòng)時(shí),低有效的復(fù)位信號(hào)RESET#將保證把74HCT273的輸出清零。

2、用精簡(jiǎn)ISA總線進(jìn)行A/D采集擴(kuò)展(應(yīng)用模塊:ETA197)

用戶還可以通過(guò)精簡(jiǎn)ISA總線來(lái)擴(kuò)展具有通用并行接口的A/D轉(zhuǎn)換器,以實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)采集。以下是通過(guò)ISA總線連接MAX197的信號(hào)接法,由于MAX197只有12位數(shù)據(jù)寬度,這里使用SA0地址線來(lái)作為高、低字節(jié)數(shù)據(jù)的選擇,正好形成了兩個(gè)連續(xù)的地址,方便函數(shù)的操作。

對(duì)MAX197進(jìn)行AD轉(zhuǎn)換的基本步驟為:

X86系統(tǒng)下:

1、寫控制字節(jié),啟動(dòng)AD轉(zhuǎn)換:outportb(0x300, CtrlByte);
2、延時(shí)15us
讀取轉(zhuǎn)換數(shù)據(jù):unsigned int ub1 = inport(0x300);
// ub1為讀入的16位數(shù)據(jù)

或EM9000系統(tǒng)下:

1、寫控制字節(jié),啟動(dòng)AD轉(zhuǎn)換:

EM9000_WRITE(CS1# , 0x0 , CtrlByte );

2、延時(shí)15us

3、讀取轉(zhuǎn)換數(shù)據(jù):

ub1 = EM9000_READ(CS1# , 0x0 );

ub1 = ub1 << 8 ;

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

對(duì)于不同的系統(tǒng),請(qǐng)參見(jiàn)相應(yīng)的ETA197測(cè)試程序。

3、用精簡(jiǎn)ISA總線進(jìn)行串口擴(kuò)展(應(yīng)用模塊:ETA502)

同樣的,用戶也可以使用精簡(jiǎn)ISA總線來(lái)擴(kuò)展串口,如使用16C550芯片等。一片16C550需要占用8個(gè)I/O端口地址,所以,要使用到三條地址線,且這三條地址線最好是連續(xù)的地址線,以方便應(yīng)用程序的開(kāi)發(fā)與控制。 要注意的是,16C550的復(fù)位是高電平復(fù)位,而精簡(jiǎn)ISA總線上的復(fù)位信號(hào)是低信號(hào)復(fù)位有效,所以在使用時(shí),要將ISA總線上的復(fù)位信號(hào)進(jìn)行反向,再連接到16C550的復(fù)位上。如果要控制MODEM,則需要將16C550輸出的信號(hào)經(jīng)過(guò)RS232電平信號(hào)轉(zhuǎn)換芯片的轉(zhuǎn)換,再接一個(gè)DB9的接頭,則構(gòu)成了一個(gè)標(biāo)準(zhǔn)的RS232通訊接口。

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

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

    關(guān)注

    7

    文章

    6101

    瀏覽量

    36303
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何用labview 對(duì)isa接口進(jìn)行讀寫操作?

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

    ESM335x擴(kuò)展總線中斷智能塊讀寫

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

    EM335x主板ISA總線的高級(jí)應(yīng)用

      對(duì)工控主板EM335x精簡(jiǎn)ISA擴(kuò)展總線基本讀寫操作的介紹,已包含在EM335x編程手冊(cè)中。
    發(fā)表于 07-11 11:04

    WinCE精簡(jiǎn)ISA總線和外部中斷的相關(guān)接口函數(shù)

    WinCE下精簡(jiǎn)ISA總線硬件中斷的使用方法
    發(fā)表于 09-27 13:22

    ISA總線接口擴(kuò)展方案

    英創(chuàng)公司的嵌入式網(wǎng)絡(luò)模塊系列產(chǎn)品均具有精簡(jiǎn) ISA 擴(kuò)展總線,通常包括若干地址總線、8位數(shù)據(jù)總線
    發(fā)表于 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'>擴(kuò)展</b>方案

    ETA203 ISA總線擴(kuò)展模塊使用手冊(cè)的詳細(xì)資料免費(fèi)下載

    精簡(jiǎn) ISA 總線是英利工控主板的一大特色功能。在英利公司所提供的開(kāi)發(fā)評(píng)估底板上有一個(gè)精簡(jiǎn) ISA 總線
    發(fā)表于 11-21 08:00 ?7次下載

    英創(chuàng)信息技術(shù)C#使用COM組件接口操作精簡(jiǎn)ISA總線淺談

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

    英創(chuàng)信息技術(shù)EM9170工控主板ISA總線數(shù)據(jù)介紹

    精簡(jiǎn)ISA總線進(jìn)行系統(tǒng)功能的擴(kuò)展。本文著重從軟件開(kāi)發(fā)使用的角度來(lái)介紹ISA總線
    的頭像 發(fā)表于 01-14 14:58 ?1689次閱讀

    英創(chuàng)信息技術(shù)EM335x精簡(jiǎn)ISA擴(kuò)展總線地址總線介紹

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

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

    對(duì)工控主板EM335x精簡(jiǎn)ISA擴(kuò)展總線基本讀寫操作的介紹,已包含在EM335x編程手冊(cè)中。本文
    的頭像 發(fā)表于 02-03 10:00 ?1267次閱讀
    英創(chuàng)信息技術(shù)EM335x主板<b class='flag-5'>ISA</b><b class='flag-5'>總線</b>的高級(jí)應(yīng)用介紹

    英創(chuàng)信息技術(shù)ESM335x擴(kuò)展總線中斷智能塊讀寫

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

    英創(chuàng)信息技術(shù)精簡(jiǎn)ISA總線Linux編程–Part1

    精簡(jiǎn)ISA總線接口是一種8-bit寬度的雙向并行擴(kuò)展總線,其特點(diǎn)是地址數(shù)據(jù)分時(shí)復(fù)用8-bit
    的頭像 發(fā)表于 02-07 11:19 ?1416次閱讀
    英創(chuàng)信息技術(shù)<b class='flag-5'>精簡(jiǎn)</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程–Part1

    英創(chuàng)信息技術(shù)精簡(jiǎn)ISA總線Linux編程 – Part2簡(jiǎn)介

    精簡(jiǎn)ISA總線接口是一種8-bit寬度的雙向并行擴(kuò)展總線,其特點(diǎn)是地址數(shù)據(jù)分時(shí)復(fù)用8位
    的頭像 發(fā)表于 02-11 16:50 ?1535次閱讀
    英創(chuàng)信息技術(shù)<b class='flag-5'>精簡(jiǎn)</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程 – Part2簡(jiǎn)介

    英創(chuàng)信息技術(shù)精簡(jiǎn)ISA總線Linux編程 – Part3簡(jiǎn)介

    精簡(jiǎn)ISA總線接口是一種8-bit寬度的雙向并行擴(kuò)展總線,其特點(diǎn)是地址數(shù)據(jù)分時(shí)復(fù)用8位
    的頭像 發(fā)表于 02-11 16:48 ?1708次閱讀
    英創(chuàng)信息技術(shù)<b class='flag-5'>精簡(jiǎn)</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>Linux編程 – Part3簡(jiǎn)介

    英創(chuàng)信息技術(shù)精簡(jiǎn)ISA總線WinCE編程簡(jiǎn)介

    ISA總線簡(jiǎn)介 英創(chuàng)精簡(jiǎn)ISA總線接口是一種8-bit寬度的雙向并行
    的頭像 發(fā)表于 02-11 16:55 ?1564次閱讀
    英創(chuàng)信息技術(shù)<b class='flag-5'>精簡(jiǎn)</b><b class='flag-5'>ISA</b><b class='flag-5'>總線</b>WinCE編程簡(jiǎn)介