單片機(jī)多微機(jī)系統(tǒng)共享RAM電路
多機(jī)之間的通信便成為多機(jī)系統(tǒng)的技術(shù)關(guān)鍵。特別是對數(shù)據(jù)傳送有特殊要求的場合,更要解決好多機(jī)間的通信問題。如在工業(yè)機(jī)器人的控制中,對數(shù)據(jù)的傳送就有如下要求:①主、從機(jī)要共享許多數(shù)據(jù);②主、從機(jī)需要快速交換信息。在這種特殊要求下,傳統(tǒng)的串行、并行通信就難以滿足要求,而采用多機(jī)電路,既能滿足要求,又具有簡單、可靠、通用性好等優(yōu)點。
電路原理
圖1- 87所示為實際電路圖。圖中共用的RAM為6264.它有8根數(shù)據(jù)總線(Do~D7),13根地址總線( Ao~A12),4根控制總線(WR、OE、CS、CS),2根電源線。當(dāng)兩微機(jī)系統(tǒng)共用RAM時,必須用緩沖器將其隔離。當(dāng)某機(jī)需要占用時,則對一機(jī)導(dǎo)通,而對另一機(jī)隔離;否則兩機(jī)將同時出現(xiàn)故障。在圖1- 87所示電路中,緩沖器選用74LS245,它是8位雙向緩沖器。因為6264共有24根總線,故用6片74LS245與一片74LS125三態(tài)門。74LS245有一個方向控制端DIR,一個允許端G。DIR直接接于RD或接固定電位(+5 V,0 V)。用于數(shù)據(jù)線緩沖時,DIR要接RD;用于地址線和控制線時,DIR要接固定電位(+5 V,0 V)。一般的CPU,RD信號總是出現(xiàn)在地址信號的后面,如8080、8031等。如果G接于RD,則會出現(xiàn)RAM數(shù)據(jù)還沒準(zhǔn)備就寫或讀,系統(tǒng)就會出現(xiàn)故障。因此,G接于系統(tǒng)的譯碼端是比較合適的。
系統(tǒng)共用RAM,用緩沖器隔開,還有問題:如果兩機(jī)同時使用RAM,則會發(fā)生沖突,雙機(jī)都發(fā)生故障。解決的辦法是,另外設(shè)置一個狀態(tài)觸發(fā)器,如圖1- 88所示。采用74LS74中的一個D型觸發(fā)器,當(dāng)一機(jī)準(zhǔn)備使用共用RAM時,先測試觸發(fā)器的輸出端Q,如果Q=O,則表示RAM狀態(tài)為閑;然后,微機(jī)發(fā)出一置Q=1命令,表示RAM已采用;用完后,微機(jī)發(fā)出Q=O命令,使RAM為閑,其他微機(jī)可以采用了。
共用RAM的地址,在不同的系統(tǒng)中有所不同。這取決于譯碼的地址,即同一存儲單元對于不同的系統(tǒng)有不同的地址。
從以上分析可知,此種多機(jī)共用RAM電路在兩機(jī)有大塊數(shù)據(jù)交換時,只需對各自RAM使用查詢、置狀態(tài)、清狀態(tài)三個過程,故對于大塊數(shù)據(jù)交換,傳輸速率要比傳統(tǒng)的串行、并行高許多。