曾博昊
(沈陽師范大學物理科學與技術學院,遼寧 沈陽 110000)
?
基于多串口通訊技術的單片機應用
曾博昊
(沈陽師范大學物理科學與技術學院,遼寧 沈陽 110000)
摘要:在科學技術高速發展的今天,人們可以利用單片機串口擴展技術,對其進行接口擴展,從而得以使單片機多串口通訊技術被廣泛的應用。本文從單片機串口擴展設計出發,對單片機多串口通訊機是及其應用進行了詳細的介紹,并提出了個人看法,希望能夠拋磚引玉。
關鍵詞:單片機;多串口;通訊技術;應用
1單片機串口擴展設計
1.1單片機串口擴展的硬件總體設計。單片機串口擴展的硬件總體設計單片機串口擴展的硬件總體設計單片機串口擴展的硬件總體設計單片機與PC機或外設的串行通信一般采用RS232/RS422/RS485總線標準接口。為保證通信可靠,在選擇接口時必須注意通信的速率、通信距離、抗干擾能力、電平匹配和通信方式。本文為了解決在單片機串行通信時遇到的串口問題,以MCS51系列單片機8751為例,進行串口擴展,包括通過通信接口芯片8251再擴展一個獨立串口,通過16×1的多路切換器CD4067實現一點對多點分時串口通信,以及通過電平轉換器MAX232,MAX488,MAX485實現單片機與不同類型接口源供電,驅動能力強。MAX232芯片內置兩個TTL到RS232和兩個RS232到TTL驅動電路,即具有兩個發送器和兩個接收器,只需外置4個011μF電容以供內部電路產生RS232電壓。MAX232的發送器的發送輸入為T1IN/T2IN,發送輸出為T1OUT/T2OUT;接收器的接收輸入為R1IN/R2IN,接收輸出為R1OUT/R2OUT。RS232接口也普遍使用9芯插頭座,在許多場合下僅將發送端TXD數據和接收端RXD交叉連接,加上信號地GND共使用三根線,只給出了一路TTL電平接口到RS232電平接口的串行通信電路設計。
1.2單片機與不同類型串口的通信擴展。電路的設計單片機與不同類型串口的通信擴展電路的設計單片機與不同類型串口的通信擴展電路的設計單片機與不同類型串口的通信擴展電路的設計單片機CPU8751的串口是TTL電平,要實現8751與不同類型串口進行通信,需要用電平轉換器完成不同類型串口的轉換,才能成功進行通信。下面對單片機8751與RS232/RS422/RS485的串行通信進行接口擴展。
2單片機多串口通訊的實現技術
2.1采用多串口單片機。目前只有少數單片機具有兩個以上的串行通訊接口,有些單片機與MCS-51系列單片機兼容,新增加的串口與原有的串口在使用上基本相同。采用多串口單片機實現多串口通訊無需額外的軟件硬件支持,因而是最為理想的方案,只是這些單片機不太容易買到,價格也比較高。擴展串行通訊接口在基本系統上擴展串行通訊接口是另外一種可行的方案。目前對于MCS-51系列單片機只有intel8250和intel8251兩種接口芯片可供選擇。前者為DIP40封裝,后者為DIP28封裝。兩者在使用上有著很大的區別,不能互換使用。擴展接口方法的缺點是增加了系統的復雜性,擴展芯片的體積也嫌太大。
2.2采用多路模擬開關。該方法是將串口通過多路模擬開關分別與各路通訊線路連接,適用于多路通訊分時進行,沒有交叉的情形。這種方法工作比較可靠,技術上也比較容易實現,只需利用軟件控制多路模擬開關的切換即可。
2.3多單片機協同工作。由于單片機的價格低廉,采用多個廉價的單串口單片機實現多路通訊可能比其它的方案成本更低,技術上也比較容易實現。這種方案比較適合協議轉換一類的工作,這樣每個單片機只需要負責一種協議數據的處理,便于軟件編程。
多單片機協同工作必然要涉及到各個單片機之間的數據交換,這需要一些特殊的通訊技術支持。
2.4利用HSI和HSO功能。在現代的單片機應用中,其具備的主要功能就是高速輸入以及高速輸出。在實際的應用過程中,通常是將這些功能串行通訊。在數據接收的過程中通常會應用到高速輸出功能,應用高速輸出功能首先是根據單片機的通訊波特頻率確定定時時間,然后在對檢測接收數據的起始位用高速輸出檢測。如果檢測到起始位時,就對其進行中斷,在中斷過后對讀入的數據進行拼裝,在完成此項工作過后必須儲存所有接收的數據。
在利用高速輸出進行數據處理時,可以通過向寄存器寫入相關的命令,然后就可以直接進行數據處理,并且根據波特率對時間間隔進行處理。發送多位數據則對應多條命令,也可以利用高速輸出中斷實現。
2.5軟件模擬。對于不具備高速輸入和高速輸出功能,又不能進行擴展的單片機,軟件模擬是一種增加串口的可行方案。軟件模擬是利用軟件模擬串行通訊的時序,因此需要占用較多的軟件資源。具體實現時可以利用定時器輔助進行,下面將給出實現該方案的技術細節。
3串行通訊的軟件模擬實現
利用軟件模擬發送的基本思想是,首先根據通訊速率確定發送每一位的間隔時間,然后根據數據格式和內容進行逐位操作。間隔時間的控制可以用軟件延時,也可以使用定時器。例如,對于11.0592MHz的系統時鐘和9600波特率,對于MCS-51系列單片機,可以計算出8位定時器的定時時間常數初值。
若使用MCS-51系列單片機定時器0的工作方式2作為定時控制,9600波特率,使用Pl.0作為發送線模擬串行通訊方式1。
軟件模擬接收的基本思想是,利用外部中斷檢測起始位,一旦檢測到起始位即進入中斷服務程序,在中斷服務程序中延時半個數據位時間后再次檢測端口狀態,以防止干擾的影響。檢測無誤后關閉外部中斷,同時打開定時器中斷。在定時器中斷服務程序中接收數據位并進行拼裝,接收完畢后即可關閉定時器中斷。待主程序處理完接收數據后再打開外部中斷以便開始下一個數據的接收。
若使用定時器0的工作方式2作為定時控制9600波特率,使用P3.3作為接收線模擬串行通訊方式1。
4結束語
目前由于計算機信息的高速發展,傳統的單片機串口不能進行同步通訊,而單片機多串口則可以進行同步通訊,盡管它要比傳統的單片機占用更多的軟件資源,但是它能夠提供更多的靈活性,從而提高單片機的整體性能。本文通過對單片機多串口通訊技術及其應用進行了詳細的闡述,相信讀者對其也有了進一步的了解。總而言之,隨著科學記得的發展,可以預見,單片機多串口通訊技術在今后的應用中必定更加完善成熟,應用方面也更加廣泛。
中圖分類號:TP368.1
文獻標志碼:A
文章編號:1671-1602(2016)04-0019-01
作者簡介:曾博昊(1992.10-),男,漢,廣西桂林人,沈陽師范大學物理科學與技術學院電子信息工程專業。