日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
基于PCI總線的高速數(shù)據(jù)采集接口的設(shè)計(jì)與實(shí)現(xiàn)
基于PCI總線的高速數(shù)據(jù)采集接口的設(shè)計(jì)與實(shí)現(xiàn)
 更新時(shí)間:2008-8-4 4:50:28  點(diǎn)擊數(shù):27
【字體: 字體顏色


    

[摘要]::PCI 總線接口控制器的設(shè)計(jì)是基于PCI總線的應(yīng)用設(shè)計(jì)的關(guān)鍵所在。本文在介紹PCI9054接口控制器的基礎(chǔ)上,給出了一種通用的高速數(shù)據(jù)采集接口的設(shè)計(jì),并提出了一種新的包括PCI9054單周期讀、寫和DMA讀操作的VHDL狀態(tài)機(jī)設(shè)計(jì)。經(jīng)測(cè)試證明,該接口的數(shù)據(jù)采集速率能穩(wěn)定的達(dá)到200Mbit/s。       
[關(guān)鍵詞]:PCI總線,PCI9054,本地總線,VHDL 狀態(tài)機(jī)。
 
0. 引言
    PCI總線(Peripheral Component Interconnect)是Intel公司推出的一種高性能32/64位局部總線,最大數(shù)據(jù)傳輸速率為132—264Mbyte/s。,是目前使用較為廣泛的一種總線。在高速信號(hào)的實(shí)時(shí)處理中,利用PCI總線將采集數(shù)據(jù)直接傳送到微機(jī)系統(tǒng)內(nèi)存,可有效解決數(shù)據(jù)的實(shí)時(shí)傳輸和存儲(chǔ),為信號(hào)的實(shí)時(shí)處理提供方便。利用PCI總線進(jìn)行高速數(shù)據(jù)采集,可以簡(jiǎn)化電路設(shè)計(jì)。而且這種高速數(shù)據(jù)采集接口模塊可以在多次設(shè)計(jì)中重復(fù)使用,縮短產(chǎn)品的研發(fā)周期。本文通過(guò)對(duì)專用接口芯片PCI9054的性能分析,特別是對(duì)單周期讀、寫和DMA讀操作的時(shí)序進(jìn)行了分析,提出了一種新的包括PCI9054單周期讀、寫和DMA讀操作的VHDL狀態(tài)機(jī)設(shè)計(jì),并討論了通用的PCI總線高速數(shù)據(jù)采集接口模塊的實(shí)現(xiàn)方案。

1.PCI9054性能簡(jiǎn)介
    PCI9054是PLX公司推出的一種32位33MHz的PCI 總線主控I/ O 加速器。它采用多種先進(jìn)技術(shù),可以將復(fù)雜的PCI 接口應(yīng)用設(shè)計(jì)變得簡(jiǎn)單。利用PCI 9054 靈活的局部總線可以方便地連接多種存儲(chǔ)器、I/ O 外圍設(shè)備和CPU, 其中包括與Motorola 公司的MPC 860、Intel 公司的960、IBM公司的PPC 401等處理器之間的直接連接。PCI9054 可廣泛應(yīng)用于Motorola 公司的MPC 860 適配器設(shè)計(jì)、Compact PCI熱交換適配器、PCI 總線主控適配器和嵌入式主機(jī)等設(shè)計(jì)系統(tǒng)中。
    PCI9054的本地總線時(shí)鐘可與PCI總線時(shí)鐘異步,本地總線有三種工作模式:M模式、C模式和J模式,可方便地與多種微處理器連接。其中在C模式下,本地總線(Local bus)為非復(fù)用的32bit地址與數(shù)據(jù)總線,時(shí)序與控制比較簡(jiǎn)單。PCI9054還有三種數(shù)據(jù)傳送方式,PCI主發(fā)起,PCI從目標(biāo),DMA方式。PCI從目標(biāo)即PCI9054作為PCI總線的從設(shè)備,由總線上的其他主設(shè)備向它傳送數(shù)據(jù)。而在PCI9054的本地總線端,PCI9054 又作為主設(shè)備,向本地的存儲(chǔ)空間和I/O空間傳送數(shù)據(jù)。在DMA方式中,PCI9054提供了兩個(gè)獨(dú)立的DMA通道,都可以進(jìn)行PCI總線到本地總線和本地總線到PCI總線的DMA傳送。
    在設(shè)計(jì)本地總線的數(shù)據(jù)傳送接口時(shí),主要有兩項(xiàng)工作,一是需要對(duì)PCI空間到本地空間,或本地空間到PCI空間的地址映射,進(jìn)行相應(yīng)的存儲(chǔ)器配置。二是根據(jù)PCI9054提供的本地總線控制信號(hào)設(shè)計(jì)本地總線的邏輯控制功能,實(shí)現(xiàn)相應(yīng)的數(shù)據(jù)傳送時(shí)序。

2.基于PCI9054的高速數(shù)據(jù)采集接口
    由于PCI9054內(nèi)部的讀寫FIFO容量太小,需要外置擴(kuò)展FIFO。作為一個(gè)較為通用的設(shè)計(jì),我們采用的FIFO芯片是IDT公司的IDT72V3690。該芯片的容量為36k*36byte,由于該系列的FIFO芯片在封裝上完全兼容,所以可以根據(jù)需要選用更大容量的FIFO芯片.
    在PCI9054本地總線端的主要信號(hào)線的連接如圖1所示,其中,F(xiàn)IFO的讀時(shí)鐘RCLK信號(hào)就是本地總線的時(shí)鐘信號(hào),由本地20MHz的晶振提供。寫時(shí)鐘WCLK信號(hào)由前端數(shù)據(jù)采集模塊和數(shù)據(jù)一起提供。


      
 2.1 CPLD的本地總線可編程邏輯設(shè)計(jì)
    當(dāng)進(jìn)行數(shù)據(jù)采集時(shí),由應(yīng)用程序向驅(qū)動(dòng)程序發(fā)出采集命令,再由驅(qū)動(dòng)程序在PCI目標(biāo)單字節(jié)寫方式下向PCI9054寫入一個(gè)數(shù)據(jù),表示數(shù)據(jù)采集的開始。CPLD在接收到LHOLD總線申請(qǐng)信號(hào)后,響應(yīng)LHOLDA信號(hào)。接著PCI9054發(fā)出地址選通信號(hào),LW/R一直為高,PCI9054收到地址信號(hào)LA2后,在下一個(gè)周期使READY信號(hào)為低,判斷LD0位的高低,如果為低,則輸出一個(gè)寫使能信號(hào)WEN到FIFO,使FIFO開始傳送數(shù)據(jù)。
    數(shù)據(jù)采集開始后,從數(shù)據(jù)采集模塊送出的數(shù)據(jù)通過(guò)D0-D31接入到IDT72V3690。FIFO在半滿時(shí)送出半滿標(biāo)志信號(hào)(HF),CPLD(XC9536XL)就向PCI9054發(fā)出一個(gè)中斷請(qǐng)求信號(hào),接著再由PCI9054向PCI總線發(fā)出中斷請(qǐng)求信號(hào),CPU響應(yīng)中斷,在中斷響應(yīng)程序內(nèi),發(fā)出讀命令,要讀取的字節(jié)數(shù),地址信號(hào)等。PCI9054先通過(guò)LHOLD申請(qǐng)Local bus控制權(quán),CPLD通過(guò)LHOLDA響應(yīng),使PCI9054得到局部總線的控制權(quán)。PCI9054將PCI地址空間映射到本地地址空間,接著啟動(dòng)本地總線的DMA周期。CPLD收到讀信號(hào)(LW/R)和地址選通信號(hào)(ADS),地址(LA0)后(FIFO只需要一位地址選通),使能FIFO的讀使能端(REN),使FIFO數(shù)據(jù)線上的Q0-Q31有效,同時(shí)也使PCI9054的準(zhǔn)備好信號(hào)(READY)有效,開始數(shù)據(jù)傳送。在最后一個(gè)數(shù)據(jù)傳送之前,BLAST信號(hào)有效,CPLD在一個(gè)時(shí)鐘周期后使FIFO的讀使能(REN)無(wú)效,完成一次數(shù)據(jù)傳送過(guò)程。
       圖2為PCI9054單周期讀、寫和DMA讀的VHDL語(yǔ)言時(shí)序控制狀態(tài)機(jī)設(shè)計(jì)。狀態(tài)0為空閑狀態(tài),如本地總線請(qǐng)求信號(hào)LHOLD被置1,則轉(zhuǎn)到狀態(tài)1,否則留在狀態(tài)0。狀態(tài)1為總線保持狀態(tài),在此狀態(tài)下應(yīng)將本地總線響應(yīng)信號(hào)LHOLDA置1。如ADS信號(hào)為0且LWR為0,則轉(zhuǎn)到狀態(tài)2,如ADS信號(hào)為0且LWR為1則轉(zhuǎn)到狀態(tài)3,如ADS信號(hào)為1且LWR和BLAST為0則轉(zhuǎn)到狀態(tài)4,這表明此次讀操作為單周期讀。狀態(tài)2為DMA讀狀態(tài),在此狀態(tài)下應(yīng)將READY信號(hào)和FIFO讀使能信號(hào)REN置0,表示數(shù)據(jù)有效可以讀取。如BLAST為1,則表明此次DMA讀取還未完成,繼續(xù)留在狀態(tài)2,如BLAST為0,則表明此次DMA讀取完成,轉(zhuǎn)到狀態(tài)4。狀態(tài)3為單周期寫狀態(tài),在此狀態(tài)下也要置READY信號(hào)為0,以表示寫數(shù)據(jù)有效,在BLAST為0時(shí)轉(zhuǎn)到狀態(tài)4。狀態(tài)4為讀寫操作完成狀態(tài),當(dāng)LHOLD被置0時(shí),表明PCI9054不在請(qǐng)求本地總線,則轉(zhuǎn)到狀態(tài)0,當(dāng)BLAST為0且LHOLD為1時(shí),表明PCI9054還要進(jìn)行讀寫數(shù)據(jù),則轉(zhuǎn)到狀態(tài)1繼續(xù)。


 
2.2 串行EEPROM(NM93CS56)的配置
   NM93CS56是2kbit的串行EEPROM,PCI9054在系統(tǒng)啟動(dòng)的時(shí)候通過(guò)讀取其存儲(chǔ)的數(shù)據(jù)來(lái)配置一些必要的寄存器,以完成PCI9054的初始化。如果EEPROM內(nèi)配置的數(shù)據(jù)不符合要求,系統(tǒng)將無(wú)法啟動(dòng),PCI9054也將無(wú)法工作。NM93CS56的配置如下所示:
54 90 B5 10 80 06 0B 00 00 00 00 01 00 00 00 00 00 00 00 00 FF FF C8 FF 00 00 81 00 80 00 00 00 30 00 FF 05 00 00 01 00 00 00 00 00 47 81 C3 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 54 90 B5 10 FF FF FE FF 00 00 4C 00 00 00 43 01 00 00 06 4C
   其中,EEPROM配置以字為單位,在寫入時(shí)低字節(jié)在前,高字節(jié)在后,如Device ID 為90 54,寫入EEPROM的順序則是54 90。EEPROM主要完成了對(duì)本地配置寄存器的初始配置以及一些控制寄存器的配置,如本地存儲(chǔ)空間到PCI內(nèi)存空間和I/O空間的映射等。本文將本地存儲(chǔ)空間映射到了PCI內(nèi)存空間,存儲(chǔ)范圍為1M。其他配置寄存器的意義可以參考對(duì)照PCI9054的數(shù)據(jù)手冊(cè)。
2.3 IDT72V3690的配置
  IDT72V3690可以在讀寫端口提供x36/x18/x9的可選總線寬度,在讀寫端口可以進(jìn)行非同步/同步設(shè)置,提供兩種控制模式:標(biāo)準(zhǔn)IDT模式和FWFT模式。還可以設(shè)置幾乎滿,幾乎空的預(yù)定字節(jié)數(shù)等。
IDT72V3690需要在寫操作之前進(jìn)行主復(fù)位,以設(shè)置它的一些初始狀態(tài),所以需要上電復(fù)位,我們選用了上電復(fù)位芯片MAX814T,在上電時(shí)對(duì)FIFO進(jìn)行復(fù)位。FIFO的初始設(shè)置主要有:BM,OW,IW全為低,使輸入輸出寬度為36位;FWFT/SI 為低,表示是標(biāo)準(zhǔn)IDT模式,只要REN和WEN使能,就可以讀寫數(shù)據(jù); OE為 低,表示允許輸出端輸出; IP為 低,表示不加校驗(yàn)位,即只用到0-31數(shù)據(jù)線;PFM為高,表示是同步方式,即在時(shí)鐘上升沿讀寫數(shù)據(jù)。
2.4 板卡的PCB設(shè)計(jì)
    板卡的PCB設(shè)計(jì)要遵循高速信號(hào)PCB走線的要求,該板卡采用4層板,兩層信號(hào)層,一層電源,一層地。尤其要注意PCI總線端PCI9054與PCI插槽“金手指”的走線:普通信號(hào)線長(zhǎng)度,從插槽“金手指”的中心到PCI9054的長(zhǎng)度不超過(guò)1.5英寸,33MHz的PCI總線時(shí)鐘信號(hào)走線長(zhǎng)度為2.5±0.1英寸。因?yàn)镻CI總線端的信號(hào)采用反射波方式即總線驅(qū)動(dòng)靠反射波疊加使信號(hào)電壓達(dá)到要求的振幅,而電壓上升的過(guò)渡時(shí)間相當(dāng)于總線周期的三分之一。因此PCI總線端的信號(hào)與普通芯片的入射波信號(hào)不同,不能直接互連,所以PCI9054內(nèi)部就完成了信號(hào)波形和信號(hào)格式的轉(zhuǎn)換。所以,為了滿足反射條件,要嚴(yán)格按照上面所說(shuō)的兩個(gè)條件進(jìn)行布線,實(shí)際布線中我們對(duì)時(shí)鐘信號(hào)采用了蛇形走線,走線長(zhǎng)度為2.5英寸。

4.WDM驅(qū)動(dòng)程序設(shè)計(jì)
   我們利用NuMega公司提供的DriverStudio完成了驅(qū)動(dòng)程序的開發(fā), DriverWorks是DriverStudio的一個(gè)組成部分,能夠非常方便地實(shí)現(xiàn)針對(duì)WDM驅(qū)動(dòng)程序的開發(fā)。DriverWorks中的類庫(kù)封裝了針對(duì)驅(qū)動(dòng)程序的各種通用操作,可以大大縮短驅(qū)動(dòng)程序的開發(fā)周期。
    該雙向接口模塊的驅(qū)動(dòng)程序主要完成三項(xiàng)功能,PCI目標(biāo)單周期寫,PCI目標(biāo)單周期讀,DMA讀。單周期寫和單周期讀比較簡(jiǎn)單,直接用KIoRange的讀寫成員函數(shù)就可以完成。
    DMA讀主要是利用DriverWorks提供的KdmaAdapter,KDmaTransfer和KCommonDmaBuffer類實(shí)現(xiàn)DMA傳輸,KdmaAdapter用于建立一個(gè)DMA適配器,它說(shuō)明DMA通道的特性,KDmaTransfer用于DMA傳輸控制,KCommonDmaBuffer用于申請(qǐng)系統(tǒng)提供的公用緩沖區(qū)。
    驅(qū)動(dòng)程序首先設(shè)置PCI9054的工作方式和中斷寄存器、DMA配置寄存器,然后等待本地中斷的到來(lái)。如果本地中斷到來(lái),則表明FIFO已到達(dá)半滿狀態(tài),則在設(shè)備成員函數(shù)Isr_Irq()中屏蔽本地中斷,在設(shè)備成員函數(shù)DpcFor_Irq()中調(diào)用KDmaTransfer:: Continue()函數(shù)進(jìn)行DMA傳輸。在設(shè)置DMA配置寄存器時(shí),要注意DMAMODE0寄存器的設(shè)置,它的1:0位應(yīng)設(shè)置為11,表示32位數(shù)據(jù)傳送;第8位應(yīng)設(shè)置為1,表示允許本地總線的突發(fā)傳送;第11位應(yīng)設(shè)置為1,表明在DMA傳輸中保持本地地址為常量(FIFO讀寫端口地址不變)。

5.功能測(cè)試
   我們?cè)谧孕虚_發(fā)的多路視頻數(shù)據(jù)采集處理系統(tǒng)中對(duì)該采集接口模塊進(jìn)行了測(cè)試,在本地總線的晶振頻率為20MHz時(shí),能穩(wěn)定的達(dá)到160Mbit/s的采集速率;晶振頻率為40MHz時(shí),能穩(wěn)定的達(dá)到200Mbit/s的采集速率。

6.結(jié)束語(yǔ)
   盡管PCI總線規(guī)范十分復(fù)雜,但PCI 9054控制器提供了一個(gè)PCI 總線和本地總線的一種直接的高速數(shù)據(jù)傳輸路徑,這一特性降低了PCI 總線的復(fù)雜性。而本文就PCI總線是怎樣和本地總線外部擴(kuò)展設(shè)備或存儲(chǔ)器之間進(jìn)行高速數(shù)據(jù)傳輸進(jìn)行了詳細(xì)的討論,給出了實(shí)用的高速數(shù)據(jù)采集接口設(shè)計(jì),根據(jù)這一設(shè)計(jì),就可以很好的在PCI總線和本地總線外部設(shè)備或存儲(chǔ)器之間進(jìn)行數(shù)據(jù)傳輸和控制,在數(shù)據(jù)采集、信號(hào)處理等各方面具有較廣泛的應(yīng)用。



  • 上一篇: TMS320VC5509A USB設(shè)備固件設(shè)計(jì)與實(shí)現(xiàn)
  • 下一篇: 單端PECL與差分PECL的互連
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1