新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DSP HPI口與PC104總線接口的FPGA設計

        DSP HPI口與PC104總線接口的FPGA設計

        作者: 時間:2006-07-19 來源:網絡 收藏
        摘 要 通過對TI公司TMS320C5000系列 時序的分析,以VHDL語言為工具,使用Altera的芯片EP1K50,完成PCI04 總線之間的通信,并在一款以TMS320VC5409為數據采集處理器、研華嵌入式工控主板PCM-5825為系統主板組成的嵌入式數據采集系統申得到了運用;給出與整個相關的VHDL源代碼和在PCM-5825上驗證的X86匯編語言程序。
        關鍵詞 DSP 總線 VHDL源代碼

        在一款嵌入式數據采集系統的設計中,采用TMS320VC5409 DSP作為對多路信號的采集與預處理,處理后的數據送至12.7 Cm(5in)的工控計算機中進行分析與保存。因為工控機的總線為,因此需要設計PC104與DSP之間的通信接口。系統中以Altera公司的一片芯片EPlK50來對該接口和數據采集過程中的邏輯控制與FIFO進行設計。下面主要闡述該通信接口的設計。

        1 DSP的HP0接口
        TMS320VC5409 DSP的HPI是一個8位的并行接口,主要用來與主設備或主處理器接口。DSP內部有一定數量的雙訪問RAM,除了DSP本身可以訪問該RAM區域外,主機也可以通過HPI口實現對雙訪問RAM的訪問,從而實現主機與DSP的通信。

        HPI接口通過HPI控制寄存器HPIC、地址寄存器HPIA、數據寄存器HPID等3個HPI寄存器進行控制和實現數據傳輸。這3個寄存器都是16位的,因此主機訪問這些寄存器時需要分兩次操作才能完成。

        HPIC只有4位用于控制HPI的操作,這4位分別位于高字節和低字節的低4位,并規定HPIC的高低字節必須相同:
        Bit0/8(BOB)一一用于字節順序控制,BOB=1表示第1個字節為低字節,否則第1個字節為高字節;
        Bitl/9(SMOD)一一訪問模式控制,SMOD=l表示共享訪問模式(SAM),否則為主機訪問模式(HOM);
        Bit2/10(DSPINT)一一主機通過將該位寫l來向DSP發送1次HPI中斷;
        Bit3/11(H1NT)一一DSP通過向該位置l,使外部引腳HINT產生一個低電子作為給主機的中斷,中斷的清除必須由主機向該位寫l來清除。

        HPID是數據寄存器,主機通過讀寫該寄存器來實現對共享RAM的讀寫,RAM的地址則由HPIA地址寄存器的內容來決定。因此,主機對DSP的訪問過程是,先往HPI地址寄存器HPIA寫入欲訪問的地址,然后再對數據寄存器HPID進行讀或寫訪問。

        HPI接口信號包括:
        HAS一一輸入,地址鎖存信號,可連接到高電平;
        HBIL一一輸入,字節識別信號,用來識別傳輸的是高電平還是低電平;
        HCNTL[1..0]一一輸入,HPI寄存器的訪問地址信號,主機用來選擇訪問的HPI寄存器。如表l所列;

        HCS一一輸入,HPI片選信號,低電平有效;
        HD[7..0]一一雙向三態數據總線;
        HDS1/HDS2一一數據輸入選通信號,可將其中一個接低電平,另一個接邏輯控制;
        HINT一一輸出,給主機的中斷信號,由HPIC寄存器的HINT位控制;
        HRDY一一輸出,HPI準備好,高電子有效;
        HR/W一一輸入,讀寫控制信號,高電子表示主機進行讀操作,低電子表示主機進行寫操作。
        HPI的訪問時序如圖l所示。如前所述,訪問寄存器時需要分兩次操作才能完成。


        2 PC104總線
        PC104總線是從ISA總線衍生而來的,主要是為了適應嵌入式系統的需要。在8.89 cm(3.5 in)和12.7cm(5in)工控主板中,大多使用PC104總線作為標準接口總線。PC104總線共有104根引腳,其中絕大多數與ISA總線信號特性完全一致,只有極個別的信號有區別,因此在應用中完全可以按ISA總線使用。PC104總線與ISA總線一樣,是一個16位和8位同時兼容的總線。在本系統中,使用的是8位的方式,將DSP的HPI口作為PC104總線的8位I/O設備。PC104總線的I/O訪問時序如圖2和圖3所示。

        根據PC104總線的I/O訪問時序,只需使用以下的總線信號,即可完成8位總線的通信設計:
        SD[7..0]一一PC104數據總線;
        SA[9..0]一一PC104地址總線;
        IOW一一PC104端口寫控制,低電平有效,表示對I/0口寫操作,由OUT指令執行;
        IOR一PC104端口讀控制,低電子有效,表示對I/O口讀操作,由IN指令執行;
        SYSCLK一一PC104總線時鐘;
        ALE一一地址鎖存信號,在此不用作地址鎖存,而是用作總線周期的開始同步,它的下降沿表示總線周期開始;
        IOCHRDY一一I/0設備就緒信號,當將該電平為低(無效狀態)時,表示I/0設備要延長總線周期,信號由三態門或集電極開路門驅動;
        IRQ一一中斷請求信號,當I/O設備需要向PC機通信或是采集的信號已經準備好后,向PC發起中斷,申請通信,PC將數據讀走。

        3 接口設計
        根據前面的分析,得出接口原理如圖4所示。

        圖4中,FPGA為EPlK50。EPlK50內部擁有2880個邏輯單元,40 960位的RAM。在本系統中,不僅作為HPI和PC104的接口邏輯,還有其他功能,如FIFO、A/D控制等。

        EP1K50的內核供電電壓為2.5 V,I/O供電電壓為3.3 V,可以直接與I/O供電電壓也是3.3 V的TMS320VC5409 DSP相連.另外,EPIK50能承受-0.7~5.75V的輸入電子,輸出則與TTL電平兼容,因此EP1K50也可以直接與5 VTTL電平的PC104總線相連,從而在DSP和PC104總線之間起電平轉換的作用,不需再使用其他的電子轉換器件,簡化了電路設計。

        對于接口設計來說,最主要的就是時序設計。時序設計正確了,系統就能正確地工作。在綜合了HPI的訪問時序與PC104總線的讀寫時序后,得出以下設計方法:
        ①對于HPI寄存器的訪問可以通過地址編碼實現,偶地址對應寄存器的低字節,奇地址對應寄存器的高字節,如表2所列。

        于是相應信號關系為:
        HCNTL[1..0]=SA[2..1]
        HBIL=SA[0]
        當SA[9..0]=0x350~0x357時,HCS=0,SA[9..0]
        為其他值時,HCS=1。
        ②HD[7..O]和SD[7..0]設計成雙向總線。
        ③HR/W的產生:當PCI04進行讀操作時,HR/W=1;當PC104進行寫操作時,HR/W=0。于是:
        HR/W=0,當IOR=1且IOW=0時;
        HR/W=1,當IOR=0且IOW=1時。
        ④在DSP上將HDS2直接接低電子,HDSl在HBIL為0和HBIL為1時,分別產生一個變化沿,用以選通數據。該信號的產生是接口設計成功的關鍵。在此使用PCI04總線的系統時鐘信號SYSCLK來計數產生。詳細過程可參見VHDL代碼。
        ⑤PCI04總線的中斷請求信號IRQ=HINT取非。因為PC104設置為上升沿中斷。
        ⑥PC104總線的外部I/0準備好信號IORDY在地址選通有效過程中接HPI口的HRDY信號,地址選通無效時置為高阻態。

        4 代碼設計
        代碼包括接口設計的VHDL源碼和驗證的X86匯編語言代碼,代碼內容見本刊網站(WWW.dpj.com.cn)。VHDL代碼在Altera公司的開發工具QuartusII下編譯,經下載電纜下載到FPGA后,可在Debug中用匯編語言對DSP進行讀寫驗證。

        結 語
        本文使用VHDL語言和FPGA,設計了PC104總線與DSP之間的接口。之所以使用FPGA,是因為在系統中FPGA還包含有其他的功能設計。如果只有PC104總線與DSP之間的接口設計,使用CPLD即可完成,而不必浪費FPGA的資源。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 平遥县| 潍坊市| 若羌县| 祁东县| 交城县| 遵义县| 屏南县| 沐川县| 沂源县| 昂仁县| 邵武市| 镇平县| 波密县| 射洪县| 东丽区| 博湖县| 鞍山市| 双鸭山市| 剑川县| 嘉义市| 武冈市| 招远市| 潜江市| 莲花县| 深水埗区| 纳雍县| 桂东县| 呼伦贝尔市| 岳阳市| 桦川县| 肃北| 桐柏县| 林周县| 黑河市| 安仁县| 凌云县| 洛川县| 东乡| 准格尔旗| 东莞市| 恩施市|