-
打算整理匯編語言與介面微機這方面的學習記錄,本部分介紹8086的總線,
-
參考資料
- 西電《微機原理與系統設計》周佳社
- 西交《微機原理與介面技術》
- 課本《匯編語言與介面技術》王讓定
- 小甲魚《匯編語言》
1. 總線定義與分類
講道理這部分學校老師不強調這個,尤其是引腳(說我們記不住),而視頻里老師講得很多,
總線是計算機系統中傳輸各類資訊的公共通道,按照功能層次,有四類:
-
片內總線
連接集成電路芯片內部各個功能單元的資訊通路,
-
元件級總線(板內總線)
連接同一個插板內各個元件的總線,類似于PCB板上的走線,
-
內總線/系統總線(版級總線)
連接各個插件板(微處理之間器、主存盤器、I/O介面)之間的通路,PCI、ISA、STD總線就是這一層次,
本章涉及也是這一層次的總線,
-
外總線/通信總線(I/O總線)
連接微機主體與I/O設備、儀表以及其他微機的總線,
視頻里老師就講到這里,課本上后面又講解了幾個系統總線,我對PCI比較感興趣,作業系統課程設計也用到了這個總線,不過微機角度的PCI主要是結構、時序方面,對編程要求不大,

- 上圖5.1是一個具備PCI總線的典型結構,里面有3個總線(HOST PCI ISA)以及3個橋設備
- HOST總線也稱存盤總線,連接微處理器、Cache、記憶體
- PCI總線連接高速I/O介面,因此這些設備也稱為PCI設備
- HOST橋:也叫PCI總線控制器,連接HOST和PCI,
- PCI-PCI橋:擴展PCI總線,
- PCI-ISA橋:擴展接入標準,符合ISA的設備也可以接入系統,
- 橋設備的用處:
- 地址空間映射
- 資料緩沖,因為PCI總線基本是突發事件傳送,沒有緩沖,加上橋設備可以處理時序、流量等更多情況,
- 實作不同層次總線的協議和電平轉換,
2. 幾種常用芯片
這塊沒學過,應該電信方面的數電學過,數字邏輯沒有講過,匯編這門課也沒有講(好像),不整理了,總而總之,這幾個芯片是用于總線驅動、管理的封裝好的電路,
2.1 74LS244
8位資料單向緩沖器,可用作輸入埠的緩沖,

2.2 74LS245
8位資料雙向緩沖器,可以用作總線連接的雙向緩沖,也能當做74LS244來用(Dir接地,常0),工程中也更常使用74LS245,

2.3 74LS373/74LS374
8位鎖存器,常讓OE接地==0,74LS374與之類似,只是G端變為CP時鐘,時鐘上升沿能夠保持資料,

3. 8086引腳功能以及總線形成
為什么又要說引腳呢?引腳就是微處理器級總線,微處理器 通過 微處理器級總線/引腳 與外面的IO電路連接,組成主機板系統,也就形成了系統級總線,
說實話這部分雖然打通數電微機和計組,但是,但這個角度比較難理解,從邏輯設計Verilog角度比較好理解時序,時序是人可以設計出來的,只不過到了8086微機中,Intel規定了一切,
-
整體上看,8086是40根引腳雙列直插,部分引腳分時復用,有兩種功能,電源電壓為+5V±10%

-
RESET,復位信號,高電平有效,這里老師講了8254時鐘發生器,使得RESET和時鐘上升沿一起到來(具體實作不關心了),RESET信號的高電平有效至少要持續4T才能復位,
復位后,DS、ES、SS、IP、PSW、指令佇列暫存器都清0,CS=0FFFFH,所以啟動地址cs:ip是FFFF0H,其他通用暫存器值不確定,
對于FFFF0H,已經在記憶體的很高地址,所以接下來需要遠程跳:
jmp far ptr xxxxh,向低地址跳轉,51單片機的復位中PC暫存器直接置0就沒有這個問題, -
clk時鐘輸入引腳,8086的作業時鐘<5MHZ,基本的總線周期是4個時鐘周期,而非基本總線周期則是3個clk+1個等待周期,
-
MN/MX fei:作業模式選擇,加高電平--最小方式;加低電平--最大方式,兩種方式不同的是上圖中24~31腳,
-
最小模式下,CPU對外部存盤器、IO的讀寫等控制信號由CPU直接產生,適合構成單處理器系統,
-
最大模式下,不由CPU直接產生,而由8086CPU外部的總線控制器芯片8288產生,CPU通過26、27、28引腳來控制8288,8288來譯碼并產生相應控制信號,適合構成多處理器系統,

-
3.1 最小方式(重點)
-
AD0AD15、A16/S3A19/S6:分時復用,地址線和存盤器、IO的資料線;高四位地址線和狀態線,

-
ALE 地址鎖存:在上圖的T1周期內電位變高,變高就知道了上面最重要的T1已經到來,在拿到T1來到的資訊后就可以拿到16位地址,可以用74LS373來存盤,
注意,這里已經開始和5.3節總線形成一起講了,
用ALE來作74LS373的G引腳,可以將地址資訊鎖存4周期,3片74LS373(總線形成電路)輸出的A0~A19就是系統級的總線了,

同理,上面介紹的是地址線,資料總線與其他控制信號結合(元件級總線、微處理器級總線),使用74LS245,就能產生資料系統級總線,
還有S3~S6,
-
S6沒用
-
S5,狀態暫存器的狀態位IF置1,S5==1,
-
S4和S3反應CPU目前操作使用的是哪個段暫存器,

-
-
DT/(R fei):資料傳輸方向控制信號,CPU向外輸出高電平,向內輸入低電平,
它的時序:比如開始執行
mov [BX],AX,向外輸出,所以T1~T4高電平,之后高或低取決于下一條指令, -
DEN fei:資料有效信號,資料傳送進出CPU時,該信號低電平,
-
M/(IO fei):高電平為操作存盤器,低電平選擇IO
-
WR fei:資料信號有效后,產生低電平寫信號,并在資料信號有效結束之前,完成寫操作,
存盤器讀是 RD fei
下面畫8086資料總線的形成電路:

-
READY:輸入引腳,上升沿采集,下降沿測驗,如果READY為低電平,則CPU就得知設備沒有準備好,在正常總線周期的第四個T內進入TW等待周期,實作慢速設備和快速設備之間的同步
READY的下降沿要和CPU時鐘的下降沿同步,設計比較復雜,這個程序會在8284內做,做到同步輸出,

-
TEST fei:測驗信號,低電平有效,CPU執行WAIT指令,每隔5個周期對TEST端進行測驗,若高電平繼續等待,低電平進入下一條指令,也能達到快慢設備的同步,
-
BHEfei/S7:高位元組允許信號,低電平有效,低電平表示使用高8位資料線,高電平低8位資料線,
類似于ALE,注意在上圖5.14中,ALE、BHE也鎖存在74LS373,下圖看看:

補充:8086和8088的區別:
- 內部,指令佇列暫存器8086 6位元組,8088 4位元組
- 外部,8086 20根地址線,8088 16根地址線,最小方式下且8086 M/IOfei,8088 IO/Mfei
-
INTAfei(出,CPU回答是否回應可屏蔽中斷的信號,會連回兩次,第一次回復可回應中斷,第二次問內容,此后資料線低八位拿資料),INTR(入)和NMI,不提了,
-
HOLD(輸入),其他總線主控設備申請信號,高電平有效,
HLDA(輸出),CPU對總線使用權的應答,如果讓出總線,就高電平,此時CPU的三態引腳全部高阻態,與外界隔離,
控制總線的形成,還是參照上圖5.14,相當于直接引出,
3.2 最大方式
最大方式的總線結構如下圖所示,與最小方式引腳功能有一點不一樣,但方法基本一樣:


引腳功能區分有:
-
S2 S1 S0,
-
最小模式下,CPU對外部存盤器、IO的讀寫等控制信號由CPU直接產生,適合構成單處理器系統,
-
最大模式下,不由CPU直接產生,而由8086CPU外部的總線控制器芯片8288產生,CPU通過26、27、28引腳來控制8288,8288來譯碼并產生相應控制信號,適合構成多處理器系統,
-
這里最大方式的26、27、28就是S2 S1 S0,
見本文3.1之前一段,
-
-
24、25腳:QS1 QS2,表明CPU取指令時的狀態,

-
30、31腳:RQfei/GT1fei,RGfei/GT0fei,等效于HLDA和HOLD,
當處理器以外的總線主控設備通過這兩個引腳其中之一向CPU申請總線使用權,CPU回復讓出,當主控設備停止使用讓出總線時,再告知CPU自己讓出了總線,
31腳的申請優先級高于30腳,
-
29腳:LOCKfei,如果某條指令,用戶認為非常重要,不允許其他總線主控設備向CPU申請總線,就在該指令前方加一個<總線封鎖前綴指令LOCK>,此時該29引腳就是低電平,通知總線主控設備總線已經封鎖,
3.3 關于系統級總線
注意!之后的存盤器擴展設計和IO擴展設計,都是基于這一章的系統級總線進行的,也就是直接展示的三大總線,具體分為高八位第八位、最高四位、控制引腳線等,
8086最小方式和8088最大方式都是重點
-
8086最小方式:

-
8086最大方式:

都可以再加上RESET和INTR等,
-
8088最小方式:沒有BHEfei,資料總線8位

-
8088最大方式:

3.4 IBM--PC/XT系統
下面老師講解了IBM--PC/XT系統,使用8088CPU且為多處理器系統(也就是最大模式),
這個我們老師沒有講,而且年代久遠現在可能也不考了,我只是對PC/XT這個總線感興趣,可能對以后深入學習PCI有幫助,
不過講道理,這里的總線,偏向于電路設計,而我想象的總線是軟體協議,
這部分先不著急,先考試,
P178,課本,
此外我搜索了一個總線提綱:01 微型計算機總線 - 最全的介面技術提綱
PC/XT總線是將8088 CPU的引腳經過8282鎖存器、8286發送接收器、8288總線控制器、8259中斷控制器、8237DMA控制器以及其他邏輯電路的重新驅動和組合控制而形成的,
總線信號線共62條
- 8條雙向資料線D7~D0 ;
- 20條單向地址線A19~A0 ;
- 控制線:
- 6條中斷請求線;
- 3對DMA申請線和4條DACK線;
- 4條 存盤器和I/O設備的讀寫命令線;
- 1條系統時鐘信號線、1條I/O奇偶檢測線、1條I/O就緒線及其他聯絡信號線,
- 4種電源(±5V、±12V)共8條線
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/544307.html
標籤:嵌入式
上一篇:Linux安裝
下一篇:良許翻天覆地的2022年
