通過用UART與若干器件進行通訊的電路設(shè)計
在各種外圍的設(shè)備中,使用了通用的異步接收和發(fā)送(UART)接口。例如,一個基于微控制的系統(tǒng)有四個這樣的外圍設(shè)備。理想狀態(tài)是,在低成本嵌入式應(yīng)用中,您希望將若干個外圍設(shè)備與單個的UART進行連接,然而由于UARTs中沒有芯片選擇信號,這樣的工作變得復(fù)雜起來 。
這是一種常見的設(shè)計問題,目前有一些傳統(tǒng)的方法來解決。最常見的方法是使用一種具有您需要的硬件UART模塊的單片機。您很難找到一個緊湊形式的經(jīng)濟型MCU有四個硬件UART模塊,因此,即使所有的UARTs不能同時使用,您也可以使用一個高引腳計數(shù)的更高性能的單片機。但是在實際應(yīng)用中使用一個大單片機可能沒有必要,而且可能也不能更有效地解決成本問題。
如果在應(yīng)用中所有的UARTs都不能同時使用,從一個硬件UART模塊到四個UART嵌入式外圍設(shè)備的計時多路傳輸可以通過一個硬件多路器和幾個單片機I/O線(圖1)來完成 。在這種情況下,控制程序?qū)⑼ㄟ^控制多路器來將UART硬件對應(yīng)所需的外圍設(shè)備。
基于某些MCU提供的靈活的I/O引腳映射特性,還有另一改進的方法來解決這個問題。不同于傳統(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 )。
基于應(yīng)用的需要,控制程序會動態(tài)地將硬件UART與這些4引腳裝置相連。例如,當(dāng)應(yīng)用程序必須與器件1通訊時,上述程序會將硬件UART與RP1和RP2引腳相連。同樣,當(dāng)MCU要與器件2通訊時也是同一過程。
如果所有的UART通道都在一個主/從配置-外圍設(shè)備中運行,上述方法可以很好地工作。其中外圍設(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與若干器件進行通訊。
評論