【單片機到嵌入式之路】序列之9:總線你懂么?
本節我們主要是從下面6個方面進行講解:
本文引用地址:http://www.104case.com/article/278046.htm1.總線的簡單介紹
2.總線的原理
3.總線的特征
4.總線的分類
5.總線的技術指標
6.傳輸數據可靠性
一、總線的簡單介紹:
其實現實生活中也有很多總線的影子。比如從A地到B地,只能通過船來渡河,并且船一次只能承載一個人,這時候,如果大家蜂擁而上,那么大家都會掉到河里去,輕則都去不了,重則出現死亡。這時,我們可以通過分時來實行,比如多少點是誰坐船過去,人之間的先后順序如何排序等。這就不知道不覺中運用了總線的時分系統傳輸性質。
隨著網絡的發展,現在總線不僅僅局限于時分。還有頻分系統、相分系統和碼分系統等。只要認真分析,抓住本質東西,總線不是大家想象的那么難理解。
二、總線原理【參考百度百科和網絡】
如果說主板(Mother Board)是一座城市,那么總線就像是城市里的公共汽車(bus),能按照固定行車路線,傳輸來回不停運作的比特(bit)。這些線路在同一時間內都僅能負責傳輸一個比特。因此,必須同時采用多條線路才能傳送更多數據,而總線可同時傳輸的數據數就稱為寬度(width),以比特為單位,總線寬度愈大,傳輸性能就愈佳。總線的帶寬(即單位時間內可以傳輸的總數據數)為:總線帶寬 = 頻率 x 寬度(Bytes/sec)。當總線空閑(其他器件都以高阻態形式連接在總線上)且一個器件要與目的器件通信時,發起通信的器件驅動總線,發出地址和數據。其他以高阻態形式連接在總線上的器件如果收到(或能夠收到)與自己相符的地址信息后,即接收總線上的數據。發送器件完成通信,將總線讓出(輸出變為高阻態)。
目前最常見的主要有時分多路復用、頻分多路復用和碼分多路復用等。
1.時分多路復用(TDMA)
時分復用是將信道按時間加以分割成多個時間段,不同來源的信號會要求在不同的時間段內得到響應,彼此信號的傳輸時間在時間坐標軸上是不會重疊。
2.頻分多路復用(FDMA)
頻分復用就是把信道的可用頻帶劃分成若干互不交疊的頻段,每路信號經過頻率調制后的頻譜占用其中的一個頻段,以此來實現多路不同頻率的信號在同一信道中傳輸。而當接收端接收到信號后將采用適當的帶通濾波器和頻率解調器等來恢復原來的信號。
3.碼分多路復用(CDMA)
碼分多路復用是所被傳輸的信號都會有各自特定的標識碼或地址碼,接收端將會根據不同的標識碼或地址碼來區分公共信道上的傳輸信息,只有標識碼或地址碼完全一致的情況下傳輸信息才會被接收。
總線的通信協議
對于總線的學習,了解其通訊協議是整個過程中最關鍵的一步,所有介紹總線技術的資料都會花很大的篇幅來描述其協議,特別是ISO/OSI的那七層定義。其實要了解一種總線的協議,最主要的就是去了解總線的幀數據每一位所代表的特性和意義,總線各節點間有效數據的收發都是通過各節點對幀數據位或段的判斷和確信來得以實現。

如圖1所示是常見的I2C總線上傳輸的一字節數據的數據幀,其總線形式是由數據線SDA和時鐘SCL構成的雙線制串行總線,并接在總線上的電路模塊即可作為發送器(主機)又可作為接收器(從機)。幀數據中除了控制碼(包括從機標識碼和訪問地址碼)與數據碼外還包括起始信號、結束信號和應答信號。
起始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。
控制碼:用來選澤操作目標與對象,即接通需要控制的電路,確定控制的種類對象。在讀期間,也即SCL時鐘線處于時鐘脈沖高電平時,SDA上的數據位不會跳變。
數據碼:是主機向從機發送的具體的有用的數據(如對比度、亮度等)和信息。在讀期間,SDA上的數據位不會跳變。
應答信號:接收方收到8bit數據后,向發送方發出特定的低電平。讀/寫的方向與其它數據位正好相反,也即是由從機寫出該低電平,主機來讀取該低電平。
結束信號:SCL為高電平時,SDA由低電平向高電平跳變表示數據幀傳輸結束。
當然不同的總線其數據位或段的定義肯定不同,但依據同樣的原理可以更快的去了解它的協議的特性和特點。雖然其信息幀的大小不一,但具體的某一數據位或數據段都類似于本文所提及的I2C總線,會依據它的協議的要求來定義它所達標的意義和功能。
三、總線的特征
由于總線是連接各個部件的一組信號線。通過信號線上的信號表示信息,通過約定不同信號的先后次序即可約定操作如何實現。總線的特性如下
(1)物理特性:
物理特性又稱為機械特性,指總線上部件在物理連接時表現出的一些特性,如插頭與插座的幾何尺寸、形狀、引腳個數及排列順序等。
(2)功能特性:
功能特性是指每一根信號線的功能,如地址總線用來表示地址碼。數據總線用來表示傳輸的數據,控制總線表示總線上操作的命令、狀態等。
(3)電氣特性:
電氣特性是指每一根信號線上的信號方向及表示信號有效的電平范圍,通常,由主設備(如CPU)發出的信號稱為輸出信號(OUT),送入主設備的信號稱為輸入信號(IN)。通常數據信號和地址信號定義高電平為邏輯1、低電平為邏輯0,控制信號則沒有俗成的約定,如WE表示低電平有有效、Ready表示高電平有效。不同總線高電平、低電平的電平范圍也無統一的規定,通常與TTL是相符的。
(4)時間特性:
時間特性又稱為邏輯特性,指在總線操作過程中每一根信號線上信號什么時候有效,通過這種信號有效的時序關系約定,確保了總線操作的正確進行。
為了提高計算機的可拓展性,以及部件及設備的通用性,除了片內總線外,各個部件或設備都采用標準化的形式連接到總線上,并按標準化的方式實現總線上的信息傳輸。而總線的這些標準化的連接形式及操作方式,統稱為總線標準。如ISA、PCI、USB總線標準等,相應的,采用這些標準的總線為ISA總線、PCI總線、USB總線等。
四、總線的分類
總線按功能和規范可分為五大類型:
數據總線(Data Bus):在CPU與RAM之間來回傳送需要處理或是需要儲存的數據。
地址總線(Address Bus):用來指定在RAM(Random Access Memory)之中儲存的數據的地址。
控制總線(Control Bus):將微處理器控制單元(Control Unit)的信號,傳送到周邊設備,一般常見的為 USB Bus和1394 Bus。
擴展總線(Expansion Bus):可連接擴展槽和電腦。
局部總線(Local Bus):取代更高速數據傳輸的擴展總線。
按照傳輸數據的方式劃分,可以分為串行總線和并行總線。
串行總線中,二進制數據逐位通過一根數據線發送到目的器件;并行總線的數據線通常超過2根。常見的串行總線有SPI、I2C、USB及RS232等。
按照時鐘信號是否獨立,可以分為同步總線和異步總線。
同步總線的時鐘信號獨立于數據,而異步總線的時鐘信號是從數據中提取出來的。SPI、I2C是同步串行總線,RS232采用異步串行總線。
五、總線的技術指標
1、總線的帶寬(總線數據傳輸速率)
總線的帶寬指的是單位時間內總線上傳送的數據量,即每鈔鐘傳送MB的最大穩態數據傳輸率。與總線密切相關的兩個因素是總線的位寬和總線的工作頻率,它們之間的關系:
總線的帶寬=總線的工作頻率*總線的位寬/8
或者 總線的帶寬=(總線的位寬/8 )/總線周期
2、總線的位寬
總線的位寬指的是總線能同時傳送的二進制數據的位數,或數據總線的位數,即32位、64位等總線寬度的概念。總線的位寬越寬,每秒鐘數據傳輸率越大,總線的帶寬越寬。
3、總線的工作頻率
總線的工作時鐘頻率以MHZ為單位,工作頻率越高,總線工作速度越快,總線帶寬越寬。
六、傳輸數據可靠性
可靠性是評定總線最關鍵的參數,沒有可靠性,傳輸的數據都是錯誤的信息,便就失去了總線的實際意義。為了提高總線的可靠性,通常采用的措施有:
采用數據幀發送前發送器對總線進行偵聽,只有偵聽到總線處于空閑狀態下時才可向總線傳送數據幀,這樣避免了不同節點的數據沖突。
采用雙絞線差分信號來傳送數據,以降低單線的電壓升降幅度,減小信號的邊沿產生的高次諧波。
適當的讓數據的邊沿具有一定的斜坡。
增加匹配電阻和電容等來減少總線上信號的發射和平衡總線上的分布電容等。
采用合適的網絡拓撲結構和屏蔽技術等來減少受其他信號的干擾。
還有就是在軟件上通過數字濾波、數據校驗糾錯等措施來提高數據傳輸的可靠性。
看了上面的是不是對總線沒有那么陌生了,感覺總線沒有那么恐怖了!!
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)單片機相關文章:單片機教程
單片機相關文章:單片機視頻教程
單片機相關文章:單片機工作原理
cdma相關文章:cdma原理
雙絞線傳輸器相關文章:雙絞線傳輸器原理
評論