嵌入式硬件知識

一,總線編程

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

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

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

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

控制總線spa

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

二,總線通訊方式blog

一、串行通訊 和 並行通訊接口

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

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

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

信息只能單向傳送爲單工;
信息能雙向傳送但不能同時雙向傳送稱爲半雙工;
信息可以同時雙向傳送則稱爲全雙工。
  
三、串行通訊根據是否有時鐘線進行同步又分爲 同步通訊、異步通訊

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

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

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

如圖所示(該圖中未畫出奇偶校驗位,由於奇偶檢驗位不是必須有的,若是有奇偶檢驗位,則奇偶檢驗位應該在數據位以後,中止位以前)。

 

  4,串口總線通訊

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

5,RS23二、RS49九、RS42三、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。

相關文章
相關標籤/搜索