通過(guò)用UART與若干器件進(jìn)行通訊的電路設(shè)計(jì)
在各種外圍的設(shè)備中,使用了通用的異步接收和發(fā)送(UART)接口。例如,一個(gè)基于微控制的系統(tǒng)有四個(gè)這樣的外圍設(shè)備。理想狀態(tài)是,在低成本嵌入式應(yīng)用中,您希望將若干個(gè)外圍設(shè)備與單個(gè)的UART進(jìn)行連接,然而由于UARTs中沒(méi)有芯片選擇信號(hào),這樣的工作變得復(fù)雜起來(lái) 。
這是一種常見(jiàn)的設(shè)計(jì)問(wèn)題,目前有一些傳統(tǒng)的方法來(lái)解決。最常見(jiàn)的方法是使用一種具有您需要的硬件UART模塊的單片機(jī)。您很難找到一個(gè)緊湊形式的經(jīng)濟(jì)型MCU有四個(gè)硬件UART模塊,因此,即使所有的UARTs不能同時(shí)使用,您也可以使用一個(gè)高引腳計(jì)數(shù)的更高性能的單片機(jī)。但是在實(shí)際應(yīng)用中使用一個(gè)大單片機(jī)可能沒(méi)有必要,而且可能也不能更有效地解決成本問(wèn)題。
如果在應(yīng)用中所有的UARTs都不能同時(shí)使用,從一個(gè)硬件UART模塊到四個(gè)UART嵌入式外圍設(shè)備的計(jì)時(shí)多路傳輸可以通過(guò)一個(gè)硬件多路器和幾個(gè)單片機(jī)I/O線(xiàn)(圖1)來(lái)完成 。在這種情況下,控制程序?qū)⑼ㄟ^(guò)控制多路器來(lái)將UART硬件對(duì)應(yīng)所需的外圍設(shè)備。
基于某些MCU提供的靈活的I/O引腳映射特性,還有另一改進(jìn)的方法來(lái)解決這個(gè)問(wèn)題。不同于傳統(tǒng)的固定的I/O插腳引線(xiàn),這些MCUs的特性是有一組輸入/輸出引腳,不同的引腳可以對(duì)應(yīng)不同的外圍設(shè)備的功能。這一特性在微芯片MCUs上可用于外圍引腳選擇器(PPS),讓您根據(jù)您的每一個(gè)選擇來(lái)確定不同MCU的插腳引線(xiàn)。在這些MCUs中,執(zhí)行某個(gè)序列碼來(lái)解鎖配置寄存器后,控制程序就動(dòng)態(tài)地改變I/O插腳引線(xiàn)。
為了在這些設(shè)備類(lèi)型上得到4個(gè)或更多的UARTs,您要從將4個(gè)基于UART的外圍設(shè)備與MCU的重定位引腳相連開(kāi)始。在這個(gè)例子中,我們使用了PIC24FJ64GA004 16位MCU(圖2 )。
基于應(yīng)用的需要,控制程序會(huì)動(dòng)態(tài)地將硬件UART與這些4引腳裝置相連。例如,當(dāng)應(yīng)用程序必須與器件1通訊時(shí),上述程序會(huì)將硬件UART與RP1和RP2引腳相連。同樣,當(dāng)MCU要與器件2通訊時(shí)也是同一過(guò)程。
如果所有的UART通道都在一個(gè)主/從配置-外圍設(shè)備中運(yùn)行,上述方法可以很好地工作。其中外圍設(shè)備只要發(fā)送MCU作為主配置所需的數(shù)據(jù)。所以,假如將主從設(shè)備兩者相結(jié)合系統(tǒng)需要些什么?由于它的多功能性,在這種情況下靈活的I/O引腳-映射方式仍然可行。舉例來(lái)說(shuō),該系統(tǒng)可能需要與外圍設(shè)備異步通訊。在這一方案中,您可以利用許多這些MCU也有兩個(gè)硬件UART模塊這一情況。簡(jiǎn)單地指定一個(gè)硬件UART模塊作為異步通訊通道和時(shí)間多路的其他UART模塊來(lái)形成若干個(gè)硬件UART模塊。
在另一種方案中,您的應(yīng)用可能需要帶有若干從通道的多異步通道。如果有用的話(huà),利用帶有數(shù)據(jù)終端準(zhǔn)備(DTR)/明確發(fā)送(CTS)信號(hào)的MCU的異步通道的通訊能力。您可以使用DTR/CTS信號(hào)在保持異步通道的同時(shí)使得UART與最初的引腳對(duì)應(yīng)。
當(dāng)外圍設(shè)備沒(méi)有通訊信號(hào)時(shí),可使用另一工作區(qū)。使用邊緣干擾或用靈活的I/O引腳映射功能將一個(gè)輸入捕獲信號(hào)導(dǎo)入空閑的UART接收引腳。如果一個(gè)裝置從一個(gè)異步數(shù)據(jù)傳輸器開(kāi)始,控制程序會(huì)發(fā)出一個(gè)干擾,并立即將硬件UART模塊轉(zhuǎn)到合適的引腳來(lái)接收這個(gè)數(shù)據(jù)。
如果您的應(yīng)用需要所有的四UART通道變成異步通道,那么上述的解決方案可能無(wú)法正常工作,您可能仍需要一個(gè)有四硬件UARTs的MCU。但對(duì)于大多數(shù)系統(tǒng),情況可能并不如此。因此,這里提到的解決方案將讓您使用一個(gè)單一的UART與若干器件進(jìn)行通訊。
評(píng)論