劉永志
【摘 要】在科學(xué)技術(shù)高速發(fā)展的今天,人們可以利用單片機(jī)串口擴(kuò)展技術(shù),對(duì)其進(jìn)行接口擴(kuò)展,從而得以使單片機(jī)多串口通訊技術(shù)被廣泛的應(yīng)用。本文從單片機(jī)串口擴(kuò)展設(shè)計(jì)出發(fā),對(duì)單片機(jī)多串口通訊機(jī)是及其應(yīng)用進(jìn)行了詳細(xì)的介紹,并提出了個(gè)人看法,希望能夠拋磚引玉。
【關(guān)鍵詞】單片機(jī);多串口;通訊技術(shù);應(yīng)用
0.引言
單片機(jī)多串口通訊技術(shù)是一種基于單片機(jī)單串口基礎(chǔ)之上而進(jìn)行擴(kuò)展的一種通訊技術(shù)。其以獨(dú)具的高性能和高性價(jià)比優(yōu)勢(shì),得到了幾乎所有智能化產(chǎn)品的青睞。在目前的智能化產(chǎn)品的應(yīng)用中,可以將單片機(jī)分為兩類,一類是應(yīng)用在移動(dòng)通訊等設(shè)備中的專用單片機(jī),另一類是能夠在各類設(shè)備中應(yīng)用的通用單片機(jī),其中MCS-51就是通用單片機(jī)。隨著科學(xué)技術(shù)的日新月異,信息技術(shù)的水平也不斷提高,傳統(tǒng)的單串口單片機(jī)已經(jīng)不能滿足計(jì)算機(jī)信息技術(shù)的發(fā)展要求,從而限制了它們?cè)谟?jì)算機(jī)信息技術(shù)中的應(yīng)用。本文通過對(duì)多串口單片機(jī)的深入理解,并對(duì)單片機(jī)多串口通訊技術(shù)和應(yīng)用進(jìn)行了深入的探討。
1.單片機(jī)串口擴(kuò)展設(shè)計(jì)
1.1單片機(jī)串口擴(kuò)展的硬件總體設(shè)計(jì)
單片機(jī)串口擴(kuò)展的硬件總體設(shè)計(jì)單片機(jī)串口擴(kuò)展的硬件總體設(shè)計(jì)單片機(jī)串口擴(kuò)展的硬件總體設(shè)計(jì)單片機(jī)與PC機(jī)或外設(shè)的串行通信一般采用RS232/RS422/RS485總線標(biāo)準(zhǔn)接口。為保證通信可靠,在選擇接口時(shí)必須注意通信的速率、通信距離、抗干擾能力、電平匹配和通信方式。本文為了解決在單片機(jī)串行通信時(shí)遇到的串口問題,以MCS51系列單片機(jī)8751為例,進(jìn)行串口擴(kuò)展,包括通過通信接口芯片8251再擴(kuò)展一個(gè)獨(dú)立串口,通過16×1的多路切換器CD4067實(shí)現(xiàn)一點(diǎn)對(duì)多點(diǎn)分時(shí)串口通信,以及通過電平轉(zhuǎn)換器MAX232,MAX488,MAX485實(shí)現(xiàn)單片機(jī)與不同類型接口源供電,驅(qū)動(dòng)能力強(qiáng)。MAX232芯片內(nèi)置兩個(gè)TTL到RS232和兩個(gè)RS232到TTL驅(qū)動(dòng)電路,即具有兩個(gè)發(fā)送器和兩個(gè)接收器,只需外置4個(gè)011μF電容以供內(nèi)部電路產(chǎn)生RS232電壓。MAX232的發(fā)送器的發(fā)送輸入為T1IN/T2IN,發(fā)送輸出為T1OUT/T2OUT;接收器的接收輸入為R1IN/R2IN,接收輸出為R1OUT/R2OUT。RS232接口也普遍使用9芯插頭座,在許多場(chǎng)合下僅將發(fā)送端TXD數(shù)據(jù)和接收端RXD交叉連接,加上信號(hào)地GND共使用三根線,只給出了一路TTL電平接口到RS232電平接口的串行通信電路設(shè)計(jì)。
1.2單片機(jī)與不同類型串口的通信擴(kuò)展
電路的設(shè)計(jì)單片機(jī)與不同類型串口的通信擴(kuò)展電路的設(shè)計(jì)單片機(jī)與不同類型串口的通信擴(kuò)展電路的設(shè)計(jì)單片機(jī)與不同類型串口的通信擴(kuò)展電路的設(shè)計(jì)單片機(jī)CPU8751的串口是TTL電平,要實(shí)現(xiàn)8751與不同類型串口進(jìn)行通信,需要用電平轉(zhuǎn)換器完成不同類型串口的轉(zhuǎn)換,才能成功進(jìn)行通信。下面對(duì)單片機(jī)8751與RS232/RS422/RS485的串行通信進(jìn)行接口擴(kuò)展。
2.單片機(jī)多串口通訊的實(shí)現(xiàn)技術(shù)
2.1采用多串口單片機(jī)
目前只有少數(shù)單片機(jī)具有兩個(gè)以上的串行通訊接口,有些單片機(jī)與MCS-51系列單片機(jī)兼容,新增加的串口與原有的串口在使用上基本相同。
采用多串口單片機(jī)實(shí)現(xiàn)多串口通訊無需額外的軟件硬件支持,因而是最為理想的方案,只是這些單片機(jī)不太容易買到,價(jià)格也比較高。
擴(kuò)展串行通訊接口在基本系統(tǒng)上擴(kuò)展串行通訊接口是另外一種可行的方案。目前對(duì)于MCS-51系列單片機(jī)只有intel8250和intel8251兩種接口芯片可供選擇。前者為DIP40封裝,后者為DIP28封裝。兩者在使用上有著很大的區(qū)別,不能互換使用。
擴(kuò)展接口方法的缺點(diǎn)是增加了系統(tǒng)的復(fù)雜性,擴(kuò)展芯片的體積也嫌太大。
2.2采用多路模擬開關(guān)
該方法是將串口通過多路模擬開關(guān)分別與各路通訊線路連接,適用于多路通訊分時(shí)進(jìn)行,沒有交叉的情形。這種方法工作比較可靠,技術(shù)上也比較容易實(shí)現(xiàn),只需利用軟件控制多路模擬開關(guān)的切換即可。
2.3多單片機(jī)協(xié)同工作
由于單片機(jī)的價(jià)格低廉,采用多個(gè)廉價(jià)的單串口單片機(jī)實(shí)現(xiàn)多路通訊可能比其它的方案成本更低,技術(shù)上也比較容易實(shí)現(xiàn)。這種方案比較適合協(xié)議轉(zhuǎn)換一類的工作,這樣每個(gè)單片機(jī)只需要負(fù)責(zé)一種協(xié)議數(shù)據(jù)的處理,便于軟件編程。
多單片機(jī)協(xié)同工作必然要涉及到各個(gè)單片機(jī)之間的數(shù)據(jù)交換,這需要一些特殊的通訊技術(shù)支持。
2.4利用HSI和HSO功能
在現(xiàn)代的單片機(jī)應(yīng)用中,其具備的主要功能就是高速輸入以及高速輸出。在實(shí)際的應(yīng)用過程中,通常是將這些功能串行通訊。在數(shù)據(jù)接收的過程中通常會(huì)應(yīng)用到高速輸出功能,應(yīng)用高速輸出功能首先是根據(jù)單片機(jī)的通訊波特頻率確定定時(shí)時(shí)間,然后在對(duì)檢測(cè)接收數(shù)據(jù)的起始位用高速輸出檢測(cè)。如果檢測(cè)到起始位時(shí),就對(duì)其進(jìn)行中斷,在中斷過后對(duì)讀入的數(shù)據(jù)進(jìn)行拼裝,在完成此項(xiàng)工作過后必須儲(chǔ)存所有接收的數(shù)據(jù)。
在利用高速輸出進(jìn)行數(shù)據(jù)處理時(shí),可以通過向寄存器寫入相關(guān)的命令,然后就可以直接進(jìn)行數(shù)據(jù)處理,并且根據(jù)波特率對(duì)時(shí)間間隔進(jìn)行處理。發(fā)送多位數(shù)據(jù)則對(duì)應(yīng)多條命令,也可以利用高速輸出中斷實(shí)現(xiàn)。
2.5軟件模擬
對(duì)于不具備高速輸入和高速輸出功能,又不能進(jìn)行擴(kuò)展的單片機(jī),軟件模擬是一種增加串口的可行方案。軟件模擬是利用軟件模擬串行通訊的時(shí)序,因此需要占用較多的軟件資源。具體實(shí)現(xiàn)時(shí)可以利用定時(shí)器輔助進(jìn)行,下面將給出實(shí)現(xiàn)該方案的技術(shù)細(xì)節(jié)。
3.串行通訊的軟件模擬實(shí)現(xiàn)
利用軟件模擬發(fā)送的基本思想是,首先根據(jù)通訊速率確定發(fā)送每一位的間隔時(shí)間,然后根據(jù)數(shù)據(jù)格式和內(nèi)容進(jìn)行逐位操作。間隔時(shí)間的控制可以用軟件延時(shí),也可以使用定時(shí)器。例如,對(duì)于11.0592MHz的系統(tǒng)時(shí)鐘和9600波特率,對(duì)于MCS-51系列單片機(jī),可以計(jì)算出8位定時(shí)器的定時(shí)時(shí)間常數(shù)初值。
若使用MCS-51系列單片機(jī)定時(shí)器0的工作方式2作為定時(shí)控制,9600波特率,使用Pl.0作為發(fā)送線模擬串行通訊方式1。
軟件模擬接收的基本思想是,利用外部中斷檢測(cè)起始位,一旦檢測(cè)到起始位即進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中延時(shí)半個(gè)數(shù)據(jù)位時(shí)間后再次檢測(cè)端口狀態(tài),以防止干擾的影響。檢測(cè)無誤后關(guān)閉外部中斷,同時(shí)打開定時(shí)器中斷。在定時(shí)器中斷服務(wù)程序中接收數(shù)據(jù)位并進(jìn)行拼裝,接收完畢后即可關(guān)閉定時(shí)器中斷。待主程序處理完接收數(shù)據(jù)后再打開外部中斷以便開始下一個(gè)數(shù)據(jù)的接收。
若使用定時(shí)器0的工作方式2作為定時(shí)控制9600波特率,使用P3.3作為接收線模擬串行通訊方式1。
4.結(jié)束語
隨著科學(xué)技術(shù)的日新月異,人們對(duì)各種新型技術(shù)的應(yīng)用更為廣泛,其中多串口通訊技術(shù)是一種比較特殊的應(yīng)用。多串口通訊技術(shù)可以應(yīng)用在現(xiàn)代的各種設(shè)備中,極大的提高了人們的生產(chǎn)和工作效率。目前由于計(jì)算機(jī)信息的高速發(fā)展,傳統(tǒng)的單片機(jī)串口不能進(jìn)行同步通訊,而單片機(jī)多串口則可以進(jìn)行同步通訊,盡管它要比傳統(tǒng)的單片機(jī)占用更多的軟件資源,但是它能夠提供更多的靈活性,從而提高單片機(jī)的整體性能。本文通過對(duì)單片機(jī)多串口通訊技術(shù)及其應(yīng)用進(jìn)行了詳細(xì)的闡述,相信讀者對(duì)其也有了進(jìn)一步的了解。總而言之,隨著科學(xué)記得的發(fā)展,可以預(yù)見,單片機(jī)多串口通訊技術(shù)在今后的應(yīng)用中必定更加完善成熟,應(yīng)用方面也更加廣泛。