Linux核心驅動之DDR3 三 引腳分析

2021-07-08 09:55:37 字數 2578 閱讀 7152

一 ddr3引腳描述

4bit和8bit位寬晶元一般採用78球fbga封裝 16bit位寬晶元一般採用96球fbga封裝 下列訊號方向都是針對ddr3晶元來說的 a0-a9,a10/ap,a11,a12/bc#,a13,a14    input 位址輸入訊號,行位址線和列位址線分時使用 

a10/ap 表示precharge命令期間對某個bank預充電auto-precharge a10為低則有ba[0,2]來決定哪個bank進行auto-precharge,a10為高電平表示對所有bank進行auto-precharge 

ba0,ba1,ba2                       input 

bank位址輸入訊號,三個bank位址線表明該ddr3內部有8個bank load mode命令期間定義ddr3晶元使用哪個模式(mr0,mr1,mr2) 

ck,ck#                            input 

差分時鐘輸入,所有控制和位址輸入訊號在ck上公升沿和ck#的下降沿交叉處被取樣,輸出資料選通(dqs,dqs#)參考ck和ck#的交叉點

cke                               input 

時鐘使能訊號,高電平有效,cke為低電平時提供precharge pown-down和self refresh操作(對所有bank裡行有效)

cs#                               input 

片選使能訊號當cs#為高的時候,所有的命令被遮蔽,cs#提供了多rank系統的rank選擇功能,cs#是命令**的一部分

dm(mask)                           input 

資料輸入遮蔽,每8bit資料對應乙個dm訊號,在寫期間,當伴隨輸入資料的dm訊號被取樣為高的時候,這8bit的輸入資料視為無效。

dm訊號相當於就是掩碼控制位,該訊號在讀操作時沒有用:比如在讀32bit資料,但只需要8bit資料,在軟體裡將高24bit置0就行,有沒有dm訊號都關係不大,但執行寫操作時,如果沒有dm訊號,可能程式只需要寫8bit資料,但是物理連線是32bit到ddr3,只要wr訊號有效,32bit資料就全部寫到ddr3裡邊去了,高24bit資料就被覆蓋了,有了dm訊號它對應的8bit資料就會被忽略,這樣就不會覆蓋其他資料了。對於4bit位寬ddr3,兩個晶元共用乙個dm訊號,對於8bit位寬ddr3晶元乙個晶元占用乙個dm訊號,對於16bit位寬ddr3晶元則需要2個dm訊號

雖然dm僅作為輸入腳,但是,dm負載被設計成與dq和dqs腳負載相匹配。dm的參考是vrefca。dm可選作為tdqs

odt                                 input 

片上終端使能。odt使能(高)和禁止(低)片內終端電阻。在正常操作使能的時候,odt僅對下面的管腳有效:dq[15:0],dqs,dqs#和dm。如果通過load mode命令禁止,odt輸入被忽略

ras#,cas#,we#                        input 命令輸入,這三個訊號,連同cs#用來定義乙個命令

reset#                               input 復位,低有效,參考是vss 

dq0-dq7/ dq0-dq15                   i/o 資料輸入/輸出。雙向資料

dqs,dqs#                             i/o 

資料選通。讀時是輸出,邊緣與讀出的資料對齊。寫時是輸入,中心與寫資料對齊。

dqs是ddr中的重要功能,它的功能主要用來在乙個時鐘週期內準確的區分出每個傳輸週期,並便於接收方準確接收資料。每8bit資料都有乙個dqs訊號線,它是雙向的,在寫入時它用來傳送由記憶體控制器發來的dqs訊號,讀取時,則由晶元生成dqs向記憶體控制器傳送。完全可以說,它就是資料的同步訊號。  

在讀取時,dqs與資料訊號同時生成(也是在ck與ck#的交叉點)。而ddr記憶體中的cl也就是從cas發出到dqs生成的間隔,dqs生成時,晶元內部的預取已經完畢了,由於預取的原因,實際的資料傳出可能會提前於dqs發生(資料提前於dqs傳出)。

dqs在讀取時與資料同步傳輸 

而在接收方,一切必須保證同步接收,不能有偏差。這樣在寫入時,晶元不再自己生成dqs,而以傳送方傳來的dqs為基準,並相應延後一定的時間,在dqs的中部為資料週期的選取分割點(在讀取時分割點就是上下沿),從這裡分隔開兩個傳輸週期。這樣做的好處是,由於各資料訊號都會有乙個邏輯電平保持週期,即使傳送時不同步,在dqs上下沿時都處於保持週期中,此時資料接收觸發的準確性無疑是最高的。

tdqs,tdqs#                           output 

終端資料選通。當tdqs使能時,dm禁止,tdqs和tdds提供終端電阻。 vdd 

電源電壓,1.5v+/-0.075v vddq 

dq電源,1.5v+/-0.075v。為了降低雜訊,在晶元上進行了隔離 vrefca 

資料的參考電壓。vrefdq在所有時刻(除了自重新整理)都必須保持規定的電壓

vss地 vssq 

dq地,為了降低雜訊,在晶元上進行了隔離 zq 

輸出驅動校準的外部參考。這個腳應該連線240ohm電阻到vssq

FPGA歷險記 DDR3之頻寬 位寬和頻率使用

本節主要介紹如何從ddr3的晶元選型和fpga晶元選型來確定mig的一些引數,這裡以晶元part number mt41j256m16rh 125 e為例,開啟晶元的資料手冊,會找到如下所示的介紹 io時鐘頻率 根據part number 中的 125 我們就可以找到圖中的 1 根據這裡tck 1....

Linux驅動(三) 核心執行緒

linux驅動 三 核心執行緒 小狼 一 核心執行緒的建立 執行及結束 kthread create wake up process kthread stop do exit kthread run kthread stop do exit kernel thread daemonize compl...

Linux核心之字元裝置驅動

學習計畫 1.vfs 虛擬檔案系統 vfs的作用就是採用標準的unix系統呼叫讀寫位於不同物理介質上的不同檔案系統。vfs是乙個可 以讓open read write 等系統呼叫不用關心底層的儲存介質和檔案系統型別就可以工作的 粘合層。在古老的dos作業系統中,要訪問本地檔案系統之外的檔案系統需要使...