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