亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于MPC8280的PCI驅(qū)動設(shè)計

        2014-04-24 08:13:00
        電子科技 2014年5期
        關(guān)鍵詞:譯碼寄存器總線

        王 敏

        (廣州海格通信集團(tuán)股份有限公司網(wǎng)通分公司,廣東廣州 510663)

        近年來,多媒體通信技術(shù)應(yīng)用迅猛發(fā)展,對網(wǎng)速的要求也迅速提升。為適應(yīng)這一趨勢,與網(wǎng)絡(luò)相關(guān)的終端設(shè)備和路由交換設(shè)備的性能均亟需提升[1]。在當(dāng)今中國,計算機(jī)作為網(wǎng)絡(luò)終端設(shè)備,網(wǎng)口的標(biāo)配速率已由100 Mbit·s-1改為1000 Mbit·s-1,交換機(jī)、路由器等作為路由交換設(shè)備,交換容量量級也由原來100 Mbit·s-1上升到 1000 Mbit·s-1甚至 10 Gbit·s-1[2]。MPC8280是由Freescale公司推出的雙地址總線雙處理器芯片,自其推出以來,因其豐富的外圍接口[3]已在航空航天、通信電子、醫(yī)療器械、交通設(shè)施等領(lǐng)域得到廣泛應(yīng)用,然而在今日迫切需求的大容量路由交換領(lǐng)域,卻因其最高主頻為450 MHz的限制,依靠運行在MPC8280上的軟件扣除中斷處理、系統(tǒng)管理等開銷外,實現(xiàn)的交換容量僅為40 Mbit·s-1,在多路千兆交換應(yīng)用中存在性能瓶頸。利用MPC8280的PCI口外接千兆交換芯片BCM56514,使得運行在MPC8280上的軟件僅作路由計算和路由表的維護(hù),而將交換控制交由BCM56514實現(xiàn),可突破性能瓶頸。完成PCI驅(qū)動設(shè)計是這一方法能得以實施的先決條件,MPC8280通過PCI內(nèi)存空間讀寫操作、配置空間讀寫操作和I/O空間讀寫操作,實現(xiàn)對交換芯片的配置、控制及路由表的更新,從而使MPC8280在大容量路由交換領(lǐng)域得到成熟應(yīng)用。

        1 PCI知識介紹

        PCI為Peripheral Component Interconnect的縮寫,是一種總線規(guī)范,用于外圍設(shè)備互聯(lián)。目前使用2.2版本的PCI規(guī)范。主要由時鐘信號(PCI_CLK)、控制信 號 (FRAME、IRDY、DEVSEL、TRADY、STOP、IDSEL)、地址數(shù)據(jù)復(fù)用信號AD[31:0]及校驗和錯誤指示信號(SERR、PERR)構(gòu)成。地址和數(shù)據(jù)信號可擴(kuò)展到64 bit,時鐘信號常用33 MHz,可擴(kuò)展到66 MHz,速率可達(dá)528 MByte/s[4]。采用分段分層結(jié)構(gòu),其總線拓?fù)浣Y(jié)構(gòu)如圖1所示。

        圖1 PCI總線拓?fù)?/p>

        2 PCI驅(qū)動設(shè)計

        PCI驅(qū)動通過配置寄存器,完成總線初始化,并提供PCI配置空間讀寫、PCI內(nèi)存空間讀寫、PCI I/O空間讀寫和中斷函數(shù)接口[5]。上層應(yīng)用利用這些操作接口發(fā)現(xiàn)外部交換芯片,并能獲取交換芯片信息[6],實現(xiàn)對外接交換芯片的配置管理、路由表更新、狀態(tài)回讀等操作,最終實現(xiàn)PCI驅(qū)動設(shè)計。

        2.1 PCI驅(qū)動流程設(shè)計

        首先通過設(shè)置寄存器,使芯片跳出PCI重啟狀態(tài),接著根據(jù)系統(tǒng)的地址分配對Outbound和Inbound寄存器組進(jìn)行配置,然后對PCI使用的字節(jié)序、錯誤狀態(tài)和Master模式進(jìn)行配置,最后使能PCI內(nèi)存空間讀寫和配置空間讀寫。使用UML的活動圖對PCI驅(qū)動流程設(shè)計建模如圖2所示。

        圖2 PCI驅(qū)動初始化流程

        2.2 配置空間讀寫設(shè)計

        指令按照一定的數(shù)據(jù)格式優(yōu)先寫到CONFIG_ADDR寄存器,然后通過向CONFIG_DATA寄存器填入數(shù)據(jù),完成寫操作,或從CONFIG_DATA讀出數(shù)據(jù),完成讀操作。無論CONFIG_ADDR寄存器的數(shù)據(jù)是否需要改變,每次操作都必須先對CONFIG_ADDR寄存器操作,然后才可對CONFIG_DATA寄存器操作,否則操作無效[7]。指令數(shù)據(jù)格式如圖3所示。

        圖3 配置空間讀寫指令格式

        配置空間操作時,地址譯碼過程如下:例如Device Number為0b01011時,對應(yīng)的十進(jìn)制數(shù)為11,則 Bit[31∶11]中的 Bit11 置 1,其他 Bit為 0,此時在硬件上將IDSEL信號連接到Bit11的PCI設(shè)備將被選中;若Device Number為0b01100時,對應(yīng)的十進(jìn)制數(shù)為12,則 Bit[31∶11]中的 Bit12 置 1,其他 Bit為 0,此時在硬件上將IDSEL信號連接到Bit12的PCI設(shè)備將被選中;Device Number的特殊定義如下:0b01010將選定Bit[31];0b11111將執(zhí)行特別操作;0b00000將對 PCI橋自身進(jìn)行操作。譯碼結(jié)果的格式如圖4所示。

        圖4 Type0操作譯碼結(jié)果格式

        共有兩種操作類型:Type 0操作和Type1操作。Type 0操作適用于目標(biāo)設(shè)備和PCI橋在同一總線上,PCI橋直接根據(jù)從上層總線接收到指令中的Device Number進(jìn)行地址譯碼,并將 Bit[31∶11]數(shù)據(jù)中對應(yīng)的Bit置1,Bit[1∶0]設(shè)置成 0x00,在 PCI總線配置操作的地址時段,將譯碼結(jié)果發(fā)送到PCI總線的AD[31∶0]上。

        Type1操作適用于目標(biāo)設(shè)備和PCI橋不在同一總線上,需經(jīng)過PCI橋?qū)⑼暾臄?shù)據(jù)繼續(xù)向下傳遞。當(dāng)PCI橋在配置空間操作的地址時隙從AD[31∶0]收到指令時,判斷目標(biāo)設(shè)備是否在其負(fù)責(zé)的范圍內(nèi),若不在,將不處理。若在,則將AD[31∶0]的數(shù)據(jù)和PCI_C/_BE完整的向下傳遞;若發(fā)現(xiàn)目標(biāo)設(shè)備為本層設(shè)備,將操作變?yōu)門ype0操作,選中目標(biāo)設(shè)備。

        2.3 內(nèi)存空間讀寫設(shè)計

        MPC8280的 PCI內(nèi)存讀寫分為MPC8280主動發(fā)起的PCI內(nèi)存空間讀寫和MPC8280被動引起的PCI內(nèi)存空間讀寫。在進(jìn)行PCI內(nèi)存空間讀寫時,需地址譯碼[8]。

        MPC8280主動發(fā)起的 PCI內(nèi)存空間讀寫,MPC8280側(cè)地址譯碼流程如圖5所示。先對操作地址進(jìn)行判斷,若落在MPC8280的內(nèi)部存儲器映射寄存器(IMMR)范圍內(nèi),接著就需判斷是否落在PCI寄存器,根據(jù)判斷結(jié)果決定是否對PCI寄存器進(jìn)行操作或不做處理。若不是落在MPC8280的IMMR范圍,需判讀是否落在PCI OutBound空間,若落于PCI OutBound空間,則需根據(jù)寄存器的配置,對地址進(jìn)行譯碼,并將譯碼后的結(jié)果在地址時隙被發(fā)送到PCI總線的地址管腳,若未落在PCI OutBound空間,卻落于 PCIBR0或PCIBR1寄存器定義的范圍內(nèi),則將地址直接通過地址時隙發(fā)送至PCI總線的地址管腳[3]。

        圖5 MPC8280主動發(fā)起的PCI內(nèi)存空間讀寫的地址譯碼流程

        MPC8280被動引起的PCI內(nèi)存空間讀寫,即由外部PCI主機(jī)(PCI Master)通過 PCI對 MPC8280發(fā)起PCI內(nèi)存空間讀寫,MPC8280側(cè)地址譯碼流程如圖6所示。MPC8280在收到外部發(fā)起的PCI數(shù)據(jù)傳輸時,會判斷PCI總線上的地址是否落在寄存器定義的PCI Inbound空間或是落于PIMMR空間。若是,就根據(jù)寄存器配置,對外部PCI總線上的地址進(jìn)行譯碼,然后判斷譯碼后的地址是否落在PCI內(nèi)存空間,若落于PCI內(nèi)存空間,則進(jìn)行數(shù)據(jù)操作,并設(shè)置Devsel信號,否則將進(jìn)行 60x 總線操作[3,9-10]。

        圖6 MPC8280被動引起的PCI內(nèi)存空間讀寫的地址譯碼流程

        2.4 I/O空間讀寫設(shè)計

        PCI的I/O空間讀寫流程可參見內(nèi)存空間讀寫流程[9],其與內(nèi)存空間讀寫的不同在于:在配置時,對應(yīng)的InBound空間和OutBound空間配置為I/O空間,AD[31∶0]中所有 bit為其提供一個完整的地址,AD[1∶0]用來產(chǎn)生Devsel信號和本次傳輸中最低有效的字節(jié)數(shù);而內(nèi)存空間地址譯碼只使用AD[31∶2],這說明內(nèi)存空間操作時,每次操作傳送4 Byte數(shù)據(jù),操作后地址將遞增4,以備進(jìn)行后續(xù)傳送。

        3 結(jié)束語

        PCI初始化配置完畢后,CPU通過線程調(diào)用PCI配置空間讀寫函數(shù)對外部的交換芯片進(jìn)行輪詢探測,正確獲取了BCM56514的設(shè)備ID為B514[10],成功發(fā)現(xiàn)BCM56514芯片,進(jìn)而對BCM56514進(jìn)行了配置和管理,并通過調(diào)用PCI內(nèi)存空間讀寫函數(shù)和I/O空間讀寫函數(shù)對BCM56514的內(nèi)存空間和I/O空間進(jìn)行了讀寫測試,實現(xiàn)了與BCM56514的數(shù)據(jù)信息交互,為實現(xiàn)MPC8280在大容量路由交換領(lǐng)域得到成熟應(yīng)用提供了接口驅(qū)動支持。

        [1] 劉尚麟.千兆以太網(wǎng)交換機(jī)軟件系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:西南交通大學(xué),2004.

        [2] 聶瓊.千兆自適應(yīng)以太網(wǎng)交換機(jī)的設(shè)計[D].蘇州:蘇州大學(xué),2010.

        [3] Freescale Semiconductor.MPC8280 PowerQUICC II family reference manual[M].Chandler:Freescale Semiconductor,2005.

        [4] PCI Special Interest Group.PCI local bus specification revision 2.2[S].Hillsboro:PCI Special Interest Group,1998.

        [5] 劉慧英,王軍,夏天琪.基于PCI總線的視頻采集卡及其WDM驅(qū)動程序設(shè)計[J].計算機(jī)測量與控制,2010,18(5):1182-1185.

        [6] 楊德芳.PCI驅(qū)動程序的設(shè)計[J].電腦編程技巧與維護(hù),2007(4):75 -77,87.

        [7] 熊信璇.基于PCI總線的立體顯示技術(shù)研究[D].武漢:華中師范大學(xué),2011.

        [8] 宋新超,柴恒.基于WinDriver的數(shù)字信號處理器PCI驅(qū)動開發(fā)[J].艦船電子對抗,2012,35(4):82 -85.

        [9] 何文濤.基于PCI總線數(shù)據(jù)采集系統(tǒng)的研究與設(shè)計[D].大連:大連理工大學(xué),2011.

        [10] Broadcom Corporation.BCM56514 data sheet[M].Irvine:Broadcom Corporation,2007.

        猜你喜歡
        譯碼寄存器總線
        基于校正搜索寬度的極化碼譯碼算法研究
        Lite寄存器模型的設(shè)計與實現(xiàn)
        基于PCI Express總線的xHC與FPGA的直接通信
        機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        從霍爾的編碼譯碼理論看彈幕的譯碼
        新聞傳播(2016年3期)2016-07-12 12:55:27
        LDPC 碼改進(jìn)高速譯碼算法
        遙測遙控(2015年2期)2015-04-23 08:15:19
        多通道ARINC429總線檢查儀
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計
        河南科技(2014年16期)2014-02-27 14:13:22
        基于概率裁剪的球形譯碼算法
        国产精品天干天干| 蜜桃视频免费在线视频| 日本一本二本三本道久久久| 亚洲男人av天堂久久资源| 帮老师解开蕾丝奶罩吸乳网站| 国产精品厕所| 一本久久精品久久综合桃色| 青青草激情视频在线播放| 国产精品无码久久综合网| 色窝窝免费播放视频在线| 亚洲Va中文字幕无码毛片下载| 亚洲综合久久中文字幕专区一区| 中文人妻av久久人妻水蜜桃| 一本无码人妻在中文字幕免费| 亚洲av高清在线观看三区| 精品国产亚洲av高清日韩专区| 乱子轮熟睡1区| 开心婷婷五月激情综合社区| 九九99久久精品在免费线97| 毛片成人18毛片免费看| 丰满人妻一区二区三区免费视频| 亚洲暴爽av人人爽日日碰| 亚洲AV无码乱码一区二区三区| 久久久精品亚洲人与狗| 国产精品无码v在线观看| 在线看亚洲十八禁网站| 99热久久只有这里是精品| 日韩精品极品免费视频观看| 国产精品51麻豆cm传媒| 日韩我不卡| 国产成人av一区二区三| 免费人成在线观看| 国产精品久久久久久妇女6080| 亚洲精品国产精品av| 日本高清一道本一区二区| 麻豆成人精品国产免费| 91美女片黄在线观看| 青青草视频在线观看绿色| 一二三四日本中文在线| 国产精品主播视频| 蜜桃码一区二区三区在线观看|