<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用CPLD支持多個(gè)SD器件

用CPLD支持多個(gè)SD器件

作者: 時(shí)間:2010-02-03 來(lái)源:網(wǎng)絡(luò ) 收藏

在一個(gè)系統中添加安全數字 () 的需求日益增長(cháng)。然而,大多數主機(如 Intel PXA270、TI OMAP和Qualcomm MSM處理器)都只提供一個(gè)接口。幸運的是,使用復雜可編程邏輯)即可使主機器件任意數量的器件。本文詳細講述一種基于可縮放自動(dòng)偵測雙向多路復用器的設計。

本文引用地址:http://dyxdggzs.com/article/152101.htm

  圖1所示為通用的使用模型,可以為僅自帶一個(gè)SD接口的給定主機器件集成任意數量的SD端口。處于主機控制器和SD器件之間。這樣,CPLD便起到雙向多路復用器的作用,使主機器件能夠與選定的任意SD器件通信。更重要的是,這種設計沒(méi)有方向控制引腳,也就是說(shuō)CPLD自動(dòng)檢測數據流方向。

用CPLD增加SD端口圖1 用CPLD增加SD端口

  這種實(shí)現方法極其靈活且可縮放,允許隨意增減SD端口數量,還SPI模式、1位數據模式和 4 位數據模式中任一種定義的SD卡模式。

  在此類(lèi)應用中使用CPLD器件,主要目的是為主機控制器提供更多的SD端口,同時(shí)在主機器件與SD卡之間實(shí)現電平轉換和邏輯隔離。圖1所示為主機器件是1.8V而 SD器件是3.3V的情形。業(yè)界最新CPLD的待機電流微不足道,而動(dòng)態(tài)功耗極低。因此,在系統中集成一個(gè)復雜可編程邏輯器件不會(huì )顯著(zhù)影響功率預算。

  符合SDA規范

  根據SDA(安全數字協(xié)會(huì ))規范,一條SD總線(xiàn)只能一個(gè)SD器件。時(shí)鐘引腳可以共用,但DAT[3:0]和CMD線(xiàn)則必須由每個(gè)SD器件獨占,如圖2所示。

SD系統總線(xiàn)拓撲結構

圖2 SD系統總線(xiàn)拓撲結構

  此參考設計完全符合SDA規范。下面介紹當使用只有一條總線(xiàn)的控制器支持任意數量的SD 器件時(shí)如何滿(mǎn)足上述要求。

  CPLD設計

  圖 3 所示為用此設計實(shí)現兩個(gè)SD器件共用同一SD主機接口時(shí)的典型用法。從概念上講,可以將這種設計視為和用作雙向多路復用器。主機器件通過(guò)“選擇”信號控制CPLD,從而指示與哪個(gè)SD器件通信。一旦選中某個(gè)SD器件,CPLD器件中的邏輯便自動(dòng)檢測數據流的方向,并且讓數據相應流動(dòng)(從主機器件流向SD卡,或者從SD卡流向主機器件)。此設計不需要方向控制引腳,因此使用方便。

模塊級圖

圖3 模塊級圖:雙向多路復用器

  當多路復用器相應切換時(shí),主機器件可分別訪(fǎng)問(wèn)各SD器件,而不會(huì )影響另一SD器件的狀態(tài)。如果主機器件和SD器件都未驅動(dòng)數據,則CPLD讓系統處于默認的呈弱上拉狀態(tài)的高阻抗。此電路的主要用途是加強主機器件的SD能力,但也可用此電路提供電平轉換和/或邏輯隔離。

  實(shí)現細節

  圖4所示為1:2雙向多路復用器設計的實(shí)際邏輯電路,該設計可用VHDL語(yǔ)言描述。在初始或空閑狀態(tài)下,主機器件和SD卡應處于呈弱上拉狀態(tài)的高阻抗。因此,圖4中的電路設計成對 CPLD的輸出緩沖器進(jìn)行三態(tài)控制,從而使外部上拉電阻起作用。寄存器A (A_REG)和寄存器B (B_REG)都設計成在上電時(shí)初始化為邏輯“0”。

兩個(gè)SD器件的SD多路復用器電路

圖4 兩個(gè)SD器件的SD多路復用器電路

  通過(guò)向 CPLD 輸入“選擇”信號來(lái)選擇SD卡。當“選擇”信號為邏輯“0”時(shí)選擇SD1,而當“選擇”信號為邏輯“1”時(shí)選擇SD2器件。為電路敘述簡(jiǎn)明起見(jiàn),我們假設在以下討論中主機器件只選擇與SD1通信。

  此設計的自動(dòng)方向控制方面的實(shí)現方式為:當主機器件與SD1器件二者之一置為低時(shí)啟動(dòng)事務(wù)。例如,如果主機器件準備向 SD1 器件傳送數據,則主機器件通過(guò)將A側置為低來(lái)開(kāi)始傳送。在置為低時(shí),電路中的邏輯檢測到置低的下降沿,并且通過(guò)啟用“B”輸出緩沖器置為有效來(lái)響應,而“A”輸出緩沖器仍保持無(wú)效狀態(tài)。尤其是當A置為低時(shí),會(huì )向A_REG的時(shí)鐘輸入傳送一個(gè)上升沿。繼時(shí)鐘控制之后,A_REG的Q輸出變?yōu)檫壿嫛?”,從而阻止B_REG接收時(shí)鐘控制事件。當A變?yōu)榈蜁r(shí),邏輯門(mén)B1在A(yíng)_REG時(shí)鐘控制與觸發(fā)的同時(shí)輸出一個(gè)邏輯“1”。這樣便可啟用“B”輸出緩沖器,而B(niǎo)最終會(huì )跟隨A置為低。

  反之,當A從低轉為高時(shí),邏輯門(mén)B1輸出一個(gè)低信號,對B輸出緩沖器進(jìn)行三態(tài)控制。這樣便通過(guò)外部上拉電阻強制B變?yōu)楦?。一旦A側和B側都變?yōu)楦?,則A_REG和B_REG 復位到0。此過(guò)程無(wú)限次重復。當SD1要向主機器件傳送數據時(shí),情況相反。另外,如果主機器件準備與SD2器件通信,則電路的“選擇”信號輸入置為邏輯“1”,其事件順序與上述相似。

設計驗證

  1 仿真結果

  對于此電路,用ModelSim進(jìn)行了廣泛的功能和時(shí)序仿真,測試激勵已經(jīng)包括在VHDL 下載中。圖5所示為部分仿真結果。

  在圖5的第一部分中,“選擇”信號輸入保持為低。白色虛線(xiàn)指示“弱1”狀態(tài),換言之就是表示上拉狀態(tài)。在第一個(gè)事務(wù)中,主機器件嘗試向SD1傳送數據,SD1隨即響應。緊接著(zhù),SD1器件嘗試向主機器件傳送數據,主機器件隨即響應。當“選擇”信號輸入置為低時(shí),會(huì )發(fā)生類(lèi)似事件。主機器件向SD2器件傳送數據,然后SD2器件向主機器件傳送數據。

 仿真結果


圖5 仿真結果


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 器件 SD 多個(gè) 支持 CPLD

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>