王國輝
(普天信息技術研究院,北京100080)
TM4C1233H6PZ雙處理器的多串口實現技術
王國輝
(普天信息技術研究院,北京100080)
基于嵌入式微處理器的智能數據采集與控制系統通常采用UART口進行通信。大多數微處理器僅有1或2個UART口,限制了其應用。基于TM4C1233 H6PZ的雙處理器系統,利用SPI接口作橋接,實現了16個UART口的通信,并在實用產品上得到驗證。該方法適用于串口數需求較多、數據量較大的系統,解決了微處理器UART口不夠用的局限性問題,提供了一種擴展UART口的方法。
TM4C1233H6PZ;雙處理器;SPI總線;UART口;串口擴展
隨著嵌入式技術的發展,嵌入式微處理器在數據采集、工業控制、儀器儀表、智能家電、醫療設備、家庭安防控制、車輛監控和調度、有線及無線數據傳輸等很多領域有廣泛的應用。特別是嵌入式微處理器與無線網絡技術相結合構成的無線網絡測控系統,在測控領域應用甚為突出。
為了滿足數字化和智能化要求,在這種以微處理器為核心的智能化測控系統中,處理器與外圍電路功能模塊、器件及傳感器之間的通信大多采用簡潔高效的串口通信方式,因為串行通信設備具有控制靈活、接口簡單、占用系統資源少等優點。然而大部分微處理器僅提供一個或少量幾個串口,這樣勢必會導致微處理器的串口不夠用,難以滿足與多個外部設備進行串口通信的需求。為了便于設備的接入,必須進行UART口擴展,獲得多個UART口,與多個外設通信,以解決嵌入式微處理器在串行通信系統中的串口局限問題。
筆者設計了一款無線信息采集系統,該系統包括14個不同功能的無線通信模塊,主控器采用嵌入式微處理器,處理器與各模塊之間采用UART口通信。為了保證數據采集的實時性,提高采集效率,需并行采集各種通信模塊的數據,而普通微處理器僅有為數不多的幾個UART口,要想實現實時、高效、并行地采集多模塊的數據,必須進行串口擴展。
總的來說,要在一個嵌入式系統中實現多串口,主要有軟件模擬法、分時復用法、并口擴串口法、串口擴串口法等幾種方法。各種方法各有優缺點,如表1所列,適合于不同的場合。
軟件模擬法是根據串行通信的收發格式,利用定時器和主處理器的I/O口來模擬串行通信的時序,達到擴展串口的目的。軟件模擬價格低廉,無需外圍電路,使用方便,但并不是所有的微處理器都適合軟件模擬串口;軟件模擬串口需要占用較多的CPU資源,用掉定時器資源,效率低,很難模擬4個以上的串口,要占用大量時間,任務較多的系統不宜采用。

表1 各種串口擴展方法比較
在電路設計的過程中,如果系統實時性不高,各串口設備不必同時工作,只是分時地工作,可以根據系統需要,采用模擬開關,將1個串口擴展為多個串口,這是分時復用法。這種多路模擬開關很多,如TI的CD4067和CD4097芯片[1],可分時擴展8個和16個串口。分時復用法成本低,占用系統資源少,易于控制,但只適用于數據量不大,主處理器與各從設備之間不同時收發數據情況,各串口設備不能實時與主CPU通信,只能分時通信,不適合實時性要求高的系統。
并口擴串口法是利用主機的并口,通過增加外圍擴展芯片,擴展出多個串口。這種芯片有Intel的8251和TI的TL16C55x系列。TL16C55x是多通道異步收發器集成芯片,最多可擴展4個UART口[2]。該方法功能比較強大,通信速度高,用于通信實時性要求較高的系統,用來實現系統的高效多串口通信,增強系統的通信接口控制能力;但控制復雜,價格較高。
串口擴串口法采用外圍專用芯片,利用主機的串行接口擴展多個串口,各串口可同時使用。專用芯片有GM8123/25、SP2338和SP2538等。GM8123/25系列串口擴展芯片可以全硬件實現串口擴展,將一個全雙工的標準串口擴展成5個標準串口,單通道模式下,最高波特率支持20 Mbps,多通道模式下,子串口最高波特率為38 400 bps[3]。該方法外部控制線少、應用靈活、通用性強、性能穩定,但控制復雜,價格也較高。
另外,還可借助微處理器的SPI總線接口,采用專用擴展芯片,實現高速SPI口轉多個UART口的方法。這種芯片如NXP公司的SC16IS752,可擴展出速率到達5 Mbps雙通道高性能UART[4],周立功公司的ZLG9518S,可將SPI口轉換為8路UART口,最高可達115 200 bps。SPI擴展可得到的UART口數量多,速度快,整個設計簡捷、具有通用性。
無線信息采集系統所需連接的無線模塊有14個之多,為了提高采集效率,并行采集各模塊數據,現在還沒有一款微處理器自帶這么多的UART口,要想實現多模塊并行采集,必須進行串口擴展。
首先為了提高采集效率,盡量選取自帶UART口比較多的微處理器,目前大多數微處理器自帶2~4個UART口,最多的是TI的TIVA C系列MCU,有8個。本文基于TM4C1233H6PZ微處理器實現系統所需的多串口通信。TIVA C系列微處理器,具有ARM Cortex-M4核,適合于需要良好的控制和連接性能的產品,如低功耗手持智能設備、游戲裝置、家庭和商用監控、醫療儀器、測試設備、消防和安全等。TM4C1233H6PZ工作頻率為80 MHz,具有4個SPI口,支持USB 2.0設備,包括8個可完全編程的16C550型UART口,每個UART口的Rx和Tx都可單獨產生中斷,波特率可單獨設置,最高達到5 Mbps[5]。

圖1 系統原理框圖
為了實現設備所需要的14個UART口,還需要擴展6個。根據并行采集數據的需求,必須用外圍擴展芯片進行擴展,由于TM4C1233 H6PZ具有支持主模式和從模式的SPI接口,并具有8個UART口;再采用一個TM4C1233 H6PZ作為協處理器,通過SPI接口與主處理器通信,還能再擴展出8個UART口。這樣整個系統共有16個UART口并行工作,整個系統組成如圖1所示。主處理器帶8個UART口,Uart0~7,其中1個串口Uart0用于調試Debug口,其他7個串口可用于并行數據采集;協處理器也有8個UART口,Uart0-1~Uart7-1,其中Uart0-1用于調試Debug口,其他7個串口用于并行數據采集;主處理器和協處理器之間通過SPI接口連接,以SPI接口作為主—協處理器通信的橋梁。當協處理器上某個UART口有數據需要接收時,協處理器產生串口中斷并響應中斷,協處理器收到數據后,通過SPI口發給主處理器,并在主處理器產生一個SPI中斷,主處理器響應中斷并接收數據,這樣實現了擴展出的UART口的數據接收;同理可以實現擴展UART口的數據發送。
串行外圍設備接口(Serial Peripheral Interface,SPI)是Motorola公司推出的一種同步串行接口,其硬件功能強大。實現SPI通信需要3~4根線:同步時鐘(SCLK)線、片選控制(CS)線,主輸出/從輸入(MOSI)線和主輸入/從輸出(MISO)線。具體發送和接收數據的時序[5]如圖2所示。

圖2 TI SPI收發數據時序圖
根據設備實際使用的情況,采用主處理器和協處理器的“雙核”結構,實現了16個串口設備的連接,電路原理圖如圖3所示。

圖3 電路原理圖
展示了“雙核”結構中兩個處理器之間,以及各模塊之間的物理連接關系,兩個處理器之間通過SPI接口連接。TM4C1233H6PZ具有SPI接口,且支持主模式和從模式,主處理器的SPI口設置為SPI主模式,協處理器的SPI接口設置為從模式。
依據硬件連接關系、SPI工作模式及工作時序、主處理器和協處理器的工作模式等,進行軟件設計。軟件主要包括向各UART口發送數據和從各UART口接收數據,具體的軟件流程如圖4和圖5所示。
主處理器和協處理器協調工作完成數據的發送和接收。發送數據分往主處理器UART口發送和往協處理器UART口發送,往主處理器UART口發送時,可直接發送;往協處理器UART口發送時,需要把數據和協處理器UART口編號打包,再從SPI口發送給協處理器;協處理器接收到SPI中斷后,解析SPI口收到的數據,并把數據發送給相應的UART口。接收數據也分從主處理器UART口接收數據和從協處理器UART口接收數據,從主處理器UART口接收數據時,直接產生主處理器UART中斷,主處理器直接接收數據并處理數據;從協處理器UART口接收數據時,協處理器先產生UART中斷,并接收該UART口發來的數據,協處理器把收到的數據和UART編號打包,從SPI口發送給主處理器;主處理器響應SPI中斷,接收數據并解析SPI口收到的數據,解析成UART編號和數據,并處理數據。
在無線信息采集系統中,對擴展16個UART口的可行性和實用性進行測試和驗證,經過對實際設備的安裝調試,各通信模塊能穩定、高效地與主CPU和協CPU進行通信,通信良好,抗干擾能力強。各UART口波特率為115 200 bps,全部無線數據在5 s之內完成采集。每個串口設備的發送要求都能被及時地響應,即使所有串口設備同時有發送要求,數據也不丟失,實現了主處理器和各外設實時通信,取得實用化和產品化的滿意效果。

圖4 向UART口發送數據

圖5 從UART口接收數據
UART口通信是微處理器常用的通信方式,基于TM4C1233H6PZ的“雙核”系統實現了16個UART口與外設可靠、穩定地通信,完成了無線信息采集系統的實用化和產品化。該方法適用于數據量較大、串口需求較多的系統,抗干擾能力高,開發人員只需熟悉一種微處理器即可,縮短了產品的開發周期,解決了微處理器在串行通信應用系統中的串口局限問題,為微處理器在智能測控系統中的應用提供了比較重要的參考。
[1]劉小芳,曾黃麟,呂炳朝.單片機的多串口擴展技術的設計[J].計算機測量與控制,2004,12(11)::1088-1090.
[2]朱學明,丁萬山.一種基于TL16C554A的DSP多串口擴展方法[J].微處理機,2006,12(6):24-27.
[3]錢震宇、肖昌漢.基于GM8125的單片機多串口通信電路的設計與實現[J].船電技術,2011,11(31):22-24.
[4]解書鋼,馬維華,吳術.S P I總線的U A R T擴展方法[J].單片機與嵌入式系統應用,200(6):42-44.
[5]Texas Instruments.Tiva TM4C1233H6PZ Microcontroller Data sheet,2013.
Multi-serial Port Realization Technology of Dual-microprocessor Based on TM4C1233H6PZ
Wang Guohui
(Potevio Institute of Technology,Beijing 100080,China)
The intelligent data acquisition and control system based on embedded microprocessor often uses UART ports to communicate with other devices.Most of the microprocessors have only 1 to 2 UART ports,so the application is limited.The dual-microprocessor system based on TM4C1233H6PZ achieves 16 UART ports communication by the bridge of SPI interface.The method is proved in the practical product.The technique is applied for the acquisition system which needs more serial ports and with a large amount of data.It solves the problem that the lack of serial ports in the microprocessor,and a multi-serial port extension method is provided.
TM4C1233 H6PZ;dual-microprocessor;SPI bus;UART port;serial port extension
TP368.1
:A
楊迪娜
2016-05-19)