侯進旺
(佛山職業(yè)技術學院,廣東 佛山 528000)
基于AT89S51單片機接口電路的時序仿真研究
侯進旺
(佛山職業(yè)技術學院,廣東 佛山 528000)
高阻態(tài)是數(shù)字電路接口器件一個重要的狀態(tài),是接口電路的硬件設計中容易忽視的一種狀態(tài)。本文分析研究在某機床控制中74LS373接口芯片在單片機總線技術擴展I/O口時出現(xiàn)的總線沖突的時序仿真,使用接口芯片的高阻態(tài)可以有效解決多芯片I/O擴展時的總線沖突。
AT89S51單片機;接口電路;時序分析;仿真;總線沖突
在基于單片機的工業(yè)產(chǎn)品控制電路設計中,輸入輸出通道電路通常較多地關心信號傳輸中輸入輸出通道的高、低電平,對高阻態(tài)關注較少。實際上硬件設計如果對芯片的高阻態(tài)不注意,將會造成控制電路中接口芯片短路燒毀。下面針對基于AT89S51單片機[1]總線技術進行I/O擴展時接口芯片74LS373高阻態(tài)的時序進行仿真分析研究。
1.1 基本擴展電路
接口芯片74LS373是一個三態(tài)8D鎖存器,通常用于單片機的輸入輸出接口,其元件原理圖和功能表如圖1所示。
圖1 74LS373原理圖與功能表
從圖1功能表中知,當OE端為低電平,控制端LE為高電平時,輸入D端的數(shù)據(jù)傳送到輸出端Q;當OE和LE同為低電平時,輸出端Q保持原態(tài)(與輸入D無關);當OE為高電平時,無論LE、D如何,輸出均保持高阻態(tài)。
圖2所示電路為基于單片機AT89S51總線技術和兩片接口芯片74LS373進行I/O口擴展的電路[2]。U2擴展輸出接口,U3擴展輸入接口。U2和U3的接口地址分別為7FFFH和FEFFH。
在對圖2電路進行PROTEUS[3]仿真時,設置輸入開關的數(shù)據(jù)為01110110(76H),執(zhí)行如下指令:
MOV DPTR,#0FEFFH
MOVX A,@DPTR ;讀入U3開關數(shù)據(jù)
NOP
MOV DPTR,#7FFFH
MOV A,#55H
MOVX @DPTR,A ;向U2輸出01010101
利用PROTEUS軟件仿真得到基本電路圖2的仿真時序圖,如圖3。從時序圖中看出,在RD信號有效(低電平)之前,AD(0..7)(P0)數(shù)據(jù)為高阻態(tài),說明在讀U3時數(shù)據(jù)出現(xiàn)錯誤(正確應為FFH);在WR信號(低電平)前后,P0上的數(shù)據(jù)也為高阻態(tài)(正確應分別為FFH和55H),說明在U2輸出時數(shù)據(jù)也出現(xiàn)錯誤;同時在對圖2的電路仿真時,P0口的數(shù)據(jù)信號出現(xiàn)短路現(xiàn)象。
圖2 基于單片機AT89S51總線技術和接口芯片74LS373進行I/O口擴展的電路
圖3 圖2電路的仿真時序圖
分別對U2和U3執(zhí)行輸出和輸入指令,通過時序分析知,U2的輸出數(shù)據(jù)正確,U3的數(shù)據(jù)出現(xiàn)錯誤。
圖5 重新設計后電路的仿真時序圖
入接口擴展。在使用單片機總線技術擴展I/O口時,硬件設計必須要保證總線被單片機訪問的接口芯片占據(jù),而且不被訪問的接口芯片與總線脫離。硬件設計時應該避免單片機的總線始終被某一個芯片占據(jù)。
[1] 余永權.Atmel89 系列單片機應用技術[M].北京:北京航空航天大學出版社,2002.
[2] 高玉琴.單片機原理與應用及C51編程技術[M].北京:機械工業(yè)出版社,2011.
[3] 張靖武,周靈彬.單片機系統(tǒng)的PROTEUS設計與仿真[M].北京:電子工業(yè)出版社,2007.
1.2 輸入接口的擴展電路錯誤原因分析
從74LS373的功能表可以看出,當OE端保持在低電平,LE同時為低時,其輸出保持原態(tài),說明74LS373具有鎖存功能。由于圖2電路中U3的OE端常接地,使得總線始終被U3占領:當U3的LE為高時,芯片外部輸入的開關信號送到芯片輸出,當U3的LE為低時,其U2輸出的數(shù)據(jù)狀態(tài)被保持鎖存,也就意味著數(shù)據(jù)總線P0口被U3保持在輸入開關決定的數(shù)據(jù)。
事實上AT89S51單片機通過MOVX指令訪問U2和U3時,先將U2和U3的口地址分別輸出到P2口(高8位地址)和P0口(低8位地址),輸出到P0的低8位地址數(shù)據(jù)可能與U3輸入并保持的數(shù)據(jù)不同,從而造成P0口的數(shù)據(jù)沖突。
1.3 解決數(shù)據(jù)沖突的方法
從上述分析可以看出,造成數(shù)據(jù)沖突的原因是輸入芯片U3的OE端常接地,使得單片機數(shù)據(jù)總線始終被U3芯片占據(jù)。因此在硬件設計時應該避免單片機的總線始終被某一個芯片占據(jù)的現(xiàn)象。
事實上,從74LS373的功能表看,它還有一個高阻態(tài),只要保證當單片機不訪問U3時或者U3被訪問而在尋址階段時,使U3的輸出端始終保持高阻態(tài),這樣就能避免數(shù)據(jù)沖突。
如圖4為修改后的U3控制電路,OE信號由U4A或非門輸出信號取反得到。仿真結果如圖5所示。在執(zhí)行讀入U3的指令后,數(shù)據(jù)總線(P0)上的數(shù)據(jù)為76H;在執(zhí)行輸出U2指令后,數(shù)據(jù)總線(P0)上的數(shù)據(jù)為55H,輸入輸出結果正確。
通過以上分析和仿真,在基于單片機控制的電子電路設計中,時序的仿真分析是查找硬件電路錯誤的有效方法。
防止總線上數(shù)據(jù)沖突是硬件工程師在硬件電路設計中需要認真考慮的問題,而高阻態(tài)也是硬件電路設計中常用到的,這也是硬件工程師在電路設計中容易忽視的地方。
在使用單片機總線擴展I/O口時,常需要多個輸入輸出芯片時,正確運用接口芯片的高阻態(tài)是解決總線數(shù)據(jù)沖突的有效方法。
若接口芯片輸出無高阻態(tài)控制,則該芯片不能用于輸
Research on timing analysis simulation of interface circuit based on AT89S51 MCU
Hou Jinwang
(Foshan Polytechnic,F(xiàn)oshan 528000,China)
High impedance state is an important state of digital circuit interface device, which is easy to be neglected in the hardware design of interface circuit. This paper analyszes the time sequence simulation of bus conflict occurred in the 74LS373 interface chip in the control of a machine. The interface chip of high impedance state can effectively solve the problem of bus conflict when the chip is used to expand the I/O port.
AT89S51 MCU;interface circuit;timing analysis;simulation;bus conflict
圖4 修改后的U3電路
TP368
A
1674-7720(2016)05-0043-02
侯進旺. 基于AT89S51單片機接口電路的時序仿真研究[J].微型機與應用,2016,35(5):43-44,48.
2015-12-10)
侯進旺(1959—),通信作者,男,副教授,主要研究方向:智能電子、工業(yè)控制。E-mail:fs_hjw@126.com。