在本節(jié)中,我們將了解MCU如何使用串行通信與外部外圍設(shè)備進(jìn)行通信。MCU充當(dāng)嵌入式設(shè)備的“大腦”,而外圍設(shè)備則充當(dāng)“手和腳”。這意味著MCU必須與這些單元中的每一個(gè)進(jìn)行通信。例如,考慮我們?nèi)绾芜B接傳感器。MCU的內(nèi)置GPIO(通用輸入/輸出)端口,在本系列的第一部分中解釋過(guò),可用于將8條信號(hào)線與傳感器連接,使傳感器能夠一次發(fā)送8位數(shù)據(jù)——最多使用8個(gè)GPIO數(shù)據(jù)引腳。這種類(lèi)型的傳輸稱(chēng)為并行傳輸,因?yàn)橐粋€(gè)完整字節(jié)的數(shù)據(jù)一次沿并行線路傳輸。(參見(jiàn)圖1,左)但使用8條線連接到單個(gè)傳感器通常是一種資源浪費(fèi)。
有沒(méi)有辦法用更少的行來(lái)完成同樣的事情?
當(dāng)然有。我們可以通過(guò)一條數(shù)據(jù)線一次發(fā)送一個(gè)位。因?yàn)檫@些位現(xiàn)在是串行發(fā)送的,所以我們稱(chēng)之為串行通信。(參見(jiàn)圖1,右側(cè))但是請(qǐng)注意,MCU使用并行通信進(jìn)行其內(nèi)部處理和通信。這意味著MCU還必須處理必要的轉(zhuǎn)換:從傳感器接收到的數(shù)據(jù)的“串行到并行”轉(zhuǎn)換,以及發(fā)送到傳感器的數(shù)據(jù)的“并行到串行”轉(zhuǎn)換。
總結(jié)一下:假設(shè)我們希望發(fā)送單個(gè)文本字符,這需要我們發(fā)送一個(gè)八位字符類(lèi)型的值。如果使用并行傳輸,則每一位需要一根數(shù)據(jù)線。對(duì)于串行并行,我們通過(guò)同一條線路一個(gè)接一個(gè)地發(fā)送8個(gè)數(shù)據(jù)位。
顯然,串行通信需要更少的引腳和電線。在當(dāng)今世界,大多數(shù)MCU到外設(shè)的連接都是串行的。串行模式不僅用于與開(kāi)關(guān)和來(lái)自O(shè)N/OFF傳感器的通信,還用于GPIO輸出軟件生成的電機(jī)驅(qū)動(dòng)信號(hào)、LED閃爍信號(hào)等。
內(nèi)置UART實(shí)現(xiàn)輕松串行通信
根據(jù)不同的電氣特性和不同協(xié)議的要求,串行通信可以通過(guò)多種方式實(shí)現(xiàn)。最簡(jiǎn)單的實(shí)現(xiàn),只需要一根電線——被稱(chēng)為“啟動(dòng)-停止同步通信”。在與無(wú)線LAN模塊和驅(qū)動(dòng)器監(jiān)視器通信時(shí),通常使用此模式。
在起停同步通信中,數(shù)據(jù)以字符單位1發(fā)送。出于控制目的,在每組的開(kāi)頭放置一個(gè)起始位,在結(jié)尾放置一個(gè)停止位。(參見(jiàn)圖2)這消除了通過(guò)使用單獨(dú)的時(shí)鐘信號(hào)線來(lái)控制傳輸時(shí)序的需要,正如其他常見(jiàn)串行模式所要求的那樣,例如I2C(“I平方C”)和SPI(串行并行接口)。為了幫助確保傳輸準(zhǔn)確性,啟動(dòng)/停止數(shù)據(jù)集還可以包括奇偶校驗(yàn)位。啟動(dòng)-停止同步通信由稱(chēng)為“UART”(通用異步接收器/發(fā)送器)的組件處理。
-
mcu
+關(guān)注
關(guān)注
146文章
17316瀏覽量
352267 -
串行通信
+關(guān)注
關(guān)注
4文章
577瀏覽量
35534
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論