0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何實(shí)現(xiàn)PLD與AVR通信接口設(shè)計(jì)

電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2018-10-02 01:06 ? 次閱讀

1、引言

嵌入式系統(tǒng)在日常生活中的大量使用,人們也對(duì)其性能和速度提出了更高的要求。微控制器和可編程邏輯器件的結(jié)合,更能充分發(fā)揮嵌入式系統(tǒng)的優(yōu)勢(shì)。本文設(shè)計(jì)和實(shí)現(xiàn)的微控制器與可編程邏輯器件之間總線讀寫方式通信比傳統(tǒng)的串行通信更可靠、速度更快。下面是一些相關(guān)術(shù)語(yǔ)的說明。

總線:任何一個(gè)微處理器都要與一定數(shù)量的部件和外圍設(shè)備連接,但如果將各部件和每一種外圍設(shè)備都分別用一組線路與CPU直接連接,那么連線將會(huì)錯(cuò)綜復(fù)雜,甚至難以實(shí)現(xiàn)。為了簡(jiǎn)化硬件電路設(shè)計(jì)、簡(jiǎn)化系統(tǒng)結(jié)構(gòu),常用一組線路,配置以適當(dāng)?shù)?a target="_blank">接口電路,與各部件和外圍設(shè)備連接,這組共用的連接線路被稱為總線[2]。采用總線結(jié)構(gòu)便于部件和設(shè)備的擴(kuò)充,尤其制定了統(tǒng)一的總線標(biāo)準(zhǔn)則容易使不同設(shè)備間實(shí)現(xiàn)互連。

AVR:ATMEL公司的AVR單片機(jī),是增強(qiáng)型RISC內(nèi)載Flash的單片機(jī),芯片上的Flash存儲(chǔ)器附在用戶的產(chǎn)品中,可隨時(shí)編程,再編程,使用戶的產(chǎn)品設(shè)計(jì)容易,更新?lián)Q代方便。AVR單片機(jī)采用增強(qiáng)的RISC結(jié)構(gòu) ,使其具有高速處理能力,在一個(gè)時(shí)鐘周期內(nèi)可執(zhí)行復(fù)雜的指令。本系統(tǒng)采用的AVR Mega64L還具有:用32個(gè)通用工作寄存器代替累加器,從而可以避免傳統(tǒng)的累加器和存儲(chǔ)器之間的數(shù)據(jù)傳送造成的瓶頸現(xiàn)象;一個(gè)時(shí)鐘周期執(zhí)行一條指令;可直接訪問8M字節(jié)程序存儲(chǔ)器和8M字節(jié)數(shù)據(jù)存儲(chǔ)器寄存器等特點(diǎn)[3]。

PLD(Programmable Logic Device):PLD分為CPLD(Complex Programmable Logic Device)復(fù)雜的可編程邏輯器件和FPGA(Field Programmable Gate Array)現(xiàn)場(chǎng)可編程門陣列兩大類[2、3]。

兩者的功能基本相同,只是實(shí)現(xiàn)原理略有不同,所以我們有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件或CPLD/FPGA。PLD是一種具有豐富的可編程I/O引腳的可編程邏輯器件,具有在系統(tǒng)可編程、使用方便靈活的特點(diǎn);不但可實(shí)現(xiàn)常規(guī)的邏輯器件功能,還可實(shí)現(xiàn)復(fù)雜的時(shí)序邏輯功能。把PLD應(yīng)用于嵌入式應(yīng)用系統(tǒng),同單片機(jī)結(jié)合起來(lái)更能體現(xiàn)其在系統(tǒng)可編程、使用方便靈活的特點(diǎn)。PLD同單片機(jī)接口,可以作為單片機(jī)的一個(gè)外設(shè),實(shí)現(xiàn)單片機(jī)所要求的功能。實(shí)現(xiàn)了嵌入式應(yīng)用系統(tǒng)的靈活性,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,也提高了嵌入式應(yīng)用系統(tǒng)的性能。

VHLD:VHDL的英文全名是Very-High-Speed Integrated Circuit Hardware Description Language,一種被IEEE和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)、行為、功能和接口。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分)和內(nèi)部(或稱不可視部分),涉及實(shí)體的內(nèi)部功能和算法完成部分[4,5]。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。

2、PLD同單片機(jī)接口設(shè)計(jì)

系統(tǒng)中采用的MAX II EPM570 芯片有邏輯單元數(shù)(LE)570個(gè),等效典型宏單元數(shù)440個(gè),最大用戶I/O管腳數(shù)160個(gè),用戶Flash存儲(chǔ)器比特?cái)?shù)8192,tPD1 角對(duì)角性能5.5 ns,tPD2最快性能3.7 ns。采用100-pin TQFP封裝。

EPM570同單片機(jī)接口原理如圖1所示。

如何實(shí)現(xiàn)PLD與AVR通信接口設(shè)計(jì)

圖1 ATmega64L與EPM570接口示意圖

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

本系統(tǒng)的設(shè)計(jì)思想是:在EPM570設(shè)置兩個(gè)內(nèi)部控制寄存器,通過單片機(jī)對(duì)兩個(gè)控制寄存器的讀寫來(lái)完成對(duì)其它通信過程的控制。EPM570設(shè)置的兩個(gè)控制寄存器,可以作內(nèi)部寄存器,也可以直接映射為I/O口,根據(jù)實(shí)際需要而進(jìn)行設(shè)置。

本系統(tǒng)設(shè)計(jì)的關(guān)鍵是:在EMP570 上實(shí)現(xiàn)的存儲(chǔ)器的讀寫時(shí)序要滿足ATmega64L對(duì)外部讀寫時(shí)序的需要,有關(guān)ATmega64L對(duì)外部讀寫時(shí)序請(qǐng)參考相關(guān)資料和ATmega64L的數(shù)據(jù)手冊(cè)。

3、PLD同單片機(jī)AVR讀寫接口VHDL實(shí)現(xiàn)

PLD的設(shè)計(jì)流程[6,7]一般應(yīng)包括以下幾部分:

① 設(shè)計(jì)輸入??梢圆捎迷韴D輸入、DHL語(yǔ)言描述、EDIF網(wǎng)表讀入或波形輸入等方式。

② 功能仿真。此時(shí)為零延時(shí)模式,主要檢驗(yàn)輸入是否有誤。

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

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

⑤ 編程驗(yàn)證。有后仿真確認(rèn)的配置文件下載到PLD相關(guān)配置器件中,加入實(shí)際激勵(lì),進(jìn)行測(cè)試,以檢查是否完成預(yù)定功能。

以上各步驟若出現(xiàn)錯(cuò)誤現(xiàn)象,則需要重新回到設(shè)計(jì)階段,修正錯(cuò)誤輸入或調(diào)整電路,在重復(fù)上述過程直到其完全滿足電子系統(tǒng)需要。

本系統(tǒng)中,使用Altera公司提供的集成開發(fā)軟件Quartus II 6.0 進(jìn)行設(shè)計(jì),在進(jìn)行模塊實(shí)現(xiàn)時(shí)請(qǐng)參考ATmega64L的數(shù)據(jù)手冊(cè)中關(guān)于ATmega64L對(duì)外部存儲(chǔ)器的讀寫時(shí)序。

本設(shè)計(jì)實(shí)現(xiàn) 的VHDL部分源碼如下:

地址鎖存:

寫數(shù)據(jù)進(jìn)程:

讀數(shù)據(jù)進(jìn)程:

4、仿真驗(yàn)證結(jié)果

使用Quartus II 6.0 自帶的仿真軟件仿真結(jié)果如圖2和圖3所示。圖中ale、cs、rd、we、mcu_data 是激勵(lì)信號(hào),表示ATmega64L 相應(yīng)接口信號(hào),conreg1和 conreg2 為EPM570 輸出信號(hào),其目的是為了觀察仿真結(jié)果是否正確,而實(shí)際應(yīng)用中應(yīng)根據(jù)項(xiàng)目需求而進(jìn)行添加或是減少相應(yīng)的I/O口。

圖2是ATmega64L向 EPM570 寫數(shù)據(jù)過程。首先,在片選信號(hào)cs為低期間,在ale信號(hào)的下降沿,鎖存mcu_data上的數(shù)據(jù)到add內(nèi)部地址鎖存寄存器。然后,在we信號(hào)低電平時(shí),把mcu_data (0XAA)的數(shù)據(jù)直接寫到conreg1(B10101010),通過外接指示燈可以直接觀察結(jié)果是否正確,當(dāng)然,在實(shí)際應(yīng)用中可以把數(shù)據(jù)鎖存到內(nèi)部寄存器中。

圖2寫數(shù)據(jù)0X“AA”到0地址處

圖3是讀數(shù)據(jù)過程。在片選信號(hào)為低期間,首先,在ale信號(hào)的下降沿,鎖存mcu_data(0X01)數(shù)據(jù)到add內(nèi)部地址鎖存寄存器。然后,在rd信號(hào)的低電平期間,把內(nèi)部寄存器地址為0X01的數(shù)據(jù)reg02(0xAA)讀到mcu_data數(shù)據(jù)線上傳回單片機(jī)ATmega64L。

圖3 讀地址為0X“01”上的數(shù)據(jù)0x“AA”并傳回?cái)?shù)據(jù)總線

從讀寫數(shù)據(jù)圖中可以看出,ATmega64L對(duì)EPM570內(nèi)部數(shù)據(jù)讀寫過程完全滿足ATmega64L數(shù)據(jù)手冊(cè)上的時(shí)序需要。關(guān)于ATmega64L的讀寫時(shí)序可以參考ATmega64L數(shù)據(jù)手冊(cè)。

5、結(jié)語(yǔ)

本文實(shí)現(xiàn)PLD與AVR ATmega64L通信接口設(shè)計(jì)是筆者設(shè)計(jì)的一種紡織機(jī)械控制設(shè)備的一部分,經(jīng)實(shí)際驗(yàn)證完全正確,并已投入生產(chǎn)。簡(jiǎn)單地修改該讀寫通信模塊,可應(yīng)用于多個(gè)CPLD或FPGA與單片機(jī)通信接口的項(xiàng)目中,本模塊還可以根據(jù)需要擴(kuò)展為16位、32位地址線的讀寫接口。

本文創(chuàng)新點(diǎn):充分利用可編程邏輯器件豐富的I/O口和內(nèi)部可編程邏輯資源,通過總線讀寫的方式通訊,使PLD和MCU的通信速度大大提高,同時(shí)也提高了嵌入式系統(tǒng)或是工業(yè)控制中的其他相關(guān)性能,極大提高產(chǎn)品的競(jìng)爭(zhēng)力。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    7559

    瀏覽量

    151480
  • 嵌入式
    +關(guān)注

    關(guān)注

    5083

    文章

    19131

    瀏覽量

    305533
  • 可編程邏輯
    +關(guān)注

    關(guān)注

    7

    文章

    515

    瀏覽量

    44089
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于AVR單片機(jī)和PDIUSBD12的USB接口設(shè)計(jì)

    ,嵌入式微處理器需增加通用的USB接口,以便實(shí)現(xiàn)與PC等USB主機(jī)系統(tǒng)的通信。針對(duì)這樣的需求,這里采用PHILIPS公司的USB接口器件PDIUSBD12和Atmel公司的
    發(fā)表于 04-20 14:42

    基于AVR單片機(jī)和PDIUSBD12的USB接口設(shè)計(jì)

    USB接口以其數(shù)據(jù)傳輸快、連接簡(jiǎn)單、易于擴(kuò)展、支持熱插拔等特點(diǎn)已成為外設(shè)與PC通信的主要方式之一。隨著嵌入式系統(tǒng)的發(fā)展,嵌入式微處理器需增加通用的USB接口,以便實(shí)現(xiàn)與PC等USB主機(jī)
    發(fā)表于 06-03 11:04

    基于AVR單片機(jī)和PDIUSBD12的USB接口設(shè)計(jì)

    USB接口以其數(shù)據(jù)傳輸快、連接簡(jiǎn)單、易于擴(kuò)展、支持熱插拔等特點(diǎn)已成為外設(shè)與PC通信的主要方式之一。隨著嵌入式系統(tǒng)的發(fā)展,嵌入式微處理器需增加通用的USB接口,以便實(shí)現(xiàn)與PC等USB主機(jī)
    發(fā)表于 01-07 13:57

    求助求助 關(guān)于AVR SPI接口通信

    兩片AVR單片機(jī)通過SPI接口通信,用查詢法時(shí)可以進(jìn)行正常工作,但用中斷法時(shí),卻無(wú)法接受數(shù)據(jù)。用的是AVR Studio軟件進(jìn)行編寫的程序如下:#include#include#def
    發(fā)表于 05-15 23:11

    AVR與FPGA通過SPI接口通信

    ATmega128通過SPI接口與FPGA通信哪位大神做過發(fā)數(shù)據(jù)FPGA收到就是收不到FPGA發(fā)送過來(lái)的數(shù)據(jù)。 FPGA可以準(zhǔn)確收到AVR傳過去的數(shù)據(jù)。一位都不錯(cuò)??删褪鞘詹坏?,SPDR寄存器中什么也讀不到。求高人指點(diǎn)
    發(fā)表于 07-22 09:57

    基于PLD的視頻接口

    的消費(fèi)類視頻接口包括ieee 1394(火線)、u*** 2.0、dvi、hdmi和各種各樣的無(wú)線標(biāo)準(zhǔn)。本文將介紹如何應(yīng)用可編程邏輯器件(pld)將不同的高速視頻內(nèi)容連接到視頻播放器。 視頻輸入 u
    發(fā)表于 12-28 07:00

    采用PLD實(shí)現(xiàn)視頻接口設(shè)計(jì)

    /s?;鹁€接口可在沒有主設(shè)備的情況下運(yùn)行,進(jìn)行點(diǎn)對(duì)點(diǎn)的通信,線纜最長(zhǎng)可達(dá)4.5m,最多支持63個(gè)設(shè)備。對(duì)于相連的設(shè)備,可提供1.25A、12V供電。低成本的物理層ASSP可用做與PLD接口
    發(fā)表于 05-14 07:00

    應(yīng)用PLD實(shí)現(xiàn)初始化過程和所有數(shù)據(jù)傳輸

    用的資源很少。顧名思義,該總線協(xié)議使用一根線與主控制器通信,通常是微處理器。該參考設(shè)計(jì)實(shí)現(xiàn)PLD中的單線控制器。初始化過程和所有數(shù)據(jù)傳輸都在PLD
    發(fā)表于 04-30 09:36

    怎么實(shí)現(xiàn)基于AVR單片機(jī)的通用USB接口模塊設(shè)計(jì)?

    怎么實(shí)現(xiàn)基于AVR單片機(jī)的通用USB接口模塊設(shè)計(jì)?
    發(fā)表于 06-07 06:26

    基于AVR的網(wǎng)絡(luò)用具接口的設(shè)計(jì)與實(shí)現(xiàn)

    網(wǎng)絡(luò)用具的網(wǎng)絡(luò)接口是家用電子設(shè)備網(wǎng)絡(luò)化的關(guān)鍵部件。討論了通過AVR 單片機(jī)以及RTL8019AS 網(wǎng)絡(luò)芯片把網(wǎng)絡(luò)用具接入家庭網(wǎng)關(guān)的實(shí)現(xiàn)方法。為家庭網(wǎng)關(guān)和網(wǎng)絡(luò)用具的通訊提供了一
    發(fā)表于 01-06 16:45 ?20次下載

    AVR單片機(jī)串行接口SPI接口應(yīng)用設(shè)計(jì)

    使用的同步串行三線SPI接口,可以方便的連接采用SPI通信協(xié)議的外圍或另一片AVR單片機(jī),實(shí)現(xiàn)在短距離內(nèi)的高速同步通信.ATmega128的
    發(fā)表于 11-09 17:37 ?3900次閱讀

    avr單片機(jī)與pc機(jī)打印口高速雙向數(shù)據(jù)通信接口

    avr單片機(jī)與pc機(jī)打印口高速雙向數(shù)據(jù)通信接口
    發(fā)表于 09-01 16:55 ?5次下載

    基于AVR單片機(jī)的USART通信接口部分(上)

    AVR單片機(jī)USART通信接口的原理和使用
    的頭像 發(fā)表于 07-04 10:51 ?4685次閱讀
    基于<b class='flag-5'>AVR</b>單片機(jī)的USART<b class='flag-5'>通信</b><b class='flag-5'>接口</b>部分(上)

    AVR單片機(jī):關(guān)于USART通信接口的原理和使用的介紹(2)

    AVR單片機(jī)USART通信接口的原理和使用
    的頭像 發(fā)表于 07-11 00:13 ?4188次閱讀

    AVR單片機(jī)與CPLD的通信設(shè)計(jì)

    項(xiàng)目中需要使用CPLD完成一部分算法設(shè)計(jì),參數(shù)由AVR給出,因此需要完成AVR和CPLD的通信。因此寫了一個(gè)測(cè)試程序。CPLD掛在AVR的數(shù)據(jù)和地址總線上,
    發(fā)表于 06-03 15:24 ?1163次閱讀