摘 要: 介紹以兩片80C196KC為主處理MCU,、一片89C51進行動態(tài)LED顯示的三MCU系統(tǒng)。兩80C196KC之間通過互訪數(shù)據(jù)存儲器進行數(shù)據(jù)交換,80C196KC與89C51的通訊使用串行口,。
MCS96系列單片機是16位單片機,。運算速度高、I/0資源豐富、具有10位A/D轉換器,特別適合于實時處理,、實時控制的各類自動控制系統(tǒng),如工業(yè)過程控制系統(tǒng),、伺服系統(tǒng)、分布式控制系統(tǒng),、變頻調速電機控制系統(tǒng)等,。在國內有成熟的開發(fā)系統(tǒng)和穩(wěn)定的供貨來源,相關資料也非常豐富,開發(fā)非常方便。
本文介紹的三MCU系統(tǒng),使用兩片80C196KC作數(shù)據(jù)處理及控制,一片89C51進行顯示,。應用于液壓缸活塞桿的位移檢測控制[1],。
1 系統(tǒng)的總體結構
系統(tǒng)的總體結構如圖1所示。為了提高系統(tǒng)數(shù)據(jù)處理能力,使用兩片80C196KC作為主處理芯片,。兩片80C196KC各自擴展了程序存儲器ROM和數(shù)據(jù)存儲器RAM,。不需要交換數(shù)據(jù)時,兩片80C196KC獨立工作;當需要交換數(shù)據(jù)時,首先征求對方同意,在對方允許的情況下,通過雙向總線開關訪問對方的數(shù)據(jù)存儲器。
傳感器的信號接到80C196KC的A/D轉換器輸入端,。
系統(tǒng)有兩種輸出:模擬量輸出和PWM輸出,。這兩種輸出都通過80C196KC的PWM功能實現(xiàn)。
串行口是一個雙向數(shù)據(jù)通道,可接收其他設備或上位機來的數(shù)字信號,也可將測量結果和液壓缸本身的一些狀態(tài)信息傳送給其他設備或上位機,。
系統(tǒng)測量結果的顯示使用LED數(shù)碼管,顯示數(shù)據(jù)由80C196KC通過串行口傳送,。顯示使用動態(tài)方式,控制芯片使用89C51單片機。89C51單片機把80C196KC送來的數(shù)據(jù)先進行運算,轉化為顯示用字型碼,一路通過I/O口送到顯示譯碼驅動器,另一路完成位選通控制,。
2 80C196KC之間相互訪問數(shù)據(jù)存儲器的硬件實現(xiàn)方法
2.1 80C196KC提供的總線控制信號
80C196KC提供了一組總線控制信號和,。它們支持總線交換協(xié)議,可用于共享存儲器的多處理器系統(tǒng)或DMA傳輸。
是總線占用信號,80C196KC的輸入信號由外部設備或其他單片機,、微處理器發(fā)出,。有效,表示外設要求占用系統(tǒng)總線。
為總線占用應答信號由80C196KC發(fā)出,。當80C196KC檢測到有效后,就釋放總線和有關的控制信號,并向對方發(fā)出有效作為應答信號,表示已經放棄了對總線的控制權,。
外設訪問80C196KC的存儲器結束后,使無效,并交還對系統(tǒng)總線的控制權。80C196KC撤去應答信號(使之無效),重新獲得對總線的控制權,。
在系統(tǒng)總線占用期間,80C196KC仍可以繼續(xù)執(zhí)行內部ROM/EPROM中的程序,。這時若產生了外部操作,CPU就會把該外部總線懸掛起來,并發(fā)出(總線請求)有效信號。在撤消有效信號的同時,80C196KC也撤消了信號,。
當80C196KC應答了總線占用請求時,地址/數(shù)據(jù)總線,、和INST的三態(tài)輸出緩沖器被置為高阻態(tài),完全放棄了對總線的占用和控制。
2.2 80C196KC互訪數(shù)據(jù)存儲器的方法
由于使用外部程序存儲器,當一片80C196KC的總線應答信號有效,、此片CPU放棄總線控制權的第二個機器周期,總線請求信號有效出現(xiàn),。為了不讓此信號干擾另一片CPU對總線的使用,使本片CPU的P1.0與對方的相或,如圖2所示。在申請總線占用前,先對本CPU的P1.0置1,屏蔽對方的信號,。直到本CPU使用總線完畢,再使本CPU的P1.0置0,釋放對方的信號,。
總線應答信號由P1.2檢測。
總線開關使用雙向總線驅動器74LS245,每片可驅動8路信號,共使用3片,。由于三片74LS245屬于同一個開關的3個部分,所以三片74LS245的使能端E連在一起,控制端DIR也連在一起,。
74LS245只有在總線應答信號有效后才能起作用,所以將兩片80C196KC的相與后接在74LS245的使能端這樣,當任何一片80C196KC的有效時,74LS245就進入使能狀態(tài)。
74LS245控制數(shù)據(jù)方向的DIR端接在80C196KC(1)的端,。當80C196KC(1)的有效時,80C196KC(1)的數(shù)據(jù)訪問指向80C196KC(2)的數(shù)據(jù)存儲器;當80C196KC(2)的有效時,80C196KC(2)的數(shù)據(jù)訪問指向80C196KC(1)的數(shù)據(jù)存儲器,。
在訪問對方的數(shù)據(jù)存儲器時,必須保證仍在訪問本方的程序存儲器,否則程序將無法正常進行。為了實現(xiàn)這一點,采用圖3的連接方法,。地址線最高位P4.7(AD15)不直接連在程序存儲器28256的片選端,而是與的反向信號相或后再接在28256的片選端,。這樣,當本方CPU應答對方占用總線信號后,本方信號有效,經過非門后變成高電平,28256的片選端也為高電平,使本方程序存儲器28256無法選中,只能選中本方數(shù)據(jù)存儲器。從而實現(xiàn)在程序運行正常的情況下訪問對方的數(shù)據(jù)存儲器,。
與程序存儲器相同,數(shù)據(jù)存儲器也面臨著同樣的問題:在需要訪問對方的數(shù)據(jù)存儲器時,要使本方的數(shù)據(jù)存儲器無效,。數(shù)據(jù)存儲器6264有兩個使能端:CS1和CS2。CS1作為控制端已經與80C196KC的地址最高位通過非門相連,可以使用CS2完成這個功能,具體連接方法如圖4所示,。每一片80C196KC的數(shù)據(jù)存儲器的CS2都與對方的相連,。這樣,當本方CPU出讓總線控制權時,有效,使對方數(shù)據(jù)存儲器6264的CS2端為低電平,進入非使能狀態(tài)。對方CPU在訪問數(shù)據(jù)存儲器時,訪問的就是本方的數(shù)據(jù)存儲器,。
3 PWM和模擬量輸出
在數(shù)字系統(tǒng)中,模擬量輸出一般是使用D/A轉換器,但80C196KC具有PWM輸出功能,可通過此功能獲得模擬量輸出,。通過PWM獲得模擬量輸出的原理圖如圖5所示。由于內部脈寬調制器輸出的是TTL電平的調制脈沖,為了獲得高精度的模擬量輸出,需要進行緩沖,使PWM信號的電平擺幅變?yōu)?~5V,。緩沖選用帶有TTL電平到CMOS電平轉換功能的CMOS型反向緩沖器CD4049,緩沖之后進行濾波,。
4 LED顯示
LED顯示部分由兩排LED組成:第一排6位數(shù)字,1位符號位;第二排5位數(shù)字,1位符號位。顯示部分的LED位數(shù)較多,為了簡化電路,減少能量消耗,用動態(tài)顯示方式,。由于動態(tài)顯示方式比較消耗CPU資源,用一片89C51專門負責顯示之前的數(shù)據(jù)變換和LED的動態(tài)掃描,。這一片89C51與一片80C196KC通過串行口進行數(shù)據(jù)傳遞。這樣,顯示就不再占用兩片80C196KC的資源,系統(tǒng)的編程也非常方便,。
本文介紹的三MCU處理系統(tǒng)的兩片80C196KC的存儲器擴展使用獨立編址方式,所以兩片80C196KC的地址空間全部可用,非常適合于程序和數(shù)據(jù)量比較大的場合,。每片80C196KC都具有一個A/D轉換器,可同時進行兩路轉換和處理,大大增加了處理速度。本系統(tǒng)應用于液壓缸活塞桿的位移檢測,取得了比較好的效果,。
參考文獻
1 潘 峰,丁 凡.基于超松弛法的行程傳感液壓缸磁路結構的研究.動力工程,2001;10
2 陳隆道,許 昌,周箭. 智能儀器的雙CPU技術. 電測與儀表,1998;35(1)
3 孫涵芳. Intel 16位單片機.北京:北京航空航天大學出版社,1995.11
4 何立民.MCS-51系列單片機應用系統(tǒng)設計.系統(tǒng)配置與接口技術.北京:北京航空航天大學出版社,1993.7
5 余永權.ATMEL89系列Flash單片機原理及應用.北京:電子工業(yè)出版社,1997.10