張軍 劉沖
摘要:PCI9656是PLX推出的一種支持66MHz、64位訪問的PCI接口芯片。本文介紹了PCI9656的特點(diǎn)及工作模式,并以在某機(jī)載電子設(shè)備的應(yīng)用實(shí)例,給出其工作原理和硬件實(shí)現(xiàn)方法。
關(guān)鍵詞:PCI總線;PCI9656;內(nèi)總線;橋片;串行總線
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)05-0263-03
1 概述
1.1 PCI總線簡介
PCI(Peripheral Component Interconnect)總線最早作為微型計算機(jī)外圍設(shè)備互聯(lián)局部并行總線?;赑CI,國際工業(yè)計算機(jī)制造者聯(lián)合會在1994年提出了一種高性能的工業(yè)用總線接口標(biāo)準(zhǔn)CPCI(Compact Peripheral Component Interconnect)。目前,PCI總線作為局部總線已廣泛應(yīng)用于工業(yè)領(lǐng)域。PCI總線的理論最高數(shù)據(jù)傳輸率為132MB/s(33MHz*32bit/8),當(dāng)時鐘頻率升級到66MHz,數(shù)據(jù)寬度升級到64位,數(shù)據(jù)傳輸率可達(dá)528MB/s,可滿足大多數(shù)應(yīng)用的需求。
PCI總線是一種樹形結(jié)構(gòu),獨(dú)立于CPU運(yùn)行。PCI總線上可以掛接的設(shè)備包括PCI主設(shè)備、PCI從設(shè)備和PCI橋片。同一時刻,PCI主設(shè)備只允許有一個,PCI從設(shè)備和PCI橋片多個之間可以共存。
圖 1是PCI總線的信號,分為可選信號和必需信號。共120條信號,其中可選信號51條,主設(shè)備必需信號49條,目標(biāo)設(shè)備必需信號47條;PCI信號可以分成以下幾大類:(1)系統(tǒng)控制類: CLK,PCI設(shè)備工作參考時鐘,為所有的PCI總線操作提供時序,對于所有的PCI設(shè)備均為輸入信號,其頻率支持33MHz或66MHz,上升沿有效 和RST ,PCI總線復(fù)位信號,用來使所有PCI設(shè)備的寄存器和信號為初始狀態(tài);(2)傳輸控制: 幀周期信號FRAME,由主設(shè)備驅(qū)動,表示一次總線傳輸?shù)拈_始和持續(xù)時間,當(dāng)FRAME有效時預(yù)示總線傳輸?shù)拈_始,當(dāng)FRAME信號無效時,預(yù)示總線傳輸結(jié)束; IRDY標(biāo)志PCI總線發(fā)起者可以傳輸數(shù)據(jù),DEVSEL當(dāng)目標(biāo)設(shè)備發(fā)現(xiàn)自己被尋址時置低應(yīng)答;TRDY標(biāo)志目標(biāo)設(shè)備可以轉(zhuǎn)輸數(shù)據(jù),STOP目標(biāo)設(shè)備主動結(jié)束傳輸數(shù)據(jù)的信號,IDSEL在即插即用系統(tǒng)啟動時用于選中板卡的信號;(3)地址與數(shù)據(jù)總線: AD[63::0]地址/數(shù)據(jù)分時復(fù)用總線,C/BE[7::0]命今/字節(jié)使能信號,PAR奇偶校驗信號,它對AD[63::0]和C/BE[7::0]進(jìn)行校驗,總線發(fā)起者為地址周期和寫數(shù)據(jù)周期驅(qū)動PAR,目標(biāo)設(shè)備為讀數(shù)據(jù)周期驅(qū)動PAR;(11)仲裁信號: PCI總線發(fā)起者用來請求總線使用權(quán)的信號REQ, PCI總線仲裁設(shè)備允許發(fā)起者得到總線使用權(quán)的信號GNT;(12)錯誤報告: PERR數(shù)據(jù)奇偶校驗錯 和SERR#系統(tǒng)奇偶校驗錯。
PCI一次總線操作過程是:PCI總線操作發(fā)起者發(fā)起請求(置REQ#),PCI總線仲裁器發(fā)許可(置GNT#);操作發(fā)起者開啟一個總線操作(置FRAME#),并說明請求地址(置AD0~AD63)和請求類型(置C/BE0~C/BE7);PCI操作的目標(biāo)設(shè)備聲明被選中(置DEVSEL);當(dāng)發(fā)起者準(zhǔn)備完畢(置IRDY#)和目標(biāo)設(shè)備準(zhǔn)備完畢(置TRDY#)后,執(zhí)行總線操作(置AD0~AD63);當(dāng)總線操作執(zhí)行完畢后,發(fā)起者結(jié)束總線操作(清FRAME#)。
1.3PCI總線特點(diǎn)
PCI總線的特點(diǎn)包括:1)并發(fā)處理,支持32位或64位并行總線且總線操作與處理器操作并行;2)良好擴(kuò)展性,支持即插即用;3)數(shù)據(jù)傳輸高性能,最高數(shù)據(jù)傳輸速率可達(dá)528MB/S;4)復(fù)雜性,PCI總線強(qiáng)大的功能增加了硬件和軟件實(shí)現(xiàn)難度。硬件上要采用大容量、高速度的CPLD或FPGA芯片來實(shí)現(xiàn)PCI總線復(fù)雜的功能。軟件上則要根據(jù)所用的操作系統(tǒng),用軟件工具編制設(shè)備驅(qū)動程序。
1.3 PCI接口實(shí)現(xiàn)途徑
由于PCI總線協(xié)議的復(fù)雜性,PCI總線接口實(shí)現(xiàn)方式包括利用可編程邏輯器件+IP核實(shí)現(xiàn)以及通過專用PCI接口芯片實(shí)現(xiàn)。第一種實(shí)現(xiàn)方式較靈活但是實(shí)現(xiàn)難度較大且價格昂貴,第二種實(shí)現(xiàn)方式由于實(shí)現(xiàn)簡單且價格低廉而被廣泛應(yīng)用。目前應(yīng)用較多的PCI總線接口芯片是AMCC公司的S59xx系列芯片和PLX公司的PLX系列芯片。
2 PCI9656簡介
PCI9656是PLX公司為擴(kuò)展適配板卡推出的能提供混合高性能PCI總線接口芯片,該接口芯片可提供用于適配卡的小型高性能64位PCI總線目標(biāo)接口。
2.1 PCI9656的特點(diǎn)
PCI9656作為PCI總線和處理器內(nèi)總線的接口轉(zhuǎn)換芯片的主要特點(diǎn)包括:1)兼容PCI r2.2協(xié)議規(guī)范,支持64位、66MHz時鐘PCI總線;2)采用PLX數(shù)據(jù)流水線架構(gòu)(Data Pipe Architecture)技術(shù),配有DMA引擎、可編程直接主控或者直接從屬數(shù)據(jù)傳輸模式以及PCI信息傳輸功能;3)可以和三種內(nèi)總線類型的處理器進(jìn)行直連;4)具有PCI優(yōu)先判決器,可以支持7個外部主控器;5)可以由2個局部總線中斷信號LINTi和LINTo生成一個PCI中斷信號INTA;6)局部時鐘與PCI時鐘異步工作,允許局部總線獨(dú)立于PCI時鐘工作。支持內(nèi)總線是PCI時鐘異步;7)核電壓為CMOS 2.5V,I/O為3.3V;8)PCI總線端和內(nèi)總線端兼容3.3V和5V;9)支持三種數(shù)據(jù)傳輸模式(Direct Master、Direct Slave及DMA);10)寄存器兼容PCI 9060, PCI 9080,PCI 9054和PCI 9056,可容易地進(jìn)行基于32位PCI總線與基于64位PCI總線的軟件移植;11)支持多路復(fù)用和非多路復(fù)用的8位、16位和32位66MHz時鐘局部總線;12)可直接生成所有的控制、地址和數(shù)據(jù)信號以驅(qū)動PCI總線,不需要額外驅(qū)動電路;13)可通過消息管理系統(tǒng)I/O,并提供2種方式選擇,一是通過郵箱寄存器和門鈴寄存器,二是通過所提供的I2O接口。
2.2 PCI9656工作模式
PCI的內(nèi)總線端的工作模式共三種:1)M模式:便于與Motorola及PowerPC處理器相連;2)J模式:復(fù)用的地址/數(shù)據(jù)總線;3)C模式:非復(fù)用的地址/數(shù)據(jù)總線。要根據(jù)內(nèi)總線端的實(shí)際情況設(shè)置PCI9656的工作模式。
3 PCI9656應(yīng)用
3.1 應(yīng)用背景
如圖 2所示,某機(jī)載電子設(shè)備主要用于通過串行總線(ARINC429、RS422和RS232等)接收飛行參數(shù)等信息將生成視頻畫面供飛行員觀察,同時將設(shè)備的狀態(tài)等信息通過串行總線進(jìn)行上報。
其中CPU模塊和顯卡借用成熟產(chǎn)品,IO模塊為適應(yīng)某機(jī)載電子設(shè)備應(yīng)用環(huán)境新研。CPU模塊和顯卡之間的接口為PCI(33MHz,32bit)。CPU模塊由于未預(yù)留高速串行總線,低速串行總線(例如RS422)無法滿足和IO模塊數(shù)據(jù)量交換的要求。CPU模塊和顯卡之間只傳遞少量的顯示參數(shù)信息,PCI總線空閑有大量空閑周期。經(jīng)過計算,CPU模塊和IO模塊之間的數(shù)據(jù)量利用PCI總線空閑周期進(jìn)行傳遞完全滿足要求。
經(jīng)過調(diào)研,利用PCI9656芯片作為CPU模塊和IO模塊之間PCI總線轉(zhuǎn)內(nèi)總線的實(shí)現(xiàn)方法設(shè)計較簡單、進(jìn)度可控。
3.2 硬件設(shè)計
如圖 3所示,IO模塊主要包括:1)處理器單元,由ARM處理器LPC2294組成,實(shí)現(xiàn)系統(tǒng)控制和處理的功能;2)PCI橋片單元,由PCI9656組成,完成PCI總線和內(nèi)總線單元轉(zhuǎn)換;3)數(shù)據(jù)交換單元,由雙口RAM組成,存儲CPU模塊和IO模塊需交換數(shù)據(jù);4)邏輯控制單元:由CPLD組成,完成整體模塊的上電復(fù)位、外部復(fù)位和看門狗復(fù)位及一些芯片的片選使能、數(shù)據(jù)處理和一些時鐘信號的產(chǎn)生等功能;5)離散量輸入、輸出單元,由驅(qū)動器和光耦組成,對外提供8路離散量輸入(兼容TTL和LVTTL)、8路離散量輸出(TTL和LVTTL可調(diào));6)溫度和振動采集單元,包括溫度傳感器和振動傳感器,完成溫度信息和振動信息的采集功能;7)串行總線接口單元,包含7路全雙工422、4路半雙工422、3路232及2發(fā)1收429等串行總線,完成同外部設(shè)備的通信;8)電源單元,由多片二次電源芯片組成,為系統(tǒng)各單元電路提供工作電源。
3.3 IO模塊設(shè)計要點(diǎn)
IO模塊的難點(diǎn)在于PCI9656的配置,設(shè)計要點(diǎn)包括:
1)上電復(fù)位:在上電時,PCI總線的RST信號將PCI9656的內(nèi)部寄存器設(shè)置為缺省值,同時,PCI9656輸出局部復(fù)位信號(LRESET)并檢查EEPROM 是否存在。如果有EEPROM且該EEPROM的第一個16字節(jié)非空,則PCI9656將根據(jù)EEPROM內(nèi)容設(shè)置內(nèi)部寄存器,否則不進(jìn)行設(shè)置。IO模塊在設(shè)計采用由CPLD輸出復(fù)位信號給PCI9656,且不使用EEPROM。
2)PCI9656的寄存器配置方式:PCI9656依據(jù)PCI總線規(guī)范提供一系列內(nèi)部寄存器為總線接口設(shè)計提供了極大的靈活性。這些寄存器主要包括配置寄存器、局部配置寄存器、DMA寄存器、運(yùn)行時間寄存器和消息隊列寄存器等。對PCI9656寄存器進(jìn)行讀寫操作的單位可以是字節(jié)、字、雙字,訪問PCI9656的存儲器可以是突發(fā)的或者非突發(fā)的。為減少硬件復(fù)雜度和配置靈活性,IO模塊在設(shè)計中使用CPU模塊軟件來通過PCI地址空間BASE0配置PCI9656的寄存器,并且配置成直接數(shù)據(jù)訪問模式將BASE2地址空間映射到雙口RAM。
3.4 設(shè)備數(shù)據(jù)傳輸原理
設(shè)置PCI9656芯片工作于C模式,32位數(shù)據(jù)和32位地址線。處理器單元周期接收外部設(shè)備發(fā)送的穿行總線數(shù)據(jù)并將接收的串行總線數(shù)據(jù)按照指定格式放置到雙口RAM的指定位置,CPU模塊在使用時通過PCI9656橋片訪問雙口RAM讀取串行總線信息,然后將數(shù)據(jù)送顯卡進(jìn)行視頻畫面生成。
4 結(jié)束語
PCI9656是一款性價比較高的PCI接口橋片,提供了一種PCI總線轉(zhuǎn)處理器內(nèi)總線的實(shí)現(xiàn)方式,降低了設(shè)計的復(fù)雜性,具有較高的應(yīng)用價值。本文介紹的PCI9656應(yīng)用對于類似機(jī)載設(shè)備的設(shè)計具有一定的借鑒意義。
參考文獻(xiàn):
[1] PLX Technology, Inc. PCI 9656 Data Book. Version 0.90b,2002.
[2] http://www.pcisig.com.PCI Local Bus Specification. Revision 2.2 December 18,1998.
[3] 李貴山.PCI局部總線及其應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2003.
[4] 張?zhí)N玉,胡修林.PCI總線接口設(shè)計及其專用芯片應(yīng)用[J].武漢:華中科技大學(xué)學(xué)報:自然科學(xué)版,2002(4).
[5] 孫莉,吳順君,蘇濤.DSP與PCI總線接口設(shè)計及實(shí)現(xiàn)[J].西安:微電子學(xué)與計算機(jī),2004(8).