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