新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PLD與AVR總線通信接口VHDL設計與實現

        基于PLD與AVR總線通信接口VHDL設計與實現

        作者: 時間:2012-04-09 來源:網絡 收藏

        1、引言

        嵌入式系統在日常生活中的大量使用,人們也對其性能和速度提出了更高的要求。微控制器和可編程邏輯器件的結合,更能充分發揮嵌入式系統的優勢。本文設計和實現的微控制器與可編程邏輯器件之間總線讀寫方式通信比傳統的串行通信更可靠、速度更快。下面是一些相關術語的說明。

        總線:任何一個微處理器都要與一定數量的部件和外圍設備連接,但如果將各部件和每一種外圍設備都分別用一組線路與CPU直接連接,那么連線將會錯綜復雜,甚至難以實現。為了簡化硬件電路設計、簡化系統結構,常用一組線路,配置以適當的接口電路,與各部件和外圍設備連接,這組共用的連接線路被稱為總線[2]。采用總線結構便于部件和設備的擴充,尤其制定了統一的總線標準則容易使不同設備間實現互連。

        :ATMEL公司的單片機,是增強型RISC內載FLASH的單片機,芯片上的FLASH存儲器附在用戶的產品中,可隨時編程,再編程,使用戶的產品設計容易,更新換代方便。單片機采用增強的RISC結構 ,使其具有高速處理能力,在一個時鐘周期內可執行復雜的指令。本系統采用的AVR Mega64L還具有:用32個通用工作寄存器代替累加器,從而可以避免傳統的累加器和存儲器之間的數據傳送造成的瓶頸現象;一個時鐘周期執行一條指令;可直接訪問8M字節程序存儲器和8M字節數據存儲器寄存器等特點[3]。

        (Programmable Logic Device):分為C(Complex Programmable Logic Device)復雜的可編程邏輯器件和FPGA(Field Programmable Gate Array)現場可編程門陣列兩大類[2、3]。

        兩者的功能基本相同,只是實現原理略有不同,所以我們有時可以忽略這兩者的區別,統稱為可編程邏輯器件或CPLD/FPGA。PLD是一種具有豐富的可編程I/O引腳的可編程邏輯器件,具有在系統可編程、使用方便靈活的特點;不但可實現常規的邏輯器件功能,還可實現復雜的時序邏輯功能。把PLD應用于嵌入式應用系統,同單片機結合起來更能體現其在系統可編程、使用方便靈活的特點。PLD同單片機接口,可以作為單片機的一個外設,實現單片機所要求的功能。實現了嵌入式應用系統的靈活性,可以大大縮短設計時間,減少PCB面積,也提高了嵌入式應用系統的性能。

        VHLD:的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,一種被IEEE和美國國防部確認為標準硬件描述語言。主要用于描述數字系統的結構、行為、功能和接口。的程序結構特點是將一項工程設計,或稱設計實體(可以是一個元件,一個電路模塊或一個系統)分成外部(或稱可視部分)和內部(或稱不可視部分),涉及實體的內部功能和算法完成部分[4,5]。在對一個設計實體定義了外部界面后,一旦其內部開發完成后,其他的設計就可以直接調用這個實體。

        2、PLD同單片機接口設計

        系統中采用的MAX II EPM570 芯片有邏輯單元數(LE)570個,等效典型宏單元數440個,最大用戶I/O管腳數160個,用戶FLASH存儲器比特數8192,tPD1 角對角性能5.5 ns,tPD2最快性能3.7 ns。采用100-pin TQFP封裝。

        EPM570同單片機接口原理如圖1所示。

        圖1 ATmega64L與EPM570接口示意圖

        EPM570同單片機接口設計中,單片機采用Atmel公司的AVR系列的ATmega64L。ATmega64L通過ALE、CS、RD、WE、P0口(數據地址復用)同EPM570芯片相連接。ALE:地址鎖存信號;CS:片選信號;RD:讀信號;WR:寫信號;AD0~AD7:數據地址信號復用數據線。

        本系統的設計思想是:在EPM570設置兩個內部控制寄存器,通過單片機對兩個控制寄存器的讀寫來完成對其它通信過程的控制。EPM570設置的兩個控制寄存器,可以作內部寄存器,也可以直接映射為I/O口,根據實際需要而進行設置。

        本系統設計的關鍵是:在EMP570 上實現的存儲器的讀寫時序要滿足ATmega64L對外部讀寫時序的需要,有關ATmega64L對外部讀寫時序請參考相關資料和ATmega64L的數據手冊。

        3、PLD同單片機AVR讀寫接口VHDL實現

        PLD的設計流程[6,7]一般應包括以下幾部分:

        ① 設計輸入。可以采用原理圖輸入、DHL語言描述、EDIF網表讀入或波形輸入等方式。

        ② 功能仿真。此時為零延時模式,主要檢驗輸入是否有誤。

        ③ 編譯。主要完成器件的選取及適配,邏輯的綜合及器件的裝入,延時信息的提取。

        ④ 后仿真。將編譯產生的延時信息加入到設計中,進行布局布線后的仿真,是與實際器件工作時的情況基本相同的仿真。

        ⑤ 編程驗證。有后仿真確認的配置文件下載到PLD相關配置器件中,加入實際激勵,進行測試,以檢查是否完成預定功能。

        以上各步驟若出現錯誤現象,則需要重新回到設計階段,修正錯誤輸入或調整電路,在重復上述過程直到其完全滿足電子系統需要。

        本系統中,使用Altera公司提供的集成開發軟件Quartus II 6.0 進行設計,在進行模塊實現時請參考ATmega64L的數據手冊中關于ATmega64L對外部存儲器的讀寫時序。

        本設計實現 的VHDL部分源碼如下:

        地址鎖存:

        寫數據進程:

        讀數據進程:


        上一頁 1 2 下一頁

        關鍵詞: PLD AVR 總線通信 VHDL

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁远县| 民乐县| 兴化市| 大悟县| 宁海县| 宜兰市| 林西县| 弋阳县| 岳阳县| 孟连| 商都县| 井冈山市| 常德市| 玉溪市| 璧山县| 安宁市| 年辖:市辖区| 民权县| 万年县| 泽州县| 泾川县| 开阳县| 云梦县| 交口县| 永川市| 宝应县| 正宁县| 新昌县| 罗平县| 昆山市| 贡觉县| 达拉特旗| 新民市| 蓬莱市| 威信县| 庆阳市| 大兴区| 东港市| 辽阳市| 齐齐哈尔市| 岗巴县|