




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精簡(jiǎn)ISA總線擴(kuò)展應(yīng)用實(shí)例 ARM的嵌入式主板系列產(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)模塊的小型化。ARM的精簡(jiǎn)ISA總線包括8位數(shù)據(jù)總線、5位地址總線(可擴(kuò)展到13位)、片選控制線、讀寫控制線以及中斷請(qǐng)求線。ARM所提供的評(píng)估開發(fā)底板將這些信號(hào)線制定了一個(gè)接口標(biāo)準(zhǔn),采用雙排20
2、芯 IDC插針,用戶可利用精簡(jiǎn)ISA總線進(jìn)行系統(tǒng)功能的擴(kuò)展。 在ARM的精簡(jiǎn)ISA總線中,設(shè)置了2條獨(dú)特的片選控制信號(hào)CS0#和CS1#,這樣就省去了大量的高位地址總線。CS0#和CS1#為低電平有效的脈沖信號(hào)。在x86 系列的嵌入式產(chǎn)品中,CS0#片選信號(hào)的地址區(qū)域?yàn)?x2000x21F,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系列板
3、卡的CS0#、CS1#所對(duì)應(yīng)的地址區(qū)域范圍有所不同。EM9000有13條地址線,每位片選可訪問8K的地址空間。EM9160、EM9161的每位片選可訪問32 個(gè)地址空間。EM9260、EM9360的CS0#可訪問到8K的地址空間,CS1#可訪問到1K的地址空間。 以下是ARM所提供的精簡(jiǎn)ISA擴(kuò)展總線接口的信號(hào)定義:信號(hào)名稱及簡(jiǎn)要描述精簡(jiǎn)ISA信號(hào)名稱及簡(jiǎn)要描述PIN#PIN# RESET#,復(fù)位輸出,低有效12 SA0,地址總線 SD0,數(shù)據(jù)總線,LSB34 SA1,地址總線 SD1,數(shù)據(jù)總線56 SA2,地址總線 SD2,數(shù)據(jù)總線78 SA3,地址總線 SD3,數(shù)據(jù)總線910 SA4,地址
4、總線 SD4,數(shù)據(jù)總線1112 WE#,寫信號(hào)控制線,低有效 SD5,數(shù)據(jù)總線1314 RD#,讀信號(hào)控制線,低有效 SD6,數(shù)據(jù)總線1516 CS1#,I/O片選線,低有效 SD7,數(shù)據(jù)總線,MSB1718 VCC,電源輸出 IRQ,中斷請(qǐng)求,上升沿有效1920 GND,公共地 為了便于用戶理解精簡(jiǎn)ISA總線接口如何進(jìn)行編程,本節(jié)以x86指令和ARM系統(tǒng)為例,簡(jiǎn)單介紹基于ARM嵌入式主板的精簡(jiǎn)ISA的應(yīng)用。由于x86、EM9000、EM9x6x三種系統(tǒng)的ISA總線讀寫操作函數(shù)不一樣,所以在具體使用時(shí),應(yīng)當(dāng)參考相應(yīng)的*.h文件。以下是基于ARM的嵌入式主板的精簡(jiǎn)ISA總線操作指令表,以便查詢:
5、系統(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),存在地址映射問題,同時(shí)使用戶更加方便對(duì)ISA的使用,所以對(duì)ISA操作的過程被封裝成一個(gè)操作函數(shù)后再提供給用戶,在對(duì)ISA操作時(shí)不需要給出絕對(duì)地址,但是需要指明所使用的片選信號(hào)及
6、基于當(dāng)前片選信號(hào)的偏移地址。下面的讀操作也是相同的。ISA總線的寫操作: C語言ISA總線寫操作函數(shù): outportb ( 0x301, ub1 );/ 將ub1的數(shù)據(jù)寫入0x301地址或寄存器 EM9000 ISA總線寫操作函數(shù):#defineCS1# 1/ ARM系統(tǒng)的CS1片選信號(hào)的定義,以下不再說明 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)的
7、總線寫時(shí)序圖為(本文中的總線周期示意圖以ARM系列模塊為例):ISA總線的讀操作: C語言ISA總線讀操作函數(shù):UCHARub1 = inportb ( 0x301 );/ 將0x301地址或寄存器的數(shù)據(jù)讀入ub1EM9000 ISA總線讀操作函數(shù): UCHARub1 = EM9000_READ ( CS1# , 0x1 );/ 將CS1片選信號(hào)使能的1偏移地址的數(shù)據(jù)讀入ub1EM9x6x 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的
8、數(shù)據(jù),即一個(gè)字時(shí),在x86系統(tǒng)中,可以使用:unsignedint ui1 = inport(0x301);/ 讀16位數(shù)據(jù) outport(0x301, ui1);/ 寫16位數(shù)據(jù) 利用C函數(shù)一次性完成操作,在ISA總線上會(huì)自動(dòng)生成兩個(gè)8位數(shù)據(jù)的讀寫周期,分別訪問低位字節(jié)和高位字節(jié)。在AD、DA的訪問中經(jīng)常會(huì)碰到這樣的情形。 對(duì)ARM9系統(tǒng),應(yīng)用只能通過兩次調(diào)用總線讀寫函數(shù)分別處理16位數(shù)據(jù)的低位字節(jié)和高位字節(jié),如用EM9000 ISA讀寫操作為例: UCHARub1 = EM9000_READ ( CS1# , 0x1 );/ 獲得低位字節(jié)。 UCHARub2 = EM9000_READ
9、( CS1# , 0x2 );/ 獲得高位字節(jié)。 ui1 =( ub2 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較多,ARM提供的嵌入式主板上的數(shù)據(jù)I/O又不夠使用要求,則用戶可以使用精簡(jiǎn)ISA總線來進(jìn)行擴(kuò)展。僅使用3片簡(jiǎn)單的74邏輯器件,就可方便擴(kuò)展出8路輸入8路輸出。ARM的ETA716擴(kuò)展模塊就是按照這種方式來實(shí)現(xiàn)的。 接口譯碼電路用一片74HCT13
10、9做完成。 在X86系統(tǒng)下,應(yīng)用程序執(zhí)行讀操作時(shí): unsigned charub1 = inportb ( 0x300 );/ 把外部狀態(tài)讀取并存放到ub1中 在EM9000系統(tǒng)下,應(yīng)用程序執(zhí)行讀操作: UCHARub1 = 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ù)輸出送到0x30
11、0端口 在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) 用戶還可以通過精簡(jiǎn)ISA總線來擴(kuò)展具有通用并行接口的A/D轉(zhuǎn)換器,以實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)采集。以下是通過ISA總線連接MAX
12、197的信號(hào)接法,由于MAX197只有12位數(shù)據(jù)寬度,這里使用SA0地址線來作為高、低字節(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 intub1 = 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 = EM
13、9000_READ(CS1# , 0x0 ); ub1 = ub1 8 ; ub1 = ub1 | (EM9000_READ(CS1# , 0x0 ) & 0xff ); 對(duì)于不同的系統(tǒng),請(qǐng)參見相應(yīng)的ETA197測(cè)試程序。3、用精簡(jiǎn)ISA總線進(jìn)行串口擴(kuò)展(應(yīng)用模塊:ETA502) 同樣的,用戶也可以使用精簡(jiǎn)ISA總線來擴(kuò)展串口,如使用16C550芯片等。一片16C550需要占用8個(gè)I/O端口地址,所以,要使用到三條地址線,且這三條地址線最好是連續(xù)的地址線,以方便應(yīng)用程序的開發(fā)與控制。 要注意的是,16C550的復(fù)位是高電平復(fù)位,而精簡(jiǎn)ISA總線上的復(fù)位信號(hào)是低信號(hào)復(fù)位有效,所以在使用時(shí),要將ISA總線上的復(fù)位信號(hào)進(jìn)行反向,再連接到16C550的復(fù)位上。如果要控制MODEM,則需
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)遇水變色油墨市場(chǎng)調(diào)查研究報(bào)告
- 二零二五年度瀝青材料研發(fā)與知識(shí)產(chǎn)權(quán)保護(hù)合同
- 資質(zhì)借用合同(2025年度)-跨境電商平臺(tái)搭建
- 2025年度模具技術(shù)標(biāo)準(zhǔn)制定與執(zhí)行合同
- 2025年中國(guó)碳化硼粒度砂市場(chǎng)調(diào)查研究報(bào)告
- 二零二五年度茶飲品牌新店加盟合同
- 二零二五年度三方委托付款與資金安全保障協(xié)議
- 二零二五年度電力調(diào)度中心運(yùn)維服務(wù)協(xié)議
- 2025年度貓咪領(lǐng)養(yǎng)及后續(xù)養(yǎng)護(hù)支持電子協(xié)議
- 二零二五年度運(yùn)動(dòng)器材銷售提成分配協(xié)議
- 2025中鐵快運(yùn)股份限公司招聘全日制普通高校畢業(yè)生35人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2025年浙江寧波寧興集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 計(jì)算機(jī)網(wǎng)絡(luò)試題及答案
- 2025年安徽馬鞍山市兩山綠色生態(tài)環(huán)境建設(shè)有限公司招聘筆試參考題庫附帶答案詳解
- 人效管理措施
- 籃球教練職業(yè)生涯規(guī)劃
- 機(jī)器人手術(shù)后期護(hù)理
- 食品抽檢核查處置重點(diǎn)安全性指標(biāo)不合格原因分析排查手冊(cè)
- 自力式調(diào)節(jié)閥閥門
- 《學(xué)生檔案信息管理系統(tǒng)的開發(fā)》6500字(論文)
- GB/T 44904-2024售后服務(wù)無理由退貨服務(wù)規(guī)范
評(píng)論
0/150
提交評(píng)論