計(jì)算機(jī)時(shí)間基本由網(wǎng)絡(luò)時(shí)間或主板時(shí)鐘芯片提供,導(dǎo)致時(shí)間誤差大,在工業(yè)控制、數(shù)據(jù)測(cè)量等領(lǐng)域無(wú)法完成特定任務(wù)。為解決計(jì)算機(jī)時(shí)間誤差較大問(wèn)題,部分人員提出win系統(tǒng)下pci總線接口的GPS授時(shí)卡。這種方法的不足在于:數(shù)據(jù)吞吐量、帶寬的限制使得pci總線逐漸被pcie總線授時(shí)卡所取代,且GPS授時(shí)方式以及美國(guó)微軟win系統(tǒng)無(wú)法在國(guó)家安全敏感部門(mén)使用。針對(duì)上述不足,基于國(guó)產(chǎn)linuk系統(tǒng)平臺(tái),設(shè)計(jì)了PCIE總線接口的授時(shí)卡,驅(qū)動(dòng)程序以及基本應(yīng)用軟件。
一、發(fā)展歷程
隨著嵌入式技術(shù)的飛速發(fā)展,嵌入式系統(tǒng)在對(duì)大數(shù)據(jù)量交互方面提出更高需求的同時(shí)還對(duì)總線傳輸速率以及數(shù)據(jù)完整性等方面提出了越來(lái)越高的要求。雖然過(guò)去的十幾年中PCI總線在嵌入式領(lǐng)域得到了廣泛的應(yīng)用,但由于PCI總線的并行特性,整體設(shè)計(jì)難度大,故主流的技術(shù)已經(jīng)成為系統(tǒng)整體性能提升的瓶頸。因此,串行 PCIExpress(PCIe)總線標(biāo)準(zhǔn)憑借其高速串行傳送特性以及能夠支持更高的傳輸頻率、無(wú)需共享總線帶寬等優(yōu)勢(shì),經(jīng)推出就得到了迅速的發(fā)展,并開(kāi)始逐步取代PCI總線。
二、通訊協(xié)議
PCIe總線串行傳輸?shù)奶匦允峭ㄟ^(guò)報(bào)文的形式進(jìn)行傳輸,每個(gè)數(shù)據(jù)報(bào)文在PCIe 的事務(wù)層被封裝成一個(gè)或者多個(gè)TLP數(shù)據(jù)包,PCIe設(shè)備之間則通過(guò)這些數(shù)據(jù)包進(jìn)行數(shù)據(jù)通信。由于TLP的數(shù)據(jù)包中包含TLP前綴、TLP頭以及TLP摘要等信息,因此,當(dāng)設(shè)備在進(jìn)行單次數(shù)據(jù)傳輸( 每個(gè)報(bào)文數(shù)據(jù)負(fù)載長(zhǎng)度為1)時(shí)PCIe總線的性能優(yōu)勢(shì)并不明顯,其傳輸速度甚至還不如PCI總線。為了得到更高的傳輸效率,在使用 PCIe總線進(jìn)行數(shù)據(jù)傳輸時(shí)往往需要使用 DMA 的傳輸方式。
PCIe總線技術(shù)是取代PCI的第三代I/O技術(shù),也稱(chēng)為3GIO。PCIe總線是為將來(lái)的計(jì)算機(jī)和通訊平臺(tái)定義的一種高性能、通用I/O互連總線,在其物理實(shí)現(xiàn)上使用了高速差分的方式來(lái)實(shí)現(xiàn)數(shù)據(jù)傳輸,與此同時(shí),其端到端的連接方式使得每條PCIe鏈路中只能連接兩個(gè)設(shè)備,因此相比于PCI所有設(shè)備共享總線帶寬來(lái)說(shuō),PCIe總線具有獨(dú)享傳輸通道數(shù)據(jù)帶寬的特性與PCI總線相比,PCIe總線主要有下面的技術(shù)優(yōu)勢(shì):
1) 是串行總線,進(jìn)行點(diǎn)對(duì)點(diǎn)傳輸,每個(gè)傳輸通道
獨(dú)享帶寬;
2)支持雙向傳輸模式和數(shù)據(jù)分通道傳輸模式,支持 x1,x4,x8,x16等模式,x1單向傳輸帶寬可達(dá)到250MByte/s,雙向傳輸帶寬更能夠達(dá)到500 MByte/s;
3)充分利用***的點(diǎn)到點(diǎn)互連、基于交換的技術(shù)和基于包的協(xié)議來(lái)實(shí)現(xiàn)新的總線性能和特征;
4)對(duì)PCI總線具有良好的繼承性,可以保持軟件的繼承和可靠性;
5)充分利用***的點(diǎn)到點(diǎn)互連,降低了系統(tǒng)硬件平臺(tái)設(shè)計(jì)的復(fù)雜性和難度,從而大大降低了系統(tǒng)的開(kāi)發(fā)制造設(shè)計(jì)成本,極大地提高系統(tǒng)的性價(jià)比和魯棒性。
總線技術(shù)的發(fā)展的同時(shí)對(duì)時(shí)間同步裝置也提出了更高的要求,新一代的 PCI Express總線,雖具有速度快、實(shí)時(shí)性好、可控性佳等優(yōu)點(diǎn),但其協(xié)議的復(fù)雜給***帶來(lái)了難度。北斗/GPS 雙模授時(shí)方法,結(jié)合***的接口芯片來(lái)驅(qū)動(dòng)PCIExpress 總線,利用具有低功耗、實(shí)時(shí)性強(qiáng)等性能的數(shù)字可編程器件(FPGA)來(lái)進(jìn)行電路設(shè)計(jì),使得時(shí)間同步裝置與PC機(jī)之間信息交換變得簡(jiǎn)單易用。
三、舉例說(shuō)明HJ5447-PTP-BIN PCIe時(shí)鐘卡是一款通過(guò)總線控制,為計(jì)算機(jī)、工控機(jī)等操作系統(tǒng)提供高精度硬件時(shí)鐘的同步卡。該時(shí)鐘同步卡采用流水線自動(dòng)化貼片生產(chǎn),使用FPGA+ARM框架設(shè)計(jì),接收GPS/北斗/PTP/交直流IRIG-B碼等外部參考信號(hào),輸出各種時(shí)間頻率信號(hào),提高系統(tǒng)的時(shí)間精度和準(zhǔn)確度,滿足不同用戶需求。該時(shí)鐘同步卡內(nèi)置高精度守時(shí)時(shí)鐘源,當(dāng)外部參考無(wú)效時(shí)仍然可以提供高精度授時(shí)服務(wù)。并配套提供Win校時(shí)管理軟件和各種操作系統(tǒng)的API驅(qū)動(dòng),完全實(shí)現(xiàn)高精度應(yīng)用程序授時(shí),具有兼容性強(qiáng),接口豐富、精度高、穩(wěn)定性好、功能強(qiáng)、無(wú)積累誤差、不受地域氣候等環(huán)境條件限制、性價(jià)比高、操作簡(jiǎn)單、免維護(hù)等特點(diǎn)。
3.1產(chǎn)品功能
(1)支持PCIE總線授時(shí),時(shí)間精度優(yōu)于10us;
(2)內(nèi)置高精度授時(shí)型GPS/BD雙模接收機(jī);
(3)外參考失鎖后依靠?jī)?nèi)置高精度時(shí)鐘守時(shí);
(4)支持即插即用(Plug and Play);
(5)輸出秒脈沖(PPS)時(shí)標(biāo)同步脈沖信號(hào);
(6)Windows/Linux 32位/64位驅(qū)動(dòng),提供API函數(shù)接口;
(7)提供windows上位機(jī)校時(shí)軟件,對(duì)計(jì)算機(jī)進(jìn)行自動(dòng)校時(shí);
(8)可在PCIe總線上提供多種中斷信號(hào);
(9)PCIe總線提供時(shí)間信息,GPS、BD衛(wèi)星顆數(shù),板卡同步狀態(tài)等信息;
(10)輸出1PPS和串口TOD(NEMA0183中GPRMC語(yǔ)句,帶經(jīng)緯度定位信息);
3.2產(chǎn)品
特點(diǎn)
(1)高精密,全自動(dòng),無(wú)人值守,免維護(hù);
(2)對(duì)主要電路部分采用金屬外殼屏蔽,抗干擾能力強(qiáng);
(3)功耗小,可靠性高,可長(zhǎng)期連續(xù)穩(wěn)定工作;
(4)安裝簡(jiǎn)便:該產(chǎn)品可直接插入計(jì)算機(jī)(或工控機(jī))的PCIe擴(kuò)展槽。
四、應(yīng)用程序與驅(qū)動(dòng)程序應(yīng)用程序與驅(qū)動(dòng)程序設(shè)計(jì)是系統(tǒng)開(kāi)發(fā)過(guò)程中重要的軟件環(huán)節(jié),軟件是基于 Win系統(tǒng)開(kāi)發(fā)的,為了降低開(kāi)發(fā)難度,設(shè)計(jì)中使用 WDM 進(jìn)行 PCIE 驅(qū)動(dòng)功能的開(kāi)發(fā),應(yīng)用層程序的開(kāi)發(fā)則使用了 VC++6.0。主要包括了設(shè)備操作、設(shè)備信息、I/O端口讀寫(xiě)、北斗/GPS/守時(shí)時(shí)間以及IRIG-B碼解碼時(shí)間顯示五個(gè)部分組成。 設(shè)備操作組要包含打開(kāi)、關(guān)閉、退出設(shè)備三個(gè)部分組成;設(shè)備信息組要包含了驅(qū)動(dòng)版本號(hào)、DLL版本號(hào)、設(shè)備號(hào)、中斷號(hào)及 I/O 基址,這些都是在上電初始化后在打開(kāi)設(shè)備開(kāi)啟的時(shí)候在授時(shí)卡驅(qū)動(dòng)程序里面進(jìn)行自動(dòng)讀取的,并且PCIE 的配置空間信息VendorID、De-vice ID、Revision ID 等信息也是在設(shè)備開(kāi)啟的時(shí)候自行讀取的,用于端口應(yīng)用。使用 FPGA 來(lái)設(shè)計(jì)基于PCIe 總線的數(shù)據(jù)傳輸,可以省去專(zhuān)用的PCIe接口芯片,降低硬件的設(shè)計(jì)成本,提高硬件集成度的同時(shí)還能利用FPGA的可編程特性提高設(shè)計(jì)的靈活性與適應(yīng)性。與此同時(shí),目前很多FPGA 內(nèi)都嵌入了PCIe的硬核,此硬核支持PCIe傳輸?shù)膯巫肿x寫(xiě)操作以及DMA讀寫(xiě)操作作,由于PCIe具有一定的協(xié)議,其單字傳輸效率達(dá)不到要求,因此,本文在PCIe單字傳輸?shù)幕A(chǔ)上提出了一種基于PCIe接口的DMA傳輸?shù)脑O(shè)計(jì)方案,此方案可以穩(wěn)定快速地實(shí)現(xiàn)PCIe總線的DMA傳輸。經(jīng)測(cè)試,DMA傳輸方案在傳輸帶寬方面滿足設(shè)計(jì)要求。
咨詢電話:
掃一掃咨詢微信客服