• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Virtex-6 FPGA的eMMC控制器設(shè)計(jì)

      2016-03-10 01:58:46張耀軍孫銘王锏
      關(guān)鍵詞:控制器

      張耀軍,孫銘,王锏

      (西安電子科技大學(xué) 電子信息攻防對抗與仿真重點(diǎn)實(shí)驗(yàn)室, 西安 710071)

      ?

      Virtex-6 FPGA的eMMC控制器設(shè)計(jì)

      張耀軍,孫銘,王锏

      (西安電子科技大學(xué) 電子信息攻防對抗與仿真重點(diǎn)實(shí)驗(yàn)室, 西安 710071)

      摘要:介紹了eMMC芯片的技術(shù)特點(diǎn)、工作原理,以及控制器的設(shè)計(jì)方案。該設(shè)計(jì)基于Xilinx公司的Virtex-6系列FPGA芯片,實(shí)現(xiàn)了控制器的設(shè)計(jì)方案,并給出了仿真結(jié)果,驗(yàn)證了該設(shè)計(jì)方案的可行性。此外,該設(shè)計(jì)均采用硬件邏輯實(shí)現(xiàn),具有速度快、通用性強(qiáng)、可靠性高的特點(diǎn)。

      關(guān)鍵詞:FPGA;eMMC;控制器

      引言

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

      1eMMC工作原理

      1.1初始化

      系統(tǒng)上電后,在eMMC能進(jìn)行正常讀寫之前,必須按照協(xié)議規(guī)定的步驟完成初始化。 初始化過程如下:

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

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

      ③ 在Ready State發(fā)送命令CMD2,如果命令發(fā)送成功,則得到CID寄存器的值,而eMMC進(jìn)入Identification State,若不成功,則eMMC狀態(tài)不變。

      ④ 在Identification State發(fā)送命令CMD3,完成RCA地址分配,其中多片eMMC依靠分配不同的RCA地址來區(qū)分,進(jìn)入Stand-by State,當(dāng)eMMC芯片進(jìn)入Stand-by State,不再響應(yīng)命令CMD1、CMD2和CMD3。

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

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

      圖1 eMMC初始化流程圖

      1.2數(shù)據(jù)讀

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

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

      圖2 eMMC數(shù)據(jù)讀流程圖

      1.3數(shù)據(jù)寫

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

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

      圖3 eMMC數(shù)據(jù)寫流程圖

      2eMMC控制器設(shè)計(jì)方案

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

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

      ② 傳輸控制模塊。傳輸控制模塊主要是在eMMC讀寫操作時(shí)完成讀寫命令的發(fā)送、命令響應(yīng)的對應(yīng)處理以及數(shù)據(jù)CRC校驗(yàn)的比對,另外傳輸控制模塊還要與上層用戶交互。

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

      圖4 eMMC防毛刺時(shí)鐘切換電路圖

      ④ 命令接口模塊。命令接口模塊的主要功能是將并行命令轉(zhuǎn)換成串行命令發(fā)送給eMMC,接收eMMC響應(yīng)的命令,并根據(jù)其響應(yīng)的結(jié)果做出相應(yīng)的處理。

      ⑤ 數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊的主要功能是通過eMMC的DAT接口讀寫eMMC數(shù)據(jù),并對讀寫數(shù)據(jù)進(jìn)行CRC校驗(yàn)。

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

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

      圖5 eMMC控制器框圖

      3仿真驗(yàn)證結(jié)果

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

      圖6 eMMC控制器初始化過程

      圖7 eMMC控制器單塊讀

      圖8 eMMC控制器多塊讀

      圖9 eMMC控制器單塊寫

      圖10 eMMC控制器多塊寫

      結(jié)語

      通過對eMMC的技術(shù)特點(diǎn)和工作原理的分析,提出

      參考文獻(xiàn)

      [1] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.

      [2] 潘松,黃繼業(yè),陳龍.EDA技術(shù)與Verilog HDL[M].北京:清華大學(xué)出版社,2010.

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

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

      [5] 曹軍.安全SOC芯片中eMMC 主接口的設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽:遼寧大學(xué),2014.

      [6] 胡文文.基于eMMC存儲系統(tǒng)性能的研究和優(yōu)化[D].北京:北京郵電大學(xué),2012.

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

      [8] 鄭亮.SD/MMC控制器的設(shè)計(jì)與實(shí)現(xiàn)[D].廈門:廈門大學(xué),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.

      張耀軍(碩士),研究方向?yàn)榛贔PGA的高速海量數(shù)據(jù)傳輸與存儲;孫銘(碩士),研究方向?yàn)榛贔PGA的電子系統(tǒng)設(shè)計(jì);王锏(碩士),研究方向?yàn)榛贔PGA的海量數(shù)據(jù)傳輸。

      TI為中國互聯(lián)網(wǎng)企業(yè)帶來創(chuàng)新物聯(lián)網(wǎng)解決方案

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

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

      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

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

      中圖分類號:TP37

      文獻(xiàn)標(biāo)識碼:A

      猜你喜歡
      控制器
      工商業(yè)IC卡控制器改造為物聯(lián)網(wǎng)控制器實(shí)踐
      基于DSP的復(fù)合跟蹤控制器的設(shè)計(jì)
      模糊PID控制器設(shè)計(jì)及MATLAB仿真
      MOXA RTU控制器ioPAC 5542系列
      紅獅控制 PID控制器PXU系列
      4V三輸出同步降壓型控制器
      麻城市| 岱山县| 民县| 湖南省| 罗山县| 卢氏县| 封丘县| 花莲县| 中江县| 阿克| 偃师市| 施秉县| 汉阴县| 丹东市| 会昌县| 织金县| 太原市| 平南县| 宁安市| 桓台县| 玉溪市| 德兴市| 通城县| 玉田县| 平利县| 静宁县| 永胜县| 临颍县| 大埔区| 彭州市| 太仆寺旗| 敦煌市| 理塘县| 洞头县| 阿坝县| 依安县| 名山县| 临西县| 双牌县| 东台市| 宜阳县|