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