關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > PowerPC和Dallas的時鐘芯片接口設(shè)計

PowerPC和Dallas的時鐘芯片接口設(shè)計

——
作者:楊中偉 時間:2007-08-29 來源:單片機(jī)及嵌入式系統(tǒng)應(yīng)用 收藏

  摘要:分析摩托羅位的系列處理器和Dallas的芯片的時序,并詳細(xì)給出一種較為實用的接口設(shè)計方法。

    關(guān)鍵詞:

  在通信領(lǐng)域,摩托羅位的(如MPC850、MPC860、MPC8260等)的應(yīng)用越來越廣泛。由于這些嵌入式CPU上集成著豐富的通信資源(如快速以太網(wǎng)接口、多個串口等),而且有較高的運行速度和較低的價位,故在一些遠(yuǎn)程測控領(lǐng)域的應(yīng)用也越來越多。同時在許多系統(tǒng)中都需要,而應(yīng)用最廣泛的當(dāng)數(shù)Dallas的時鐘芯片。摩托羅拉的PowerPC系列地址線和數(shù)據(jù)線是獨立的,而Dallas的時鐘芯片的地址線和數(shù)據(jù)線是復(fù)用的。本文以MPC860和DS1687為例,給出接口的設(shè)計方法和電路。因為用來實現(xiàn),進(jìn)步增加了通用性。

1 DS1687的功能和時序特點

  在我們開發(fā)的寬帶接入服務(wù)器(BNAS)中用到了MPC860,作為客戶端與RADIUS服務(wù)器配合實現(xiàn)對用戶信息的認(rèn)證、鑒權(quán)、計費等功能。在處理計費信息時需要有實時時鐘基準(zhǔn),我們選擇了Dallas的DS1687實時時鐘芯片。DS1687的引腳分布如圖1所示。

DS1687具有以下主要功能:

  *集成晶振和鋰電池,芯片中RAM的數(shù)據(jù)在掉電后不會丟失;

  *解決千年蟲問題;

  *集成242字節(jié)的NVRAM;

  *可編程方波輸出;

  *輸出32.768kHz信號,以支持電源管理功能;

  *在不加電時數(shù)據(jù)至少保存10年。

  DS1687的CPU接口為地址線數(shù)據(jù)線復(fù)用,讀寫時序分別如圖2和圖3所示。

2 MPC860的時序特點

  MPC860有異步和同步兩種總線接口,分別稱為CPU和GPCM。UPM連接同步操作芯片,如SDRAM、SSRAM,具有較高的總線速度;GPCM連接異步操作的芯片,如異步時序內(nèi)存、異步時序的專用芯片。MPC860的GPCM接口是地址和數(shù)據(jù)非復(fù)用的,基本操作時序如圖4所示。為了簡單起見,將讀寫時序在同一幀圖上描述。其中片選讀信號OE和寫信號WE的上升或下降沿的位置可通過設(shè)置寄存器進(jìn)行調(diào)整。

3 接口的設(shè)計原理和具體實現(xiàn)

  從DS1687的時序看出,在一次讀或?qū)懙牟僮髦?,地?數(shù)據(jù)線先出現(xiàn)地址后出現(xiàn)數(shù)據(jù);而GPCM接口在一次操作中,數(shù)據(jù)線輸出數(shù)據(jù),地址線輸出地址。從這個特點出發(fā),設(shè)想用MPC860的兩次操作產(chǎn)生的時序來完成DS1687的一次操作。具體思路如下:把MPC860的數(shù)據(jù)線(D0…D7)與DS1687的地址/數(shù)據(jù)線(AD0…AD7)相連,通過MPC860的GPCM口直接輸出的地址A11(也可根據(jù)內(nèi)存空間劃,隨著選擇一根地址線)、片選CS5(MPC860共有8個片選輸出)、讀信號OE和寫信號WE的邏輯運算產(chǎn)生DS1687的ALE信號、讀信號DS_RD、寫信號DS_WE和片選信號DS_CS。邏輯運行如下:

  ALE=!(CS5)+A11+WE)

  DS_RD=OE+!A11

  DS_WE=WE+!A11

  DS_CS=CS5+/A11

    上述邏輯用或門、非門很容易實現(xiàn),但在本系統(tǒng)中,還要實現(xiàn)MPC860上電配置字設(shè)置、長監(jiān)控時間的看門狗、MPC860與其它專用芯片的接口等其它功能,故選擇可編程邏輯器件PLD來完成這些功能。隨著PLD器件密度的提高和價格的下降,在系統(tǒng)中的應(yīng)用會越來越廣泛。在本設(shè)計中選擇了Xilinx公司的器件XC95144。它屬XC9500系列,由多個功能塊(FB)和I/O塊(IOB)組成,由開關(guān)矩陣FastCONNECTII完全互連。IOB提供器件的輸入和輸出緩沖,每個FB提供具有54個輸入和18個輸出的可編程邏輯的容量。該系列54個輸入和18個輸出的可編程邏輯的容量,該系列都是在系統(tǒng)可編程的,編程/擦除次數(shù)最少為1萬次。CPLD的延時可以預(yù)測,適合作小規(guī)模的、對時序要求嚴(yán)格的邏輯。設(shè)計采用圖形輸入方式,邏輯原理如圖5所示。

  下面分析該電路的工作過程。當(dāng)MPC860對DS1687進(jìn)行讀操作時(假設(shè)讀取地址0x55的數(shù)據(jù)),首先執(zhí)行一條地址為0x07060000,數(shù)據(jù)為0x55的寫指令:

  REG8(0x07060000)=0x55

  地址可根據(jù)系統(tǒng)定,但要保證A11=0,此時DS_RD、DS_WE、DS_CS均無效。DS1687的ALE信號在下降沿將AD0~AD7上的數(shù)據(jù)鎖存作為地址,從ALE的表達(dá)式看到,ALE的下降沿正是WE的上升沿,而此時AD0~AD7上的數(shù)據(jù)也正是是指令寫入的數(shù)0x55,也就是DS1687在ALE下降沿把0x55鎖存作為地址。緊接著執(zhí)行一條讀取指令:

  value=REG8(0x07160000)

  應(yīng)保證讀操作地址的A11=1。由操作時序和邏輯表達(dá)式可知,此時

  ALE=0

  DS_CS=CS5

  DS_RD=OE

  在DS_RD(OE)的上升沿,將0x55單元處的數(shù)據(jù)鎖存進(jìn)MPC860的value單元。

  當(dāng)MPC860對DS1687進(jìn)行寫操作時(假設(shè)地址為0x55,寫入的數(shù)據(jù)為0xaa),需要兩條寫指針,第一條與讀DS1687操作時相同,目的是把地址寫入DS1687:

  REG8(0x07060000)=0x55

  第二條同樣是一條寫指令:

  REG8(0x07160000)=0xaa

  但目標(biāo)地址要保證A11=1,此時接口輸出的信號值為:

  ALE=0

  DS_CS=CS5

  DS_WE=WE

  在DS_WE(即WE)的上升沿,將數(shù)據(jù)鎖存進(jìn)DS1687。

4 小結(jié)

  在實際使用過程中,可以將讀寫DS1687分別編成一個函數(shù),簡化編程。該方法不僅適合于MPC860和DS1687的接口,也適合其它的數(shù)據(jù)地址非復(fù)用的CPU和數(shù)據(jù)地址復(fù)用的外圍芯片的接口。該接口設(shè)計在BNAS系統(tǒng)中成功使用之后,已陸續(xù)在公司其他部門得到了應(yīng)用。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉