• 正文
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2024/09/19
2036
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

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

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

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

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

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

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

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

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

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

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

不過(guò),你可以嘗試以下方法來(lái)提高綜合效率,但不一定能實(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)存和處理能力,這也可能影響綜合的速度。

總之,目前可能沒(méi)有直接讓 Synplify 并行跑綜合的方法,但可以通過(guò)其他方式來(lái)提高綜合效率。

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è)模塊是沒(méi)法復(fù)位的,這種情況如何解決,這個(gè)模塊是一定要采用異步復(fù)位嗎?

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

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

可以將原始的同步復(fù)位信號(hào)通過(guò)合適的邏輯處理后傳遞到由低頻時(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)來(lái)初始化模塊。可以通過(guò)邏輯門對(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ù)位也有一些潛在的問(wèn)題,如異步復(fù)位信號(hào)可能會(huì)在時(shí)鐘邊沿附近產(chǎn)生亞穩(wěn)態(tài),導(dǎo)致系統(tǒng)不穩(wěn)定。

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

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

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