在各種外圍的設備中,使用了通用的異步接收和發送(UART)接口。例如,一個基于微控制的系統有四個這樣的外圍設備。理想狀態是,在低成本嵌入式應用中,您希望將若干個外圍設備與單個的UART進行連接,然而由于UARTs中沒有芯片選擇信號,這樣的工作變得復雜起來 。
這是一種常見的設計問題,目前有一些傳統的方法來解決。最常見的方法是使用一種具有您需要的硬件UART模塊的單片機。您很難找到一個緊湊形式的經濟型MCU有四個硬件UART模塊,因此,即使所有的UARTs不能同時使用,您也可以使用一個高引腳計數的更高性能的單片機。但是在實際應用中使用一個大單片機可能沒有必要,而且可能也不能更有效地解決成本問題。
如果在應用中所有的UARTs都不能同時使用,從一個硬件UART模塊到四個UART嵌入式外圍設備的計時多路傳輸可以通過一個硬件多路器和幾個單片機I/O線(圖1)來完成 。在這種情況下,控制程序將通過控制多路器來將UART硬件對應所需的外圍設備。
基于某些MCU提供的靈活的I/O引腳映射特性,還有另一改進的方法來解決這個問題。不同于傳統的固定的I/O插腳引線,這些MCUs的特性是有一組輸入/輸出引腳,不同的引腳可以對應不同的外圍設備的功能。這一特性在微芯片MCUs上可用于外圍引腳選擇器(PPS),讓您根據您的每一個選擇來確定不同MCU的插腳引線。在這些MCUs中,執行某個序列碼來解鎖配置寄存器后,控制程序就動態地改變I/O插腳引線。
為了在這些設備類型上得到4個或更多的UARTs,您要從將4個基于UART的外圍設備與MCU的重定位引腳相連開始。在這個例子中,我們使用了PIC24FJ64GA004 16位MCU(圖2 )。
基于應用的需要,控制程序會動態地將硬件UART與這些4引腳裝置相連。例如,當應用程序必須與器件1通訊時,上述程序會將硬件UART與RP1和RP2引腳相連。同樣,當MCU要與器件2通訊時也是同一過程。
如果所有的UART通道都在一個主/從配置-外圍設備中運行,上述方法可以很好地工作。其中外圍設備只要發送MCU作為主配置所需的數據。所以,假如將主從設備兩者相結合系統需要些什么?由于它的多功能性,在這種情況下靈活的I/O引腳-映射方式仍然可行。舉例來說,該系統可能需要與外圍設備異步通訊。在這一方案中,您可以利用許多這些MCU也有兩個硬件UART模塊這一情況。簡單地指定一個硬件UART模塊作為異步通訊通道和時間多路的其他UART模塊來形成若干個硬件UART模塊。
在另一種方案中,您的應用可能需要帶有若干從通道的多異步通道。如果有用的話,利用帶有數據終端準備(DTR)/明確發送(CTS)信號的MCU的異步通道的通訊能力。您可以使用DTR/CTS信號在保持異步通道的同時使得UART與最初的引腳對應。
當外圍設備沒有通訊信號時,可使用另一工作區。使用邊緣干擾或用靈活的I/O引腳映射功能將一個輸入捕獲信號導入空閑的UART接收引腳。如果一個裝置從一個異步數據傳輸器開始,控制程序會發出一個干擾,并立即將硬件UART模塊轉到合適的引腳來接收這個數據。
如果您的應用需要所有的四UART通道變成異步通道,那么上述的解決方案可能無法正常工作,您可能仍需要一個有四硬件UARTs的MCU。但對于大多數系統,情況可能并不如此。因此,這里提到的解決方案將讓您使用一個單一的UART與若干器件進行通訊。
責任編輯:gt
-
mcu
+關注
關注
146文章
17171瀏覽量
351424 -
嵌入式
+關注
關注
5085文章
19138瀏覽量
305682 -
uart
+關注
關注
22文章
1237瀏覽量
101445
發布評論請先 登錄
相關推薦
評論