亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于PCI-E總線的北斗導(dǎo)航授時(shí)卡Linux驅(qū)動(dòng)設(shè)計(jì)

        2016-10-31 08:43:44杜博軍
        關(guān)鍵詞:測(cè)試軟件中斷命令

        王 軍,韓 力,杜博軍,王 磊,何 昕

        (1.蘇州科技學(xué)院,江蘇 蘇州 215009; 2.中國(guó)白城兵器實(shí)驗(yàn)中心,吉林 白城 137001;3.中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,長(zhǎng)春 130033)

        ?

        基于PCI-E總線的北斗導(dǎo)航授時(shí)卡Linux驅(qū)動(dòng)設(shè)計(jì)

        王軍1,3,韓力1,杜博軍2,王磊1,何昕3

        (1.蘇州科技學(xué)院,江蘇 蘇州215009; 2.中國(guó)白城兵器實(shí)驗(yàn)中心,吉林 白城137001;3.中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,長(zhǎng)春130033)

        為提高Linux系統(tǒng)時(shí)間的精確度,設(shè)計(jì)了PCI-Express接口的北斗授時(shí)卡以及驅(qū)動(dòng)程序;授時(shí)卡通過(guò)北斗衛(wèi)星導(dǎo)航信息接收模塊接收時(shí)間定位信息并輸出至FPGA(Field-Programmable Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列),F(xiàn)PGA利用狀態(tài)機(jī)檢測(cè)出時(shí)間位置信息,并存入IP核創(chuàng)建的虛擬雙口RAM中;當(dāng)PCI-E驅(qū)動(dòng)芯片接收到讀取當(dāng)前時(shí)間命令時(shí),將虛擬雙口RAM中時(shí)間數(shù)據(jù)傳輸至PCI-E總線供上位機(jī)讀?。粚?shí)驗(yàn)編寫(xiě)了Linux系統(tǒng)設(shè)備驅(qū)動(dòng)程序,包括驅(qū)動(dòng)的編譯、加載,利用圖形界面開(kāi)發(fā)工具GTK+編寫(xiě)授時(shí)測(cè)試軟件;打開(kāi)授時(shí)測(cè)試軟件,通過(guò)指令使能授時(shí)卡PCI-E驅(qū)動(dòng)芯片硬件中斷,檢測(cè)到FPGA輸出的中斷信號(hào),測(cè)試軟件進(jìn)去中斷服務(wù)程序讀取PCI-E總線上的時(shí)間信息,并在目標(biāo)欄中顯示;試驗(yàn)結(jié)果證明:在Ubuntu Kylin系統(tǒng)平臺(tái)下授時(shí)測(cè)試軟件運(yùn)行穩(wěn)定、界面簡(jiǎn)潔,且授時(shí)精度達(dá)到100納秒。

        Linux;PCI-Express;授時(shí);FPGA

        0 引言

        計(jì)算機(jī)時(shí)間基本由網(wǎng)絡(luò)時(shí)間或主板時(shí)鐘芯片提供,導(dǎo)致時(shí)間誤差大,在工業(yè)控制、數(shù)據(jù)測(cè)量等領(lǐng)域無(wú)法完成特定任務(wù)。為解決計(jì)算機(jī)時(shí)間誤差較大問(wèn)題,部分學(xué)者提出Windows系統(tǒng)下PCI總線接口的GPS授時(shí)卡[1-2]。這種方法的不足在于:數(shù)據(jù)吞吐量、帶寬的限制使得PCI 總線逐漸被PCI-E總線所取代,且GPS授時(shí)方式以及美國(guó)微軟windows系統(tǒng)無(wú)法在國(guó)家安全敏感部門(mén)使用。針對(duì)上述不足,基于國(guó)產(chǎn)Linux系統(tǒng)平臺(tái),設(shè)計(jì)了PCI-E總線接口的北斗授時(shí)卡、驅(qū)動(dòng)程序以及基本應(yīng)用軟件。

        1 PCI-Express授時(shí)卡硬件設(shè)計(jì)

        1.1授時(shí)卡總體設(shè)計(jì)

        授時(shí)卡總體設(shè)計(jì)了3個(gè)模塊:北斗衛(wèi)星解碼、可編程邏輯器件以及PCI-E驅(qū)動(dòng),總體設(shè)計(jì)如圖1所示。北斗衛(wèi)星解碼模塊通過(guò)天線接收北斗衛(wèi)星授時(shí)信號(hào),可編程邏輯器件通過(guò)串行通訊模塊接收GPRMC格式碼流,并解出GPRMC碼中的時(shí)間定位信息。PCI-E驅(qū)動(dòng)模塊在接收到計(jì)算機(jī)的命令后讀取雙口RAM中時(shí)間信息,并傳輸?shù)絇CI-E總線上供計(jì)算機(jī)應(yīng)用層軟件獲取[3-5]。

        圖1 授時(shí)卡總體設(shè)計(jì)

        1.2授時(shí)卡硬件設(shè)計(jì)

        可編程邏輯器件FPGA采用Altera公司Cyclone IV系列中的EP4CE22E22C8N,該芯片具有144個(gè)IO端口、36個(gè)RAM塊、2個(gè)PLL鎖相環(huán)、18個(gè)嵌入式乘法器、4種配置方式和AS、JTAG下載調(diào)試接口。北斗衛(wèi)星解碼模塊采用和芯星通 UM220-III 為主芯片,授時(shí)精度可高達(dá)15納秒,與FPGA采用串口通信且有多種波特率可供選擇,只要保證有一顆衛(wèi)星連接正常,芯片就能輸出準(zhǔn)確的時(shí)間信息。PCI-E驅(qū)動(dòng)芯片采用PLX股份有限公司研發(fā)的PEX8114,支持輸入輸出端口地址映射和ROM的擴(kuò)展,支持硬件和軟件中斷,簡(jiǎn)化了授時(shí)卡硬件程序開(kāi)發(fā)過(guò)程。授時(shí)卡部分硬件連接圖如圖2所示。

        圖2 授時(shí)卡部分硬件連接圖

        2 授時(shí)卡Linux系統(tǒng)驅(qū)動(dòng)設(shè)計(jì)

        2.1授時(shí)卡初始化設(shè)計(jì)

        首先通過(guò)模塊初始化函數(shù)對(duì)PCI-E授時(shí)卡進(jìn)行初始化,在系統(tǒng)內(nèi)核中注冊(cè)pcie_driver數(shù)據(jù)結(jié)構(gòu)體,結(jié)構(gòu)體包括PCI-E驅(qū)動(dòng)模塊名稱、授時(shí)卡驅(qū)動(dòng)號(hào)等信息,然后通過(guò)probe( )函數(shù)使能PCI-E授時(shí)卡,調(diào)用系統(tǒng)函數(shù)對(duì)配置寄存器設(shè)置。然后讀取PCI-E配置信息獲取授時(shí)卡的內(nèi)存基址,調(diào)用ioremap完成配置信息的映射。接著通過(guò)request_region()完成I/O資源的申請(qǐng),request_irq()完成中斷的申請(qǐng)。最后注冊(cè)字符設(shè)備,通過(guò)file_operations實(shí)現(xiàn)應(yīng)用程序?qū)CI-E授時(shí)卡的控制[5]。授時(shí)卡驅(qū)動(dòng)初始化流程如圖3所示。

        圖3 授時(shí)卡驅(qū)動(dòng)初始化流程圖

        2.2釋放授時(shí)卡模塊

        通過(guò)module_exit()函數(shù)釋放授時(shí)卡模塊,主要包括端口釋放、關(guān)閉授時(shí)卡設(shè)備、消除設(shè)備號(hào)和字符設(shè)備的注銷。授時(shí)卡模塊釋放流程如圖4所示。

        3 授時(shí)卡測(cè)試軟件設(shè)計(jì)

        應(yīng)用層測(cè)試軟件采用C語(yǔ)言編寫(xiě),利用GTK+函數(shù)庫(kù)編寫(xiě)圖形交互界面[7-8]。 首先初始化GTK+函數(shù),創(chuàng)建引導(dǎo)窗口,此窗口列出所有PCI-E的設(shè)備編號(hào)。輸入北斗授時(shí)卡設(shè)備號(hào)進(jìn)入主窗口,此窗口顯示授時(shí)卡的基本信息,同時(shí)檢測(cè)窗口“中斷打開(kāi)”按鈕事件。當(dāng)事件發(fā)生,使能外部硬件中斷,進(jìn)入中斷服務(wù)程序進(jìn)行時(shí)間信息的讀取并顯示。授時(shí)卡測(cè)試軟件總體流程如圖5所示。

        圖4 釋放授時(shí)卡流程圖 圖5 授時(shí)卡測(cè)試軟件總體流程圖

        3.1窗口模塊軟件設(shè)計(jì)

        窗口作為用戶直接操作對(duì)象,首先通過(guò)gtk_window_new()函數(shù)新建PCI-E設(shè)備列表窗口,利用窗口設(shè)置函數(shù)對(duì)窗口大小、位置等參數(shù)進(jìn)行設(shè)置。完成后窗口建立后,通過(guò)PCI-E驅(qū)動(dòng)函數(shù)打開(kāi)PCI-E設(shè)備獲取授時(shí)卡設(shè)備號(hào),并在窗口文本框中顯示。通過(guò)gtk_button_new_with_label函數(shù)新建進(jìn)入時(shí)間顯示界面按鈕控件,當(dāng)檢測(cè)到按鍵的點(diǎn)擊事件,則會(huì)通過(guò)g_signal_connect()函數(shù)調(diào)用回調(diào)函數(shù)進(jìn)入授時(shí)卡時(shí)間顯示界面,否則一直在gtk_main()函數(shù)循環(huán)等待控件觸發(fā)事件,流程如圖6所示。

        3.2中斷模塊軟件設(shè)計(jì)

        進(jìn)入時(shí)間顯示界面后,通過(guò)“中斷打開(kāi)”按鈕調(diào)用中斷打開(kāi)程序,將授時(shí)卡PCI-E驅(qū)動(dòng)芯片設(shè)置為外部硬件中斷,當(dāng)檢測(cè)到FPGA的中斷后,進(jìn)入中斷子程序。中斷子程序包括對(duì)存放時(shí)間存儲(chǔ)器的讀取,將讀取的時(shí)間信息轉(zhuǎn)化為可顯示字符串在時(shí)間文本欄顯示,流程如圖7所示。

        圖6 窗口模塊軟件設(shè)計(jì)流程圖 圖7 中斷模塊軟件設(shè)計(jì)流程圖

        4 測(cè)試結(jié)果

        實(shí)驗(yàn)計(jì)算機(jī)采用華碩主板,操作系統(tǒng)為Ubuntu Kylin 15.04,內(nèi)核版本Linux 3.19.0。打開(kāi)終端,使用su -命令獲取超級(jí)用戶權(quán)限,然后使用cd命令進(jìn)入授時(shí)卡驅(qū)動(dòng)文件夾下使用make命令編譯,驅(qū)動(dòng)編譯命令如圖8所示。

        圖8 驅(qū)動(dòng)編譯命令圖

        在沒(méi)有錯(cuò)誤的情況下,文件夾下會(huì)產(chǎn)生多個(gè)文件,使用insmod命令將驅(qū)動(dòng)模塊動(dòng)態(tài)加載到內(nèi)核中,驅(qū)動(dòng)加載命令如圖9所示,并且通過(guò)lsmod檢測(cè)授時(shí)卡驅(qū)動(dòng)是否加載到系統(tǒng)內(nèi)核中,驅(qū)動(dòng)模塊顯示命令如圖10所示。

        圖9 驅(qū)動(dòng)加載命令圖

        圖10 驅(qū)動(dòng)模塊顯示命令圖

        當(dāng)看到PCIE授時(shí)卡的驅(qū)動(dòng)在列表中,進(jìn)入應(yīng)用軟件文件夾下對(duì)軟件程序進(jìn)行編譯,編譯命令如圖11所示。

        圖11 應(yīng)用軟件編譯命令圖

        編譯沒(méi)有錯(cuò)誤后,可以使用./DEMO_GUI_GTK運(yùn)行可執(zhí)行文件,也可以直接雙擊可執(zhí)行性文件打開(kāi),此時(shí)顯示圖12應(yīng)用測(cè)試軟件的主界面。從主界面中能夠查詢硬件商和設(shè)備編碼,以及I/O和寄存器基址。點(diǎn)擊“打開(kāi)”按鈕打開(kāi)授時(shí)卡中斷,狀態(tài)欄顯示on狀態(tài)表示設(shè)備中斷打開(kāi),點(diǎn)擊“顯示”按鈕就能顯示標(biāo)準(zhǔn)北京時(shí)間。

        圖12 授時(shí)卡應(yīng)用軟件主界面

        使用Tektronix公司的TDS-2014C示波器檢測(cè)北斗衛(wèi)星標(biāo)準(zhǔn)秒頭與授時(shí)卡授時(shí)秒頭誤差50納秒,波形如圖13所示。

        圖13 授時(shí)秒頭與標(biāo)準(zhǔn)秒頭波形圖

        5 結(jié)論

        Linux系統(tǒng)下設(shè)計(jì)的北斗PCI-E授時(shí)卡克服了GPS授時(shí)安全問(wèn)題,擁有授時(shí)精度高、兼容性好等優(yōu)點(diǎn)。采用C語(yǔ)言和GTK+函數(shù)庫(kù)編寫(xiě)授時(shí)卡的驅(qū)動(dòng)和應(yīng)用軟件,通過(guò)了GCC編譯,運(yùn)行穩(wěn)定,代碼在Linux系統(tǒng)下有很高的移植性,也為其他PCIE設(shè)備在國(guó)家安全部門(mén)Linux系統(tǒng)下運(yùn)行提供了一種方法。

        [1] 劉軍良,胡永輝,候雷.基于PCI總線的GPS授時(shí)卡設(shè)計(jì) [J].電子測(cè)量與儀器學(xué)報(bào),2008(s2):122-127.

        [2] 趙志雄,李孝輝,劉婭,等.PCI總線的高精度大量程時(shí)間間隔計(jì)數(shù)器研制[J].電子測(cè)量與儀器學(xué)報(bào),2014,28(12):1317-1323.

        [3] 楊會(huì)玲,唐彬.基于PCI-E的北斗/GPS雙模授時(shí)系統(tǒng)設(shè)計(jì)[J].蘇州科技學(xué)院學(xué)報(bào)(工程技術(shù)版),2014,27(1):68-69.

        [4] 鞠康.基于FPGA的PCI-E數(shù)據(jù)采集電路設(shè)計(jì)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2014.

        [5] 劉娟,田澤,黎小玉.PCI-E接口驅(qū)動(dòng)軟件設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)技術(shù)與發(fā)展,2012,22(8):53-55,59.

        [6] 李鵬飛. Linux內(nèi)核編譯機(jī)制分析以及優(yōu)化研究[D].西安:西安電子科技大學(xué),2014.

        [7] 顏廷芝,袁東風(fēng),江銘炎,等.基于嵌入式Linux終端的在線流媒體服務(wù)系統(tǒng)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(2):171-173,197.

        [8] 劉立才,康維新,王海生,等.基于GTK+/GNOME的視頻監(jiān)控系統(tǒng)客戶端軟件設(shè)計(jì)[J].電視技術(shù),2012,36(23):146-150.

        Design and Implementation of Driver of Beidou Navigation Timing Card under Linux PCI-E

        Wang Jun1,3,Han Li1,Du Bojun2,Wang Lei1,He Xin3

        (1.Suzhou University of Science and Technology,Suzhou215009,China;2.Bai Cheng Ordnance Test Center of China,Baicheng137001,China; 3.Changchun Institute of Optics,Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun130033,China)

        To improve the time accuracy of Linux system,a Beidou timing card driver under PCI-Express interface is designed. Timing card transmits time and location information to the FPGA (Field-Programmable Gate Array) by Beidou satellite navigation receiver module. FPGA decodes time and location information by using state machine,and creates a virtual double port RAM to store data by using IP core. When the PCI-E driver chip receives a command to read the current time,time data will be read from virtual dual-port RAM and transmit to PCI-E bus for the host computer. It programs timing card drivers for Linux including the driver compilation and loading,uses GTK+ graphical interface development tools to programming test software. Opening software and sending command to enable PCI-E driver chip hardware interrupt,when an interrupt signal output from the FPGA is found,the software runs interrupt service process will be tested and the time information on the PCI-E bus will be read and displayed in the column. Test results show that: software is stable and the interface is simple,and the timing error is 100 ns under Ubuntu Kylin system platform.

        Linux; PCI-Express; timing; FPGA

        1671-4598(2016)04-0115-03DOI:10.16526/j.cnki.11-4762/tp.2016.04.034

        TP31

        A

        2015-10-12;

        2015-11-14。

        王軍(1979-),男,江蘇徐州人,副教授,碩士研究生導(dǎo)師,主要從事光電測(cè)控技術(shù)與儀器方向研究。

        猜你喜歡
        測(cè)試軟件中斷命令
        只聽(tīng)主人的命令
        網(wǎng)絡(luò)自適應(yīng)測(cè)試軟件運(yùn)行方法設(shè)計(jì)
        移防命令下達(dá)后
        自動(dòng)化檢測(cè)EPU10A板卡系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        這是人民的命令
        遠(yuǎn)程開(kāi)放教育學(xué)生自主學(xué)習(xí)能力評(píng)價(jià)的研究
        一款重型包裝抗壓系統(tǒng)控制軟件的設(shè)計(jì)與開(kāi)發(fā)
        軟件工程(2014年7期)2014-09-24 20:03:26
        藍(lán)色命令
        91极品尤物在线观看播放| 久久一区二区三区久久久| 日本三级吃奶头添泬| 中文字幕日韩欧美一区二区三区 | 国99久9在线 | 免费| 亚洲av无码xxx麻豆艾秋| 亚洲成a人片在线观看无码| 91麻豆国产香蕉久久精品| 久久亚洲精品成人AV无码网址| 四虎在线中文字幕一区| 夜夜高潮夜夜爽免费观看| 国产亚洲aⅴ在线电影| 无码区a∨视频体验区30秒| 黄又色又污又爽又高潮动态图| 亚洲一区二区三区av链接| 少妇av免费在线播放| 男人一插就想射的原因| 97一期涩涩97片久久久久久久| 亚洲一线二线三线写真| 欧美日韩在线观看免费| 日韩精品一区二区av在线| 亚洲中文中文字幕乱码| 午夜被窝精品国产亚洲av香蕉| 女人喷潮完整视频| 人妻在卧室被老板疯狂进入国产| 午夜av内射一区二区三区红桃视| 日韩精品中文字幕一区二区| 女局长白白嫩嫩大屁股| 蜜臀aⅴ国产精品久久久国产老师 国产精品久久婷婷六月丁香 | 亚洲人成无码网站久久99热国产| 日本一区二区视频免费观看| 国产午夜视频一区二区三区| 亚洲人成欧美中文字幕| 好大好硬好爽免费视频| 亚洲伊人久久综合精品| 国产毛片视频一区二区三区在线| 日本大肚子孕妇交xxx| 国产午夜精品久久久久免费视| 欧美午夜精品久久久久久浪潮| 色婷婷一区二区三区四| 强开小婷嫩苞又嫩又紧视频|