加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

如何通俗理解 I2C、SPI、USB、UART、RS232

09/19 12:30
1527
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大俠好,歡迎來到FPGA技術(shù)江湖,江湖偌大,相見即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡?!爸缶蒲詺g”進(jìn)入IC技術(shù)圈,這里有近100個(gè)IC技術(shù)公眾號(hào)。

今天給大俠帶來在FPAG技術(shù)交流群里平時(shí)討論的問題答疑合集(十五),以后還會(huì)多推出本系列,話不多說,上貨。

Q:如何通俗地講清 I2C、SPI、USB、UART、RS232 到底是什么東西?通俗,通俗,通俗。百度上的術(shù)語一大堆,到頭來把我繞的糊里糊涂,我知道您什么都懂,能解釋的讓外行人也理解嗎。

A:I2C 就像是一個(gè)有兩個(gè)管理員的小隊(duì)伍。這兩個(gè)管理員一個(gè)負(fù)責(zé)發(fā)命令(主設(shè)備),一個(gè)負(fù)責(zé)聽命令和回答(從設(shè)備)。他們通過兩根線來交流,一根線傳數(shù)據(jù),一根線控制節(jié)奏,能讓很多小設(shè)備(比如傳感器、存儲(chǔ)器)和大設(shè)備(比如電腦的主板)方便地說話。

SPI 呢,就像是一個(gè)小團(tuán)隊(duì),有一個(gè)帶頭的(主設(shè)備)和幾個(gè)跟著的(從設(shè)備)。他們交流靠好幾根線,一根專門發(fā)命令,一根專門收回答,還有專門用來控制什么時(shí)候說話的線,這樣說話速度快,但線用得多。

USB 可以想象成一個(gè)多功能的管道,能把各種各樣的東西(比如鼠標(biāo)、鍵盤、優(yōu)盤)連到電腦上。它很聰明,能自動(dòng)認(rèn)出連上來的是什么,而且還能同時(shí)干好多不同的活兒,比如一邊傳文件一邊用鼠標(biāo)。

UART 就像是兩個(gè)人打電話,一個(gè)人說,另一個(gè)人聽,說完一輪再反過來。他們就用一根線傳要說的話,一根線控制啥時(shí)候說。

RS232 也是兩個(gè)人交流,不過它要求比較嚴(yán)格,比如說話聲音大?。妷海┑霉潭?,而且說話的速度不能太快。它經(jīng)常用在一些老一點(diǎn)的設(shè)備之間交流,像早期的打印機(jī)和電腦之間。

Q:請(qǐng)問各位大佬,使用synplify綜合rtl為啥只能用單核跑,有能并行跑綜合的方法嗎?

A:在使用 Synplify 綜合 RTL 時(shí)默認(rèn)是單核運(yùn)行,但目前沒有確切的可以讓其并行跑綜合的通用方法。通常情況下,這類 EDA 工具的綜合過程是較為復(fù)雜的,且其設(shè)計(jì)可能并不主要側(cè)重于并行綜合。

不過,你可以嘗試以下方法來提高綜合效率,但不一定能實(shí)現(xiàn)真正的并行綜合:

1. 優(yōu)化 RTL 代碼:確保代碼簡(jiǎn)潔、規(guī)范,減少不必要的邏輯復(fù)雜性,這樣可以加快綜合速度。

2. 調(diào)整 Synplify 的設(shè)置:查看是否有可以提高綜合效率的選項(xiàng),如優(yōu)化級(jí)別等。

3. 檢查硬件資源:確保你的計(jì)算機(jī)有足夠的內(nèi)存和處理能力,這也可能影響綜合的速度。

總之,目前可能沒有直接讓 Synplify 并行跑綜合的方法,但可以通過其他方式來提高綜合效率。

Q:在同步復(fù)位的前提下,我用分頻產(chǎn)生一個(gè)低頻時(shí)鐘信號(hào)?

請(qǐng)教一下大家,在同步復(fù)位的前提下,我用分頻產(chǎn)生一個(gè)低頻時(shí)鐘信號(hào),再用這個(gè)低頻時(shí)鐘信號(hào)驅(qū)動(dòng)其他模塊,這時(shí)候這個(gè)模塊是沒法復(fù)位的,這種情況如何解決,這個(gè)模塊是一定要采用異步復(fù)位嗎?

A:在同步復(fù)位前提下,用分頻產(chǎn)生的低頻時(shí)鐘信號(hào)驅(qū)動(dòng)的模塊無法復(fù)位時(shí),可以考慮以下幾種解決方法,不一定非要采用異步復(fù)位:

一、同步復(fù)位信號(hào)傳遞

可以將原始的同步復(fù)位信號(hào)通過合適的邏輯處理后傳遞到由低頻時(shí)鐘驅(qū)動(dòng)的模塊。例如,可以使用同步器將復(fù)位信號(hào)同步到低頻時(shí)鐘域,確保復(fù)位信號(hào)在低頻時(shí)鐘下能夠正確地對(duì)模塊進(jìn)行復(fù)位操作。

二、計(jì)數(shù)器與邏輯組合

在低頻時(shí)鐘域中設(shè)置一個(gè)計(jì)數(shù)器,當(dāng)計(jì)數(shù)器達(dá)到特定值時(shí),產(chǎn)生一個(gè)類似復(fù)位的信號(hào)來初始化模塊??梢酝ㄟ^邏輯門對(duì)計(jì)數(shù)器的值和其他條件進(jìn)行判斷,生成有效的復(fù)位信號(hào)。

三、多級(jí)時(shí)鐘域復(fù)位管理

如果系統(tǒng)中有多個(gè)時(shí)鐘域,可以設(shè)計(jì)一個(gè)專門的復(fù)位管理模塊,負(fù)責(zé)接收原始復(fù)位信號(hào),并根據(jù)不同時(shí)鐘域的需求生成相應(yīng)的復(fù)位信號(hào)。這個(gè)管理模塊可以協(xié)調(diào)不同時(shí)鐘域之間的復(fù)位操作,確保各個(gè)模塊都能在合適的時(shí)候被復(fù)位。

采用異步復(fù)位也有一些潛在的問題,如異步復(fù)位信號(hào)可能會(huì)在時(shí)鐘邊沿附近產(chǎn)生亞穩(wěn)態(tài),導(dǎo)致系統(tǒng)不穩(wěn)定。

今天先整理三個(gè)問題答疑,后續(xù)還會(huì)持續(xù)推出本系列。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

任何技術(shù)的學(xué)習(xí)就好比一個(gè)江湖,對(duì)于每一位俠客都需要不斷的歷練,從初入江湖的小白到歸隱山林的隱世高人,需要不斷的自我感悟自己修煉,讓我們一起仗劍闖FPGA乃至更大的江湖。