通用CPCI數(shù)據(jù)處理與IO模塊的設(shè)計與實現(xiàn)
摘要:數(shù)據(jù)處理與IO模塊主要完成數(shù)據(jù)計算、模擬和數(shù)字信號的采集與處理等功能。給出一種通用的CPCI數(shù)據(jù)處理與IO模塊的設(shè)計方案,模塊采用滿足CPCI總線規(guī)范的加固型設(shè)計,可以實現(xiàn)主控模塊和外設(shè)模塊的自適應(yīng)轉(zhuǎn)換。討論了處理器功能電路設(shè)計、IO功能電路設(shè)計和通用CPCI接口設(shè)計,并針對模塊功能設(shè)計進(jìn)行驗證。
本文引用地址:http://cafeforensic.com/article/201610/308268.htm0 引言
嵌入式數(shù)據(jù)處理與IO模塊應(yīng)用在抗惡劣環(huán)境中,主要完成數(shù)據(jù)計算、模擬和數(shù)字信號的采集與處理等功能。隨著嵌入式系統(tǒng)對數(shù)據(jù)處理性能需求的逐步提高,PowerPC微處理器由于其RISC架構(gòu)、高主頻、并行矢量處理技術(shù)已經(jīng)成為許多高性能系統(tǒng)的優(yōu)選處理器。同時為了提高數(shù)據(jù)處理與IO模塊的開放性、擴(kuò)展性和維修性,需要采用成熟的標(biāo)準(zhǔn)PCI總線對模塊進(jìn)行規(guī)范化、通用化設(shè)計Compact PCI(簡稱CPCI)總線是國際工業(yè)計算機(jī)制造者聯(lián)合會于1994年提出來的一種總線接口標(biāo)準(zhǔn),是以PCI電氣規(guī)范為標(biāo)準(zhǔn)的高性能工業(yè)用總線。CPCI總線充分利用了PCI總線的優(yōu)點,在電氣、邏輯和軟件功能方面與PCI總線完全兼容,同時具有熱插拔能力,已經(jīng)廣泛的應(yīng)用在通信與網(wǎng)絡(luò)、工業(yè)自動化等領(lǐng)域中。滿足CPCI總線規(guī)范的模塊采用加固型的結(jié)構(gòu)設(shè)計和高可靠的連接器,具有較高的可靠性和較強(qiáng)的環(huán)境適應(yīng)能力。
1 系統(tǒng)架構(gòu)
數(shù)據(jù)處理與IO模塊為6U結(jié)構(gòu),底板采用標(biāo)準(zhǔn)的CPCI連接器。功能電路主要由CPU、CPU橋接器、FLASH存儲器、SDRAM存儲器、FPGA邏輯電路、AD接口、離散量接口、以太網(wǎng)調(diào)試接口、RS232串行接口、RS422串行接口、PCI—PCI橋接器等組成,系統(tǒng)結(jié)構(gòu)如圖1所示。
模塊的設(shè)計采用結(jié)構(gòu)化、層次化的設(shè)計方法,各層設(shè)計的功能相對獨立,各個功能子模塊的功能明確。CPU通過橋接器和FPGA實現(xiàn)與板內(nèi)資源的交互,橋接器同時實現(xiàn)存儲器控制器接口,可以直接對接DDR2存儲器,處理器,PCI接口都可以通過橋接器對存儲器進(jìn)行訪問。模塊上提供2路標(biāo)準(zhǔn)的66MHz/64位數(shù)據(jù)寬度的PMC接口,用于模塊的性能、功能擴(kuò)展,PMC總線通過PCI總線跟橋接器相連。模塊內(nèi)部PCI總線和底板CPCI總線采用PCI—PCI橋接器隔離,使用時可以進(jìn)行靈活的配置。
2 處理器功能電路設(shè)計
2.1 處理器電路設(shè)計
CPU模塊采用處理器PowerPC 7447A,PowerPC7447A是PowerPC系列處理器中的第四代高性能的處理器,是一款高性能、低功耗,32位精簡指令集結(jié)構(gòu)的處理器。處理器主頻為1000MHz,可以通過跳線根據(jù)PC7447A的手冊來更改主頻,為節(jié)省能耗CPU模塊降頻到600MHz使用。
處理器通過橋接器訪問自己的資源,處理器的資源主要有:DDR2 SDRAM,F(xiàn)lash存儲器,NVSRAM存儲器,串行接口,PMC接口,以太網(wǎng)接口,中斷控制器,可編程看門狗電路等。
處理器橋接器采用Tsi109,橋接器/集成存儲器控制器提供PowerPC74XX處理器到PCI總線的接口,Tsi109提供功能有:一個高性能的存儲器控制器,兩處理器的支持,兩通道DMA控制器,一個中斷控制器,一路消息控制器,一路I2C接口,一個時鐘鎖相環(huán)電路等。
2.2 復(fù)位電路設(shè)計
復(fù)位電路主要由MAX706ESA芯片實現(xiàn)。模塊上電時,F(xiàn)PGA需要配置,在配置過程中IO引腳保持三態(tài),此時輸入到MAX706ESA的手動復(fù)位通過下拉電阻下拉為低電平,使模塊處于復(fù)位狀態(tài),待FPGA加載完成后,F(xiàn)PGA該IO引腳通過邏輯輸出為高,手動復(fù)位結(jié)束。在工作中通過手動復(fù)位可以對模塊進(jìn)行復(fù)位,如果MAX706ESA檢測到電壓+5V低于+4.4V時,產(chǎn)生復(fù)位。
3 IO功能電路設(shè)計
3.1 AD接口設(shè)計
模塊提供8路差分AD來完成模擬數(shù)據(jù)的采集,8路差分模擬量輸入在模塊內(nèi)首先被轉(zhuǎn)換成8路單端輸入,經(jīng)過模擬開關(guān)后進(jìn)入AD轉(zhuǎn)換芯片,AD的并行接口輸出經(jīng)過鎖存器后進(jìn)入FPGA,模擬開關(guān)與AD芯片之間加運(yùn)算放大器和電壓跟隨器。AD接口結(jié)構(gòu)如圖2所示。
AD轉(zhuǎn)換芯片選用AD公司的AD976,16位采樣精度,采樣速率100KSPS,輸入電壓為±10V,AD976主要由R/C和CS信號控制轉(zhuǎn)換,設(shè)計中這倆信號由FPGA實現(xiàn),軟件中只需向FPGA內(nèi)的一個地址寫入低電平,F(xiàn)PGA便會輸出R/C和CS兩個低脈沖,從而啟動AD轉(zhuǎn)換。
3.2 串行接口設(shè)計
模塊提供8路RS422接口,采用EXAR公司的通用異步收發(fā)器XR16C864來實現(xiàn),該芯片具備4路數(shù)據(jù)通道,每通道FIFO字節(jié)128字節(jié),波特率最高可達(dá)2Mbps??梢酝ㄟ^芯片寄存器操作實現(xiàn)接口的操作配置、狀態(tài)查詢、錯誤管理、中斷控制等功能。模塊上通過FPGA的控制邏輯實現(xiàn)處理器對協(xié)議芯片的配置管理和接口中斷控制等功能。
在Vxworks中,串行設(shè)備是一種特殊的字符型設(shè)備。為了方便操作,軟件中調(diào)用ttyDevCreate函數(shù)將RS422創(chuàng)建為標(biāo)準(zhǔn)的串口設(shè)備。應(yīng)用程序編寫時可以完全忽略底層硬件,將RS422看成是IO文件系統(tǒng)的設(shè)備,采用iolib系統(tǒng)庫提供的接口函數(shù)open()、wrire(),read(),close(),ioctl()等函數(shù)來對設(shè)備進(jìn)行操作。
4 通用CPCI接口設(shè)計
4.1 硬件設(shè)計
模塊采用CPCI總線,由于要實現(xiàn)主控模塊和外設(shè)模塊的自適應(yīng)轉(zhuǎn)換,設(shè)計中采用PCI6466做為模塊內(nèi)部PCI局部總線到CPCI底板總線的橋接器。PCI6466是PLX公司設(shè)計的功能強(qiáng)大的工業(yè)用雙模式通用PCI到PCI橋接器,可以在橋的主端和從端實現(xiàn)完全異步的操作。PCI6466有透明模式、非透明模式和通用模式三種工作模式,設(shè)計時可以根據(jù)需求進(jìn)行靈活的配置。
透明模式工作時,橋的從端的所有設(shè)備對主端的主系統(tǒng)是透明的,從端的所有設(shè)備只能由主端的主系統(tǒng)對其進(jìn)行配置和控制,主端和從端的時鐘一般必須同步,主端和從端的地址完全透明,在主端和從端之間的地址傳遞是直接傳輸,不用進(jìn)行地址轉(zhuǎn)換。
非透明模式工作時,橋的兩端是兩個獨立的處理器域,從端的資源和地址對主端的處理器是不可見的。允許從端的本地處理器獨立地配置和控制其子系統(tǒng),主端和從端的時鐘可以同步或異步。主端和從端的地址完全獨立,主端和從端的地址由橋來進(jìn)行轉(zhuǎn)換。
通用模式下可以通過TRANS#信號將PCI6466設(shè)置為通用透明模式和通用非透明模式。為實現(xiàn)模塊的主從自適應(yīng)轉(zhuǎn)換,在本設(shè)計中PCI6466被配置為通用模式。
在通用模式下,PCI6466的TRANS#信號可以直接連接到CPCI總線的SYSEN#管腳,SYSEN#管腳是系統(tǒng)主控模塊使能信號,CPCI底板中系統(tǒng)槽將它接地,外設(shè)槽將該信號拉高。當(dāng)模塊插入系統(tǒng)槽時,SYSEN#信號為低,PCI6466工作在透明橋模式。反之,如果模塊被插入外設(shè)槽,SYSEN#信號為高,PCI6466工作在非透明橋模式。這樣就可以實現(xiàn)模塊的主從自適應(yīng)轉(zhuǎn)換功能。
4.2 PCI接口驅(qū)動
VxWorks操作系統(tǒng)中提供了對PCI驅(qū)動的良好支持,并且可以根據(jù)實際情況進(jìn)行裁剪,PCI接口驅(qū)動開發(fā)按照如下步驟進(jìn)行。
1)PCI配置空間初始化。通過調(diào)用PCI配置空間初始化函數(shù)完成PCI配置空間的初始化;
2)查找PCI設(shè)備。通過函數(shù)pciFindDevice來實現(xiàn)PCI設(shè)備的查找。該函數(shù)可以根據(jù)給定的Vendor ID和Device ID來掃描總線,找出設(shè)備所在的Bus No、Device No和Func No。
3)地址空間映射。通過操作系統(tǒng)提供的函數(shù)訪問PCI設(shè)備的配置空間,配置PCI設(shè)備的基址寄存器、中斷、ROM基地址寄存器等,這樣可以得到PCI設(shè)備的存儲空間和I/O地址空間映射、設(shè)備的中斷號等;
4)具體的設(shè)備驅(qū)動。根據(jù)PCI設(shè)備的配置參數(shù),對不同的PCI設(shè)備編寫初始化程序、中斷服務(wù)函數(shù)以及相應(yīng)的功能函數(shù)。
5 模塊功能驗證
完成系統(tǒng)和驅(qū)動軟件的設(shè)計后,在具體應(yīng)用環(huán)境中對系統(tǒng)的功能和性能進(jìn)行驗證,系統(tǒng)驗證了如下功能:
(1)模塊的數(shù)據(jù)處理功能,利用測試程序?qū)PU、SDRAM、FLASH、NVRAM等基本CPU資源進(jìn)行驗證,各部分功能正常。
(2)模塊的IO功能,利用測試程序?qū)δK的AD、RS422等功能進(jìn)行驗證,AD精度滿足要求,RS422數(shù)據(jù)傳輸正常。
(3)CPCI的主從自適應(yīng)功能,在測試工裝中分別把模塊插入系統(tǒng)槽和外設(shè)槽,模塊能自動的識別并設(shè)置自己的角色,作為主設(shè)備時可以完成對外設(shè)的配置,作為外設(shè)時可以在PCI設(shè)備列表中掃描到。
6 結(jié)語
本文介紹了一種通用CPCI數(shù)據(jù)處理與IO模塊的設(shè)計與實現(xiàn),滿足CPCI總線規(guī)范的模塊采用加固型的結(jié)構(gòu)設(shè)計和高可靠的連接器,具有較高的可靠性和較強(qiáng)的環(huán)境適應(yīng)能力。模塊經(jīng)過系統(tǒng)的測試驗證,具備通用性、高可靠性的特點。
評論