www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于ARM9的SD/MMC卡控制器的ASIC設(shè)計(jì)

摘 要:文章闡述了基于TD-SCDMA手機(jī)數(shù)字基帶芯片中SD/MMC卡控制器的工作原理與應(yīng)用,利用Verilog硬件描述語言對(duì)其實(shí)現(xiàn)。運(yùn)用ModelSim進(jìn)行了功能仿真,利用SMIC0.13微米工藝庫和SYNOPSYS的EDA工具對(duì)其綜合。經(jīng)過FPGA驗(yàn)證,確保該控制器作為一個(gè)獨(dú)立的IP核可嵌入到ASIC系統(tǒng)中,符合最新的SD1.0標(biāo)準(zhǔn)和MMC3.31標(biāo)準(zhǔn)。

0 引言

如今多媒體數(shù)碼產(chǎn)品的迅猛發(fā)展,其中,各種音頻視頻等功能的不斷增強(qiáng),使得系統(tǒng)對(duì)于存儲(chǔ)介質(zhì)的性能,容量,安全等方面的要求與日俱增。MMC卡和SD卡均是基于flash的存儲(chǔ)設(shè)備,近年來,它們以高存儲(chǔ)容量,快速的數(shù)據(jù)傳輸速率,加上極大的移動(dòng)靈活性和更高的安全性已經(jīng)成為閃存市場(chǎng)的標(biāo)準(zhǔn),其廣泛應(yīng)用于手機(jī),MP3,MP4,掌上電腦等各種產(chǎn)品中。可見,其已經(jīng)成為面向便攜式數(shù)碼電子產(chǎn)品的SOC芯片中通用的功能接口。

文章設(shè)計(jì)的SD/MMC控制器基于一款3G手機(jī)基帶芯片,其內(nèi)核采用ARM926EJ,系統(tǒng)總線架構(gòu)為AMBA,控制器連接到APB總線上。通過分析SD卡和MMC卡的規(guī)范,利用Verilog HDL實(shí)現(xiàn)了符合該規(guī)范的SD/MMC卡控制器IP核,該IP在SMIC的0.13um標(biāo)準(zhǔn)單元工藝庫下對(duì)模型進(jìn)行了綜合和優(yōu)化。

1 SD/MMC卡控制器工作原理

SD(Secure Digital)卡和MMC(Multi Media Card)卡是市面上常見的兩種數(shù)據(jù)存儲(chǔ)卡。SD卡向下兼容MMC卡。

兩者基本特性相同,只是在數(shù)據(jù)接口以及傳輸模式上有一些區(qū)別:SD卡的數(shù)據(jù)線為4根,而MMC卡只有1根;SD卡支持安全性保護(hù);而MMC卡支持比特流傳輸(不限長(zhǎng)傳輸,即必須接受到停止命令時(shí)才停止傳輸)。

控制器就是通過SD/MMC總線對(duì)SD/MMC卡進(jìn)行初始化,讀,寫等一系列操作。其總線包括時(shí)鐘線CLK,命令線CMD,數(shù)據(jù)線DAT3-DAT0(MMC卡只有DAT0)等。上電后,控制器必須按一定的總線協(xié)議傳輸命令給卡,使其初始化??偩€上一共有三種數(shù)據(jù)格式:命令包,響應(yīng)包,數(shù)據(jù)包。由于在傳輸中數(shù)據(jù)和命令均有可能出錯(cuò),命令帶有7位的CRC校驗(yàn)碼,數(shù)據(jù)帶有16位的CRC校驗(yàn)碼。

控制器對(duì)卡進(jìn)行讀操作時(shí),將接收到的串行數(shù)據(jù)(可能是比特流,也可能是多塊)轉(zhuǎn)換為并行數(shù)據(jù),存入FIFO.寫操作也是相同的,控制器將并行數(shù)據(jù)從FIFO里面取出,串行發(fā)出。

SD/MMC 卡的工作時(shí)鐘來源于控制器,對(duì)卡的命令或數(shù)據(jù)傳輸?shù)纫幌盗胁僮骶c該時(shí)鐘同步。該時(shí)鐘可以通過控制器進(jìn)行配置,以適應(yīng)不同工作狀態(tài)中卡正常工作所需的不同時(shí)鐘頻率。需要注意的是,SD 卡的最大工作頻率是25Mhz,MMC 卡的最大工作頻率是20Mhz.

總之,控制器不僅要輸出合適的工作時(shí)鐘,還要完成對(duì)命令/響應(yīng)以及數(shù)據(jù)讀寫的正常工作,并針對(duì)命令和數(shù)據(jù)進(jìn)行CRC 校驗(yàn),中斷的及時(shí)產(chǎn)生和清除。

2 控制器設(shè)計(jì)與實(shí)現(xiàn)

2.1 模塊劃分

在整個(gè)SOC 中,我們這片TD 基帶芯片采用的是ARM926EJ-S 內(nèi)核,系統(tǒng)架構(gòu)為AMBA 總線。在設(shè)計(jì)中,將SD/MMC 卡控制器作為APB 的SLAVE 掛在APB 總線上,ARM 通過APB 總線來訪問和控制該模塊。本模塊主要分為接口模塊,CMD 控制模塊及DATA 控制模塊三部分。其結(jié)構(gòu)框圖如圖1 所示。

圖1 SD/MMC 控制器結(jié)構(gòu)

接口模塊實(shí)現(xiàn)與ARM 的APB 總線相連接,通過該模塊,ARM 可以對(duì)相應(yīng)寄存器進(jìn)行讀寫,從而實(shí)現(xiàn)對(duì)本模塊和外部存儲(chǔ)卡的控制。其讀寫時(shí)序按照APB 總線讀寫時(shí)序,具體見文獻(xiàn)。

CMD 控制模塊主要發(fā)送和接收CMD 線上的信號(hào)??刂破靼l(fā)送給卡的命令長(zhǎng)度固定為48bit,而從卡接收到的響應(yīng)長(zhǎng)度不固定,有短應(yīng)答(48bit)和長(zhǎng)應(yīng)答(136bit)之分。

其中,包含CRC7 的子模塊,不管是命令還是響應(yīng),均要用到CRC 校驗(yàn)。

DATA 控制模塊主要是通過RXDATA 數(shù)據(jù)線接收數(shù)據(jù),并通過TXDATA 發(fā)送數(shù)據(jù)。主要的數(shù)據(jù)傳輸方式有兩種:比特流數(shù)據(jù)傳輸和多塊數(shù)據(jù)傳輸,另外,該控制器還支持無響應(yīng)包數(shù)據(jù)傳輸。為確保傳輸?shù)恼_,包含了CRC16 校驗(yàn)的子模塊。

2.2 CMD控制模塊的設(shè)計(jì)

由于SD/MMC 卡的操作命令不一致,在模塊中并沒有對(duì)命令作譯碼,而是通過軟件來設(shè)置命令的類型。單塊(signalblock data)讀數(shù)據(jù)命令(CMD17),寫數(shù)據(jù)命令(CMD24);多塊(mulTI-block data)讀數(shù)據(jù)命令(CMD18),寫數(shù)據(jù)命令(CMD25)等需要控制模塊根據(jù)SD_CMD_INDEX 寄存器的內(nèi)容來發(fā)布相應(yīng)的命令,并作不同的狀態(tài)轉(zhuǎn)換。CMD 控制模塊的狀態(tài)轉(zhuǎn)換圖如圖2 所示。

圖2 CMD 控制模塊的狀態(tài)轉(zhuǎn)換

2.3 DATA控制模塊的設(shè)計(jì)

本模塊主要功能是向卡發(fā)送數(shù)據(jù)和從卡讀取數(shù)據(jù),另外,針對(duì)SD 卡該模塊可以通過DATA[3] 檢測(cè)卡是否插入,通過DATA[2]發(fā)送讀等待信號(hào),通過DATA[1]接收卡送來的中斷信號(hào)以及通過DATA[0]來檢測(cè)卡是否處于忙狀態(tài)。

APB 總線上還有其他一些功能模塊,如SPI 接口控制器,CAMERA 控制器等,由于不能一直占有總線,在對(duì)卡進(jìn)行讀寫的同時(shí),來不及處理及時(shí)收到的數(shù)據(jù)或來不及獲取新的發(fā)送數(shù)據(jù),所以我們采取數(shù)據(jù)緩存,添加一個(gè)64 bytes的FIFO。

控制器對(duì)卡進(jìn)行讀操作時(shí),需要先發(fā)送CMD9 命令,獲得卡的CSD 寄存器數(shù)據(jù),其中包含了卡的數(shù)據(jù)長(zhǎng)度,卡存儲(chǔ)容量,卡最大時(shí)鐘速度等??刂破骺梢猿掷m(xù)進(jìn)行數(shù)據(jù)讀取,直到向卡發(fā)送停止傳輸命令;或者讀取指定個(gè)數(shù)的數(shù)據(jù)塊。

讀數(shù)據(jù)過程中,如果卡檢測(cè)到錯(cuò)誤,如超出范圍,地址對(duì)齊錯(cuò)誤等,卡會(huì)停止數(shù)據(jù)發(fā)送,停在sending-data 狀態(tài),控制器需要發(fā)送停止傳輸命令,此時(shí),卡會(huì)將錯(cuò)誤信息,通過響應(yīng)返回給控制器。

控制器可以對(duì)卡持續(xù)進(jìn)行寫數(shù)據(jù)操作,直到向卡發(fā)送停止傳輸命令;或者指定個(gè)數(shù)的數(shù)據(jù)塊寫完。寫數(shù)據(jù)過程中,如果卡檢測(cè)到錯(cuò)誤,如寫保護(hù),地址超出范圍,地址對(duì)齊錯(cuò)誤等,卡會(huì)停止數(shù)據(jù)的接收,停在Receiving-data 狀態(tài),控制器需要發(fā)送停止傳輸命令,此時(shí)卡會(huì)將錯(cuò)誤信息,通過響應(yīng)包返回給控制器。一個(gè)數(shù)據(jù)塊寫完后,卡需要一段時(shí)間將這塊數(shù)據(jù)寫到內(nèi)部Flash 中,控制器需要查詢卡的狀態(tài),等卡寫完數(shù)據(jù)后,才能發(fā)送下一個(gè)命令。

2.4 CRC的算法設(shè)計(jì)

在CMD控制模塊和DATA控制模塊中均用到CRC校驗(yàn)。CMD控制模塊中用的是CRC7,其公式是G(x) = x7 + x3 + 1。實(shí)現(xiàn)其算法的邏輯圖如圖3。

圖3 CRC7 生成邏輯

在DATA 控制模塊中用的是CRC16,其公式是G(x) = x16+ x12 +x5 +1。算法邏輯圖同CRC7類試,這里我們不再贅述。

兩種校驗(yàn)本質(zhì)相同,后者精度更高,適應(yīng)數(shù)據(jù)尤其是長(zhǎng)數(shù)據(jù)的傳輸校驗(yàn)。

3 功能驗(yàn)證與綜合

使用Mentor 公司的ModelSim 軟件進(jìn)行仿真,該軟件許可在PC、Solaris、HP-UX 或Linux 平臺(tái)上使用,支持VHDL或Verilog 硬件描述語言(HDL)仿真。它支持所有器件的行為級(jí)仿真和VHDL 或Verilog 仿真激勵(lì)。

為了測(cè)試設(shè)計(jì)的正確性,編寫了teSTbench 模塊,其中包括一個(gè)用HDL 描述的SD 卡的原型(使得控制器能夠?qū)υ摽ㄟM(jìn)行操作),包括產(chǎn)生時(shí)鐘信號(hào),輸出命令,讀寫的數(shù)據(jù),產(chǎn)生的中斷等。下面以測(cè)試SDMMC 讀寫寄存器,發(fā)送命令接收響應(yīng),4 線塊數(shù)據(jù)(block data)傳輸?shù)葹槔齺碚f明:
當(dāng)滿足片選信號(hào)后,APB 總線對(duì)內(nèi)部寄存器先進(jìn)行配置,然后確定命令的發(fā)送,并附上CRC7 的校驗(yàn)碼,最后接收響應(yīng)和響應(yīng)的CRC7 校驗(yàn)碼。

對(duì)流傳輸,單塊,多塊數(shù)據(jù)等所有傳輸方式進(jìn)行完仿真,利用目前業(yè)界最流行的綜合工具:SYNOPSYS公司的DesignCompiler對(duì)其綜合。經(jīng)過對(duì)Script腳本約束的設(shè)定,通過DC將控制器的時(shí)序和面積進(jìn)行優(yōu)化,工作頻率滿足手機(jī)基帶芯片頻率125Mhz(最高可到200以上),面積在3萬門,比主流的4萬門有所降低,節(jié)省了面積。

最后采用Xilinx公司的xc4vlx200-10ff1513芯片進(jìn)行FPGA驗(yàn)證,測(cè)試結(jié)果表明該控制器可以對(duì)市面上主流SDMMC卡進(jìn)行數(shù)據(jù)傳輸,符合整個(gè)SOC的要求。

4 結(jié)語

驗(yàn)證結(jié)束后,利用中芯國(guó)際的0.13um的工藝庫對(duì)上面的設(shè)計(jì)進(jìn)行封裝制造,就實(shí)現(xiàn)了最新的SD1.0和MMC3.31協(xié)議,并將其嵌入到ASIC中,使得TD終端具有外部擴(kuò)展存儲(chǔ)性,節(jié)約用戶開銷。不僅如此,該控制器可作為一個(gè)成熟的IP核,移植到各種基于多媒體處理的ASIC芯片中去,其應(yīng)用十分廣泛。

作者創(chuàng)新點(diǎn):該IP核的設(shè)計(jì),為TD-SCDMA終端基帶芯片以及類似手持SOC提供外接擴(kuò)展存儲(chǔ)卡的功能,且具有廣泛的可靠移植性用于其他芯片中。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在電子電路設(shè)計(jì)中,確保電源的穩(wěn)定和安全至關(guān)重要。LTC4365 作為一款出色的過壓(OV)、欠壓(UV)以及反向極性故障保護(hù)控制器,在眾多領(lǐng)域得到了廣泛應(yīng)用。其能夠?yàn)殡娫摧斎腚妷嚎赡艹霈F(xiàn)過高、過低甚至負(fù)值的應(yīng)用場(chǎng)景提供可...

關(guān)鍵字: 控制器 柵極 輸出電壓

ZCC3790 作為一款同步 4 開關(guān)升降壓電壓 / 電流調(diào)節(jié)器控制器,展現(xiàn)出了強(qiáng)大的性能。它能夠在輸入電壓高于、低于或等于輸出電壓的復(fù)雜情況下,精準(zhǔn)地調(diào)節(jié)輸出電壓、輸出電流或輸入電流。其恒定頻率、電流模式架構(gòu)賦予了它靈...

關(guān)鍵字: 升降壓 控制器 寬電壓

2025年8月12日 – 專注于引入新品的全球電子元器件和工業(yè)自動(dòng)化產(chǎn)品授權(quán)代理商貿(mào)澤電子(Mouser Electronics) 是Phoenix Contact解決方案的全球授權(quán)代理商。貿(mào)澤供應(yīng)超過93,000種可訂...

關(guān)鍵字: 樓宇自動(dòng)化 控制器 連接器

在之前的文章“為機(jī)器人技術(shù)的未來發(fā)展筑牢安全防線:網(wǎng)絡(luò)安全的作用”中,我們?nèi)娼榻B了機(jī)器人控制系統(tǒng)面臨的安全挑戰(zhàn)。文章強(qiáng)調(diào)了遵守機(jī)器人行業(yè)安全標(biāo)準(zhǔn)的重要性,并探索了加強(qiáng)機(jī)器人控制系統(tǒng)保護(hù)所需的基本安全能力。此外,我們還展...

關(guān)鍵字: 機(jī)器人 PLC 控制器

北京2025年8月8日 /美通社/ -- 8月7日,浪潮信息發(fā)布面向萬億參數(shù)大模型的超節(jié)點(diǎn)AI服務(wù)器"元腦SD200"。該產(chǎn)品基于浪潮信息創(chuàng)新研發(fā)的多主機(jī)低延遲內(nèi)存語義通信架構(gòu),以開放系統(tǒng)設(shè)計(jì)向上擴(kuò)展...

關(guān)鍵字: 模型 節(jié)點(diǎn) SD 通信

工業(yè)4.0的核心是工廠自動(dòng)化,工業(yè)機(jī)器人、自主移動(dòng)機(jī)器人(AMR)和協(xié)作機(jī)器人對(duì)于實(shí)現(xiàn)現(xiàn)代工業(yè)4.0至關(guān)重要。機(jī)器人正日益智能化,協(xié)作能力不斷增強(qiáng),能夠在有人或無人干預(yù)的情況下高效完成復(fù)雜任務(wù)。隨著自動(dòng)化程度和機(jī)器人使用...

關(guān)鍵字: 機(jī)器人 工業(yè)4.0 控制器

全新 I/O 解決方案賦予制造商更大的設(shè)計(jì)自由度,打造更智能、更具適應(yīng)性更的設(shè)備

關(guān)鍵字: 控制器 I/O 系統(tǒng)

【2025年7月24日, 德國(guó)慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼:IFNNY)近日推出新型英飛凌ID Key系列,進(jìn)一步擴(kuò)展其通用串行總線(USB)...

關(guān)鍵字: 控制器 USB 非易失性存儲(chǔ)器

挑戰(zhàn)賽鼓勵(lì)參與者利用 WL-ICLED 技術(shù)展示創(chuàng)意

關(guān)鍵字: LED 控制器

許多電源轉(zhuǎn)換應(yīng)用都需要支持寬輸入或輸出電壓范圍。ADI公司的一款大電流、高效率、全集成式四開關(guān)降壓-升壓型電源模塊可以滿足此類應(yīng)用的需求。該款器件將控制器、MOSFET、功率電感和電容集成到先進(jìn)的3D集成封裝中,實(shí)現(xiàn)了緊...

關(guān)鍵字: 穩(wěn)壓器 控制器 MOSFET
關(guān)閉