關(guān) 閉

新聞中心

EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)的PCI接口設(shè)計

嵌入式系統(tǒng)的PCI接口設(shè)計

作者: 時間:2012-07-18 來源:網(wǎng)絡(luò) 收藏

1引言

本文引用地址:http://butianyuan.cn/article/202255.htm

通常意義的計算機系統(tǒng)結(jié)構(gòu)是以CPU為中心,再輔以存儲系統(tǒng)和I/O接口構(gòu)成。其功能主要用于數(shù)值計算和數(shù)據(jù)處理。而是將CPU作為部件嵌入到系統(tǒng)中,此時的CPU并不是用于通用計算。的主要特點是針對性強和實時性強、可靠性高、體積小、功耗低,可廣泛應(yīng)用于個人數(shù)字助理、數(shù)碼相機、數(shù)字電視、通信、工業(yè)測控系統(tǒng)以及導(dǎo)彈控制等諸多領(lǐng)域。的設(shè)計過程包括:需求論證、規(guī)格說明、體系結(jié)構(gòu)設(shè)計、硬件和軟件構(gòu)件設(shè)計以及系統(tǒng)集成等。較好的方法是采用統(tǒng)一的建模語言(UML)來描述設(shè)計任務(wù)。這是一種面向?qū)ο蟮慕UZ言,它可將設(shè)計描述為許多交互的對象,這些對象對應(yīng)系統(tǒng)中的軟件和硬件。與嵌入式系統(tǒng)緊密相關(guān)的概念還包括實時操作系統(tǒng)(RTOS)、在片系統(tǒng)(SOC)和硬件描述語言(HDL)。所以說嵌入式系統(tǒng)的設(shè)計是一個“系統(tǒng)工程”。

以MPC8260為CPU,再加上PLX9656的64bit/66MHz 接口所組成的嵌入式系統(tǒng)有很高的性能,其數(shù)據(jù)吞吐量可達(dá)幾百MB/S。其中MPC8260是MOTOROLA公司生產(chǎn)的具有603eTM核及通信處理模塊(CPM)的高性能、高集成度CPU。它在片內(nèi)集成了存儲管理單元(MMU)、系統(tǒng)接口單元(SIU)、64位60x總線和32位本地總線以及強大的網(wǎng)絡(luò)接口(三個FCC、兩個MCC、四個SCC、兩個SMC等)。

嵌入式系統(tǒng)有兩種工作模式:第一種為附屬工作方式,該方式將嵌入式系統(tǒng)設(shè)計成板卡形式,并通過主機的接口進(jìn)行數(shù)據(jù)傳輸。這種方式具有一定的獨立性,可承擔(dān)某項特定的任務(wù),從而可使主機CPU的開銷大大減少。常用的視頻壓縮卡、工業(yè)數(shù)據(jù)采集卡等都屬此種類型。第二種工作模式為獨立工作方式。該方式由于嵌入式系統(tǒng)本身含有CPU,因而是一個自主的系統(tǒng)和功能單元,能獨立完成某項任務(wù),并可通過網(wǎng)絡(luò)接口(如以太網(wǎng)、ATM、HDLC/SDLC等)或通道(如SCSI、USB等)將數(shù)據(jù)傳輸給服務(wù)器,以實現(xiàn)數(shù)據(jù)的傳輸與管理。其典型產(chǎn)品有機頂盒、磁盤陣列控制器等。

2 規(guī)范及其接口芯片

第一個PCI技術(shù)規(guī)范1.0版本于1992年6月面世,到1999年2月發(fā)布了2.2版,不久前又公布了PCIX規(guī)范。PCI的位數(shù)由32位擴(kuò)展為64位,頻率從33MHz提高到133MHz。該規(guī)范是處理器、存儲器總線至周邊設(shè)備擴(kuò)展的橋梁,根據(jù)PCI橋接的對象可分為Host/PCI橋(北橋)和PCI/SA橋(南橋),它們可一起構(gòu)成芯片組。PCI接口芯片通過配置和編程可將其數(shù)據(jù)空間映射為Memory和I/O方式;其數(shù)據(jù)傳送既可以是單數(shù)據(jù)段讀寫,又可以是突發(fā)方式、中斷方式或DMA方式。

許多廠商(如AMCC、IBM、PLX等)都可提供PCI接口芯片,圖1所示是PLX的64bit/66MHz PCI接口芯片PLX9656的結(jié)構(gòu)框圖。

PLX9656符合PCIr2.2、CompactPCIr1.0及PCI熱插拔r1.0規(guī)范。它可配置為M模式(可與Motorola的MPC850、MPC860無縫接口)、C模式(為非復(fù)用地址/數(shù)據(jù)方式,可與DSP、ASIC和FPGA接口)和J模式(為復(fù)用地址/數(shù)據(jù)方式,可與IBMPoweerPC401和IOP480接口)。此外,它還具有以下特點:

●采用先進(jìn)的Direct Master、Direct Slave和DMA數(shù)據(jù)傳輸技術(shù),其迸發(fā)數(shù)據(jù)傳輸率PCIBus端為528MB/s,Local Bus端為264MB/s;

●I2OTM信息單元包括8個32位郵箱寄存器和2個32位門鈴寄存器;

●PCI仲裁器支持7個外部主設(shè)備;

●帶有可編程中斷產(chǎn)生器及串行EEPROM接口。

3硬聯(lián)邏輯設(shè)計

PCI接口芯片的主要功能是橋接CPU端的LocalBus與PCI總線。另外,還必須通過串行總線上的EEPROM來配置PCI芯片的初始工作方式。PLX9656的三種工作模式(M、C和J)可以和大多數(shù)CPU和DSP接口。其中M模式是專為MOTOROLA的POW-ERPC系列CPU而設(shè)計的接口模式。

由PLX9656與MPC8260組成的最小系統(tǒng)至少應(yīng)包括以下幾個組成部分:FLASH、SDRAM、SRAM、PCI連接器、JTAG端口、時鐘、復(fù)位、電源、EEPROM、以太網(wǎng)接口、ATM和RS232串行口等。

PLX9656信號線包括PCI端信號、Local Bus端地址與數(shù)據(jù)、控制信號、電源和地。其中前兩項占了信號數(shù)量的絕大部分。為了保證信號的可靠傳輸,芯片上用很多引腳作電源和地,這些引腳在布線時應(yīng)仔細(xì)連接,并應(yīng)大面積敷銅,同時還要連接濾波電容。另外要注意的是:MPC8260有60x Bus和LocalBus兩條總線,前者為MPC8260與外界的接口總線,所以應(yīng)將PLX9656的Local Bus信號與MPC8260的60x Bus連接。圖2所示是系統(tǒng)的硬聯(lián)邏輯框圖。

4驅(qū)動程序

開發(fā)Windows環(huán)境和Linux環(huán)境的驅(qū)動程序有很大不同。

4.1 Windows環(huán)境中驅(qū)動程序的編寫

由于Windows操作系統(tǒng)被Microsoft所壟斷,它是一個封閉的操作系統(tǒng),因此很難將用戶驅(qū)動程序掛接到Windows操作系統(tǒng)中。通常要利用一些開發(fā)工具,如Microsoft的DDK、Numega的DriverStudio和Jungo的WinDriver等。因而應(yīng)首先是由它們生成驅(qū)動程序的框架后,再導(dǎo)入到Microsoft的Visual C++中,在填入與設(shè)計對象相關(guān)的代碼后,最后由build生成Windows環(huán)境下的驅(qū)動程序。

PLX公司的PLX9656RDK提供了Windows API及其源代碼和調(diào)試工具PLXMon。利用這些針對PLX芯片的API可以驅(qū)動PCI接口,而且其編程工作也非常快捷。

PLX芯片的初始化函數(shù)原型為:

S8 Select Device(DEVICE_LOCATION*pDev);

它可提供很多對PCI的接口操作,其中包括寄存器讀/寫、中斷允許/禁止、獲取中斷狀態(tài)、IOP總線讀/寫、IOP端口讀/寫、電源管理、熱插拔功能、VPD讀/寫、EEPROM讀/寫、郵箱寄存器讀/寫、門鈴寄存器讀/寫、DMA控制/狀態(tài)、DMA塊通道操作、DMASgl通道操作以及DMAShuttle通道操作等。

在對PLX芯片進(jìn)行初始化后,便可利用PLX9656RDK提供的上述功能對PCI接口進(jìn)行操作。

4.2 Linux環(huán)境下驅(qū)動程序編寫

Linux是源代碼開放型操作系統(tǒng)。在這種系統(tǒng)中,用戶自編的設(shè)備驅(qū)動程序可以和原操作系統(tǒng)的驅(qū)動程序享有同等的“地位”。Linux環(huán)境下,驅(qū)動程序的編寫有兩種方式,一種是基于內(nèi)核的,另一種是基于模塊的。前一種方式是將驅(qū)動程序直接注冊在相應(yīng)的系統(tǒng)文件中,然后在操作系統(tǒng)啟動時將它裝載在內(nèi)存中使用;后一種方式則通過命令行insmod和mmod來加載和卸載驅(qū)動程序模塊,因此比較方便靈活。

Linux對設(shè)備的操作與對文件的操作一致,所有的驅(qū)動程序都毫不例外地要使用file operations結(jié)構(gòu)。其中的read、write、ioctl、mmap、open、release指針分別指向用戶編寫的驅(qū)動程序的相關(guān)操作。

每個PCI設(shè)備均可由總線號、設(shè)備號和功能號來確定,它共有三個訪問空間,即內(nèi)存空間、I/O端口和配置寄存器。配置空間用于決定PCI器件的工作方式和映射到系統(tǒng)中的地址。其基本功能函數(shù)如下:

訪問I/O和內(nèi)存空間時,要根據(jù)配置寄存器中PCL-BASE-ADDRESS-i(i=0...5)所給定的基地址來讀寫數(shù)據(jù)。

5嵌入式系統(tǒng)的實現(xiàn)

嵌入式系統(tǒng)的開發(fā)平臺包括Host(主機)和Tar-get(目標(biāo))兩部分。通常,Host和Target的硬件構(gòu)架(如x86、PowerPC、ARM、MIPS等)和操作系統(tǒng)都不盡相同。因此需要用CDK(交叉開發(fā)工具包)把在Host上開發(fā)的代碼下載到Target上。此開發(fā)平臺的模型如圖3所示。

由于主機上資源豐富(如功能強大的操作系統(tǒng)和應(yīng)用軟件、CRT顯示輸出和打印機硬拷貝輸出、鍵盤和鼠標(biāo)輸入等),因此調(diào)試起來非常便捷。針對不同的目標(biāo)系統(tǒng),HardHat CDK有不同的開發(fā)工具包,但開發(fā)流程及工具的使用幾乎一樣。首先用相應(yīng)目標(biāo)系統(tǒng)的交叉編譯器將源程序編譯為可執(zhí)行文件,再將可執(zhí)行文件拷貝到目標(biāo)系統(tǒng)的NFS目錄下,待目標(biāo)系統(tǒng)裝載內(nèi)核并引導(dǎo)后,便可調(diào)試和運行應(yīng)用程序了。程序調(diào)試成功后,就可以使用EmbeddedPlanet公司的Planet Core來將應(yīng)用程序燒錄到目標(biāo)板的FLASH中,這樣,目標(biāo)板就成了可獨立運行的嵌入式系統(tǒng)了。

6小結(jié)

由MPC8260和PLX9656構(gòu)成的嵌入式系統(tǒng)有著廣闊的應(yīng)用前景??蓱?yīng)用于高性能通信系統(tǒng)中的WAN/LAN控制卡、高速MODEM卡、幀中繼卡、路由和交換機等,處理器集成的ATM、T1/E1及以太網(wǎng)等通信通道均能很好地支持上述通信功能;另外還支持高速PC適配卡、CompctPCI接口卡以及嵌入式主機系統(tǒng)等。由于PLX9656具有數(shù)據(jù)管道構(gòu)架的直接傳輸方式,因而可方便的用于PCI及Local Bus端的I/O和設(shè)備的高速數(shù)據(jù)傳輸。

更多計算機與外設(shè)信息請關(guān)注21ic計算機與外設(shè)頻道

c++相關(guān)文章:c++教程




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉