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