1. 程式人生 > >嵌入式硬件知識

嵌入式硬件知識

圖片 spi 異步通信 stat font 寬度 osi strong 脈沖

一,總線

地址總線 想象100個停車位需要多少根線編碼? 指針? 7根,

(1)CPU是通過地址總線來指定存儲單元的。指針的大小實際上是由CPU的尋址位數決定
(2)地址總線決定了cpu所能訪問的最大內存空間的大小。eg: 10根地址線能訪問的最大的內存為1024位二進制數據(1B)
(3)地址總線是地址線數量之和。

數據總線 想象2車道、4車道、6車道?

(1) 是CPU與內存或其他器件之間的數據傳送的通道。
(2)數據總線的寬度決定了CPU和外界的數據傳送速度。
(3)每條傳輸線一次只能傳輸1位二進制數據。eg: 8根數據線一次可傳送一個8位二進制數據(即一個字節)。
(4)數據總線是數據線數量之和。

控制總線

(1)CPU通過控制總線對外部器件進行控制。
(2)控制總線的寬度決定了CPU對外部器件的控制能力。
(3)控制總線是控制線數量之和。

二,總線通信方式

1、串行通信 和 並行通信

並行通訊通常可以一次傳送8bit、16bit、32bit甚至更高的位數,相應地就需要8根、16根、32根信號線,同時需要加入更多的信號地線。傳輸速度快,距離近;

串行通訊的數據線比較少,這樣一條信息的各位數據被逐位按順序傳送。串行通訊的特點是:數據位傳送,傳按位順序進行,最少只需一根傳輸線即可完成,成本低但送速度慢

2、串行通訊根據信息的傳送方向可分為單工、半雙工和全雙工三種

信息只能單向傳送為單工;
信息能雙向傳送但不能同時雙向傳送稱為半雙工;
信息能夠同時雙向傳送則稱為全雙工。

3、串行通信根據是否有時鐘線

進行同步又分為 同步通信、異步通信

同步通信是一種比特同步通信技術,要求發收雙方具有同頻同相的同步時鐘信號,只需在傳送報文的最前面附加特定的同步字符,使發收雙方建立同步,此後便在同步時鐘的控制下逐位發送/接收。
異步通信在發送字符時,所發送的字符之間的時隙可以是任意的。但是接收端必須時刻做好接收的準備(如果接收端主機的電源都沒有加上,那麽發送端發送字符就沒有意義,因為接收端根本無法接收)。

發送端可以在任意時刻開始發送字符,因此必須在每一個字符的開始和結束的地方加上標誌,即加上開始位和停止位,以便使接收端能夠正確地將每一個字符接收下來

異步通信規定傳輸的數據格式由起始位(start bit)、數據位(data bit)、奇偶校驗位(parity bit)和停止位(stop bit)組成,

如圖所示(該圖中未畫出奇偶校驗位,因為奇偶檢驗位不是必須有的,如果有奇偶檢驗位,則奇偶檢驗位應該在數據位之後,停止位之前)。

技術分享圖片

4,串口總線通信

識別管腳的位置對應哪一位。實現通信至少要2到3根線,其中GND是判別低電平。

技術分享圖片

5,RS232、RS499、RS423、RS422和RS485等接口標準規範和總線標準規範

TTL電平:輸出低電平要小於0.8V,高電平要大於2.4V;輸入低於1.2V就認為是0,高於2.0就認為是1;
RS232電平:邏輯1的電平為-3~-15V,邏輯0的電平為+3~+15V,介於-3~+3V之間的電壓無意義;
RS485電平:差分信號-2500mv~-200mv為邏輯0;差分信號+2500mv~+200mv為邏輯1;-200mv~+200mv為高阻狀態
MAX232芯片是 TTL電平與RS232電平的專用雙向轉換芯片,可以TTL轉RS-232,也可以RS-232轉TTL;

TTL與RS232 他們在數據傳送上都是一個bit位傳輸(串行),數據格式也是一樣的。最大的區別是他們硬件上有很大的不同。TTL以Vcc作為高電平1(3.3v或5v),以0作為低電平。

而Rs232以-3~-15作為高電平,3~15作為低電平,這種設置使得Rs232更抗電磁幹擾和信號的衰減。因此陀螺儀串口發送采用了Rs232,但是你得先把TTL轉換成Rs232才行

三,總線類型

1,I2C總線

使用:給地址,方向,最後數據 如選定哪個slave,再定讀還是寫,最後給數據。大端字節序

I2C是由Philips公司發明的一種串行數據通信協議,僅使用兩根信號線:SerialClock(簡稱SCL)和SerialData(簡稱SDA)。I2C是總線結構,1個Master,1個或多個Slave,

各Slave設備以7位地址區分,地址後面再跟1位讀寫位,表示讀(=1)或者寫(=0),所以我們有時也可看到8位形式的設備地址,此時每個設備有讀、寫兩個地址,高7位地址其實是相同的。

系統中可能有多個同種芯片,為此addr分為固定部分和可編程部份

技術分享圖片技術分享圖片

技術分享圖片

1.空閑狀態
 I2C總線總線的SDA和SCL兩條信號線同時處於高電平時,規定為總線的空閑狀態。由兩條信號線各自的上拉電阻把電平拉高。

2.起始位與停止位的定義:
起始信號:當SCL為高期間,SDA由高到低的跳變;啟動信號是一種電平跳變時序信號,而不是一個電平信號。
停止信號:當SCL為高期間,SDA由低到高的跳變;停止信號也是一種電平跳變時序信號,而不是一個電平信號。

3.數據的有效性:
I2C總線進行數據傳送時,時鐘信號為高電平期間,數據線上的數據必須保持穩定,只有在時鐘線上的信號為低電平期間,數據線上的高電平或低電平狀態才允許變化。

4.ACK/NACK
  發送器每發送一個字節,就在時鐘脈沖9期間釋放數據線,由接收器反饋一個應答信號。 應答信號為低電平時,規定為有效應答位(ACK簡稱應答位),表示接收器已經成功地接收了該字節;

應答信號為高電平時,規定為非應答位(NACK),一般表示接收器接收該字節沒有成功。 對於反饋有效應答位ACK的要求是,接收器在第9個時鐘脈沖之前的低電平期間將SDA線拉低,

並且確保在該時鐘的高電平期間為穩定的低電平。 如果接收器是主控器,則在它收到最後一個字節後,發送一個NACK信號,以通知被控發送器結束數據發送,並釋放SDA線,

以便主控接收器發送一個停止信號P。

二,SPI總線

PI全稱是串行外設接口(Serial Peripheral Interface),是由Motorola提出的一種全雙工同步串行通信接口,通信波特率可以高達5Mbps,

但具體速度大小取決於SPI硬件。SPI接口具有全雙工操作,操作簡單,數據傳輸速率較高的優點,但也存在沒有指定的流控制,

沒有應答機制確認是否接收到數據的缺點。

SPI總線只需四條線(如圖所示)就可以完成MCU與各種外圍器件的通訊:

技術分享圖片


1)MOSI – Master數據輸出,Slave數據輸入 2)MISO – Master數據輸入,Slave數據輸出
3)SCK – 時鐘信號,由Master產生 4)/CS – Slave使能信號,由Master控制。

SPI通信采用主從模式(Master-Slave)架構,一般為一個Master和多個Slave的應用模式。

SPI主要特點有:可以同時發出和接收串行數據;可以當作主機或從機工作;提供頻率可編程時鐘;發送結束中斷標誌;寫沖突保護;總線競爭保護等。

SPI工作原理:

技術分享圖片

PI接口在內部硬件實際上是兩個簡單的移位寄存器,傳輸的數據為8位,在主器件產生的從器件使能信號和移位脈沖下,按位傳輸,高位在前,低位在後。

如上右圖所示,在SCLK的下降沿上數據改變,上升沿一位數據被存入移位寄存器。SPI接口沒有指定的流控制,沒有應答機制確認是否接收到數據

四,內存

根據內存的工作原理劃分出的兩種內存:SRAM(Static Random Access Memory)與DRAM(Dynamic Random Access Memory)
DRAM是一種以電荷形式進行存儲的半導體存儲器,每個存儲單元由一個晶體管和一個電容器組成。數據存儲在電容器中。電容器會由於漏電而導致電荷丟失,因而DRAM器件是不穩定的。

為了將數據保存在存儲器中,DRAM器件必須有規律地進行刷新。
SRAM每個存儲單元需要四到六個晶體管和其他零件,接通代表1,斷開表示0,並且狀態會保持到接收了一個改變信號為止。這些晶體管不需要刷新,但停機或斷電時,它們同DRAM一樣,會丟掉信息。

SRAM的速度非常快,通常能以20ns或更快的速度工作。所以,除了價格較貴外,SRAM芯片在外形上也較大,與DRAM相比要占用更多的空間。

SRAM的高速和靜態特性使它們通常被用來作為Cache存儲器。

SDRAM(Synchronous Dynamic Random Access Memory)在一個時鐘周期內只傳輸一次數據,它是在時鐘的上升期進行數據傳輸;
DDR(Double Data Rate SDRAM)內存則是一個時鐘周期內傳輸兩次次數據,它能夠在時鐘的上升期和下降期各傳輸一次數據;

在嵌入式MCU中,cache一般是SRAM,外接內存一般都支持SDRAM,現在的ARM處理器普遍都可以支持DDR內存。SDRAM單片大小一般最大到64MB左右,而DDRAM可以到GB。

嵌入式硬件知識