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