專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力
提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)
在本節(jié)中,我們將了解MCU如何使用串行通信與外部外圍設(shè)備進行通信。MCU充當(dāng)嵌入式設(shè)備的“大腦”,而外圍設(shè)備則充當(dāng)“手和腳”。這意味著MCU必須與這些單元中的每一個進行通信。例如,考慮我們?nèi)绾芜B接傳感器。MCU的內(nèi)置GPIO(通用輸入/輸出)端口,在本系列的第一部分中解釋過,可用于將8條信號線與傳感器連接,使傳感器能夠一次發(fā)送8位數(shù)據(jù)——最多使用8個GPIO數(shù)據(jù)引腳.這種類型的傳輸稱為并行傳輸,因為一個完整字節(jié)的數(shù)據(jù)一次沿并行線路傳輸。(參見圖1,左)但使用8條線連接到單個傳感器通常是一種資源浪費。
有沒有辦法用更少的行來完成同樣的事情?
當(dāng)然有。我們可以通過一條數(shù)據(jù)線一次發(fā)送一個位。因為這些位現(xiàn)在是串行發(fā)送的,所以我們稱之為串行通信。(參見圖1,右側(cè))但是請注意,MCU使用并行通信進行其內(nèi)部處理和通信。這意味著MCU還必須處理必要的轉(zhuǎn)換:從傳感器接收到的數(shù)據(jù)的“串行到并行”轉(zhuǎn)換,以及發(fā)送到傳感器的數(shù)據(jù)的“并行到串行”轉(zhuǎn)換。
總結(jié)一下:假設(shè)我們希望發(fā)送單個文本字符,這需要我們發(fā)送一個八位字符類型的值。如果使用并行傳輸,則每一位需要一根數(shù)據(jù)線。對于串行并行,我們通過同一條線路一個接一個地發(fā)送8個數(shù)據(jù)位。
顯然,串行通信需要更少的引腳和電線。在當(dāng)今世界,大多數(shù)MCU到外設(shè)的連接都是串行的。串行模式不僅用于與開關(guān)和來自O(shè)N/OFF傳感器的通信,還用于GPIO輸出軟件生成的電機驅(qū)動信號、LED閃爍信號等。
內(nèi)置UART實現(xiàn)輕松串行通信
根據(jù)不同的電氣特性和不同協(xié)議的要求,串行通信可以通過多種方式實現(xiàn)。最簡單的實現(xiàn),只需要一根電線——被稱為“啟動-停止同步通信”。在與無線LAN模塊和驅(qū)動器監(jiān)視器通信時,通常使用此模式。
在起停同步通信中,數(shù)據(jù)以字符單位1發(fā)送。出于控制目的,在每組的開頭放置一個起始位,在結(jié)尾放置一個停止位。(參見圖2)這消除了通過使用單獨的時鐘信號線來控制傳輸時序的需要,正如其他常見串行模式所要求的那樣,例如I2C(“I平方C”)和SPI(串行并行接口)。為了幫助確保傳輸準(zhǔn)確性,啟動/停止數(shù)據(jù)集還可以包括奇偶校驗位。啟動-停止同步通信由稱為“UART”(通用異步接收器/發(fā)送器)的組件處理。