在進行嵌入式開發(fā)中你一定遇到了各種總線,包括芯片內(nèi)的地址總線和數(shù)據(jù)總線,高速總線和低速總線,還有芯片外的各種通信總線等等,而往往大家對總線似乎還是把握得不太好,所以今天挑選了一篇關(guān)于總線的文章供大家閱讀:如果一座只能容一個人來往的獨木橋,兩端的人都想要過橋,為了不擁擠、阻塞,那我們就得采取有效的辦法。比如規(guī)定某段時間哪端的人過橋,另一端的人就等著該他過橋的時間段的到來,同時也還可以規(guī)定人多時要按先來后到或年齡長幼的次序過橋。
在這不經(jīng)意間,我們就體會到了現(xiàn)代電子信息數(shù)據(jù)通過總線按時分系統(tǒng)傳輸?shù)淖钤嫉乃枷搿,F(xiàn)代網(wǎng)絡(luò)信息的發(fā)展,特別是對于成本和空間而言,總線傳輸替代點對點傳輸是目前發(fā)展的熱點,它的出現(xiàn)將給信息傳輸上提供了最大的方便和最有效的技術(shù)解決方案。假如一個微處理器與它的部件和外圍設(shè)備都分別用點對點的線路來連接通訊,則所有連線將會錯綜復(fù)雜,甚至難以實現(xiàn)。目前與我們生活習(xí)習(xí)相關(guān)的一系列活動都無不牽涉到總線技術(shù)的應(yīng)用,如我們上英特網(wǎng)、給親戚朋友打電話、用U盤來存儲信息等。
雖然流行的總線所采取的形式不同,但他們主要的原則性思想無非就是時分系統(tǒng)、頻分系統(tǒng)、相分系統(tǒng)和碼分系統(tǒng)等。常言道“兵來將擋,水來土淹”,面對種類繁多的總線,我們只有從基本原理出發(fā),從骨子里去了解它的實質(zhì),而不要被它形式多樣的外表所迷惑,才能熟練掌握和靈活運用眼下正在或?qū)⒁玫降母鞣N總線技術(shù)。
總線的定義于分類
1、定義總線,英文叫作“BUS”,即我們中文的“公共車”,這是非常形象的比如,公共車走的路線是一定的,我們?nèi)魏稳硕伎梢宰曹嚾ピ摋l公共車路線的任意一個站點。如果把我們?nèi)吮茸魇请娮?a target="_blank">信號,這就是為什么英文叫它為“BUS”而不是“CAR”的真正用意。當(dāng)然,從專業(yè)上來說,總線是一種描述電子信號傳輸線路的結(jié)構(gòu)形式,是一類信號線的集合,是子系統(tǒng)間傳輸信息的公共通道。
通過總線能使整個系統(tǒng)內(nèi)各部件之間的信息進行傳輸、交換、共享和邏輯控制等功能。如在計算機系統(tǒng)中,它是CPU、內(nèi)存、輸入、輸出設(shè)備傳遞信息的公用通道,主機的各個部件通過主機相連接,外部設(shè)備通過相應(yīng)的接口電路在于總線相連接。
2、分類總線分類的方式有很多,如被分為外部和內(nèi)部總線、系統(tǒng)總線和非系統(tǒng)總線等等,下面是幾種最常用的分類方法:
◆ 按功能分類最常見的是從功能上來對數(shù)據(jù)總線進行劃分,可以分為地址總線(address bus)、數(shù)據(jù)總線(data bus)和控制總線(control bus)。在有的系統(tǒng)中,數(shù)據(jù)總線和地址總線可以在地址鎖存器控制下被共享,也即復(fù)用。地址總線是專門用來傳送地址的。在設(shè)計過程中,見得最多的應(yīng)該是從CPU地址總線來選用外部存儲器的存儲地址。地址總線的位數(shù)往往決定了存儲器存儲空間的大小,比如地址總線為16位,則其最大可存儲空間為216(64KB)。
數(shù)據(jù)總線是用于傳送數(shù)據(jù)信息,它又有單向傳輸和雙向傳輸數(shù)據(jù)總線之分,雙向傳輸數(shù)據(jù)總線通常采用雙向三態(tài)形式的總線。數(shù)據(jù)總線的位數(shù)通常與微處理的字長相一致。例如Intel 8086微處理器字長16位,其數(shù)據(jù)總線寬度也是16位。在實際工作中,數(shù)據(jù)總線上傳送的并不一定是完全意義上的數(shù)據(jù)。控制總線是用于傳送控制信號和時序信號。如有時微處理器對外部存儲器進行操作時要先通過控制總線發(fā)出讀/寫信號、片選信號和讀入中斷響應(yīng)信號等。控制總線一般是雙向的,其傳送方向由具體控制信號而定,其位數(shù)也要根據(jù)系統(tǒng)的實際控制需要而定。
◆ 按傳輸方式分類按照數(shù)據(jù)傳輸?shù)姆绞絼澐郑偩€可以被分為串行總線和并行總線。從原理來看,并行傳輸方式其實優(yōu)于串行傳輸方式,但其成本上會有所增加。通俗地講,并行傳輸?shù)耐藩q如一條多車道公路,而串行傳輸則是只允許一輛汽車通過單線公路。目前常見的串行總線有SPI、I2C、USB、IEEE1394、RS232、CAN等;而并行總線相對來說種類要少,常見的如IEEE1284、ISA、PCI等。
◆ 按時鐘信號方式分類按照時鐘信號是否獨立,可以分為同步總線和異步總線。同步總線的時鐘信號獨立于數(shù)據(jù),也就是說要用一根單獨的線來作為時鐘信號線;而異步總線的時鐘信號是從數(shù)據(jù)中提取出來的,通常利用數(shù)據(jù)信號的邊沿來作為時鐘同步信號。
總線傳輸基本原理
依據(jù)前面對總線的定義可知總線的基本作用就是用來傳輸信號,為了各子系統(tǒng)的信息能有效及時的被傳送,為了不至于彼此間的信號相互干擾和避免物理空間上過于擁擠,其最好的辦法就是采用多路復(fù)用技術(shù),也就是說總線傳輸?shù)幕驹砭褪嵌嗦窂?fù)用技術(shù)。所謂多路復(fù)用,就是指多個用戶共享公用信道的一種機制,目前最常見的主要有時分多路復(fù)用、頻分多路復(fù)用和碼分多路復(fù)用等。
1、時分多路復(fù)用(TDMA)時分復(fù)用是將信道按時間加以分割成多個時間段,不同來源的信號會要求在不同的時間段內(nèi)得到響應(yīng),彼此信號的傳輸時間在時間坐標軸上是不會重疊。
2、頻分多路復(fù)用(FDMA)頻分復(fù)用就是把信道的可用頻帶劃分成若干互不交疊的頻段,每路信號經(jīng)過頻率調(diào)制后的頻譜占用其中的一個頻段,以此來實現(xiàn)多路不同頻率的信號在同一信道中傳輸。而當(dāng)接收端接收到信號后將采用適當(dāng)?shù)膸?a href="http://m.1cnz.cn/tags/濾波器/" target="_blank">濾波器和頻率解調(diào)器等來恢復(fù)原來的信號。
3、碼分多路復(fù)用(CDMA)碼分多路復(fù)用是所被傳輸?shù)男盘柖紩懈髯蕴囟ǖ臉俗R碼或地址碼,接收端將會根據(jù)不同的標識碼或地址碼來區(qū)分公共信道上的傳輸信息,只有標識碼或地址碼完全一致的情況下傳輸信息才會被接收。
總線的通信協(xié)議
對于總線的學(xué)習(xí),了解其通訊協(xié)議是整個過程中最關(guān)鍵的一步,所有介紹總線技術(shù)的資料都會花很大的篇幅來描述其協(xié)議,特別是ISO/OSI的那七層定義。其實,要了解一種總線的協(xié)議,最主要的就是去了解總線的幀數(shù)據(jù)每一位所代表的特性和意義,總線各節(jié)點間有效數(shù)據(jù)的收發(fā)都是通過各節(jié)點對幀數(shù)據(jù)位或段的判斷和確信來得以實現(xiàn)。
常見的I2C總線上傳輸?shù)囊蛔止?jié)數(shù)據(jù)的數(shù)據(jù)幀,其總線形式是由數(shù)據(jù)線SDA和時鐘SCL構(gòu)成的雙線制串行總線,并接在總線上的電路模塊即可作為發(fā)送器(主機)又可作為接收器(從機)。幀數(shù)據(jù)中除了控制碼(包括從機標識碼和訪問地址碼)與數(shù)據(jù)碼外還包括起始信號、結(jié)束信號和應(yīng)答信號。
起始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。控制碼:用來選澤操作目標與對象,即接通需要控制的電路,確定控制的種類對象。在讀期間,也即SCL時鐘線處于時鐘脈沖高電平時,SDA上的數(shù)據(jù)位不會跳變。數(shù)據(jù)碼:是主機向從機發(fā)送的具體的有用的數(shù)據(jù)(如對比度、亮度等)和信息。在讀期間,SDA上的數(shù)據(jù)位不會跳變。應(yīng)答信號:接收方收到8bit數(shù)據(jù)后,向發(fā)送方發(fā)出特定的低電平。讀/寫的方向與其它數(shù)據(jù)位正好相反,也即是由從機寫出該低電平,主機來讀取該低電平。結(jié)束信號:SCL為高電平時,SDA由低電平向高電平跳變表示數(shù)據(jù)幀傳輸結(jié)束。
當(dāng)然不同的總線其數(shù)據(jù)位或段的定義肯定不同,但依據(jù)同樣的原理可以更快的去了解它的協(xié)議的特性和特點。雖然其信息幀的大小不一,但具體的某一數(shù)據(jù)位或數(shù)據(jù)段都類似于本文所提及的I2C總線,會依據(jù)它的協(xié)議的要求來定義它所達標的意義和功能。
主要的技術(shù)指標
評價總線的主要技術(shù)指標是總線的帶寬(即傳輸速率)、數(shù)據(jù)位的寬度(位寬)、工作頻率和傳輸數(shù)據(jù)的可靠性、穩(wěn)定性等。1、帶寬(傳輸速率)、位寬和工作頻率總線的帶寬指的是單位時間內(nèi)總線上傳送的數(shù)據(jù)量,即每鈔傳送MB的最大數(shù)據(jù)傳輸率。總線的位寬指的是總線能同時傳送的二進制數(shù)據(jù)的位數(shù),或數(shù)據(jù)總線的位數(shù),即32位、64位等總線寬度的概念;總線的位寬越寬,數(shù)據(jù)傳輸速率越大,總線的帶寬就越寬。總線的工作時鐘頻率以MHz為單位,它與傳輸?shù)慕橘|(zhì)、信號的幅度大小和傳輸距離有關(guān)。在同樣硬件條件下,我們采用差分信號傳輸時的頻率常常會比單邊信號高得多,這是因為差分信號的的幅度只有單邊信號的一半而已。總線的帶寬、位寬和工作頻率,這三者密切相關(guān),它們之間的關(guān)系:
2、傳輸數(shù)據(jù)的可靠性可靠性是評定總線最關(guān)鍵的參數(shù),沒有可靠性,傳輸?shù)臄?shù)據(jù)都是錯誤的信息,便就失去了總線的實際意義。為了提高總線的可靠性,通常采用的措施有:1)采用數(shù)據(jù)幀發(fā)送前發(fā)送器對總線進行偵聽,只有偵聽到總線處于空閑狀態(tài)下時才可向總線傳送數(shù)據(jù)幀,這樣避免了不同節(jié)點的數(shù)據(jù)沖突。
2)采用雙絞線差分信號來傳送數(shù)據(jù),以降低單線的電壓升降幅度,減小信號的邊沿產(chǎn)生的高次諧波。
3)適當(dāng)?shù)淖寯?shù)據(jù)的邊沿具有一定的斜坡。
4)增加匹配電阻和電容等來減少總線上信號的發(fā)射和平衡總線上的分布電容等。
5)采用合適的網(wǎng)絡(luò)拓撲結(jié)構(gòu)和屏蔽技術(shù)等來減少受其他信號的干擾。還有就是在軟件上通過數(shù)字濾波、數(shù)據(jù)校驗糾錯等措施來提高數(shù)據(jù)傳輸?shù)目煽啃浴?
結(jié)束語
學(xué)習(xí)是一個循序漸進的過程,對總線技術(shù)的學(xué)習(xí)和理解也是隨著其技術(shù)的不斷發(fā)展而不斷更新的過程。子曰“工欲善其事,必先利其器。”只有從最基本的原理出發(fā),打好基礎(chǔ),才能在今后的學(xué)習(xí)中融會貫通,前仆后繼,更進一步深入該知識點和拓寬知識面。
責(zé)任編輯:haq
-
嵌入式
+關(guān)注
關(guān)注
5087文章
19145瀏覽量
306135 -
通信
+關(guān)注
關(guān)注
18文章
6042瀏覽量
136144 -
總線
+關(guān)注
關(guān)注
10文章
2891瀏覽量
88174
原文標題:終于明白!為何大部分通信總線都差不多?
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論