PART1 總線概述
在現(xiàn)今的嵌入式系統(tǒng)設(shè)計(jì)開發(fā)中,串行總線越來越多地代替了并行總線,串行總線具有很多優(yōu)勢,但在測試和調(diào)試上仍有一些挑戰(zhàn)。本次直播課從總線的基本概念開始,介紹幾種常見的低速串行總線(UART/I2C/CAN等等),并對CAN總線進(jìn)行實(shí)際測試的演示,讓您了解橫河測試儀器解決串行總線測試問題的方法,對儀器的分析功能有更進(jìn)一步的理解。
總線“BUS”概念最初來自于計(jì)算機(jī)系統(tǒng),是連接多個(gè)設(shè)備或者接入點(diǎn)的數(shù)據(jù)傳輸通路。打個(gè)比方,總線就是公共汽車線路,連接的設(shè)備就是公交站。傳輸?shù)臄?shù)據(jù)包就是乘客。每個(gè)乘客都要知道自己從哪站上,到哪站下,然后等到站的時(shí)候就下車進(jìn)入另一個(gè)設(shè)備進(jìn)行處理。公交車需要個(gè)調(diào)度室,所以總線需要有個(gè)控制器。
總線按照傳輸方式分為并行總線和串行總線,顧名思義,并行總線傳輸多少位數(shù)據(jù)就需要多少根數(shù)據(jù)線;而串行總線只需要一對數(shù)據(jù)線就能完成傳輸。按照時(shí)鐘信號是否獨(dú)立,串行總線可以分為同步總線和異步總線。同步總線的時(shí)鐘信號獨(dú)立于數(shù)據(jù),而異步總線的時(shí)鐘信號是從數(shù)據(jù)中提取出來的。SPI、I2C是同步串行總線,RS232采用異步串行總線。
串行總線
通常我們提到的"XX總線"、"XX接口"和"XX協(xié)議",這三者之間既有聯(lián)系又有區(qū)別:“總線”定義如前文所述;接口是一種連接標(biāo)準(zhǔn),是設(shè)備之間的連接電路,常常稱之為物理接口;協(xié)議就是傳輸數(shù)據(jù)的規(guī)則。協(xié)議定義了接口設(shè)備、器件及信號、總線及通道之間需要滿足的關(guān)系,即要實(shí)現(xiàn)信號的傳輸,所有這些成員必須通力合作,滿足協(xié)議要求的各種必要條件。簡單概況就是不同設(shè)備接口不同,但接口是連接在總線上面的,要按照協(xié)議來傳輸數(shù)據(jù)。
我們以USB總線為例,USB是Universal Serial Bus(通用串行總線)的縮寫,是一個(gè)外部總線標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊。我們通過下面的表格簡單了解一下三者間的關(guān)系:
|
總線
|
協(xié)議
|
接口
|
|
USB總線
|
USB1.1
|
TYPE A
|
|
TYPE B
|
|
USB2.0
|
MiniUSB
|
|
MicroUSB
|
|
USB3.0
USB4
|
TYPE C
|
最早我們使用是USB1.1協(xié)議的設(shè)備,后續(xù)使用USB2.0協(xié)議設(shè)備較多,現(xiàn)在最新的都是使用USB3.1(5G/10G)協(xié)議的設(shè)備,而新的USB4協(xié)議也已經(jīng)開發(fā)完成。
上圖是常用的USB接口的類型,在早期的數(shù)碼相機(jī)上我們還能見到其他一些類型的USB接口。
RS232和RS485是關(guān)于UART通訊的機(jī)械和電氣接口標(biāo)準(zhǔn),RS232標(biāo)準(zhǔn)規(guī)定采用帶25個(gè)腳的DB-25 連接器,對連接器的每個(gè)引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。后來IBM的PC 機(jī)將RS-232 接口簡化成了DB-9 連接器,從而成為今天的事實(shí)標(biāo)準(zhǔn)。而工業(yè)控制的RS-232 接口一般只使用RXD(2)、TXD(3)、GND(5)三條線。RS485標(biāo)準(zhǔn)的接口用于多點(diǎn)互連時(shí)非常方便,可以省掉許多信號線。在要求通信距離為幾十米到上千米時(shí),被廣泛采用,此處不再贅述。
Controller Area Network(控制器局域網(wǎng)絡(luò)),縮寫為CAN,由德國博世公司于上世紀(jì)80年代提出。目前CAN總線已經(jīng)是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。CAN的主要特點(diǎn):差分傳輸——抗噪性能好;多主控——所有節(jié)點(diǎn)沒有主從之分;柔性系統(tǒng)——節(jié)點(diǎn)沒有“地址”的概念,增加節(jié)點(diǎn)時(shí),不會對已有節(jié)點(diǎn)的軟硬件造成影響;通信速度靈活——可以配合網(wǎng)絡(luò)的規(guī)模和系統(tǒng)的機(jī)能進(jìn)行設(shè)定;錯(cuò)誤處理能力強(qiáng)——所有的節(jié)點(diǎn)都可以檢測出錯(cuò)誤;檢測出錯(cuò)誤的節(jié)點(diǎn)會立即通知總線上其它所有的節(jié)點(diǎn);數(shù)據(jù)可請求——某個(gè)節(jié)點(diǎn)可以通過發(fā)送“遠(yuǎn)程幀”的方式,請求某個(gè)節(jié)點(diǎn)來發(fā)送指定的報(bào)文。