在深入研究串行通信協(xié)議的技術(shù)之前,讓我們先討論一下通信。我們已經(jīng)知道,交流涉及兩個或更多個人之間的信息交換。交流可以通過書面文件,口語,錄音帶,視頻課程等多種方式進(jìn)行。但是,“通信”在嵌入式系統(tǒng)中是什么意思?答案很簡單!它只是兩個微控制器(嵌入式設(shè)備)之間以位形式進(jìn)行的數(shù)據(jù)交換。嵌入式系統(tǒng)中數(shù)據(jù)(位)的交換受一組稱為通信協(xié)議的規(guī)則支配。
在數(shù)字通信中,有兩種類型的數(shù)據(jù)傳輸:
● 串行通訊
● 并行通訊
為簡單起見,我們將重點放在串行通信協(xié)議的基礎(chǔ)上。
在串行通信中,數(shù)據(jù)位在數(shù)據(jù)總線或通信通道上一次依次傳輸。為了正確理解這一點,讓我們考慮這種情況:
想象一下,您正在用弓箭射擊目標(biāo)。箭如何從弓上飛出?一次一個,對吧?串行通訊就是這種情況。數(shù)據(jù)位一次從一個嵌入式設(shè)備傳輸?shù)搅硪慌_嵌入式設(shè)備。
現(xiàn)在,我們已經(jīng)介紹了嵌入式系統(tǒng)中串行通信的基礎(chǔ)知識,讓我們繼續(xù)討論各種類型的串行通信協(xié)議。
CAN或控制器區(qū)域網(wǎng)絡(luò)協(xié)議是由羅伯特博世中在20世紀(jì)80年代構(gòu)思。早在70年代后期,制造商就開始在汽車中使用先進(jìn)的功能,例如防抱死制動系統(tǒng)、空調(diào)、中央門鎖、安全氣囊、齒輪控制、發(fā)動機(jī)管理系統(tǒng)等。
即使駕駛員(消費者)喜歡這些新功能,它們也有一些缺點。這些進(jìn)步要求增加笨重的電線,昂貴的機(jī)械零件和復(fù)雜的設(shè)計,這導(dǎo)致車載電氣和機(jī)械系統(tǒng)的成本和復(fù)雜性增加。幸運的是,Robert Bosch通過引入CAN協(xié)議使工程師的工作變得更輕松。CAN協(xié)議改變了電子子系統(tǒng)的管理以及智能傳感器之間的通信-一種更簡單,更便宜的方法,只需一根電纜即可完成所有這些工作。
CAN協(xié)議的廣泛普及導(dǎo)致其在1993年被標(biāo)準(zhǔn)化為ISO11898。如今,CAN協(xié)議的應(yīng)用涵蓋了從工業(yè)自動化到商業(yè)飯店油炸鍋的嵌入式系統(tǒng)范圍。
這些CAN應(yīng)用程序的開發(fā)范圍從相當(dāng)簡單到極其復(fù)雜。依賴此協(xié)議的設(shè)備非常重要。如果未正確設(shè)計,開發(fā)和測試,可能會導(dǎo)致嚴(yán)重?fù)p壞。確保對開發(fā)進(jìn)行良好的監(jiān)視和測試非常重要。協(xié)議分析器是一種適用于CAN應(yīng)用的簡單而重要的開發(fā)和測試工具。
CAN協(xié)議的用途:
● CAN協(xié)議通常用于電子組件的車載網(wǎng)絡(luò)。
● 它也用于航空航天應(yīng)用中的飛行分析和燃料網(wǎng)絡(luò),泵等組件的聯(lián)網(wǎng)。
● 醫(yī)療設(shè)備的制造商經(jīng)常使用CAN在醫(yī)療設(shè)備內(nèi)創(chuàng)建嵌入式網(wǎng)絡(luò)。
I2C也被稱為IIC(發(fā)音為IIC)和I2C(發(fā)音為I-squared-C)。盡管這項技術(shù)已經(jīng)使用了三十多年,但今天I2C協(xié)議仍被廣泛使用。實際上,它支持大量的嵌入式系統(tǒng)。
I2C協(xié)議允許嵌入式工程師將多個從設(shè)備與一個或多個主設(shè)備連接。與SPI協(xié)議類似,它主要用于同一打印機(jī)電路板(PCB)上兩個IC(集成電路)內(nèi)的短距離通信。
它僅需要兩條雙向?qū)Ь€即可發(fā)送和接收數(shù)據(jù)位。在數(shù)據(jù)速率方面,I2C協(xié)議支持高達(dá)3.4 Mbps的速度-相當(dāng)快。
以下是使用I2C協(xié)議的一些重要優(yōu)點:
● 使用多個主設(shè)備來加快通信速度并改善設(shè)計功能的靈活性
● 芯片尋址消除了CS(芯片選擇)線的需要
● 通過ACK / NACK功能支持強(qiáng)大的錯誤處理機(jī)制。
但是,有一些限制。例如,由于它使用上拉電阻,因此會占用PCB上更多的空間。
I2C協(xié)議的用途:
● 更改監(jiān)視器上的各種顏色設(shè)置,例如色相。
● 控制手機(jī)中的LED / LCD顯示
幫助打開/關(guān)閉內(nèi)部組件的電源
串行外圍接口,通常稱為SPI或“間諜”,是嵌入式系統(tǒng)中使用最廣泛的接口規(guī)范之一。自從1980年代末Motorola引入SPI協(xié)議以來,SPI協(xié)議已廣泛用于嵌入式系統(tǒng)中的短距離通信。
通過SPI協(xié)議,設(shè)備使用主從架構(gòu)相互通信。盡管SPI可以支持多個從設(shè)備,但主設(shè)備的數(shù)量限制為一個。SPI被稱為四線串行總線,因為它包含四個信號:
● 主輸出從輸入(MOSI)
● 主進(jìn)從出(MISO)
● 串行時鐘(SCK)
● 從站選擇(SS)
在全雙工模式下,可以實現(xiàn)超過1Mbps的數(shù)據(jù)速率-這是SPI總線的主要優(yōu)點之一。與I2C相比,SPI還支持使用簡單的硬件接口并提供更高的吞吐量。
但是,SPI協(xié)議也有一些缺點-缺少錯誤檢查機(jī)制和從屬確認(rèn)功能是其中的主要缺點。
SPI協(xié)議的用途:
● 申請與溫度,壓力傳感器和視頻游戲控制器的通信
● 與LCD和SD卡接口
● 與閃存和EEPROM存儲器通信
● 從實時時鐘讀取數(shù)據(jù)。
迄今為止,USB(通用串行總線協(xié)議)是目前使用最普遍的協(xié)議,這并不是什么秘密。您可能會在家中發(fā)現(xiàn)一打USB電纜和連接器。它最初于1990年代開發(fā),旨在標(biāo)準(zhǔn)化許多外圍設(shè)備與計算機(jī)的連接。今天,您可以通過USB電纜將幾乎所有東西(從外部硬盤驅(qū)動器到打印機(jī))連接到筆記本電腦/計算機(jī)。
USB協(xié)議設(shè)計用于兩個特定目的:
● 與外圍設(shè)備通訊
● 為連接的設(shè)備供電(如果適用)
USB連接器有很多變體-您可以在鍵盤,鼠標(biāo)和打印機(jī)上找到的標(biāo)準(zhǔn)USB。微型USB和USB Type-C主要用于手機(jī)-但是,它們在其他設(shè)備中的普及度也在增長。
當(dāng)設(shè)備通過USB協(xié)議與另一設(shè)備通信時,數(shù)據(jù)以數(shù)據(jù)包的形式傳輸。所有數(shù)據(jù)包均由8位字節(jié)(或8位字節(jié)的倍數(shù),取決于支持的比特率)組成,其中LSB或最低有效位先發(fā)送。如果要構(gòu)建涉及USB的嵌入式系統(tǒng),請確保使用USB協(xié)議分析器監(jiān)視總線上的數(shù)據(jù)。
USB協(xié)議的用途:
● 將外圍設(shè)備(例如鍵盤,鼠標(biāo),打印機(jī)等)連接到計算機(jī)
● 給外圍設(shè)備供電
● 直接從電源插座或計算機(jī)為移動電源等附件以及手機(jī)和藍(lán)牙揚聲器等設(shè)備充電
eSPI由英特爾公司開發(fā),是低引腳數(shù)(LPC)總線的后繼產(chǎn)品。eSPI代表增強(qiáng)型串行外圍設(shè)備總線接口-與LPC相比,它的主要功能是減少引腳數(shù)。
eSPI協(xié)議的用途:
● 減少主板上所需的引腳數(shù)
● 用于需要實時閃存共享的應(yīng)用中