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

基于FPGA的高速eMMC磁盤陣列控制器設計

2021-11-18 12:14:18曹劍鋒陜西秦泰陽光電力工程有限公司
品牌研究 2021年5期
關鍵詞:信號

文/曹劍鋒(陜西秦泰陽光電力工程有限公司)

一、整體結構

整體上,系統由FPGA芯片、eMMC芯片、電源及周邊電路、上位機等部分組成。本設計采用4片支持eMMC5.1標準的eMMC芯片組成磁盤陣列,4片eMMC芯片單獨連接至FPGA。FPGA內部實現了eMMC磁盤陣列控制器用于控制eMMC磁盤陣列。為了對設計的控制器進行測試驗證,FPGA內部還實現了一個萬兆網模塊,通過光模塊與具備萬兆網卡的上位機連接,編寫了上位機軟件用于讀寫eMMC磁盤陣列。本文介紹的是設計eMMC磁盤陣列控制器的設計思想。

二、eMMC陣列控制器

eMMC磁盤陣列控制器主要由同步傳輸控制模塊和4個eMMC驅動模塊組成。4個eMMC驅動模塊分別連接4個eMMC芯片。

圖1 系統結構圖

eMMC驅動模塊直接和eMMC芯片打交道,該模塊實現對其所連接的eMMC芯片進行初始化和讀寫操作等功能。該模塊向下連接eMMC芯片,向上連接同步傳輸控制模塊。執行同步傳輸控制模塊發來的命令,控制eMMC作出相應的動作;讀取eMMC反饋的狀態信息,向同步傳輸控制模塊發送運行狀態信息。同時,當執行讀操作時,從eMMC獲取數據,向同步傳輸控制模塊發送數據;當執行寫操作時,獲取同步傳輸控制模塊發來的數據,發送給eMMC寫入。

同步傳輸控制模塊實現了4片eMMC芯片數據的同步讀寫、同步控制、提供統一對外接口等功能。同步傳輸控制模塊向下連接4個eMMC驅動模塊,向上形成eMMC磁盤陣列控制器的對外接口,用于連接萬兆網模塊。連接萬兆網模塊的接口包括數據接口和控制接口,數據接口采用標準AXI-stream接口,控制接口包括命令和狀態信號。

eMMC驅動模塊連接eMMC的信號包括8位數據信號、命令信號、時鐘信號等;同步傳輸控制模塊連接每個eMMC驅動模塊的接口包括數據接口和控制接口,其中數據接口信號包括8位讀數據信號、8位寫數據信號,控制接口包括命令信號和狀態信號。

(一)同步傳輸控制模塊

同步傳輸控制模塊主要包括數據FIFO和狀態控制模塊。數據FIFO建立了萬兆網模塊與eMMC驅動模塊之間的數據通道。當進行寫操作時,數據從萬兆網模塊通過寫數據FIFO傳送到eMMC驅動模塊。當進行數據讀取操作時,數據由eMMC驅動通過讀數據FIFO傳送到萬兆網模塊。

狀態控制模塊收集各個模塊的工作狀態和來自上位機的命令,控制各個模塊協同工作,完成讀寫傳輸操作。

狀態控制模塊連接著萬兆網模塊的控制接口,能夠接收萬兆網模塊發來的來自上位機的命令,并能夠將eMMC磁盤陣列控制器的工作狀態傳輸給萬兆網模塊,進而上報上位機,實現對eMMC磁盤陣列控制器的操作。

狀態控制模塊連接著4個eMMC驅動模塊的控制接口,能夠獲取eMMC驅動模塊報告的工作狀態;能夠向eMMC驅動模塊下發命令,控制eMMC驅動模塊的讀寫等操作。

狀態控制模塊連接著讀數據FIFO和寫數據FIFO,能夠獲取各個FIFO的工作狀態,能夠根據萬兆網模塊來的命令和eMMC驅動模塊的工作狀態控制各個FIFO的工作狀態,從而實現數據的同步讀寫傳輸操作。

(二)eMMC驅動模塊結構

eMMC驅動模塊具體實現了對eMMC芯片的各種操作。eMMC驅動模塊由命令接口模塊、數據接口模塊、初始化模塊和讀寫控制模塊等組成。

圖2 eMMC陣列控制器結構圖

命令接口模塊用于在CMD信號線上發送命令和接收響應。該模塊形成eMMC標準命令格式的48位命令數據,將命令數據轉換為串行數據,并通過CMD信號線發送給eMMC芯片;通過CMD信號線接收eMMC芯片返回的響應數據,并將串行數據轉化為并行數據,然后解析eMMC芯片的響應數據,以便判斷命令是否成功執行,獲取eMMC芯片的工作狀態等。命令接口由狀態控制模塊、命令形成模塊、響應解析模塊等部分組成。

數據接口模塊用于在eMMC芯片數據線上發送和接收數據。數據接口模塊由發送數據模塊和接收數據模塊組成。本設計采用HS400工作模式,數據會在時鐘的上升沿和下降沿傳輸。當發送數據時,發送數據模塊按照eMMC標準規定的數據格式在8根數據線上送出數據包,即1個周期的開始信號、256個時鐘周期共512字節數據、16個周期的CRC數據和一個結束信號;當接收數據時,接收數據模塊接收8根數據線上的數據包,即1個周期的開始信號、256個周期共512字節數據、16個周期的CRC數據和一個結束信號。在接收256個時鐘周期的數據時計算CRC,在接收完數據包后將計算的CRC與接收到的CRC比較,若相同則接收成功,若不同則接收失敗。

初始化模塊用于對eMMC芯片進行初始化,使其進入傳輸模式,以便進行讀寫操作。同時,初始化模塊用于監控eMMC的工作狀態,當出現故障時,初始化模塊重新對eMMC芯片執行初始化操作。初始化模塊還向同步傳輸模塊報告eMMC芯片的工作狀態。初始化模塊包括初始化狀態機模塊和狀態監測模塊。初始化狀態機用于執行eMMC標準規定的初始化流程,狀態監測模塊用于監測eMMC工作狀態。初始化模塊接收同步傳輸模塊發來的命令,向命令接口模塊發送需要發送的命令,并接收命令接口模塊報告的eMMC工作狀態。

讀寫控制模塊用于實現對eMMC芯片的讀、寫、擦除等操作功能。讀寫控制模塊包括讀控制模塊、寫控制模塊、擦除控制模塊等部分。當讀寫控制模塊收到同步傳輸控制模塊發來的命令時,根據指令執行不同的操作流程。讀寫控制模塊向命令接口模塊發送命令,使所連接的eMMC芯片進入讀、寫或者擦除的工作狀態;讀寫控制模塊接收命令接口模塊回報的狀態,即所連接的eMMC芯片進入的讀、寫或擦除狀態后,控制數據接口模塊進行讀、寫數據操作。

(三)命令接口模塊設計

命令接口模塊的作用主要是向eMMC芯片發送串行命令和接收eMMC芯片的響應。命令接口模塊依據初始化模塊或者讀寫控制模塊發來的命令生成符合eMMC規范的命令包,發送給eMMC芯片;解析eMMC芯片發回的響應,判斷命令是否成功執行,并向上返回狀態。

在命令接口模塊發送命令的時候遵循一定的流程進行。一般情況下,命令接口模塊處于IDLE狀態,等待新命令。

當初始化模塊或者讀寫控制模塊向命令接口模塊下發新命令時,命令接口模塊狀態轉化為START,在此狀態下,向CMD信號線發送開始信號。隨后狀態轉換為DIR狀態,向CMD信號線發送方向信號。接著狀態切換到CMD狀態,向CMD信號線發送6個時鐘周期的CMD數據。隨后是PARA狀態,向CMD信號線發送32位參數數據。在發送從START到PARA的數據過程中計算7位CRC,在發送完PARA數據后轉換為CRC狀態并發送計算的CRC數據,最后轉化為END狀態并發送結束位。這樣就完成了一個命令的發送操作。

當命令發送完成后,模塊接收eMMC芯片的響應。命令接口模塊狀態轉換為START狀態,并在這一狀態等待CMD信號線上出現開始信號。當開始信號出現后,狀態轉換為DIR狀態,接收方向信號。然后轉換為CMD狀態接收6位命令碼,并確認接收到的6位命令碼是剛才發送命令的響應。隨后轉換為PARA狀態接收32位參數,此參數可以包括eMMC當前的工作狀態數據等,由此可以判斷命令是否成功執行。接收上述數據時計算CRC。接收完PARA數據后轉換為CRC狀態,接收CRC數據,然后轉換為END狀態,并在這一狀態驗證CRC以判斷響應是否正確接收。由此即可完成一次響應的接收。

(四)數據接口模塊設計

數據接口模塊的作用是向eMMC芯片發送數據和接收eMMC發來的數據。數據接口模塊依照eMMC 5.1標準中HS400工作模式形成數據包和解析接收到的數據。數據接口模塊接收讀寫控制模塊傳來的數據,按照發送流程發送給eMMC芯片,并檢查寫入是否成功;接收eMMC芯片發來的數據,并檢查接收到的數據是否存在錯誤,成功接收后將數據上傳讀寫控制模塊。

發送數據時,當讀寫控制模塊準備好數據后,向命令接口模塊和數據接口模塊發送寫數據命令。數據接口模塊從IDLE狀態轉換為START狀態,在此狀態下在8位數據線上發送1個時鐘周期的開始信號,然后轉化為DATA狀態。在DATA狀態下,發送256個時鐘周期的數據信號,數據信號在時鐘的上升沿和下降沿發送,一個時鐘周期發送2字節數據,共發送512字節數據。在發送數據時計算CRC,當完成發送數據時狀態轉化為CRC,此時發送16個時鐘周期的CRC數據,然后轉化為CHECK狀態。在CHECK下檢查eMMC是否寫入成功,若寫入成功,則轉入IDLE狀態等待下一個寫數據命令;若寫入失敗,則轉入START狀態重復以上流程重新寫入當前數據。

接收數據時,當讀寫控制模塊需要讀取數據時,向命令接口模塊和數據接口模塊發送讀數據命令。數據接口模塊從IDLE狀態轉換為START狀態,等待eMMC數據線上出現開始信號。當等待開始信號超時時,數據接口模塊狀態返回IDLE狀態并向讀寫控制模塊報告狀態,等待下一次命令。當eMMC數據線上出現開始信號后,狀態轉化為DATA,開始接收256個時鐘周期的數據。每個時鐘周期的上升沿和下降沿都會傳輸數據,共接收512字節數據。在接收數據的同時計算CRC。當接收數據完成后,狀態轉換為CRC狀態,接收16個時鐘的CRC數據。接收完CRC后轉換為CHECK狀態,將計算得到的CRC和接收到的CRC比較,若一致,則接收成功,否則接收失敗,向讀寫控制模塊報告狀態后返回IDLE狀態,完成接收。

(五)初始化模塊

初始化模塊的作用是初始化eMMC芯片,使其進入傳輸模式,準備好進行讀寫等操作。對于eMMC的初始化,模塊遵循eMMC5.1標準中的初始化流程進行。

初始化模塊通過向命令接口模塊發送命令,控制命令接口模塊將指定的初始化命令發送給eMMC芯片;同時獲取命令接口模塊回報的發送結果。

當系統上電后,初始化模塊首先發送CMD0,對eMMC芯片進行軟復位,使其進入IDLE狀態。隨后發送CMD1,當eMMC芯片準備完成后進入READY狀態。此時發送CMD2獲取芯片的CID,使其進入IDENTFICATION狀態。然后發送CMD3為芯片設置地址,芯片進入STANDBY狀態。然后發送CMD7選中該芯片,進入SETBW狀態。接著發送CMD6設置位寬為8位,進入SETHS400狀態。最后發送CMD6設置工作模式為HS400模式,進入DONE狀態。這樣就完成了eMMC芯片的初始化。當在任何狀態下出現發送錯誤時,系統均進入ERROR狀態,在此狀態下發送CMD0復位eMMC芯片,使其進入IDLE狀態,重復以上過程,直到初始化成功。

在芯片成功完成初始化后,芯片就可以接收讀寫控制命令進行數據傳輸等操作了。初始化模塊會監控芯片的工作狀態,當出現異常狀態時,可以對芯片重新初始化。

(六)讀寫控制模塊

讀寫控制模塊實現了對eMMC芯片的數據讀取、寫入和擦除操作。讀寫控制模塊接收上級傳來的命令,并按照eMMC5.1標準中的讀、寫、擦除操作流程進行工作。

當沒有操作命令時,模塊處于空閑狀態。當收到新的操作命令后,根據命令進行相應的讀取、寫入或者擦除操作。

當收到讀取數據命令時,模塊狀態從空閑轉入讀取狀態。首先設置塊長,通過命令接口模塊發送CMD16設置此次要讀取的數據塊長度,對于HS400,只支持512字節塊長;然后設置塊數,發送CMD23設置需要讀取的數據塊個數;然后發送多塊讀命令,發送CMD18開始讀取數據;在讀數據狀態向數據接口模塊發送讀取數據命令,等待數據讀取完成。當讀取完成后進入檢查狀態,檢查讀取是否成功,并向上返回狀態。讀取完成后進入空閑狀態等待下一個命令。

當收到寫入數據命令時,模塊從空閑狀態轉入寫入狀態。首先設置塊長和設置塊數,與讀數據命令相同,也是通過命令接口模塊發送CMD16和CMD23完成。然后發送多塊寫命令,發送CMD25開始寫入數據;在寫數據狀態向數據接口模塊發送寫入數據命令,等待數據寫入完成。當寫入完成后進入檢查狀態,檢查寫入是否成功,并向上返回狀態。寫入完成后進入空閑狀態等待下一個命令。

當收到擦除命令時,模塊從空閑狀態轉入擦除狀態。首先通過命令接口模塊發送CMD35設置需要擦除數據的起始地址,然后發送CMD36設置結束地址,最后發送CMD38開始擦除數據,狀態進入檢查狀態,等待擦除完成。當擦除完成后向上返回狀態,并進入空閑狀態等待下一個命令。

三、總結

通過一段時間的編寫調試,成功地完成了該eMMC磁盤陣列控制器的設計。通過使用上位機軟件測試,該控制器能夠以超過1GB每秒的速度讀取eMMC中的數據,實現了高速讀寫eMMC芯片的設計目標。

猜你喜歡
信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
7個信號,警惕寶寶要感冒
媽媽寶寶(2019年10期)2019-10-26 02:45:34
孩子停止長個的信號
《鐵道通信信號》訂閱單
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于Arduino的聯鎖信號控制接口研究
《鐵道通信信號》訂閱單
基于LabVIEW的力加載信號采集與PID控制
Kisspeptin/GPR54信號通路促使性早熟形成的作用觀察
主站蜘蛛池模板: 国产亚洲一区二区三区在线| 国产精品自在在线午夜| 高清码无在线看| 日韩视频福利| 亚洲国产中文欧美在线人成大黄瓜| 无码免费的亚洲视频| 91亚洲精品第一| 久久人妻xunleige无码| 欧美日韩亚洲国产主播第一区| 尤物特级无码毛片免费| 亚洲欧美日韩另类在线一| 色综合综合网| 成人字幕网视频在线观看| 亚洲欧洲综合| 激情综合网址| 亚洲欧洲综合| 亚洲无码高清免费视频亚洲 | 婷婷午夜影院| 国产97视频在线观看| a毛片在线播放| 91偷拍一区| 福利片91| 国产精品亚洲а∨天堂免下载| www.国产福利| 亚洲成人免费在线| 亚洲精品无码AV电影在线播放| 日韩美毛片| 青草91视频免费观看| 国产中文一区a级毛片视频| 日韩午夜伦| 97超碰精品成人国产| 久久精品人人做人人爽电影蜜月 | 欧美日一级片| 欧美精品成人一区二区在线观看| 久久婷婷六月| 久热re国产手机在线观看| 国产精品亚洲片在线va| 久久久久88色偷偷| 欧美、日韩、国产综合一区| 欧美 亚洲 日韩 国产| 激情综合图区| 一区二区偷拍美女撒尿视频| 久久国产成人精品国产成人亚洲| 天天婬欲婬香婬色婬视频播放| 亚洲永久色| 欧洲成人免费视频| 亚洲成aⅴ人片在线影院八| 四虎亚洲国产成人久久精品| 呦系列视频一区二区三区| 欧美在线网| 欧美亚洲日韩不卡在线在线观看| 国产主播福利在线观看| 亚洲成人www| 国产精选小视频在线观看| 国产激情国语对白普通话| 国产屁屁影院| 野花国产精品入口| 高潮毛片免费观看| 国产极品美女在线| 尤物国产在线| 国产精品福利在线观看无码卡| 国产h视频在线观看视频| JIZZ亚洲国产| 久久精品无码专区免费| 九九免费观看全部免费视频| 黄色三级毛片网站| 久久综合五月| 亚洲精品欧美日韩在线| 91在线日韩在线播放| 亚洲AⅤ无码日韩AV无码网站| 色哟哟色院91精品网站| 久久久久无码精品国产免费| 欧美啪啪一区| 国产伦精品一区二区三区视频优播| 国产不卡网| 日韩大乳视频中文字幕| 成人午夜精品一级毛片| 亚洲首页国产精品丝袜| 午夜欧美在线| 午夜精品区| 亚洲精品动漫| 99在线国产|