PLD與AVR總線通信接口VHDL設(shè)計(jì)與實(shí)現(xiàn)
本文引用地址:http://m.butianyuan.cn/article/192102.htm
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 寫(xiě)數(shù)據(jù)過(guò)程。首先,在片選信號(hào)cs為低期間,在ale信號(hào)的下降沿,鎖存mcu_data上的數(shù)據(jù)到add內(nèi)部地址鎖存寄存器。然后,在we信號(hào)低電平時(shí),把mcu_data (0XAA)的數(shù)據(jù)直接寫(xiě)到conreg1(B10101010),通過(guò)外接指示燈可以直接觀察結(jié)果是否正確,當(dāng)然,在實(shí)際應(yīng)用中可以把數(shù)據(jù)鎖存到內(nèi)部寄存器中。
圖2寫(xiě)數(shù)據(jù)0X“AA”到0地址處
圖3是讀數(shù)據(jù)過(guò)程。在片選信號(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ù)總線
從讀寫(xiě)數(shù)據(jù)圖中可以看出,ATmega64L對(duì)EPM570內(nèi)部數(shù)據(jù)讀寫(xiě)過(guò)程完全滿足ATmega64L數(shù)據(jù)手冊(cè)上的時(shí)序需要。關(guān)于ATmega64L的讀寫(xiě)時(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)單地修改該讀寫(xiě)通信模塊,可應(yīng)用于多個(gè)CPLD或FPGA與單片機(jī)通信接口的項(xiàng)目中,本模塊還可以根據(jù)需要擴(kuò)展為16位、32位地址線的讀寫(xiě)接口。
本文創(chuàng)新點(diǎn):充分利用可編程邏輯器件豐富的I/O口和內(nèi)部可編程邏輯資源,通過(guò)總線讀寫(xiě)的方式通訊,使PLD和MCU的通信速度大大提高,同時(shí)也提高了嵌入式系統(tǒng)或是工業(yè)控制中的其他相關(guān)性能,極大提高產(chǎn)品的競(jìng)爭(zhēng)力。
評(píng)論