日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]嵌入式系統(tǒng)的PCI接口設(shè)計(jì)

1引言

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

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

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

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

第一個(gè)PCI技術(shù)規(guī)范1.0版本于1992年6月面世,到1999年2月發(fā)布了2.2版,不久前又公布了PCIX規(guī)范。PCI的位數(shù)由32位擴(kuò)展為64位,頻率從33MHz提高到133MHz。該規(guī)范是處理器、存儲(chǔ)器總線至周邊設(shè)備擴(kuò)展的橋梁,根據(jù)PCI橋接的對(duì)象可分為Host/PCI橋(北橋)和PCI/SA橋(南橋),它們可一起構(gòu)成芯片組。PCI接口芯片通過(guò)配置和編程可將其數(shù)據(jù)空間映射為Memory和I/O方式;其數(shù)據(jù)傳送既可以是單數(shù)據(jù)段讀寫(xiě),又可以是突發(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無(wú)縫接口)、C模式(為非復(fù)用地址/數(shù)據(jù)方式,可與DSP、ASIC和FPGA接口)和J模式(為復(fù)用地址/數(shù)據(jù)方式,可與IBMPoweerPC401和IOP480接口)。此外,它還具有以下特點(diǎn):

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

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

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

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

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

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

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

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

4驅(qū)動(dòng)程序

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

4.1 Windows環(huán)境中驅(qū)動(dòng)程序的編寫(xiě)

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

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

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

S8 Select Device(DEVICE_LOCATION*pDev);

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

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

4.2 Linux環(huán)境下驅(qū)動(dòng)程序編寫(xiě)

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

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

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

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

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

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

由于主機(jī)上資源豐富(如功能強(qiáng)大的操作系統(tǒng)和應(yīng)用軟件、CRT顯示輸出和打印機(jī)硬拷貝輸出、鍵盤(pán)和鼠標(biāo)輸入等),因此調(diào)試起來(lái)非常便捷。針對(duì)不同的目標(biāo)系統(tǒng),HardHat CDK有不同的開(kāi)發(fā)工具包,但開(kāi)發(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ùn)行應(yīng)用程序了。程序調(diào)試成功后,就可以使用EmbeddedPlanet公司的Planet Core來(lái)將應(yīng)用程序燒錄到目標(biāo)板的FLASH中,這樣,目標(biāo)板就成了可獨(dú)立運(yùn)行的嵌入式系統(tǒng)了。

6小結(jié)

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在工業(yè)物聯(lián)網(wǎng)設(shè)備部署中,Modbus通信故障是導(dǎo)致系統(tǒng)停機(jī)的首要原因之一。據(jù)統(tǒng)計(jì),超過(guò)60%的現(xiàn)場(chǎng)問(wèn)題源于通信配置錯(cuò)誤或數(shù)據(jù)解析異常。本文從嵌入式系統(tǒng)開(kāi)發(fā)視角,系統(tǒng)闡述Modbus通信調(diào)試的方法論,結(jié)合實(shí)際案例解析如何高...

關(guān)鍵字: 嵌入式系統(tǒng) Modbus通信

在嵌入式系統(tǒng)開(kāi)發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時(shí)機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個(gè)維度,系統(tǒng)分析看門狗初始化的最佳實(shí)踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

人工智能(AI)和機(jī)器學(xué)習(xí)(ML)是使系統(tǒng)能夠從數(shù)據(jù)中學(xué)習(xí)、進(jìn)行推理并隨著時(shí)間的推移提高性能的關(guān)鍵技術(shù)。這些技術(shù)通常用于大型數(shù)據(jù)中心和功能強(qiáng)大的GPU,但在微控制器(MCU)等資源受限的器件上部署這些技術(shù)的需求也在不斷增...

關(guān)鍵字: 嵌入式系統(tǒng) 人工智能 機(jī)器學(xué)習(xí)

Zephyr開(kāi)源項(xiàng)目由Linux基金會(huì)維護(hù),是一個(gè)針對(duì)資源受限的嵌入式設(shè)備優(yōu)化的小型、可縮放、多體系結(jié)構(gòu)實(shí)時(shí)操作系統(tǒng)(RTOS)。近年來(lái),Zephyr RTOS在嵌入式開(kāi)發(fā)中的采用度逐步增加,支持的開(kāi)發(fā)板和傳感器不斷增加...

關(guān)鍵字: 嵌入式系統(tǒng) 軟件開(kāi)發(fā) 實(shí)時(shí)操作系統(tǒng) Zephyr項(xiàng)目

在資源受限的嵌入式系統(tǒng)中,代碼執(zhí)行效率和內(nèi)存占用始終是開(kāi)發(fā)者需要權(quán)衡的核心問(wèn)題。內(nèi)聯(lián)函數(shù)(inline functions)和宏(macros)作為兩種常見(jiàn)的代碼展開(kāi)技術(shù),在性能、可維護(hù)性和安全性方面表現(xiàn)出顯著差異。本文...

關(guān)鍵字: 內(nèi)聯(lián)函數(shù) 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和服務(wù)器開(kāi)發(fā)中,日志系統(tǒng)是故障排查和運(yùn)行監(jiān)控的核心組件。本文基于Linux環(huán)境實(shí)現(xiàn)一個(gè)輕量級(jí)C語(yǔ)言日志庫(kù),支持DEBUG/INFO/WARN/ERROR四級(jí)日志分級(jí),并實(shí)現(xiàn)按大小滾動(dòng)的文件輪轉(zhuǎn)機(jī)制。該設(shè)計(jì)在某...

關(guān)鍵字: C語(yǔ)言 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和底層驅(qū)動(dòng)開(kāi)發(fā)中,C語(yǔ)言因其高效性和可控性成為主流選擇,但缺乏原生單元測(cè)試支持成為開(kāi)發(fā)痛點(diǎn)。本文提出一種基于宏定義和測(cè)試用例管理的輕量級(jí)單元測(cè)試框架方案,通過(guò)自定義斷言宏和測(cè)試注冊(cè)機(jī)制,實(shí)現(xiàn)無(wú)需外部依賴的嵌入...

關(guān)鍵字: C語(yǔ)言 嵌入式系統(tǒng) 驅(qū)動(dòng)開(kāi)發(fā)

在嵌入式系統(tǒng)與驅(qū)動(dòng)開(kāi)發(fā)中,內(nèi)存映射I/O(Memory-Mapped I/O, MMIO)是一種將硬件寄存器映射到處理器地址空間的技術(shù),允許開(kāi)發(fā)者通過(guò)指針直接讀寫(xiě)寄存器,實(shí)現(xiàn)高效、低延遲的硬件控制。本文通過(guò)C語(yǔ)言實(shí)戰(zhàn)案例...

關(guān)鍵字: 內(nèi)存映射 I/O操作 嵌入式系統(tǒng)

在嵌入式系統(tǒng)開(kāi)發(fā)和多線程編程中,程序崩潰、內(nèi)存越界等復(fù)雜問(wèn)題常令開(kāi)發(fā)者困擾。GDB作為強(qiáng)大的調(diào)試工具,其條件斷點(diǎn)和內(nèi)存查看功能可精準(zhǔn)定位隱蔽缺陷。本文通過(guò)實(shí)際案例演示這些高級(jí)功能的應(yīng)用,幫助開(kāi)發(fā)者提升調(diào)試效率。

關(guān)鍵字: GDB 嵌入式系統(tǒng)
關(guān)閉