Coo1Runner-Ⅱ器件實(shí)現(xiàn)雙向多路選擇器
發(fā)布時間:2008/9/19 0:00:00 訪問次數(shù):944
該范例的設(shè)計(jì)與實(shí)現(xiàn)如下。
(1)cpld設(shè)計(jì)
cpld設(shè)計(jì)實(shí)際上是一個雙向多路選擇器,主機(jī)通過“select”信號選擇sd卡。一旦選中,cpld會自動檢測數(shù)據(jù)流的方向并建立通信。不必用專門的引腳來指定傳輸方向,用非常方便,如圖1所示。
如圖1 雙向多路選擇器
主機(jī)可以訪問其中任何一塊sd卡,而不會影響其他卡。如果主機(jī)和sd卡都沒有驅(qū)動總線,則總線為高阻狀態(tài)。
如圖2所示為用于實(shí)現(xiàn)雙卡的多路選擇器,在初始或mle狀態(tài),主機(jī)host和sd卡均
處于弱上拉狀態(tài)。因此如2圖所示電路設(shè)置為開路輸出,外部上拉電阻起作用。上電時,寄存器a和b初始化為“0”。當(dāng)“select”為“0”,sdi被選中;當(dāng)“select”為“1”,sd2被選中。為了方便,以下討論假定主機(jī)與sdi卡通信。
如圖2 雙卡的多路選擇器
自動檢測數(shù)據(jù)流方向的思路為本設(shè)計(jì)的重點(diǎn),host或sdi驅(qū)動總線為低,將會啟動一次數(shù)據(jù)傳輸。例如,如果host要發(fā)送數(shù)據(jù)給sdi,當(dāng)host驅(qū)動a端為低電平時,bi門輸出高電平。三態(tài)buffer使能端有效,也輸出低電平到sdi端。同時a_reg的clock端會出現(xiàn)一個上升沿,從而a_reg的q端輸出高電平。此高電平禁止了三態(tài)buffera和b_reg端出現(xiàn)clock的有效沿。這樣一來,使sdi端跟蹤了host端的變化。
相反,如果host端驅(qū)動為高電平,門bi輸出低電平,從而強(qiáng)制b輸出高電平(通過外部上拉電阻)。一旦a端和b端都輸出高電平,a_reg和b_reg均復(fù)位為低電平。
以上過程周而復(fù)始地進(jìn)行,如果數(shù)據(jù)傳輸方向是從sdi到host,上述傳輸過程恰好相反。另外,host與sd2之間的通信與host與sdi之間的通信類似。不再贅述。
(2)設(shè)計(jì)范例
源代碼及測試程序可從xilinx網(wǎng)站下載,如圖3所示為仿真波形。
如圖3 modelsim仿真波形
仿真時,首先是sel為低電平,host發(fā)數(shù)據(jù)給sdi。sdi收到數(shù)據(jù)后發(fā)給host,圖中虛線表示高阻狀態(tài)。之后sel為高電平,host與sd2之間通信。如表所示為設(shè)計(jì)實(shí)現(xiàn)后的資源使用情況。
如表 設(shè)計(jì)實(shí)現(xiàn)后的資源使用情況
該范例的設(shè)計(jì)與實(shí)現(xiàn)如下。
(1)cpld設(shè)計(jì)
cpld設(shè)計(jì)實(shí)際上是一個雙向多路選擇器,主機(jī)通過“select”信號選擇sd卡。一旦選中,cpld會自動檢測數(shù)據(jù)流的方向并建立通信。不必用專門的引腳來指定傳輸方向,用非常方便,如圖1所示。
如圖1 雙向多路選擇器
主機(jī)可以訪問其中任何一塊sd卡,而不會影響其他卡。如果主機(jī)和sd卡都沒有驅(qū)動總線,則總線為高阻狀態(tài)。
如圖2所示為用于實(shí)現(xiàn)雙卡的多路選擇器,在初始或mle狀態(tài),主機(jī)host和sd卡均
處于弱上拉狀態(tài)。因此如2圖所示電路設(shè)置為開路輸出,外部上拉電阻起作用。上電時,寄存器a和b初始化為“0”。當(dāng)“select”為“0”,sdi被選中;當(dāng)“select”為“1”,sd2被選中。為了方便,以下討論假定主機(jī)與sdi卡通信。
如圖2 雙卡的多路選擇器
自動檢測數(shù)據(jù)流方向的思路為本設(shè)計(jì)的重點(diǎn),host或sdi驅(qū)動總線為低,將會啟動一次數(shù)據(jù)傳輸。例如,如果host要發(fā)送數(shù)據(jù)給sdi,當(dāng)host驅(qū)動a端為低電平時,bi門輸出高電平。三態(tài)buffer使能端有效,也輸出低電平到sdi端。同時a_reg的clock端會出現(xiàn)一個上升沿,從而a_reg的q端輸出高電平。此高電平禁止了三態(tài)buffera和b_reg端出現(xiàn)clock的有效沿。這樣一來,使sdi端跟蹤了host端的變化。
相反,如果host端驅(qū)動為高電平,門bi輸出低電平,從而強(qiáng)制b輸出高電平(通過外部上拉電阻)。一旦a端和b端都輸出高電平,a_reg和b_reg均復(fù)位為低電平。
以上過程周而復(fù)始地進(jìn)行,如果數(shù)據(jù)傳輸方向是從sdi到host,上述傳輸過程恰好相反。另外,host與sd2之間的通信與host與sdi之間的通信類似。不再贅述。
(2)設(shè)計(jì)范例
源代碼及測試程序可從xilinx網(wǎng)站下載,如圖3所示為仿真波形。
如圖3 modelsim仿真波形
仿真時,首先是sel為低電平,host發(fā)數(shù)據(jù)給sdi。sdi收到數(shù)據(jù)后發(fā)給host,圖中虛線表示高阻狀態(tài)。之后sel為高電平,host與sd2之間通信。如表所示為設(shè)計(jì)實(shí)現(xiàn)后的資源使用情況。
如表 設(shè)計(jì)實(shí)現(xiàn)后的資源使用情況
熱門點(diǎn)擊
- Coo1Runner-Ⅱ器件實(shí)現(xiàn)IDE總線接
- Coo1Runner-Ⅱ器件實(shí)現(xiàn)雙向多路選擇
- Coo1Runner-Ⅱ器件I2C接口協(xié)議
- CoolRunner-II器件的ISO 78
- Coo1Runner-Ⅱ器件實(shí)現(xiàn)SRAM控制
- CoolRunner-Ⅱ器件的OL、SDA、
- CoolRunner-Ⅱ器件的I2C總線仲裁
- CoolRunner-II實(shí)現(xiàn)IrDA和UA
- CoolRunner-Ⅱ器件的I2C接口主狀
- CoolRunner-II CPLD設(shè)計(jì)
推薦技術(shù)資料
- DS2202型示波器試用
- 說起數(shù)字示波器,普源算是國內(nèi)的老牌子了,F(xiàn)QP8N60... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究