<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于USB接口1553B總線(xiàn)設備檢測系統設計

基于USB接口1553B總線(xiàn)設備檢測系統設計

作者: 時(shí)間:2017-05-19 來(lái)源:網(wǎng)絡(luò ) 收藏

  引言

本文引用地址:http://dyxdggzs.com/article/201705/359429.htm

  MIL-STD-軍用總線(xiàn)標準,在軍事裝備,特別是飛機系統中得到了廣泛的應用,艦載系統中也正在逐步推廣。對于總線(xiàn)傳輸信息的飛機系統,特別是由該總線(xiàn)網(wǎng)絡(luò )構成的綜合航火控系統、通信系統而言,系統時(shí)實(shí)監測與在線(xiàn)故障診斷均建立在信息錄取的前提下。為了方便錄取總線(xiàn)上傳輸的信息就需要應用1553B總線(xiàn)到計算機標準接口轉換器,目前常用轉換器有1553B-PCI、1553B-VXI等,但在工程實(shí)踐過(guò)程中,它們存在體積大、價(jià)格高、使用不方便等缺陷。相比而言,接口具有體積小、攜帶方便、熱插拔等特征,具有不可替代的優(yōu)勢。

  本文介紹的1553B設備檢測系統就是基于接口的。設計包含兩大部分:硬件設計和軟件設計。硬件設計主要實(shí)現1553B接口到接口的轉換;軟件設計主要是USB芯片固件開(kāi)發(fā)、USB接口驅動(dòng)、開(kāi)發(fā)計算機測試1553B設備軟件。

  2 硬件系統設計

  本系統的硬件設計工作主要集中在1553B與USB總線(xiàn)接口的轉換設計。硬件系統分成三部分:1553B接口轉換電路、FPGA譯碼電路和USB接口電路。

  2.1 1553B接口轉換電路

  目前,1553B接口芯片種類(lèi)繁多,根據工程應用場(chǎng)合和實(shí)際需要,我們選用DDC公司BU-61580芯片。BU-61580芯片除了具有遠程終端(RT)功能外,還可以用作總線(xiàn)控制器(BC)、總線(xiàn)監控器(MT)。其內部功能極強,接口靈活、便于控制,有各種封裝形式和供電電壓供用戶(hù)選擇。

  2.2 FPGA譯碼電路

  FPGA作為現場(chǎng)可編程器件越來(lái)越廣泛地應用到工程設計中。利用FPGA對系統中信號進(jìn)行譯碼可避免由于開(kāi)始硬件電路設計考慮不周造成的硬件設計錯誤,而且方便系統的以后的升級。本系統中,FPGA通過(guò)1553B接口芯片讀取1553B總線(xiàn)上的數據并暫存在FPGA內部RAM中,然后通知USB接口芯片把數據讀出;同時(shí),還要通過(guò)USB接口接收從PC下發(fā)的數據,重新打包,發(fā)送到1553B設備。

  2.3 USB接口電路

  USB接口控制芯片包含兩大類(lèi):一類(lèi)是需要外置控制器的芯片,還有一類(lèi)為內置控制器,如Cypress公司的CY7C64613芯片。本系統選用PHILIP公司的PDIUSBD12芯片,需外置控制器的芯片。

  PDIUSBD12芯片是帶有并行總線(xiàn)和局部DMA傳輸能力的全速USB接口器件。片內集成了高性能USB接口器件、SIE、FIFO存儲器、收發(fā)器以及電壓調整器等,可與任何外部微控制器/微處理器實(shí)現高速并行接口(2MB/s),完全能匹配1553B總線(xiàn)最高傳輸速率(1MB/s)[1]。USB 實(shí)現模塊的核心是PIDUSB12。外置控制器AT89C52的P0口接PIDUSBD12的DATA0~DATA7,用來(lái)傳輸要交換的數據。P0 口所有引腳都要外接上拉電阻。PIDUSBD12的片選信號和復位信號由AT89C52的P1.6與P1.7提供。AT89C52 的P3.6與P3.7作為PIDUSBD12的寫(xiě)讀控制端,AT89C52和PIDUSBD12的ALE相連,PIDUSBD12的掛起狀態(tài)和中斷控制都接高電平。 PIDUSB12的D+和D-加上+5V電源和地就構成了USB接口,從而能與計算機相連。

  PDIUSBD12與USB的連接通過(guò)1.5K上拉電阻將D+置為高實(shí)現,默認狀態(tài)不與Vcc相連,可用SoftConnect技術(shù)通過(guò)AT89C52發(fā)送專(zhuān)門(mén)的命令來(lái)實(shí)現該連接,允許AT89C52在決定與USB建立連接之前完成初始化時(shí)序,USB總線(xiàn)連接可以重新初始化而不需要撥出電纜[2]。隨后USB設備識別和通信就要依靠固件程序和驅動(dòng)程序了。

  3 軟件設計

  1553B設備測試軟件首先要實(shí)現USB接口與PC之間的通信,然后,再對設備進(jìn)行性能檢測。因此,需要對USB芯片進(jìn)行固件、PC驅動(dòng)程序和測試程序設計。

  3.1 USB固件設計

  AT89C52中的固化程序可采用C51 設計,主要功能是:控制PDIUSBDl2接受USB驅動(dòng)程序的請求;控制PDIUSBDl2接受應用程序的控制指令;通過(guò)PDIUSBDl2存儲數據并實(shí)時(shí)上傳PC機。PDIUSBDl2的固件設計成完全的中斷驅動(dòng),當CPU處理前臺任務(wù)時(shí)USB的傳輸可在后臺進(jìn)行,確保了最佳的傳輸速率和更好的軟件結構,簡(jiǎn)化了編程和調試。單片機通過(guò)PDIUSBDl2與主機通信的過(guò)程簡(jiǎn)述如下::當PDIUSBDl2接收到主機發(fā)來(lái)的令牌包后就給單片機發(fā)中斷,單片機進(jìn)入中斷服務(wù)程序。它將數據從PDIUSBD12的內部FIFO取回到CPU存儲器并根據中斷寄存器判斷USB令牌包的類(lèi)型從而建立正確的事件標志以通知主循環(huán)程序進(jìn)行處理,主循環(huán)檢查事件標志并進(jìn)入對應的子程序進(jìn)行進(jìn)一步的處理,固件程序流程如圖2所示。系統上電后,先檢測PDIUSBD12,如檢測不成功則報錯,要使用者重插USB接口,再次檢測。檢測成功則根據PDIUSBD12的中斷類(lèi)型設定中斷標志位的值,再根據中斷位的值調用相應的功能子程序[3]。

  在本設計中,功能子程序主要包括兩部分:

  1)通過(guò)AT89C52的P0端口從FPGA接收1553B設備數據,重新打包,再經(jīng)過(guò)P0端口寫(xiě)入PC機;

  2) 通過(guò)P0端口接收PC數據,重新打包,通過(guò)AT89C52的P0端口從FPGA寫(xiě)入1553B設備。

  3.2 驅動(dòng)程序

  完成驅動(dòng)程序設計的方法一般有三種:基于DDK開(kāi)發(fā)、基于Windrive開(kāi)發(fā)和基于DriveStudio開(kāi)發(fā)。由于Windrive和DriveStudio開(kāi)發(fā)對DDK中的函數進(jìn)行了一定程度的封裝,它們開(kāi)發(fā)的難度比直接用DDK開(kāi)發(fā)要小,但開(kāi)發(fā)的靈活性不如DDK。本設計使用的驅動(dòng)是DriveStudio與DDK配合進(jìn)行開(kāi)發(fā),開(kāi)發(fā)驅動(dòng)程序的效率較高。

  在驅動(dòng)程序開(kāi)發(fā)平臺搭建成功后,我們利用驅動(dòng)程序生成向導Driver Wizard,根據硬件設置生成USB設備驅動(dòng)程序的大體框架。設置如下:①選擇 WDM的驅動(dòng)程序類(lèi)型和Windows 2000運行平臺。②選擇 USB總線(xiàn)類(lèi)型,填寫(xiě)它的VID(供應商ID)和PID(設備ID),這些信息由芯片的供應商提供。③增加端點(diǎn) 1和端點(diǎn)2,它們分別具有IN 和OUT屬性。④根據需要選擇對設備的操作有:Read、Write、Device Control和CleanUp。⑤選擇給端點(diǎn)2產(chǎn)生 BULK Read和Write的代碼, 向導會(huì )自動(dòng)產(chǎn)生一套對端點(diǎn)2進(jìn)行讀、寫(xiě)的代碼。⑥設置驅動(dòng)程序的屬性,采用WDM接口;在選取讀寫(xiě)方式時(shí)應遵循一條原則:需要快速傳送大量數據時(shí),用 Direct I/O,反之用 Buffer I/O,本設計數據量不大,故選用Buffer I/O;由于無(wú)特殊的電源需求,故選用系統默認的Manage Power For This Device。⑦增加IOCTL接口,在其生成的代碼框架中加入自己的操作,以實(shí)現一個(gè)完整的USB 設備驅動(dòng)程序。最后就生成了一個(gè) WDM 型的 USB 設備驅動(dòng)程序框架和一個(gè)測試該驅動(dòng)程序的測試程序大體框架。然后在其中添加需要的功能代碼。

  通過(guò)DriveStudio初步建立一個(gè)驅動(dòng)程序框架后,我們只要修改TESTFIRMDevice.h和TESTFIRMDevice.cpp就可以了,修改完畢后,可以發(fā)現使用DriveStudio向導生成的USB設備驅動(dòng)程序,不僅不需要對底層的硬件進(jìn)行編程,甚至可以忽略與硬件控制緊密相關(guān)的復雜的Windows數據結構(如,URB、IPR)、API函數(DriveEntry()、IoCreateDevice()、AddDevice())的使用。

  用DriveWizard創(chuàng )建USB框架程序自動(dòng)生成的兩個(gè)工程(Project)文件:TESTFIRM驅動(dòng)程序工程和Test_TESTFIRM應用程序工程,將光標定位在其中一個(gè)工程上之后,單擊右鍵,選擇“set as Acnve Pmiect”即可設置該工程為當前活動(dòng)工程。對于驅動(dòng)程序編譯,不用進(jìn)行任何設置,單擊Build圖標即可生成USB驅動(dòng)程序TESTFIRM.sys文件。

  3.3 通信程序

  因為DriveStudio已經(jīng)替我們把核心驅動(dòng)程序基本開(kāi)發(fā)完了,在本設計中,只要掌握WriteFile和ReadFile兩個(gè)函數的使用就可以進(jìn)行簡(jiǎn)單的USB通信了。由于DriveStudio所用的類(lèi)庫是對DDK函數一定程度的封裝,必須在 VB、VC++等軟件開(kāi)發(fā)環(huán)境中編譯,創(chuàng )建自己的庫文件,所以很容易為程序增加了圖形界面,使用戶(hù)操作更加方便。

  當USB設備與PC通信時(shí),USB設備是從設備,PC是主設備。PC機通過(guò)檢測USB總線(xiàn)數據端電平判斷是否接入或拔出USB設備。PC檢測到USB設備后,調用USB設備函數。如果設備被正確打開(kāi),軟件開(kāi)啟監聽(tīng)USB設備線(xiàn)程,以20ms周期輪詢(xún)USB接收數據接口。一旦接收到數據,數據就被分析并且回顯到界面上,直到線(xiàn)程被中斷。

  4 結論

  1553B總線(xiàn)是當前飛機系統中廣泛應用的總線(xiàn)類(lèi)型,將它與USB總線(xiàn)融合起來(lái)具十分重要的實(shí)際意義。在開(kāi)發(fā)過(guò)程中,利用DriveStudio與DDK配合進(jìn)行開(kāi)發(fā)USB驅動(dòng)程序,大大提高了開(kāi)發(fā)的效率。本設計在實(shí)際設備測試中,板卡可以穩定工作,測試軟件工作正常,滿(mǎn)足項目設計要求。

  本文作者創(chuàng )新點(diǎn):利用PDIUSBDl2外置CPU控制數據的讀入和寫(xiě)出,開(kāi)發(fā)USB驅動(dòng)程序,結合FPGA完成系統時(shí)序控制,是對1553B-USB轉換器設計一種有益的探索。



關(guān)鍵詞: USB 1553B

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>