王 敏
(東南大學吳健雄學院2011 級,南京,211189)
單片機屬于計算機的一個分支,是指一個集成在一塊芯片上的小而完善的微型計算機系統,自產生之日起,就憑借小體積、多功能、低功耗、高性價比等優點在工業控制領域得到大量應用。隨著電子技術的長足進步,單片機的應用領域日益拓寬,幾乎所有電子產品中都會覓到它的“倩影”。單片機主要有專用和通用兩類,通用類單片機能夠符合多數系統的功能要求,如有需要,其功能還可以拓展,以滿足特殊需要。MCS-51 單片機屬于通用型,在現代通訊行業應用廣泛。
單機片與外界設備相連時,通常只有一個串行通訊接口,而工程任務日益復雜,常會遇到特殊需要,一個串行通訊接口難以滿足要求,需要實現多串口通訊。其方法多種多樣,以下幾種較為常用:
該設計較為合理,技術要求低,操作簡單,只需用相應軟件對多路模擬開關進行控制,通過多路模擬開關和各路通訊線路分別建立連接,在多路通訊分時進行時較為適用,不會出現交叉的狀況。
隨著技術的發展進步,具有多個串口的單片機已不罕見,當前常用的有68HC11P 和80C320 等。對于和MCS-51 單片機互相融合的單片機,新增串口和原來的串口在使用方法上有很大的相似性。在通訊方式上,多串口單片機不需要依賴于其他軟件的支持,是當前自動控制領域很好的選擇,但價格較貴。
如果將多個單串口的單片機組合在一起,來完成多路通訊工作,與多串口單片機相比,價格要低,且技術上也容易實現。此方法多用于協議轉換類工作,且每一個單片機只需處理一種協議數據,為軟件編程提供了有利條件。單片機之間的數據交換必須通過一些特殊技術完成。對于雙單片機系統,可利用并行口完成數據交換的工作,以MCS-51 單片機為例,兩個該類單片機可借助P1 口來實現數據交換。
實現多串口通訊還有一種可行的方法,就是對串行通訊接口進行擴展。從當前狀況來看,MCS-51 單片機只有兩類接口芯片可用,一是Intel8250,為DIP40 封裝;二是Intel8251,屬于DIP28 封裝。該方法缺點是系統更為復雜,且擴展之后,芯片的體積有所增大。
在MCS-51 單片機工作時,每發送一幀數據為11 位,包括1位起始位、1 位停止位、8 位數據位,還有一個附加的第9 位數據(常以奇偶校驗位的形式出現于非多機系統中)。為了避免通訊中出現差錯,常會將“0”或“1”設置為區分數據幀(標志0)和地址幀(標志1)的標識。在主從式多級通信中,有以下幾項需要注意:為保證準確地接收來自主機的信息,從機在其發送信息時一直保持在聽命狀態,假如接收到的信息為“1”,說明來自主機的信息屬于地址信息,所有的從機此時都接收中斷,反之則中斷屏蔽。單個從機一旦出現中斷,系統便會將本機地址和所接受地址進行比較,若兩者相符,則發送本機地址作為對主機的回答,同時聯通主機準備接收其他信息。若兩者不符,從機則自動返回到中斷服務程序。這樣通過從機對主機地址幀數據和其他信息的隔離,信息更安全。
只有保證在MCS-51 單片機和PC 機間建立的串行接口對接的有效可行性,才能完成兩者間良好的串行通信。由于RS-232使用的是EIA 電平,而MCS-51 單片機使用的是TTL 電平,為安全有效地完成數據傳送工作,必須在兩者間安裝電平轉換芯片。MAX232 芯片采用單電源供電,功耗較低,其自身帶有電壓電源變換器,能夠和RS-232 輸出的電壓相轉換,能滿足其技術要求,所以,無論是從功能上考慮還是從經濟上考慮,都比較適宜。
在單片機通信中,雙機通信是最為簡單的一種通信模式,可直接和串口進行連接,操作起來方便簡單,但兩機之間的距離不能太遠。使用RS-422 可延長通信距離,選擇光電隔離方法,可相應地減輕干擾。在軟件編程這一方面,需要建立相應的協議,用來對相同的晶振頻率以及波特率做出相關規定,通過該協議,就可利用編程實現通信了。一般情況下,雙機通信有查詢和中斷兩種方法。
分布式集散控制系統應用范圍較廣,此系統的下位機需進行信號收集,常用多個單片機來代替,以方便對現場的有效控制。此時,控制整個系統運行的主機多是單片機,而從機則是多個單片機,主要負責對現場信號進行收集,并對局部加以控制。主機和從機依靠總線進行連接。由主機TXD 端口發出的信號,所有從機都可以接收;而由從機發出的信號,只有主機能對其接收。所以,每個從機都可以自由和主機通信,但從機與從機通信,一定要經過主機。在多機進行通信時,為使通信更加可靠,可引入尋址技術,由主機向各從機發送一個地址信息,用來驗證身份。各從機接收后,與自身地址相比,如果一樣,則可與主機通信;如果不一樣,則可以不理會主機發來的數據。
用戶判斷收到的信息是數據幀還是地址幀,可通過改變TBB來實現,如此一來,當主機在發送尋址時,TBB 值設為一條;當發送的是數據時,需將TBB 清零。從機的識別主要依靠控制位SM2完成,該控制位位于串口控制寄存器中。從機接收到信息且是地址幀后,如果SM2 為1,則將數據進行保存,并將中斷標志R 設為1,向CPU 發送中斷信息;如果接受的不是地址幀,而是數據幀,則放棄信息,也不中斷;但如果從機的SM2 為0,則不管是數據幀還是地址幀,都應將其數據進行保存,并將中斷標志R 設置為1。
和雙機通信相同,在通信軟件開始編寫之前,必須有相關協議,大致有以下規定:系統最多能夠接入255 臺從機;當主機傳輸0FFH 的地址時,每個從機都應恢復到SM2 值為1 的狀態,做好再次接收地址的準備;主從機通信的程序大致為,主機將地址信息傳輸給各從機,各從機接收后將主機地址發送至主機,主機對其進行判斷,若相同則發送控制命令,各從機據此將本身狀態返回給主機;主機在要求各從機接收所發數據塊時,需將控制命令00 發送到各從機;要求各從機發送自己所需的數據塊時,需將控制命令FF 發送至各從機,其他一切命令都不可通。
另外,必須注意的是設計通信接口,要依據一定的標準進行設計。目前,有3 種通信接口應用比較廣泛:一是RS-422,RS-449,RS-485,此類接口成本較高,但通信距離遠,具有較快的傳輸速度;二是RS-232C,在距離較短的通信中比較常見;三是20mA的電流環,此類接口結構簡單,具有較強的抗干擾能力。
MCS-51 單片機價格低,性能優越,在自動控制領域應用廣泛。上述兩種通信協議有利于對較為復雜的信號的有效控制和處理。對MCS-51 單片機多串口通訊技術的研究和探討在提高自控效能的同時還能降低成本,使MCS-51 單片機得到進一步的革新和應用。
[1] 張英.MCS-51 單片機上實現多串口通訊的技術分析[J].信息系統工程,2013,38(2):125-127
[2] 孫建軍.關于單片機技術應用的幾點思考[J].科技致富向導,2011,18(3):243-245
[3] 徐小濤.基于MCS-51 單片機的串行通信實現[J].計算機與網絡,2010,28(19):179-181
[4] 王富東.單片機多串口通訊技術及其應用.儀器儀表學報,2002,36(S1):105-107
[5] 楊順景.MCS-51 單片機多串口通訊技術的應用探析[J].電子制作,2013,21(9):214-215