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