基于PCI總線模塊的多路串行數(shù)據(jù)采集系統(tǒng)
O 引言
目前市面上有多種數(shù)據(jù)采集卡,但其應(yīng)用都具有一定的局限性,不可能完全滿足用戶的需求。本文介紹的數(shù)據(jù)采集卡可應(yīng)用于某視頻圖像采集系統(tǒng)中,數(shù)據(jù)源發(fā)送多路同步串行數(shù)據(jù),然后經(jīng)過(guò)數(shù)據(jù)采集卡傳入上位機(jī)用以進(jìn)行后續(xù)分析。上位機(jī)向外寫(xiě)控制字并轉(zhuǎn)換后以異步串行方式輸出。用以控制視頻圖像的采集。本系統(tǒng)將PCI接口邏輯和其他用戶邏輯集成于一片F(xiàn)PGA中,因而大大節(jié)省了資源,便于進(jìn)行串口擴(kuò)展及其他功能的添加,性能良好,用途廣泛。
1 PCI總線
PCI總線是一種高性能的局部總線,具有32位可升級(jí)到64位的、獨(dú)立于CPU的總線結(jié)構(gòu)。工作頻率為33/66 MHz,最高傳送速度可達(dá)132 MB/s(32位、33 MHz)或528 MB/s(64位、66 MHz)。
PCI總線定義了Memory(存儲(chǔ)器)空間、I/O(輸入/輸出)空間和配置空間3種地址空間,并具有兩種工作模式:其中主模式下的PCI設(shè)備具有總線控制權(quán),可以實(shí)現(xiàn)DMA傳輸;而被主設(shè)備控制進(jìn)行通信的稱為從模式(TARGET)。
1.1 PCI總線的配置空間
所有的PCI設(shè)備都必須實(shí)現(xiàn)配置空間,該空間分為首部區(qū)和設(shè)備有關(guān)區(qū)。首部區(qū)中的強(qiáng)制性寄存器有:供應(yīng)商代碼(Vendor ID)寄存器用于標(biāo)明設(shè)備制造商),設(shè)備代碼(Device ID)寄存器(用于指明特定的設(shè)備,它由供應(yīng)商分配),版本識(shí)別(Revision ID)寄存器,首部類型(He-ader Type)寄存器和類別寄存器(Class Code)。以上五個(gè)寄存器均可用于PCI總線上設(shè)備的識(shí)別。另外,首部區(qū)中還有兩種必須實(shí)現(xiàn)的寄存器:其中命令寄存器用于存放PCI命令,而設(shè)備狀態(tài)寄存器則用于記錄PCI的狀態(tài)信息。
操作系統(tǒng)在啟動(dòng)時(shí)應(yīng)判斷系統(tǒng)中有多少存儲(chǔ)器、以及I/O設(shè)備需要多少地址空間,然后建立統(tǒng)一的地址映射關(guān)系,這時(shí)的PCI設(shè)備需要用到基地址寄存器。另外,若要實(shí)現(xiàn)中斷,還必須設(shè)置中斷引腳(Interrupt Pin)寄存器和中斷線(Interrupt Line)寄存器。
1.2 PCI總線的中斷機(jī)制
PCI總線的硬件中斷方式分為邊沿觸發(fā)和電平觸發(fā),PCI設(shè)備為低電平觸發(fā)(level-sensitive)。PCI總線上有4條中斷請(qǐng)求信號(hào)線:INTA #、INTB#、INTC#、INTD#,中斷引腳寄存器的值01H~04H分別對(duì)應(yīng)4條中斷線,單功能PCI設(shè)備只能使用INTA#。此外,使用了中斷引腳的設(shè)備還必須實(shí)現(xiàn)中斷線寄存器。POST例程(加電自檢測(cè)程序)在進(jìn)行系統(tǒng)初始化和配置時(shí)還要將中斷線信息寫(xiě)入該寄存器。PCI總線中斷是可以共享的,這一方面解決了中斷資源緊張的問(wèn)題,但另一方面也會(huì)給PCI中斷的實(shí)現(xiàn)帶來(lái)麻煩。
2 系統(tǒng)硬件實(shí)現(xiàn)
2.1 PCI配置寄存器的設(shè)置
Altera公司的PCI編譯器(PCI Compiler)提供有使用Altera器件實(shí)現(xiàn)PCI接口設(shè)計(jì)的完全解決方案。其中包括4種PCI接口兆核函數(shù)(PCI IP)及相關(guān)測(cè)試平臺(tái)。
通過(guò)PCI編譯器的IP工具臺(tái)或直接編輯生成的兆核函數(shù)頭文件可以設(shè)置并修改PCI的配置空間信息,本系統(tǒng)的主要配置信息如下:
評(píng)論