嵌入式1394總線(xiàn)接口的設計和實(shí)現
一、 引言
IEEE1394 是1986 年由蘋(píng)果電腦公司針對高速數據傳輸開(kāi)發(fā)的一種總線(xiàn)接口,并于1995年由美國電氣和電子工程師協(xié)會(huì )(IEEE)制定成標準,旨在取代并行SCSI 接口。目前為止,它主要發(fā)展為IEEE1394-1995,1394a,1394b 等系列標準。1394 作為一個(gè)工業(yè)標準的高速串行總線(xiàn),已經(jīng)被廣泛應用于數字攝像機、數字照相機、電視機頂盒、計算機及其外圍設備、DVD 設備等等,甚至在航天軍事領(lǐng)域也有一定的應用潛力。這些設備便攜性的需求加快了它們集成度的提高,這些都將使1394 總線(xiàn)與嵌入式處理器的結合有很廣闊的應用前景。
等時(shí)傳輸模式的優(yōu)越性使1394 總線(xiàn)廣泛應用于圖像傳輸領(lǐng)域,而數字信號處理器(DSP)在圖像等信號處理方面具有很大優(yōu)勢,因此基于DSP 實(shí)現的1394 總線(xiàn)接口在圖像傳輸和處理領(lǐng)域有著(zhù)廣泛的應用需求,但是,DSP 芯片與1394 總線(xiàn)芯片時(shí)序一般不能直接匹配。本文提出了一種基于DSP 的1394 總線(xiàn)接口實(shí)現方案,能在基于DSP 處理器的嵌入式系統上方便地實(shí)現1394 總線(xiàn)接口,具有較強的現實(shí)意義。
二、 設計方案
1394 總線(xiàn)協(xié)議包括物理層,鏈路層,傳輸層,應用層以及串行總線(xiàn)管理器。目前已經(jīng)有很多廠(chǎng)家能提供1394 總線(xiàn)接口的協(xié)議芯片,可以很容易地實(shí)現1394 總線(xiàn)接口本身。本文主要介紹如何通過(guò)FPGA 實(shí)現嵌入式處理器與1394 總線(xiàn)鏈路層控制器芯片的匹配,嵌入式處理器把1394 總線(xiàn)設備作為外設實(shí)現數據讀取和寫(xiě)入。整體結構框圖如圖1。其中DSP 是本文使用的嵌入式處理器類(lèi)型,1394 鏈路層控制器和1394 物理層控制器是1394 總線(xiàn)協(xié)議芯片。FPGA 是現場(chǎng)可編程門(mén)陣列,是本文用于實(shí)現DSP 與1394 鏈路層控制器匹配的主要芯片,與分立器件相比,它具有可擦除、功耗小、體積小和調試方便等優(yōu)勢。本文選用ACTEL 公司生產(chǎn)的APA300 芯片來(lái)完成設計,它有30 萬(wàn)門(mén)陣列資源,已經(jīng)遠遠滿(mǎn)足本設計的需求。
2.1 TMS320V33
德州儀器(TI)在DSP 設計廠(chǎng)商中具有領(lǐng)先優(yōu)勢,TMS320V33 是TI 推出的TMS320 系列的第三代處理器的升級版本的32 位浮點(diǎn)運算數字信號處理器,也是目前國內外使用最為廣泛的浮點(diǎn)DSP 芯片之一。它有24 位地址總線(xiàn)和32 位數據總線(xiàn),本設計中使用高17 位地址信號作為選通信號,低7 位地址信號作為輸出給鏈路層芯片的有效地址信號,低16 位數據總線(xiàn)作為有效數據信號,H1 是37.5Mhz 時(shí)鐘信號。TMS320V33 讀寫(xiě)外部寄存器時(shí)序如圖2。
2.2 鏈路層控制器
目前能提供 1394a 鏈路層控制器芯片的廠(chǎng)商有很多,芯片種類(lèi)也很多。而其中TI 公司生產(chǎn)的TSB12LV32 功能全面,應用廣泛。它是一款高性能通用1394a 鏈路層控制器,它主要實(shí)現1394 鏈路層協(xié)議。圖3 和圖4 是1394 鏈路層芯片TSB12LV32 的握手模式讀寫(xiě)時(shí)序圖。其中BCLK 代表時(shí)鐘信號輸入,最大工作頻率是60Mhz;MWR 代表讀寫(xiě)使能信號輸入,高電平時(shí)讀使能有效,低電平時(shí)寫(xiě)使能有效;MCS 代表選通信號輸入,低電平有效;MCA 代表選通應答信號輸出,低電平有效;MA 代表地址信號輸入;MD 代表雙向數據信號;另外COLDFIRE,M8BIT/SIZ0,MCMODE/SIZ1 為設置工作模式專(zhuān)用信號。在本設計中我們選用握手工作模式。
2.3 方案選擇
鏈路層控制器最高僅 60Mhz 的理論工作頻率使得高性能的TMS320V33 必須增加自己的讀寫(xiě)周期才能與之很好的配合,TMS320V33 的讀寫(xiě)周期可以通過(guò)RDY 信號或者增加可編程等待狀態(tài)改變。在本設計中我們對TMS320V33 使用RDY 信號的方法來(lái)配合它與鏈路層芯片的讀寫(xiě)時(shí)序。兩種方法沒(méi)有好壞之分,區別僅在于DSP 可編程等待狀態(tài)的數量是有限的,但是大部分情況下增加有限的等待狀態(tài)已經(jīng)足夠。
我們可以選擇使用組合邏輯和時(shí)序邏輯來(lái)完成此FPGA 設計,雖然組合邏輯設計方法簡(jiǎn)單、占用資源少,但是它僅僅是讓DSP 和鏈路層芯片的讀寫(xiě)時(shí)序“湊”到一起,很難實(shí)現完全配合,而且會(huì )在讀寫(xiě)過(guò)程中存在很多“毛刺”、“競爭”和“冒險”,不適合應用在性能要求比較高的場(chǎng)合。有限狀態(tài)機是時(shí)序邏輯的一種,它由狀態(tài)、狀態(tài)轉換條件和狀態(tài)輸出組成。它具有以下優(yōu)點(diǎn):1.它是同步時(shí)序電路,克服了組合邏輯順序控制不靈活的缺點(diǎn),便于與CPU 配合;2.狀態(tài)機容易構成性能良好的同步時(shí)序邏輯模塊,只需要將“毛刺”控制在下一個(gè)狀態(tài)到來(lái)之前,這對于對付設計中的“競爭冒險”現象無(wú)疑是一個(gè)較好的辦法;3.狀態(tài)機的結構模式相對簡(jiǎn)單,設計方案相對固定,設計方法具有通用性。
基于以上情況,本設計中使用“有限狀態(tài)機”的方法實(shí)現嵌入式處理器與鏈路層芯片的時(shí)序匹配,保證在處理器的一次讀寫(xiě)操作中數據能正確有效地傳送。結合圖2、圖3 和圖4的讀寫(xiě)時(shí)序給出狀態(tài)轉換圖如圖5。此狀態(tài)機一共由6 個(gè)狀態(tài)組成,分別為IDLE、START、RD0、RDi、WR0、WRi。在RESET 信號有效時(shí)設計進(jìn)入復位階段,復位后狀態(tài)機進(jìn)入IDLE 狀態(tài);在IDLE 狀態(tài)中,如果片選信號有效,狀態(tài)機進(jìn)入START 狀態(tài),同時(shí)輸出給鏈路層控制器MCS 端口低信號,選通鏈路層芯片寄存器;狀態(tài)機進(jìn)入START 狀態(tài)后,開(kāi)始檢測讀寫(xiě)使能信號,如果讀(寫(xiě))信號有效,則進(jìn)入RD0(WR0)狀態(tài),同時(shí)向鏈路層控制器芯片讀(寫(xiě))的地址;在RD0(WR0)狀態(tài)中,檢測鏈路層控制器芯片的MCA 管腳信號,在MCA 有效時(shí)讀(寫(xiě))有效數據,并向DSP 輸出RDY 有效信號,狀態(tài)機進(jìn)入RDi(WRi)狀態(tài),經(jīng)過(guò)一個(gè)時(shí)鐘后釋放數據和地址總線(xiàn),返回IDLE 狀態(tài)。
三、 設計實(shí)現
目前用于 FPGA 設計的主流硬件描述語(yǔ)言主要有VHDL 和verilog HDL,本設計借助VHDL語(yǔ)言實(shí)現。下面簡(jiǎn)要列出實(shí)現狀態(tài)機的VHDL 代碼結構:
將此設計方法實(shí)現的電路下載到實(shí)際系統中進(jìn)行驗證,試驗結果表明,該設計能成功完成TMS320V33 對TSB12LV32 芯片讀寫(xiě)控制功能。接口后仿真時(shí)序如圖6 所示,包括一次寫(xiě)操作和三次讀操作。
四、 結論
本設計實(shí)現的 TMS320V33 與1394 總線(xiàn)鏈路層芯片TSB12LV32 的接口設計方法,設計思路清晰,時(shí)序準確,并且具有一定的靈活性和通用性,其他類(lèi)似處理器與1394 總線(xiàn)鏈路層芯片的接口都可以采用類(lèi)似的設計方法。
本文的設計方法為其它各種處理器與外設接口的匹配設計實(shí)現提供了有益的參考。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂) 電機保護器相關(guān)文章:電機保護器原理
評論