基于PCIE/104總線的高速數(shù)據(jù)接口設(shè)計(jì)
摘要:PC/104作為一種工業(yè)嵌入式的總線標(biāo)準(zhǔn),由于其小尺寸結(jié)構(gòu)、低功耗,以及軟件通用性而被廣泛用于航空航天、工業(yè)控制等領(lǐng)域。這里主要介紹了下一代總線技術(shù)PCIE總線在PC/104標(biāo)準(zhǔn)下的應(yīng)用。闡述了數(shù)據(jù)接口卡的系統(tǒng)組成和各單元的功能,以及驅(qū)動(dòng)在linux操作系統(tǒng)下的實(shí)現(xiàn)原理。自行設(shè)計(jì)并實(shí)現(xiàn)了板卡原理圖和PCB,同時(shí)簡(jiǎn)述了高速PCB仿真方面的知識(shí),并針對(duì)PCIE差分線進(jìn)行了版級(jí)仿真。最后利用PLX公司提供的開(kāi)發(fā)套件在Linux操作系統(tǒng)下完成了板卡驅(qū)動(dòng)的開(kāi)發(fā)和調(diào)試。
關(guān)鍵詞:PCIe總線;PC/104;嵌入式;PCB仿真
0 引言
PCIE總線是由Intel公司提出用來(lái)取代現(xiàn)行PCI總線的下一代總線技術(shù),被公認(rèn)為未來(lái)總線的發(fā)展方向,目前已經(jīng)成功應(yīng)用在了商業(yè)機(jī)上。相對(duì)于目前流行的PCI總線,它具有如下特點(diǎn):
采用了串行點(diǎn)對(duì)點(diǎn)模式,數(shù)據(jù)總線從并行走回向串行無(wú)疑是一個(gè)趨勢(shì),如現(xiàn)在流行的SATA總線、PCIE總線和rapidIO總線都是串行總線?,F(xiàn)在串行總線在速度上的優(yōu)勢(shì)可以說(shuō)是毋庸置疑的。PCIE總線在每個(gè)方向上都有X1,X2,X4,X8,X16或X32個(gè)信號(hào)對(duì),用戶可根據(jù)不同的需求采用不同的配置。同時(shí)串行信號(hào)還具有管教更少,便于調(diào)試的優(yōu)點(diǎn)。
PCIE采用了基于數(shù)據(jù)包的協(xié)議來(lái)編碼事物,而不是PCI體系結(jié)構(gòu)的總線周期。數(shù)據(jù)包被串行發(fā)送和接受,并被字節(jié)拆分來(lái)通過(guò)物理鏈路。鏈路上實(shí)現(xiàn)的通道越多,數(shù)據(jù)包發(fā)送的數(shù)據(jù)越快,鏈路的帶寬也越寬。同時(shí)PCIE還定義了各種類型的數(shù)據(jù)包,如存儲(chǔ)器讀/寫(xiě)請(qǐng)求、I/O讀/寫(xiě)請(qǐng)求、配置讀/寫(xiě)請(qǐng)求、消息請(qǐng)求和完成數(shù)據(jù)包等。
PC/104標(biāo)準(zhǔn)是一種嵌入式的總線標(biāo)準(zhǔn),具有功耗低,尺寸小,堆棧式結(jié)構(gòu)的特點(diǎn)。隨著目前各種應(yīng)用數(shù)據(jù)傳輸量的增大,現(xiàn)行的PCI總線在帶寬方面已經(jīng)略顯疲態(tài),而新近瑞士邏輯提出的PC/104 Express標(biāo)準(zhǔn),使得PCIE總線技術(shù)被成功地應(yīng)用在了PC/104標(biāo)準(zhǔn)的板卡上。本文采用了PLX公司的PEX8311橋接芯片,完成了PCIE到局部總線接口的轉(zhuǎn)換,應(yīng)用PLX公司提供的開(kāi)發(fā)工具在Linux操作系統(tǒng)下實(shí)現(xiàn)了板卡的驅(qū)動(dòng)應(yīng)用。在軟硬件兩方面進(jìn)行了設(shè)計(jì),完成了PCIE/104板卡的功能,升級(jí)了系統(tǒng)的總線。
1 PCIE/104高速信號(hào)接口卡的系統(tǒng)
PCIE/104高速信號(hào)接口卡的系統(tǒng)設(shè)計(jì)方案如圖1所示。
外部傳感器采集到的數(shù)據(jù)通過(guò)LVDS,RS 422等電平方式,以固定的不同串口波特率傳到FPGA內(nèi)部集成的各自對(duì)應(yīng)的雙口RAM中。當(dāng)寫(xiě)入了固定字節(jié)后,設(shè)定標(biāo)志位stage為1,同時(shí)發(fā)出中斷信號(hào)LINT#給PEX8311。PEX8311產(chǎn)生了assert_INT1信息,并通過(guò)PCIE接口發(fā)給上位機(jī)。上位機(jī)保存好現(xiàn)在的任務(wù)后,通過(guò)PCIE開(kāi)始發(fā)出存儲(chǔ)器讀命令給PEX8311。PEX8311獲得命令后,向FPGA發(fā)出本地總線申請(qǐng)信號(hào),F(xiàn)PGA作為本地端的控制器將本地總線控制權(quán)交給PEX8311。PEX8311開(kāi)始讀數(shù)據(jù),首先要進(jìn)行的是讀取標(biāo)志位,在讀取了標(biāo)志位后,上位機(jī)就知道是哪幾路串口信號(hào)需要讀入。然后,把標(biāo)志位清掉,這樣相當(dāng)于清掉了中斷信號(hào)。接著,中斷服務(wù)程序在進(jìn)入到各個(gè)串口的RAM中,來(lái)讀取相應(yīng)的數(shù)據(jù)。在多路串口信號(hào)傳輸過(guò)來(lái)時(shí),針對(duì)該系統(tǒng),采用的是優(yōu)先滿足高速串口的原則,也就是采用高速串口的標(biāo)志位作為中斷信號(hào),每次產(chǎn)生中斷后查詢其他標(biāo)志位。數(shù)據(jù)到上位機(jī)后待處理。該系統(tǒng)目前實(shí)現(xiàn)的是兩路串口,而多路串口原理相同。
評(píng)論