国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

TM4C1233H6PZ雙處理器的多串口實(shí)現(xiàn)技術(shù)

2016-03-20 09:14:44王國(guó)輝
關(guān)鍵詞:協(xié)處理器接收數(shù)據(jù)串口

王國(guó)輝

(普天信息技術(shù)研究院,北京100080)

TM4C1233H6PZ雙處理器的多串口實(shí)現(xiàn)技術(shù)

王國(guó)輝

(普天信息技術(shù)研究院,北京100080)

基于嵌入式微處理器的智能數(shù)據(jù)采集與控制系統(tǒng)通常采用UART口進(jìn)行通信。大多數(shù)微處理器僅有1或2個(gè)UART口,限制了其應(yīng)用?;赥M4C1233 H6PZ的雙處理器系統(tǒng),利用SPI接口作橋接,實(shí)現(xiàn)了16個(gè)UART口的通信,并在實(shí)用產(chǎn)品上得到驗(yàn)證。該方法適用于串口數(shù)需求較多、數(shù)據(jù)量較大的系統(tǒng),解決了微處理器UART口不夠用的局限性問(wèn)題,提供了一種擴(kuò)展UART口的方法。

TM4C1233H6PZ;雙處理器;SPI總線;UART口;串口擴(kuò)展

引 言

隨著嵌入式技術(shù)的發(fā)展,嵌入式微處理器在數(shù)據(jù)采集、工業(yè)控制、儀器儀表、智能家電、醫(yī)療設(shè)備、家庭安防控制、車輛監(jiān)控和調(diào)度、有線及無(wú)線數(shù)據(jù)傳輸?shù)群芏囝I(lǐng)域有廣泛的應(yīng)用。特別是嵌入式微處理器與無(wú)線網(wǎng)絡(luò)技術(shù)相結(jié)合構(gòu)成的無(wú)線網(wǎng)絡(luò)測(cè)控系統(tǒng),在測(cè)控領(lǐng)域應(yīng)用甚為突出。

為了滿足數(shù)字化和智能化要求,在這種以微處理器為核心的智能化測(cè)控系統(tǒng)中,處理器與外圍電路功能模塊、器件及傳感器之間的通信大多采用簡(jiǎn)潔高效的串口通信方式,因?yàn)榇型ㄐ旁O(shè)備具有控制靈活、接口簡(jiǎn)單、占用系統(tǒng)資源少等優(yōu)點(diǎn)。然而大部分微處理器僅提供一個(gè)或少量幾個(gè)串口,這樣勢(shì)必會(huì)導(dǎo)致微處理器的串口不夠用,難以滿足與多個(gè)外部設(shè)備進(jìn)行串口通信的需求。為了便于設(shè)備的接入,必須進(jìn)行UART口擴(kuò)展,獲得多個(gè)UART口,與多個(gè)外設(shè)通信,以解決嵌入式微處理器在串行通信系統(tǒng)中的串口局限問(wèn)題。

筆者設(shè)計(jì)了一款無(wú)線信息采集系統(tǒng),該系統(tǒng)包括14個(gè)不同功能的無(wú)線通信模塊,主控器采用嵌入式微處理器,處理器與各模塊之間采用UART口通信。為了保證數(shù)據(jù)采集的實(shí)時(shí)性,提高采集效率,需并行采集各種通信模塊的數(shù)據(jù),而普通微處理器僅有為數(shù)不多的幾個(gè)UART口,要想實(shí)現(xiàn)實(shí)時(shí)、高效、并行地采集多模塊的數(shù)據(jù),必須進(jìn)行串口擴(kuò)展。

1 嵌入式系統(tǒng)實(shí)現(xiàn)多串口的方法

總的來(lái)說(shuō),要在一個(gè)嵌入式系統(tǒng)中實(shí)現(xiàn)多串口,主要有軟件模擬法、分時(shí)復(fù)用法、并口擴(kuò)串口法、串口擴(kuò)串口法等幾種方法。各種方法各有優(yōu)缺點(diǎn),如表1所列,適合于不同的場(chǎng)合。

軟件模擬法是根據(jù)串行通信的收發(fā)格式,利用定時(shí)器和主處理器的I/O口來(lái)模擬串行通信的時(shí)序,達(dá)到擴(kuò)展串口的目的。軟件模擬價(jià)格低廉,無(wú)需外圍電路,使用方便,但并不是所有的微處理器都適合軟件模擬串口;軟件模擬串口需要占用較多的CPU資源,用掉定時(shí)器資源,效率低,很難模擬4個(gè)以上的串口,要占用大量時(shí)間,任務(wù)較多的系統(tǒng)不宜采用。

表1 各種串口擴(kuò)展方法比較

在電路設(shè)計(jì)的過(guò)程中,如果系統(tǒng)實(shí)時(shí)性不高,各串口設(shè)備不必同時(shí)工作,只是分時(shí)地工作,可以根據(jù)系統(tǒng)需要,采用模擬開(kāi)關(guān),將1個(gè)串口擴(kuò)展為多個(gè)串口,這是分時(shí)復(fù)用法。這種多路模擬開(kāi)關(guān)很多,如TI的CD4067和CD4097芯片[1],可分時(shí)擴(kuò)展8個(gè)和16個(gè)串口。分時(shí)復(fù)用法成本低,占用系統(tǒng)資源少,易于控制,但只適用于數(shù)據(jù)量不大,主處理器與各從設(shè)備之間不同時(shí)收發(fā)數(shù)據(jù)情況,各串口設(shè)備不能實(shí)時(shí)與主CPU通信,只能分時(shí)通信,不適合實(shí)時(shí)性要求高的系統(tǒng)。

并口擴(kuò)串口法是利用主機(jī)的并口,通過(guò)增加外圍擴(kuò)展芯片,擴(kuò)展出多個(gè)串口。這種芯片有Intel的8251和TI的TL16C55x系列。TL16C55x是多通道異步收發(fā)器集成芯片,最多可擴(kuò)展4個(gè)UART口[2]。該方法功能比較強(qiáng)大,通信速度高,用于通信實(shí)時(shí)性要求較高的系統(tǒng),用來(lái)實(shí)現(xiàn)系統(tǒng)的高效多串口通信,增強(qiáng)系統(tǒng)的通信接口控制能力;但控制復(fù)雜,價(jià)格較高。

串口擴(kuò)串口法采用外圍專用芯片,利用主機(jī)的串行接口擴(kuò)展多個(gè)串口,各串口可同時(shí)使用。專用芯片有GM8123/25、SP2338和SP2538等。GM8123/25系列串口擴(kuò)展芯片可以全硬件實(shí)現(xiàn)串口擴(kuò)展,將一個(gè)全雙工的標(biāo)準(zhǔn)串口擴(kuò)展成5個(gè)標(biāo)準(zhǔn)串口,單通道模式下,最高波特率支持20 Mbps,多通道模式下,子串口最高波特率為38 400 bps[3]。該方法外部控制線少、應(yīng)用靈活、通用性強(qiáng)、性能穩(wěn)定,但控制復(fù)雜,價(jià)格也較高。

另外,還可借助微處理器的SPI總線接口,采用專用擴(kuò)展芯片,實(shí)現(xiàn)高速SPI口轉(zhuǎn)多個(gè)UART口的方法。這種芯片如NXP公司的SC16IS752,可擴(kuò)展出速率到達(dá)5 Mbps雙通道高性能UART[4],周立功公司的ZLG9518S,可將SPI口轉(zhuǎn)換為8路UART口,最高可達(dá)115 200 bps。SPI擴(kuò)展可得到的UART口數(shù)量多,速度快,整個(gè)設(shè)計(jì)簡(jiǎn)捷、具有通用性。

2 “雙核”多串口實(shí)現(xiàn)技術(shù)

無(wú)線信息采集系統(tǒng)所需連接的無(wú)線模塊有14個(gè)之多,為了提高采集效率,并行采集各模塊數(shù)據(jù),現(xiàn)在還沒(méi)有一款微處理器自帶這么多的UART口,要想實(shí)現(xiàn)多模塊并行采集,必須進(jìn)行串口擴(kuò)展。

首先為了提高采集效率,盡量選取自帶UART口比較多的微處理器,目前大多數(shù)微處理器自帶2~4個(gè)UART口,最多的是TI的TIVA C系列MCU,有8個(gè)。本文基于TM4C1233H6PZ微處理器實(shí)現(xiàn)系統(tǒng)所需的多串口通信。TIVA C系列微處理器,具有ARM Cortex-M4核,適合于需要良好的控制和連接性能的產(chǎn)品,如低功耗手持智能設(shè)備、游戲裝置、家庭和商用監(jiān)控、醫(yī)療儀器、測(cè)試設(shè)備、消防和安全等。TM4C1233H6PZ工作頻率為80 MHz,具有4個(gè)SPI口,支持USB 2.0設(shè)備,包括8個(gè)可完全編程的16C550型UART口,每個(gè)UART口的Rx和Tx都可單獨(dú)產(chǎn)生中斷,波特率可單獨(dú)設(shè)置,最高達(dá)到5 Mbps[5]。

圖1 系統(tǒng)原理框圖

為了實(shí)現(xiàn)設(shè)備所需要的14個(gè)UART口,還需要擴(kuò)展6個(gè)。根據(jù)并行采集數(shù)據(jù)的需求,必須用外圍擴(kuò)展芯片進(jìn)行擴(kuò)展,由于TM4C1233 H6PZ具有支持主模式和從模式的SPI接口,并具有8個(gè)UART口;再采用一個(gè)TM4C1233 H6PZ作為協(xié)處理器,通過(guò)SPI接口與主處理器通信,還能再擴(kuò)展出8個(gè)UART口。這樣整個(gè)系統(tǒng)共有16個(gè)UART口并行工作,整個(gè)系統(tǒng)組成如圖1所示。主處理器帶8個(gè)UART口,Uart0~7,其中1個(gè)串口Uart0用于調(diào)試Debug口,其他7個(gè)串口可用于并行數(shù)據(jù)采集;協(xié)處理器也有8個(gè)UART口,Uart0-1~Uart7-1,其中Uart0-1用于調(diào)試Debug口,其他7個(gè)串口用于并行數(shù)據(jù)采集;主處理器和協(xié)處理器之間通過(guò)SPI接口連接,以SPI接口作為主—協(xié)處理器通信的橋梁。當(dāng)協(xié)處理器上某個(gè)UART口有數(shù)據(jù)需要接收時(shí),協(xié)處理器產(chǎn)生串口中斷并響應(yīng)中斷,協(xié)處理器收到數(shù)據(jù)后,通過(guò)SPI口發(fā)給主處理器,并在主處理器產(chǎn)生一個(gè)SPI中斷,主處理器響應(yīng)中斷并接收數(shù)據(jù),這樣實(shí)現(xiàn)了擴(kuò)展出的UART口的數(shù)據(jù)接收;同理可以實(shí)現(xiàn)擴(kuò)展UART口的數(shù)據(jù)發(fā)送。

3 詳細(xì)設(shè)計(jì)和實(shí)驗(yàn)

串行外圍設(shè)備接口(Serial Peripheral Interface,SPI)是Motorola公司推出的一種同步串行接口,其硬件功能強(qiáng)大。實(shí)現(xiàn)SPI通信需要3~4根線:同步時(shí)鐘(SCLK)線、片選控制(CS)線,主輸出/從輸入(MOSI)線和主輸入/從輸出(MISO)線。具體發(fā)送和接收數(shù)據(jù)的時(shí)序[5]如圖2所示。

圖2 TI SPI收發(fā)數(shù)據(jù)時(shí)序圖

根據(jù)設(shè)備實(shí)際使用的情況,采用主處理器和協(xié)處理器的“雙核”結(jié)構(gòu),實(shí)現(xiàn)了16個(gè)串口設(shè)備的連接,電路原理圖如圖3所示。

圖3 電路原理圖

展示了“雙核”結(jié)構(gòu)中兩個(gè)處理器之間,以及各模塊之間的物理連接關(guān)系,兩個(gè)處理器之間通過(guò)SPI接口連接。TM4C1233H6PZ具有SPI接口,且支持主模式和從模式,主處理器的SPI口設(shè)置為SPI主模式,協(xié)處理器的SPI接口設(shè)置為從模式。

依據(jù)硬件連接關(guān)系、SPI工作模式及工作時(shí)序、主處理器和協(xié)處理器的工作模式等,進(jìn)行軟件設(shè)計(jì)。軟件主要包括向各UART口發(fā)送數(shù)據(jù)和從各UART口接收數(shù)據(jù),具體的軟件流程如圖4和圖5所示。

主處理器和協(xié)處理器協(xié)調(diào)工作完成數(shù)據(jù)的發(fā)送和接收。發(fā)送數(shù)據(jù)分往主處理器UART口發(fā)送和往協(xié)處理器UART口發(fā)送,往主處理器UART口發(fā)送時(shí),可直接發(fā)送;往協(xié)處理器UART口發(fā)送時(shí),需要把數(shù)據(jù)和協(xié)處理器UART口編號(hào)打包,再?gòu)腟PI口發(fā)送給協(xié)處理器;協(xié)處理器接收到SPI中斷后,解析SPI口收到的數(shù)據(jù),并把數(shù)據(jù)發(fā)送給相應(yīng)的UART口。接收數(shù)據(jù)也分從主處理器UART口接收數(shù)據(jù)和從協(xié)處理器UART口接收數(shù)據(jù),從主處理器UART口接收數(shù)據(jù)時(shí),直接產(chǎn)生主處理器UART中斷,主處理器直接接收數(shù)據(jù)并處理數(shù)據(jù);從協(xié)處理器UART口接收數(shù)據(jù)時(shí),協(xié)處理器先產(chǎn)生UART中斷,并接收該UART口發(fā)來(lái)的數(shù)據(jù),協(xié)處理器把收到的數(shù)據(jù)和UART編號(hào)打包,從SPI口發(fā)送給主處理器;主處理器響應(yīng)SPI中斷,接收數(shù)據(jù)并解析SPI口收到的數(shù)據(jù),解析成UART編號(hào)和數(shù)據(jù),并處理數(shù)據(jù)。

在無(wú)線信息采集系統(tǒng)中,對(duì)擴(kuò)展16個(gè)UART口的可行性和實(shí)用性進(jìn)行測(cè)試和驗(yàn)證,經(jīng)過(guò)對(duì)實(shí)際設(shè)備的安裝調(diào)試,各通信模塊能穩(wěn)定、高效地與主CPU和協(xié)CPU進(jìn)行通信,通信良好,抗干擾能力強(qiáng)。各UART口波特率為115 200 bps,全部無(wú)線數(shù)據(jù)在5 s之內(nèi)完成采集。每個(gè)串口設(shè)備的發(fā)送要求都能被及時(shí)地響應(yīng),即使所有串口設(shè)備同時(shí)有發(fā)送要求,數(shù)據(jù)也不丟失,實(shí)現(xiàn)了主處理器和各外設(shè)實(shí)時(shí)通信,取得實(shí)用化和產(chǎn)品化的滿意效果。

圖4 向UART口發(fā)送數(shù)據(jù)

圖5 從UART口接收數(shù)據(jù)

結(jié) 語(yǔ)

UART口通信是微處理器常用的通信方式,基于TM4C1233H6PZ的“雙核”系統(tǒng)實(shí)現(xiàn)了16個(gè)UART口與外設(shè)可靠、穩(wěn)定地通信,完成了無(wú)線信息采集系統(tǒng)的實(shí)用化和產(chǎn)品化。該方法適用于數(shù)據(jù)量較大、串口需求較多的系統(tǒng),抗干擾能力高,開(kāi)發(fā)人員只需熟悉一種微處理器即可,縮短了產(chǎn)品的開(kāi)發(fā)周期,解決了微處理器在串行通信應(yīng)用系統(tǒng)中的串口局限問(wèn)題,為微處理器在智能測(cè)控系統(tǒng)中的應(yīng)用提供了比較重要的參考。

[1]劉小芳,曾黃麟,呂炳朝.單片機(jī)的多串口擴(kuò)展技術(shù)的設(shè)計(jì)[J].計(jì)算機(jī)測(cè)量與控制,2004,12(11)::1088-1090.

[2]朱學(xué)明,丁萬(wàn)山.一種基于TL16C554A的DSP多串口擴(kuò)展方法[J].微處理機(jī),2006,12(6):24-27.

[3]錢(qián)震宇、肖昌漢.基于GM8125的單片機(jī)多串口通信電路的設(shè)計(jì)與實(shí)現(xiàn)[J].船電技術(shù),2011,11(31):22-24.

[4]解書(shū)鋼,馬維華,吳術(shù).S P I總線的U A R T擴(kuò)展方法[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,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)

猜你喜歡
協(xié)處理器接收數(shù)據(jù)串口
沖激噪聲背景下基于幅度預(yù)處理的測(cè)向新方法*
基于HBase分布式數(shù)據(jù)庫(kù)海量數(shù)據(jù)序列存儲(chǔ)優(yōu)化
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
基于HBase分布式數(shù)據(jù)庫(kù)海量數(shù)據(jù)序列存儲(chǔ)優(yōu)化
低復(fù)雜度多輸入多輸出雷達(dá)目標(biāo)角度估計(jì)方法
HBase分布式二級(jí)索引通用方案研究
單片機(jī)模擬串口數(shù)據(jù)接收程序的實(shí)現(xiàn)及優(yōu)化
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
娄烦县| 樟树市| 惠水县| 个旧市| 九龙县| 汤阴县| 平罗县| 南雄市| 平泉县| 连江县| 永顺县| 安康市| 视频| 运城市| 监利县| 仁怀市| 红原县| 丹巴县| 乐业县| 云梦县| 天台县| 玉龙| 东阳市| 新巴尔虎左旗| 当阳市| 含山县| 金塔县| 陆河县| 彰化县| 广昌县| 金湖县| 西林县| 成安县| 砀山县| 陆丰市| 东阳市| 沈丘县| 修文县| 昭觉县| 电白县| 博爱县|