• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 關 閉

    新聞中心

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

    PowerPC和Dallas的時鐘芯片接口設計

    ——
    作者:楊中偉 時間:2007-08-29 來源:單片機及嵌入式系統應用 收藏

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

        關鍵詞:

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

    1 DS1687的功能和時序特點

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

    DS1687具有以下主要功能:

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

      *解決千年蟲問題;

      *集成242字節的NVRAM;

      *可編程方波輸出;

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

      *在不加電時數據至少保存10年。

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

    2 MPC860的時序特點

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

    3 接口的設計原理和具體實現

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

      ALE=!(CS5)+A11+WE)

      DS_RD=OE+!A11

      DS_WE=WE+!A11

      DS_CS=CS5+/A11

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

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

      REG8(0x07060000)=0x55

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

      value=REG8(0x07160000)

      應保證讀操作地址的A11=1。由操作時序和邏輯表達式可知,此時

      ALE=0

      DS_CS=CS5

      DS_RD=OE

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

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

      REG8(0x07060000)=0x55

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

      REG8(0x07160000)=0xaa

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

      ALE=0

      DS_CS=CS5

      DS_WE=WE

      在DS_WE(即WE)的上升沿,將數據鎖存進DS1687。

    4 小結

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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 浑源县| 宣恩县| 兰溪市| 岳池县| 广水市| 伊宁市| 海丰县| 阿拉善左旗| 芮城县| 山阴县| 会宁县| 商河县| 襄城县| 玉林市| 北票市| 濉溪县| 大竹县| 余干县| 凭祥市| 报价| 安福县| 开远市| 嵊泗县| 福贡县| 大名县| 孝义市| 乌兰察布市| 河曲县| 呼玛县| 济源市| 鹤岗市| 固阳县| 农安县| 腾冲县| 延安市| 六安市| 哈巴河县| 正定县| 和林格尔县| 靖安县| 绍兴县|