精簡(jiǎn)ISA擴(kuò)展總線應(yīng)用
英創(chuàng)公司的嵌入式網(wǎng)絡(luò)模塊系列產(chǎn)品均具有精簡(jiǎn)ISA擴(kuò)展總線,通常包括若干地址總線、8位數(shù)據(jù)總線、讀寫控制線、片選控制線以及中斷請(qǐng)求線。英創(chuàng)公司所提供的評(píng)估開發(fā)底板將這些信號(hào)線制定了一個(gè)接口標(biāo)準(zhǔn),采用雙排20芯IDC插針,交錯(cuò)排列,用戶可用該擴(kuò)展總線進(jìn)行硬件擴(kuò)展。片選線CS1出廠默認(rèn)選擇地址段為300H—37FH,例如,當(dāng)(A6A5A4A3A2A1A0)=(0000101’b),CS1加5條地址線的譯碼輸出端口地址為305H,以下是擴(kuò)展總線接口的定義:
1、總線時(shí)序圖,以及和C語(yǔ)言、匯編指令之間的關(guān)系
為了便于用戶理解精簡(jiǎn)ISA總線接口如何進(jìn)行編程,本文簡(jiǎn)單介紹C語(yǔ)言中的指令、用戶操作的函數(shù)與總線的時(shí)序之間的關(guān)系。各個(gè)不同模塊的CS1#片選地址范圍不同,詳見相關(guān)技術(shù)手冊(cè),下面以ETR232i的使用為例進(jìn)行講解,在此CS1#對(duì)應(yīng)的片選地址范圍為300h——37Fh,其中A0——A6的譯碼為0ah。
C語(yǔ)言端口輸出函數(shù):
outportb ( 0x30a, ub1 ); //把ub1字節(jié)送到0x30a寄存器
對(duì)應(yīng)的匯編指令為:
mov dx , 0x30a
mov al , byte ptr ub1;byte ptr ub1為變量ub1對(duì)應(yīng)的存儲(chǔ)器
out dx , al
對(duì)應(yīng)的總線寫時(shí)序圖為(本文中的總線周期均以ETR232i模塊為例):
C語(yǔ)言端口輸入函數(shù):
char ub1 = inportb ( 0x30a ); //把0x30a地址寄存器的內(nèi)容讀入變量ub1
對(duì)應(yīng)的匯編指令為:
mov dx , 0x30a
in al , dx
mov byte ptr ub1, al ; byte ptr ub1為變量ub1對(duì)應(yīng)的存儲(chǔ)器
評(píng)論