胡鍇 溫嶺市技工學校
單片機的多串口擴展技術(shù)的設(shè)計
胡鍇 溫嶺市技工學校
隨著自動化技術(shù)的不斷成熟與應(yīng)用范圍的日益廣泛,以集成芯片形式存在的單片機在通信領(lǐng)域得到了快速的發(fā)展,成為現(xiàn)代通信技術(shù)不可缺少的一類重要元器件。本文以51系列單片機為例,對單片機多串口擴展的硬件總體設(shè)計與模塊設(shè)計進行重點探討,以進一步擴大串行通信適用場合。
單片機 多串口 擴展技術(shù) 設(shè)計
信息技術(shù)的迅猛發(fā)展使得工業(yè)領(lǐng)域和民用領(lǐng)域內(nèi)用戶對數(shù)據(jù)采集及自動化控制系統(tǒng)要求越來越高,對系統(tǒng)的實時通信要求越來越高,傳統(tǒng)的串口通信方式已難以滿足用戶快速增長的要求,設(shè)計基于單片機的多串口擴展通信變得越來越迫切和需要,尤其是在現(xiàn)代單片機集成度越來越高、功能越來越強大的背景下。
單片機與外圍設(shè)備間串行通信的實現(xiàn)一般多采用RS485、RS232總線標準接口,在實際設(shè)計時,為了保證串行通信的可靠性,避免串口問題發(fā)生,需要對通信距離、通信方式、通信速率等各相關(guān)因素進行綜合考慮。以MCS51系列的8751單片機為例,對該單片機多串口擴展硬件總體設(shè)計進行相應(yīng)闡述[1]??傮w設(shè)計包括,使用8751單片機的多路轉(zhuǎn)換器實現(xiàn)一點對多點分時的串口通信,使用8251通信接口芯片擴展出一個獨立的串口,實現(xiàn)兩個獨立串口的擴展通信,以及使用電平轉(zhuǎn)換器實現(xiàn)單片機與其他不同類型接口間的串行通信。通過多串口通信的擴展設(shè)計,滿足用戶串行通信高需求。
(一)兩個獨立串口的擴展設(shè)計
在實際應(yīng)用中,經(jīng)常會出現(xiàn)需要兩個獨立的全雙工串口通信情況,但8751單片機的處理器CPU只提供有一個串口,為了解決上述問題,此時就需要對單片機串口進行擴展。試驗表明,對于8751單片機來說,可以使用其P0接口來實現(xiàn)獨立串口的擴展,將原有8251串口擴展成可編程通信接口芯片[2]。為了最大限度提高資源利用率,采用中斷方式,當8751不進行數(shù)據(jù)通信時可以進行其他的工作。當系統(tǒng)存在請求信號(發(fā)送或接收)時,向單片機發(fā)出請求中斷,同時采用8253接口來實現(xiàn)分頻操作。之所以需要分頻,主要是因為8251的異步串行通信要求其輸入時鐘頻率必須要大于發(fā)送時鐘頻率和接收時鐘頻率相應(yīng)倍數(shù)。而之所以采用8253來完成分頻而不采用硬件,是因為不同波特率對分頻倍數(shù)要求不同,由硬件完成分頻的過程是十分復雜的,但8253則不同,其是一種可編程計數(shù)芯片,可以根據(jù)不同情況靈活的調(diào)整計數(shù)值,從而容易的實現(xiàn)分頻操作[3]。分頻的實現(xiàn)意味著獨立串口擴展已基本實現(xiàn)了一半,在分頻基礎(chǔ)上依據(jù)獨立串口通信各項要求,對頻率值進行合理設(shè)置,使擴展后的單片機獨立串口可以正常通信,且能較好的滿足通信要求。
(二)與不同類型串口間的擴展設(shè)計
8751單片機串口的電平與其他類型串口電平不同,要想實現(xiàn)單片機與其他類型串口間的通信,就必須要使用電平轉(zhuǎn)換器來將單片機串口電平轉(zhuǎn)換為其他類型串口所接受的電平。以8751全雙工串口與RS485 和RS232間的串行通信擴展為例,單片機串口與其他任意兩類型串口間的通信都必須設(shè)置一個電平轉(zhuǎn)換電路.對于8751單片機與RS232間的電平轉(zhuǎn)換可以使用電平轉(zhuǎn)換器MCI488/489來完成,但這種轉(zhuǎn)換方式功耗大,所以一般采用內(nèi)嵌有兩個電平轉(zhuǎn)換電路(TTL→RS232,RS232→TTL)的、功耗低、驅(qū)動能力強的MAX232芯片[4]。這種芯片集接收器與發(fā)送器于一體,且本身嵌入有電平轉(zhuǎn)換電路而無需額外設(shè)置,既簡化了電路設(shè)計,也降低了串行通信擴展的難度。8751單片機與RS485間的串行通信,采用MAX485芯片來實現(xiàn),將單片機的一個接口與發(fā)送端和接收端相連,并將接口的反向與MAX485連接,當上電時,MAX485處于接收狀態(tài),即可實現(xiàn)單片機與RS485間的串行通信。
(三)一點對多點分時串行的擴展設(shè)計
由于用戶類型多種多樣,不同用戶對通信要求存在一定差異,當用戶需要進行分時串行通信時,為了滿足用戶這一要求就需要對單片機串行通信進行擴展。用8751單片機與16路外設(shè)其中一個串口進行擴展,使用兩個包含16選1的譯碼器16路雙向模擬開關(guān)CD4067從16個接口中選出一個最為恰當?shù)拇?,對單片機進行擴展,將兩個雙向模擬開關(guān)輸出端分別接在8751單片機的發(fā)送端和接收端,從而實現(xiàn)一點對多點的分時串行通信[5]。
總結(jié):基于單片機的多串口擴展設(shè)計,本質(zhì)上是對串口通信功能與適用范圍的一個擴展。通過擴展設(shè)計不僅簡化了硬件方面電路設(shè)計的復雜性,豐富了通信芯片的功能,提高了單片機的集成度,而且軟件方面編程易于實現(xiàn),難度低,可以有效提高單片機程序的處理速率,從而實現(xiàn)數(shù)據(jù)的高效可靠傳輸,對推動單片機進一步發(fā)展具有重要影響。
[1]吳允平,蔡聲鎮(zhèn),蘇偉達等. 51單片機系統(tǒng)的擴展多串口設(shè)計及應(yīng)用[J]. 福建師范大學學報(自然科學版),2011,02:29-33.
[2]詹平紅,丁函,李文娟. 單片機多串口通信擴展的設(shè)計及其應(yīng)用[J]. 自動化與儀器儀表,2015,02:125-127.
[3]王心鵬,門雅彬,顧季源等. 串口擴展芯片XR16L784在水文監(jiān)測系統(tǒng)中的應(yīng)用[J]. 計算機測量與控制,2016,03:14-17.
[4]曾博昊. 基于多串口通訊技術(shù)的單片機應(yīng)用[J]. 西部皮革,2016,04:19.
[5]馮金霞,張輪,熊天圣. 基于SPI接口的異步串口擴展技術(shù)研究[J]. 微型電腦應(yīng)用,2009,12:50-52+78.