【單片機(jī)到嵌入式之路】序列之9:總線你懂么?
本節(jié)我們主要是從下面6個(gè)方面進(jìn)行講解:
本文引用地址:http://m.butianyuan.cn/article/278046.htm1.總線的簡(jiǎn)單介紹
2.總線的原理
3.總線的特征
4.總線的分類
5.總線的技術(shù)指標(biāo)
6.傳輸數(shù)據(jù)可靠性
一、總線的簡(jiǎn)單介紹:
其實(shí)現(xiàn)實(shí)生活中也有很多總線的影子。比如從A地到B地,只能通過船來渡河,并且船一次只能承載一個(gè)人,這時(shí)候,如果大家蜂擁而上,那么大家都會(huì)掉到河里去,輕則都去不了,重則出現(xiàn)死亡。這時(shí),我們可以通過分時(shí)來實(shí)行,比如多少點(diǎn)是誰坐船過去,人之間的先后順序如何排序等。這就不知道不覺中運(yùn)用了總線的時(shí)分系統(tǒng)傳輸性質(zhì)。
隨著網(wǎng)絡(luò)的發(fā)展,現(xiàn)在總線不僅僅局限于時(shí)分。還有頻分系統(tǒng)、相分系統(tǒng)和碼分系統(tǒng)等。只要認(rèn)真分析,抓住本質(zhì)東西,總線不是大家想象的那么難理解。
二、總線原理【參考百度百科和網(wǎng)絡(luò)】
如果說主板(Mother Board)是一座城市,那么總線就像是城市里的公共汽車(bus),能按照固定行車路線,傳輸來回不停運(yùn)作的比特(bit)。這些線路在同一時(shí)間內(nèi)都僅能負(fù)責(zé)傳輸一個(gè)比特。因此,必須同時(shí)采用多條線路才能傳送更多數(shù)據(jù),而總線可同時(shí)傳輸?shù)臄?shù)據(jù)數(shù)就稱為寬度(width),以比特為單位,總線寬度愈大,傳輸性能就愈佳。總線的帶寬(即單位時(shí)間內(nèi)可以傳輸?shù)目倲?shù)據(jù)數(shù))為:總線帶寬 = 頻率 x 寬度(Bytes/sec)。當(dāng)總線空閑(其他器件都以高阻態(tài)形式連接在總線上)且一個(gè)器件要與目的器件通信時(shí),發(fā)起通信的器件驅(qū)動(dòng)總線,發(fā)出地址和數(shù)據(jù)。其他以高阻態(tài)形式連接在總線上的器件如果收到(或能夠收到)與自己相符的地址信息后,即接收總線上的數(shù)據(jù)。發(fā)送器件完成通信,將總線讓出(輸出變?yōu)楦咦钁B(tài))。
目前最常見的主要有時(shí)分多路復(fù)用、頻分多路復(fù)用和碼分多路復(fù)用等。
1.時(shí)分多路復(fù)用(TDMA)
時(shí)分復(fù)用是將信道按時(shí)間加以分割成多個(gè)時(shí)間段,不同來源的信號(hào)會(huì)要求在不同的時(shí)間段內(nèi)得到響應(yīng),彼此信號(hào)的傳輸時(shí)間在時(shí)間坐標(biāo)軸上是不會(huì)重疊。
2.頻分多路復(fù)用(FDMA)
頻分復(fù)用就是把信道的可用頻帶劃分成若干互不交疊的頻段,每路信號(hào)經(jīng)過頻率調(diào)制后的頻譜占用其中的一個(gè)頻段,以此來實(shí)現(xiàn)多路不同頻率的信號(hào)在同一信道中傳輸。而當(dāng)接收端接收到信號(hào)后將采用適當(dāng)?shù)膸V波器和頻率解調(diào)器等來恢復(fù)原來的信號(hào)。
3.碼分多路復(fù)用(CDMA)
碼分多路復(fù)用是所被傳輸?shù)男盘?hào)都會(huì)有各自特定的標(biāo)識(shí)碼或地址碼,接收端將會(huì)根據(jù)不同的標(biāo)識(shí)碼或地址碼來區(qū)分公共信道上的傳輸信息,只有標(biāo)識(shí)碼或地址碼完全一致的情況下傳輸信息才會(huì)被接收。
總線的通信協(xié)議
對(duì)于總線的學(xué)習(xí),了解其通訊協(xié)議是整個(gè)過程中最關(guān)鍵的一步,所有介紹總線技術(shù)的資料都會(huì)花很大的篇幅來描述其協(xié)議,特別是ISO/OSI的那七層定義。其實(shí)要了解一種總線的協(xié)議,最主要的就是去了解總線的幀數(shù)據(jù)每一位所代表的特性和意義,總線各節(jié)點(diǎn)間有效數(shù)據(jù)的收發(fā)都是通過各節(jié)點(diǎn)對(duì)幀數(shù)據(jù)位或段的判斷和確信來得以實(shí)現(xiàn)。
如圖1所示是常見的I2C總線上傳輸?shù)囊蛔止?jié)數(shù)據(jù)的數(shù)據(jù)幀,其總線形式是由數(shù)據(jù)線SDA和時(shí)鐘SCL構(gòu)成的雙線制串行總線,并接在總線上的電路模塊即可作為發(fā)送器(主機(jī))又可作為接收器(從機(jī))。幀數(shù)據(jù)中除了控制碼(包括從機(jī)標(biāo)識(shí)碼和訪問地址碼)與數(shù)據(jù)碼外還包括起始信號(hào)、結(jié)束信號(hào)和應(yīng)答信號(hào)。
起始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。
控制碼:用來選澤操作目標(biāo)與對(duì)象,即接通需要控制的電路,確定控制的種類對(duì)象。在讀期間,也即SCL時(shí)鐘線處于時(shí)鐘脈沖高電平時(shí),SDA上的數(shù)據(jù)位不會(huì)跳變。
數(shù)據(jù)碼:是主機(jī)向從機(jī)發(fā)送的具體的有用的數(shù)據(jù)(如對(duì)比度、亮度等)和信息。在讀期間,SDA上的數(shù)據(jù)位不會(huì)跳變。
應(yīng)答信號(hào):接收方收到8bit數(shù)據(jù)后,向發(fā)送方發(fā)出特定的低電平。讀/寫的方向與其它數(shù)據(jù)位正好相反,也即是由從機(jī)寫出該低電平,主機(jī)來讀取該低電平。
結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變表示數(shù)據(jù)幀傳輸結(jié)束。
當(dāng)然不同的總線其數(shù)據(jù)位或段的定義肯定不同,但依據(jù)同樣的原理可以更快的去了解它的協(xié)議的特性和特點(diǎn)。雖然其信息幀的大小不一,但具體的某一數(shù)據(jù)位或數(shù)據(jù)段都類似于本文所提及的I2C總線,會(huì)依據(jù)它的協(xié)議的要求來定義它所達(dá)標(biāo)的意義和功能。
三、總線的特征
由于總線是連接各個(gè)部件的一組信號(hào)線。通過信號(hào)線上的信號(hào)表示信息,通過約定不同信號(hào)的先后次序即可約定操作如何實(shí)現(xiàn)??偩€的特性如下
(1)物理特性:
物理特性又稱為機(jī)械特性,指總線上部件在物理連接時(shí)表現(xiàn)出的一些特性,如插頭與插座的幾何尺寸、形狀、引腳個(gè)數(shù)及排列順序等。
(2)功能特性:
功能特性是指每一根信號(hào)線的功能,如地址總線用來表示地址碼。數(shù)據(jù)總線用來表示傳輸?shù)臄?shù)據(jù),控制總線表示總線上操作的命令、狀態(tài)等。
(3)電氣特性:
電氣特性是指每一根信號(hào)線上的信號(hào)方向及表示信號(hào)有效的電平范圍,通常,由主設(shè)備(如CPU)發(fā)出的信號(hào)稱為輸出信號(hào)(OUT),送入主設(shè)備的信號(hào)稱為輸入信號(hào)(IN)。通常數(shù)據(jù)信號(hào)和地址信號(hào)定義高電平為邏輯1、低電平為邏輯0,控制信號(hào)則沒有俗成的約定,如WE表示低電平有有效、Ready表示高電平有效。不同總線高電平、低電平的電平范圍也無統(tǒng)一的規(guī)定,通常與TTL是相符的。
(4)時(shí)間特性:
時(shí)間特性又稱為邏輯特性,指在總線操作過程中每一根信號(hào)線上信號(hào)什么時(shí)候有效,通過這種信號(hào)有效的時(shí)序關(guān)系約定,確保了總線操作的正確進(jìn)行。
為了提高計(jì)算機(jī)的可拓展性,以及部件及設(shè)備的通用性,除了片內(nèi)總線外,各個(gè)部件或設(shè)備都采用標(biāo)準(zhǔn)化的形式連接到總線上,并按標(biāo)準(zhǔn)化的方式實(shí)現(xiàn)總線上的信息傳輸。而總線的這些標(biāo)準(zhǔn)化的連接形式及操作方式,統(tǒng)稱為總線標(biāo)準(zhǔn)。如ISA、PCI、USB總線標(biāo)準(zhǔn)等,相應(yīng)的,采用這些標(biāo)準(zhǔn)的總線為ISA總線、PCI總線、USB總線等。
四、總線的分類
總線按功能和規(guī)范可分為五大類型:
數(shù)據(jù)總線(Data Bus):在CPU與RAM之間來回傳送需要處理或是需要儲(chǔ)存的數(shù)據(jù)。
地址總線(Address Bus):用來指定在RAM(Random Access Memory)之中儲(chǔ)存的數(shù)據(jù)的地址。
控制總線(Control Bus):將微處理器控制單元(Control Unit)的信號(hào),傳送到周邊設(shè)備,一般常見的為 USB Bus和1394 Bus。
擴(kuò)展總線(Expansion Bus):可連接擴(kuò)展槽和電腦。
局部總線(Local Bus):取代更高速數(shù)據(jù)傳輸?shù)臄U(kuò)展總線。
按照傳輸數(shù)據(jù)的方式劃分,可以分為串行總線和并行總線。
串行總線中,二進(jìn)制數(shù)據(jù)逐位通過一根數(shù)據(jù)線發(fā)送到目的器件;并行總線的數(shù)據(jù)線通常超過2根。常見的串行總線有SPI、I2C、USB及RS232等。
按照時(shí)鐘信號(hào)是否獨(dú)立,可以分為同步總線和異步總線。
同步總線的時(shí)鐘信號(hào)獨(dú)立于數(shù)據(jù),而異步總線的時(shí)鐘信號(hào)是從數(shù)據(jù)中提取出來的。SPI、I2C是同步串行總線,RS232采用異步串行總線。
五、總線的技術(shù)指標(biāo)
1、總線的帶寬(總線數(shù)據(jù)傳輸速率)
總線的帶寬指的是單位時(shí)間內(nèi)總線上傳送的數(shù)據(jù)量,即每鈔鐘傳送MB的最大穩(wěn)態(tài)數(shù)據(jù)傳輸率。與總線密切相關(guān)的兩個(gè)因素是總線的位寬和總線的工作頻率,它們之間的關(guān)系:
總線的帶寬=總線的工作頻率*總線的位寬/8
或者 總線的帶寬=(總線的位寬/8 )/總線周期
2、總線的位寬
總線的位寬指的是總線能同時(shí)傳送的二進(jìn)制數(shù)據(jù)的位數(shù),或數(shù)據(jù)總線的位數(shù),即32位、64位等總線寬度的概念??偩€的位寬越寬,每秒鐘數(shù)據(jù)傳輸率越大,總線的帶寬越寬。
3、總線的工作頻率
總線的工作時(shí)鐘頻率以MHZ為單位,工作頻率越高,總線工作速度越快,總線帶寬越寬。
六、傳輸數(shù)據(jù)可靠性
可靠性是評(píng)定總線最關(guān)鍵的參數(shù),沒有可靠性,傳輸?shù)臄?shù)據(jù)都是錯(cuò)誤的信息,便就失去了總線的實(shí)際意義。為了提高總線的可靠性,通常采用的措施有:
采用數(shù)據(jù)幀發(fā)送前發(fā)送器對(duì)總線進(jìn)行偵聽,只有偵聽到總線處于空閑狀態(tài)下時(shí)才可向總線傳送數(shù)據(jù)幀,這樣避免了不同節(jié)點(diǎn)的數(shù)據(jù)沖突。
采用雙絞線差分信號(hào)來傳送數(shù)據(jù),以降低單線的電壓升降幅度,減小信號(hào)的邊沿產(chǎn)生的高次諧波。
適當(dāng)?shù)淖寯?shù)據(jù)的邊沿具有一定的斜坡。
增加匹配電阻和電容等來減少總線上信號(hào)的發(fā)射和平衡總線上的分布電容等。
采用合適的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和屏蔽技術(shù)等來減少受其他信號(hào)的干擾。
還有就是在軟件上通過數(shù)字濾波、數(shù)據(jù)校驗(yàn)糾錯(cuò)等措施來提高數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
看了上面的是不是對(duì)總線沒有那么陌生了,感覺總線沒有那么恐怖了!!
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
cdma相關(guān)文章:cdma原理
雙絞線傳輸器相關(guān)文章:雙絞線傳輸器原理
評(píng)論