0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過利用UART與若干器件進(jìn)行連接解決通信問題

牽手一起夢 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-01-20 17:17 ? 次閱讀

在各種外圍的設(shè)備中,使用了通用的異步接收和發(fā)送(UART接口。例如,一個基于微控制的系統(tǒng)有四個這樣的外圍設(shè)備。理想狀態(tài)是,在低成本嵌入式應(yīng)用中,您希望將若干個外圍設(shè)備與單個的UART進(jìn)行連接,然而由于UARTs中沒有芯片選擇信號,這樣的工作變得復(fù)雜起來 。

這是一種常見的設(shè)計問題,目前有一些傳統(tǒng)的方法來解決。最常見的方法是使用一種具有您需要的硬件UART模塊的單片機(jī)。您很難找到一個緊湊形式的經(jīng)濟(jì)型MCU有四個硬件UART模塊,因此,即使所有的UARTs不能同時使用,您也可以使用一個高引腳計數(shù)的更高性能的單片機(jī)。但是在實(shí)際應(yīng)用中使用一個大單片機(jī)可能沒有必要,而且可能也不能更有效地解決成本問題。

如果在應(yīng)用中所有的UARTs都不能同時使用,從一個硬件UART模塊到四個UART嵌入式外圍設(shè)備的計時多路傳輸可以通過一個硬件多路器和幾個單片機(jī)I/O線(圖1)來完成 。在這種情況下,控制程序?qū)⑼ㄟ^控制多路器來將UART硬件對應(yīng)所需的外圍設(shè)備。

通過利用UART與若干器件進(jìn)行連接解決通信問題

基于某些MCU提供的靈活的I/O引腳映射特性,還有另一改進(jìn)的方法來解決這個問題。不同于傳統(tǒng)的固定的I/O插腳引線,這些MCUs的特性是有一組輸入/輸出引腳,不同的引腳可以對應(yīng)不同的外圍設(shè)備的功能。這一特性在微芯片MCUs上可用于外圍引腳選擇器(PPS),讓您根據(jù)您的每一個選擇來確定不同MCU的插腳引線。在這些MCUs中,執(zhí)行某個序列碼來解鎖配置寄存器后,控制程序就動態(tài)地改變I/O插腳引線。

為了在這些設(shè)備類型上得到4個或更多的UARTs,您要從將4個基于UART的外圍設(shè)備與MCU的重定位引腳相連開始。在這個例子中,我們使用了PIC24FJ64GA004 16位MCU(圖2 )。

通過利用UART與若干器件進(jìn)行連接解決通信問題

基于應(yīng)用的需要,控制程序會動態(tài)地將硬件UART與這些4引腳裝置相連。例如,當(dāng)應(yīng)用程序必須與器件1通訊時,上述程序會將硬件UART與RP1和RP2引腳相連。同樣,當(dāng)MCU要與器件2通訊時也是同一過程。

如果所有的UART通道都在一個主/從配置-外圍設(shè)備中運(yùn)行,上述方法可以很好地工作。其中外圍設(shè)備只要發(fā)送MCU作為主配置所需的數(shù)據(jù)。所以,假如將主從設(shè)備兩者相結(jié)合系統(tǒng)需要些什么?由于它的多功能性,在這種情況下靈活的I/O引腳-映射方式仍然可行。舉例來說,該系統(tǒng)可能需要與外圍設(shè)備異步通訊。在這一方案中,您可以利用許多這些MCU也有兩個硬件UART模塊這一情況。簡單地指定一個硬件UART模塊作為異步通訊通道和時間多路的其他UART模塊來形成若干個硬件UART模塊。

在另一種方案中,您的應(yīng)用可能需要帶有若干從通道的多異步通道。如果有用的話,利用帶有數(shù)據(jù)終端準(zhǔn)備(DTR)/明確發(fā)送(CTS)信號的MCU的異步通道的通訊能力。您可以使用DTR/CTS信號在保持異步通道的同時使得UART與最初的引腳對應(yīng)。

當(dāng)外圍設(shè)備沒有通訊信號時,可使用另一工作區(qū)。使用邊緣干擾或用靈活的I/O引腳映射功能將一個輸入捕獲信號導(dǎo)入空閑的UART接收引腳。如果一個裝置從一個異步數(shù)據(jù)傳輸器開始,控制程序會發(fā)出一個干擾,并立即將硬件UART模塊轉(zhuǎn)到合適的引腳來接收這個數(shù)據(jù)。

如果您的應(yīng)用需要所有的四UART通道變成異步通道,那么上述的解決方案可能無法正常工作,您可能仍需要一個有四硬件UARTs的MCU。但對于大多數(shù)系統(tǒng),情況可能并不如此。因此,這里提到的解決方案將讓您使用一個單一的UART與若干器件進(jìn)行通訊。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17316

    瀏覽量

    352365
  • 嵌入式
    +關(guān)注

    關(guān)注

    5091

    文章

    19176

    瀏覽量

    307104
  • uart
    +關(guān)注

    關(guān)注

    22

    文章

    1243

    瀏覽量

    101679
收藏 人收藏

    評論

    相關(guān)推薦

    ADS7953進(jìn)行編程時,如何與器件通信

    我對 ADS7953(ADS795x 系列器件進(jìn)行編程時遇到問題,如何與器件通信?
    發(fā)表于 11-26 06:03

    通信技術(shù):UART串口通信開源代碼實(shí)操!

    今天我們分享的是關(guān)于UART串口通信示例,歡迎大家探討
    的頭像 發(fā)表于 11-05 11:56 ?3158次閱讀
    <b class='flag-5'>通信</b>技術(shù):<b class='flag-5'>UART</b>串口<b class='flag-5'>通信</b>開源代碼實(shí)操!

    UART通信協(xié)議介紹和數(shù)據(jù)傳輸工作流程

    UART是一種通用串行數(shù)據(jù)總線,用于異步通信。該總線雙向通信,可實(shí)現(xiàn)全雙工傳輸和接收。UART通常用來實(shí)現(xiàn)與PC之間數(shù)據(jù)通信,命令和控制信息
    的頭像 發(fā)表于 10-24 14:20 ?916次閱讀
    <b class='flag-5'>UART</b><b class='flag-5'>通信</b>協(xié)議介紹和數(shù)據(jù)傳輸工作流程

    簡單認(rèn)識UART通信協(xié)議

    UART(Universal Asynchronous Receiver/Transmitter,通用異步收發(fā)傳輸器)通信協(xié)議是一種常見的串行通信協(xié)議,廣泛應(yīng)用于計算機(jī)、嵌入式系統(tǒng)、傳感器、無線
    的頭像 發(fā)表于 07-25 18:07 ?1543次閱讀

    如何使用SPI或UART連接兩個ESP模塊?

    /metalphreak/esp8266_spi_driver. 但是誰能建議我,我如何使用SPI與兩個ESP模塊進(jìn)行通信。 我怎樣才能將一個ESP設(shè)為主服務(wù)器,另一個ESP作為從服務(wù)器,這樣我就可以通過SPI
    發(fā)表于 07-19 16:08

    主機(jī)MCU和ESP12-E之間是否可以使用硬件流控和AT命令通過UART進(jìn)行通信?

    主機(jī)MCU和ESP12-E之間是否可以使用硬件流控和AT命令通過UART進(jìn)行通信? 如果是這樣,您是否有一些用于GPIO RTS/CTS連接
    發(fā)表于 07-16 07:01

    通過UART0連接到esp8266與服務(wù)器進(jìn)行通信,報UART Rx溢出和消息RX OVF錯誤怎么解決?

    我們通過調(diào)制解調(diào)器通過 UART0 連接到 esp8266 與服務(wù)器進(jìn)行通信。當(dāng)我們的服務(wù)器發(fā)送
    發(fā)表于 07-11 08:05

    如何為UART通信配置TC375?

    我是 AURIX 的初學(xué)者,想學(xué)習(xí)如何配置 TC375 以進(jìn)行 UART 通信。 但使用 ASCLIN 對我來說似乎很難理解。 還有其他 UART
    發(fā)表于 05-31 08:06

    使用PSOC UART與Nextion HMI進(jìn)行通信,PSOC UART發(fā)送字符串不起作用的原因?

    我在 PSOC creator 3.3 下使用 PSOC(型號 CY8C5888LTI)、 我正在嘗試使用 PSOC UART 與我的 Nextion HMI 進(jìn)行通信。 我成功地
    發(fā)表于 05-30 07:19

    電腦無法與bldc電機(jī)進(jìn)行uart通信怎么解決?

    現(xiàn)在我需要讓 UART 將電機(jī)的參考轉(zhuǎn)速和電壓數(shù)據(jù)傳輸?shù)轿业慕K端,我已經(jīng)嘗試了很多方法,但數(shù)據(jù)無法傳輸,請你們幫助我實(shí)現(xiàn) UART 通信。
    發(fā)表于 05-28 07:35

    簡單認(rèn)識UART串行通信協(xié)議

    的數(shù)據(jù)通信,特別是在嵌入式系統(tǒng)、計算機(jī)外設(shè)以及微控制器等場景中。本文將對UART串行通信協(xié)議進(jìn)行詳細(xì)的介紹,包括其基本原理、工作方式、參數(shù)設(shè)置、錯誤檢測與糾正以及應(yīng)用實(shí)例等方面。
    的頭像 發(fā)表于 05-27 16:09 ?2231次閱讀

    使用tc377進(jìn)行uart通信,數(shù)據(jù)未通過UART發(fā)送的原因?

    我使用 tc377 進(jìn)行 uart 通信,我必須使用定時器(Gpt12)從 tx 發(fā)送數(shù)據(jù)而不中斷 ,當(dāng)我使用時,數(shù)據(jù)存儲在 Tx 緩沖區(qū),但沒有傳輸?shù)?Rx。 這是定時器函數(shù) void
    發(fā)表于 05-27 07:15

    UART串口通信協(xié)議是什么?

    ,廣泛應(yīng)用于嵌入式領(lǐng)域。 在UART串口通信協(xié)議中,數(shù)據(jù)以字節(jié)的形式進(jìn)行傳輸。發(fā)送和接收端的通信流程如下: 1、通信波特率設(shè)置:發(fā)送端和接收
    的頭像 發(fā)表于 03-19 17:26 ?1513次閱讀

    淺談UART通信的異步通信機(jī)制

    波特率表示每秒鐘傳送的碼元符號的個數(shù),它是對符號傳輸速率的一種度量。在UART通信中,波特率用于描述通信速度,其單位是bps(每秒鐘傳輸?shù)腷it的數(shù)量)。
    發(fā)表于 02-19 16:19 ?957次閱讀
    淺談<b class='flag-5'>UART</b><b class='flag-5'>通信</b>的異步<b class='flag-5'>通信</b>機(jī)制

    CAPSENSE Tuner無法通過UART和外部UART-USB橋接器進(jìn)行連接怎么解決?

    UART接口(通過hterm測試)。 現(xiàn)在,我想使用 CAPSENSE Tuner 工具來調(diào)整我的測量參數(shù)。 我已經(jīng)設(shè)置了與調(diào)諧器工具進(jìn)行 UART
    發(fā)表于 01-31 08:24