999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Virtex-6 FPGA的eMMC控制器設計

2016-03-10 01:58:46張耀軍孫銘王锏
單片機與嵌入式系統應用 2016年2期

張耀軍,孫銘,王锏

(西安電子科技大學 電子信息攻防對抗與仿真重點實驗室, 西安 710071)

?

Virtex-6 FPGA的eMMC控制器設計

張耀軍,孫銘,王锏

(西安電子科技大學 電子信息攻防對抗與仿真重點實驗室, 西安 710071)

摘要:介紹了eMMC芯片的技術特點、工作原理,以及控制器的設計方案。該設計基于Xilinx公司的Virtex-6系列FPGA芯片,實現了控制器的設計方案,并給出了仿真結果,驗證了該設計方案的可行性。此外,該設計均采用硬件邏輯實現,具有速度快、通用性強、可靠性高的特點。

關鍵詞:FPGA;eMMC;控制器

引言

eMMC(embedded Multi Media Card)是由MMC協會所訂立的,主要針對手機、平板電腦等便攜式產品的內嵌式存儲器。eMMC存儲芯片的優勢在于將NAND Flash和主控芯片封裝成一個微型的BGA芯片,提供標準的接口并管理內存,不需要處理復雜的Flash兼容性和管理問題,使得應用廠商專注于產品開發的其他部分,從而縮短產品研發時間、降低研發成本。本設計是基于eMMC4.5(JESD84-B45)協議,并在FPGA(XC6VLX240T)上硬件實現,具有性能穩定、可移植性強、通用性好的特點,用戶無需關注底層物理協議,而且操作簡單。

1eMMC工作原理

1.1初始化

系統上電后,在eMMC能進行正常讀寫之前,必須按照協議規定的步驟完成初始化。 初始化過程如下:

① 復位進入Idle State的方式有兩種:一種是通過Power On即上電進入,另外一種是通過發送命令CMD0。復位之后所有的寄存器都復位成默認值,此時CLK需要設置成fOD的范圍,即0~400 kHz。

② 在Idle State發送命令CMD1,如果eMMC寄存器OCR回復值中的busy位為0,則上電復位仍未完成,需要一直發送命令CMD1,直到busy位為1且電壓匹配,則進入Ready State。

③ 在Ready State發送命令CMD2,如果命令發送成功,則得到CID寄存器的值,而eMMC進入Identification State,若不成功,則eMMC狀態不變。

④ 在Identification State發送命令CMD3,完成RCA地址分配,其中多片eMMC依靠分配不同的RCA地址來區分,進入Stand-by State,當eMMC芯片進入Stand-by State,不再響應命令CMD1、CMD2和CMD3。

⑤ 在Stand-by State,首先發送命令CMD9,獲取設備寄存器CSD的值,可以得到如塊長度、存儲容量、最大時鐘速率等。然后發送命令CMD7,通過參數中包含設備已分配的相對地址來選定設備,進入Transfer State。

⑥ 在Transfer State發送命令CMD6,其中包含切換工作速率的參數,將eMMC初始化低速時鐘切換到正常工作的高速時鐘。再次發送命令CMD6,其中包含數據位寬和單雙沿模式的參數,默認模式是一位數據位寬和單沿模式,轉換數據位寬和單雙沿模式,此時eMMC停留在Transfer State,初始化工作全部完成。eMMC初始化流程圖如圖1所示。

圖1 eMMC初始化流程圖

1.2數據讀

eMMC初始化完成后進入數據傳輸模式(即Transfer Mode),它是eMMC的工作模式, 在此模式下可實現對eMMC的數據讀寫。當沒有數據傳輸時,DAT0~DAT7處于高電平狀態,數據傳輸是以數據包為單位的,數據傳輸封包結構是一位開始位0,接著是數據流,包含了數據和CRC校驗碼,最后是一位結束位1,其中數據傳輸和時鐘是同步的。數據基本的傳輸單元是Block,它的最大長度被定義在CSD中的READ_BL_LEN。

數據讀分為單塊讀和多塊讀。單塊讀操作開始時,主機先發送CMD16(SET_BLOCKLEN)設置塊長度,eMMC接收后再發送CMD17命令讀取單塊數據,單塊數據讀完成后自動返回Transfer State,等待下一次讀操作。多塊讀操作開始時,主機同樣先發送CMD16設置塊長度,然后發送CMD23命令設置讀取塊個數,接著發送CMD18命令開始讀取單塊數據,每次單塊數據讀取完成則塊計數加1,直到塊計數等于預定塊個數,多塊讀完成,返回Transfer State,進入下一輪讀過程。其中須注意命令CMD17、CMD18設置讀取塊開始地址時,地址只有32位(4 GB),對于容量小于2 GB的芯片來說,地址即為每一位字節地址,對于容量大于2 GB的芯片來說,地址為扇區地址,每個扇區為512 KB。如果想要進行局部塊讀操作,則必須事先通過發送命令CMD9查看CSD寄存器中的READ_BLK_MISALIGNED和READ_BL_PARTIAL的值是否為0,若不為0,則系統不允許局部塊讀,讀數據時,讀出塊大小必須為512 B或者CSD中READ_BL_LEN[83∶80]設置的值。eMMC數據讀流程圖如圖2所示。

圖2 eMMC數據讀流程圖

1.3數據寫

寫操作的數據傳輸格式與讀操作相同,均由開始位、數據、CRC校驗、結束位構成。eMMC有嚴格的數據寫入檢查機制,通過檢查CRC校驗位來判斷接收到的數據是否正確,數據正確則允許寫入,否則將被舍棄。數據寫分為單塊寫和多塊寫。單塊寫操作開始時,主機先發送CMD16(SET_BLOCKLEN)設置塊長度,eMMC接收并響應后,再發送CMD24命令寫入單塊數據,單塊數據寫完成后自動返回Transfer Stae,等待下一次寫操作。多塊寫入方式有3種:開放式寫入、塊寫入和可靠寫入。其中前兩種方式與可靠寫入的區別在于后者具有數據的保護寫入機制:其一是新數據未寫入之前,原數據保持不變;其二是在編程過程中即使掉電數據也會保持有效。

在可靠性寫入中,所有塊長度均為512 KB,不受設置塊長度影響,可靠性寫入必須是與扇區對齊的,不能任意指定地址,如果沒有對齊將終止寫入操作。一般情況使用塊寫入方式,當多塊寫操作開始時,主機同樣先發送CMD16設置塊長度,然后發送CMD23命令設置寫入塊個數,接著發送CMD25命令開始寫入數據,每次單塊寫入完成則塊計數加1,直到塊計數等于預定塊個數,多塊寫完成后,返回Transfer State,等待下一輪寫過程。與讀過程一樣,寫過程也分寫字節地址和寫扇區地址,如果想要局部塊寫入操作,也必須事先通過CMD9命令查看CSD寄存器中的WRITE_BLK_MISALIGNED是否為0,若不為0,則系統不允許局部塊寫入,塊寫入時也要注意寫入塊必須與物理地址對齊。eMMC數據寫流程圖如圖3所示。

圖3 eMMC數據寫流程圖

2eMMC控制器設計方案

本文設計的基于FPGA的eMMC控制器包括初始化模塊、傳輸控制模塊、時鐘模塊、命令接口模塊、數據處理模塊、緩存模塊。各模塊功能如下:

① 初始化模塊。初始化模塊的主要功能是完成對eMMC的基本配置工作(如復位、電壓匹配、RCA地址分配、時鐘切換、數據位寬設置等)。

② 傳輸控制模塊。傳輸控制模塊主要是在eMMC讀寫操作時完成讀寫命令的發送、命令響應的對應處理以及數據CRC校驗的比對,另外傳輸控制模塊還要與上層用戶交互。

③ 時鐘模塊。由于eMMC芯片初始化時鐘和工作時鐘速度要求不同,所以時鐘模塊要提供時鐘切換的功能,但簡單的多路選擇切換電路會產生毛刺,導致時鐘不穩定,所以本文設計了防毛刺時鐘切換電路,電路原理圖如圖4所示。

圖4 eMMC防毛刺時鐘切換電路圖

④ 命令接口模塊。命令接口模塊的主要功能是將并行命令轉換成串行命令發送給eMMC,接收eMMC響應的命令,并根據其響應的結果做出相應的處理。

⑤ 數據處理模塊。數據處理模塊的主要功能是通過eMMC的DAT接口讀寫eMMC數據,并對讀寫數據進行CRC校驗。

⑥ 緩存模塊。緩存模塊是通過FPGA定制的FIFO IP核,暫存讀寫數據。

eMMC控制器各模塊之間需要相互協同工作。控制器工作時,初始化模塊發送一系列初始化命令給命令接口模塊,命令接口模塊將命令通過CMD(Inout型)信號線發送給eMMC芯片,此模塊發送命令之后就等待eMMC芯片響應,根據響應命令來確定初始化流程狀態,期間通過初始化的高速切換標志通知時鐘切換模塊切換到高速時鐘,初始化完成之后,通知用戶層可以開始進行數據傳輸;用戶層向傳輸控制模塊發送命令(如讀寫地址、讀寫塊數、讀寫屬性),然后傳輸控制模塊解析上層用戶的命令發送相應的讀寫命令給命令接口模塊,而命令接口模塊將命令轉發給eMMC;當讀數據時,eMMC將數據通過DAT接口發送給數據處理模塊,數據處理模塊將對讀出的數據進行CRC校驗,并將eMMC響應的CRC校驗值和數據處理模塊計算的值一起發給傳輸控制模塊,在傳輸控制模塊中對比CRC校驗值,如果一致,則讀取完成,將數據存儲到緩存模塊,然后傳輸給用戶層,否則傳輸控制模塊將重新發送讀取命令,重新讀取數據,直到CRC校驗一致為止;當寫數據時,用戶層將數據暫存到緩存模塊,緩存模塊將數據傳輸給數據處理模塊并計算CRC校驗值,然后將數據封包發送給eMMC,eMMC內部將自動對比CRC校驗值,如果一致,則寫入eMMC,否則將被舍棄,并通過命令接口反映給傳輸控制模塊,重新發送命令,直到CRC校驗值一致則寫入完成。多塊讀寫重復以上讀寫過程,直到塊數和預定的塊數一致為止。eMMC控制器框圖如圖5所示。

圖5 eMMC控制器框圖

3仿真驗證結果

本文在Xilinx 集成開發工具ISE14.6開發環境下,用Verilog HDL硬件編程語言實現eMMC控制器的總體功能以及各模塊功能,使用ISE在線邏輯分析儀Chipscope來仿真和驗證控制器功能。仿真驗證結果如圖6~圖10所示。

圖6 eMMC控制器初始化過程

圖7 eMMC控制器單塊讀

圖8 eMMC控制器多塊讀

圖9 eMMC控制器單塊寫

圖10 eMMC控制器多塊寫

結語

通過對eMMC的技術特點和工作原理的分析,提出

參考文獻

[1] 夏宇聞.Verilog數字系統設計教程[M].北京:北京航空航天大學出版社,2008.

[2] 潘松,黃繼業,陳龍.EDA技術與Verilog HDL[M].北京:清華大學出版社,2010.

[3] 劉常.數字邏輯電路[M].北京:國防工業出版社,2002.

[4] JEDEC SOLID STATE TECHNOLOGY ASSOCIATION.JEDEC STANDARD eMMC specification[S].USA:JESD84-B45,2011.

[5] 曹軍.安全SOC芯片中eMMC 主接口的設計與實現[D].沈陽:遼寧大學,2014.

[6] 胡文文.基于eMMC存儲系統性能的研究和優化[D].北京:北京郵電大學,2012.

[7] 周杰,郝立燕,李建廠.基于FPGA的eMMC控制器及其工作方法:中國,103280238A[P].2013-09-04.

[8] 鄭亮.SD/MMC控制器的設計與實現[D].廈門:廈門大學,2008.

[9] Xilinx Company.Virtex-6 FPGA Packing and Pinout Specifications.UG365(v2.4),2011.

[10] Xilinx Company.Virtex-6 FPGA Memory Resources User Guide.UG363(v1.6),2013.

張耀軍(碩士),研究方向為基于FPGA的高速海量數據傳輸與存儲;孫銘(碩士),研究方向為基于FPGA的電子系統設計;王锏(碩士),研究方向為基于FPGA的海量數據傳輸。

TI為中國互聯網企業帶來創新物聯網解決方案

TI與騰訊、百度、阿里巴巴及京東四家中國領先的互聯網企業建立了IoT合作伙伴關系。通過久經行業驗證的低功耗和超低功耗SimpleLink線MCU產品組合,TI針對四家企業的不同IoT應用提供了多種創新的無線連接解決方案。SimpleLink產品組合包括面向廣泛嵌入式市場的無線MCU、無線網絡處理器(WNP) 、RF收發器和距離擴展器,能夠簡化IoT應用的開發并輕松實現萬物互聯。憑借對Bluetooth Smart、Wi-Fi、Sub-1 GHz、6LoWPAN、ZigBee等多達14項無線連接標準的支持,該產品組合可幫助生產商將無線連接功能輕松添加至任何產品和設計中,并滿足所有的應用需求。

作為此次TI與騰訊的合作項目之一,微信將指定TI作為其Bluetooth Smart以及Wi-Fi芯片的供應商,其終端用戶可以在TI的無線芯片上實現AirKiss和AirSync協議,并接入騰訊推廣的微信硬件平臺。未來,微信還希望將其合作論壇的一部分權限開放給TI,讓TI的技術工程人員能夠在論壇上為開發者提供支持,共同打造更多的創新應用。

eMMC Controller Design Based on Virtex-6 FPGA

Zhang Yaojun,Sun Ming,Wang Jian

(Key Lab of Electronic Information Countermeasure and Simulation,Xidian University,Xi’an 710071,China)

Abstract:The technical characteristics,working principle of the eMMC chip,and the design of the controller are introduced.The design is based on Xilinx Virtex-6 series FPGA chip,and the simulation results are given.The test verifies the feasibility of the design.In addition,the design adopts the hardware logic,which has the characteristics of high speed,strong commonality,high reliability.

Key words:FPGA;eMMC;controller

收稿日期:(責任編輯:薛士然2015-08-24)

中圖分類號:TP37

文獻標識碼:A

主站蜘蛛池模板: 91九色最新地址| 欧美无遮挡国产欧美另类| 国产精品真实对白精彩久久| 亚洲国产精品人久久电影| 精品三级在线| 亚洲视频免费播放| 国产成人夜色91| 亚洲中文字幕无码爆乳| 亚洲美女操| 小13箩利洗澡无码视频免费网站| 午夜精品久久久久久久无码软件| 国产aⅴ无码专区亚洲av综合网 | 久久精品国产在热久久2019 | 亚洲色婷婷一区二区| 国产在线观看成人91| 欧美午夜小视频| 日本高清免费不卡视频| 免费一级毛片不卡在线播放| 日本人妻丰满熟妇区| 玖玖免费视频在线观看| 日韩无码真实干出血视频| 国产成人久久777777| 美女免费精品高清毛片在线视| 91在线无码精品秘九色APP| av一区二区人妻无码| 免费在线不卡视频| 色窝窝免费一区二区三区| 无码人妻免费| 国产精品开放后亚洲| 午夜色综合| 欧美啪啪网| 美女无遮挡免费网站| 国产手机在线ΑⅤ片无码观看| 熟女视频91| 99r在线精品视频在线播放| 亚洲成网站| 日韩精品亚洲一区中文字幕| 亚洲精品视频在线观看视频| 欧洲极品无码一区二区三区| 韩国v欧美v亚洲v日本v| 亚洲综合色婷婷中文字幕| 亚洲成a人片7777| 澳门av无码| 国产精品免费露脸视频| 一本大道香蕉高清久久| 看国产一级毛片| 国产成年女人特黄特色大片免费| 欧美日本激情| 午夜国产大片免费观看| 蜜桃视频一区二区三区| 97国产精品视频人人做人人爱| 中字无码av在线电影| 成人国产精品网站在线看| 国产尤物在线播放| 精品综合久久久久久97| 精品亚洲国产成人AV| 欧美在线伊人| 久久亚洲精少妇毛片午夜无码| 欧美午夜在线观看| 日日碰狠狠添天天爽| 女人18毛片一级毛片在线 | 亚洲第一天堂无码专区| 亚洲成人黄色网址| 国产精品综合色区在线观看| 亚洲乱伦视频| 91免费精品国偷自产在线在线| 成人日韩精品| 久久国产精品影院| 在线观看欧美国产| a欧美在线| 91免费国产高清观看| 青青操视频免费观看| 亚洲精品va| 天天躁夜夜躁狠狠躁躁88| 国产视频自拍一区| 青青国产在线| 久青草网站| 日韩在线成年视频人网站观看| 亚洲国产日韩在线观看| 福利片91| 亚洲伊人久久精品影院| 国产精品不卡片视频免费观看|