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