国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于USB接口1553B總線設(shè)備檢測(cè)系統(tǒng)設(shè)計(jì)

發(fā)布時(shí)間:2010-11-4 21:07    發(fā)布者:techshare
關(guān)鍵詞: 1553B , USB , 檢測(cè) , 接口 , 總線設(shè)備
1 引言

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

本文介紹的1553B設(shè)備檢測(cè)系統(tǒng)就是基于USB接口的。設(shè)計(jì)包含兩大部分:硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)主要實(shí)現(xiàn)1553B接口到USB接口的轉(zhuǎn)換;軟件設(shè)計(jì)主要是USB芯片固件開發(fā)、USB接口驅(qū)動(dòng)、開發(fā)計(jì)算機(jī)測(cè)試1553B設(shè)備軟件。

2 硬件系統(tǒng)設(shè)計(jì)

本系統(tǒng)的硬件設(shè)計(jì)工作主要集中在1553B與USB總線接口的轉(zhuǎn)換設(shè)計(jì)。硬件系統(tǒng)分成三部分:1553B接口轉(zhuǎn)換電路FPGA譯碼電路和USB接口電路。如圖1所示。





圖1 硬件組成電路

2.1 1553B接口轉(zhuǎn)換電路

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

2.2 FPGA譯碼電路

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

2.3 USB接口電路

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

PDIUSBD12芯片是帶有并行總線和局部DMA傳輸能力的全速USB接口器件。片內(nèi)集成了高性能USB接口器件、SIE、FIFO存儲(chǔ)器、收發(fā)器以及電壓調(diào)整器等,可與任何外部微控制器/微處理器實(shí)現(xiàn)高速并行接口(2MB/s),完全能匹配1553B總線最高傳輸速率(1MB/s)。USB 實(shí)現(xiàn)模塊的核心是PIDUSB12。外置控制器AT89C52的P0口接PIDUSBD12的DATA0~DATA7,用來傳輸要交換的數(shù)據(jù)。P0 口所有引腳都要外接上拉電阻。PIDUSBD12的片選信號(hào)和復(fù)位信號(hào)由AT89C52的P1.6與P1.7提供。AT89C52 的P3.6與P3.7作為PIDUSBD12的寫讀控制端,AT89C52和PIDUSBD12的ALE相連,PIDUSBD12的掛起狀態(tài)和中斷控制都接高電平。 PIDUSB12的D+和D-加上+5V電源|穩(wěn)壓器和地就構(gòu)成了USB接口,從而能與計(jì)算機(jī)相連。PDIUSBD12與USB的連接通過1.5K上拉電阻將D+置為高實(shí)現(xiàn),默認(rèn)狀態(tài)不與Vcc相連,可用SoftConnect技術(shù)通過AT89C52發(fā)送專門的命令來實(shí)現(xiàn)該連接,允許AT89C52在決定與USB建立連接之前完成初始化時(shí)序,USB總線連接可以重新初始化而不需要撥出電纜。隨后USB設(shè)備識(shí)別和通信就要依靠固件程序和驅(qū)動(dòng)程序了。

3 軟件設(shè)計(jì)

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

3.1 USB固件設(shè)計(jì)

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


 
圖2 固件框架流程圖

在本設(shè)計(jì)中,功能子程序主要包括兩部分:

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

2) 通過P0端口接收PC數(shù)據(jù),重新打包,通過AT89C52的P0端口從FPGA寫入1553B設(shè)備。

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

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

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

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

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

3.3 通信程序

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





 圖3 測(cè)試軟件主流程圖

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

4 結(jié)論

1553B總線是當(dāng)前飛機(jī)系統(tǒng)中廣泛應(yīng)用的總線類型,將它與USB總線融合起來具十分重要的實(shí)際意義。在開發(fā)過程中,利用DriveStudio與DDK配合進(jìn)行開發(fā)USB驅(qū)動(dòng)程序,大大提高了開發(fā)的效率。本設(shè)計(jì)在實(shí)際設(shè)備測(cè)試中,板卡可以穩(wěn)定工作,測(cè)試軟件工作正常,滿足項(xiàng)目設(shè)計(jì)要求。
本文地址:http://www.qingdxww.cn/thread-36495-1-1.html     【打印本頁(yè)】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 無線充電基礎(chǔ)知識(shí)及應(yīng)用培訓(xùn)教程2
  • PIC18-Q71系列MCU概述
  • 了解一下Microchip強(qiáng)大的PIC18-Q24 MCU系列
  • 想要避免發(fā)生災(zāi)難,就用MPLAB® SiC電源仿真器!
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产日本韩国不卡在线视频 | 欧美videos另类极品 | 欧美日韩亚洲综合在线一区二区 | 精品亚洲欧美高清不卡高清 | 欧美二区三区 | 日韩一区二区三区四区五区 | 伊伊人成亚洲综合人网香 | 国产精品天天看特色大片不卡 | 欧美3p在线观看一区二区三区 | 天天操天| 国内精品久久久久久久久 | 成人影院app| 日韩视频在线免费 | 亚洲清色 | 亚洲香蕉久久 | 日韩一区二区不卡中文字幕 | 青青草原免费在线视频 | 色综合67194| 国产资源精品一区二区免费 | 在线精品视频成人网 | 欧美一级做性受 | 亚洲精品视频免费看 | 日韩不卡视频在线观看 | 致命弯道8在线观看高清免费观看 | 欧美日韩乱 | 久久综合精品国产一区二区三区 | 亚洲国产三级在线观看 | 99视频精品全国免费 | 99精品在线免费观看 | 久久精品国产精品青草app | 老司机精品福利视频 | 久久中文字幕亚洲精品最新 | 69视频在线是免费观看 | 黄色毛片一级片 | 两·个人hd视频 | 在线精品日韩一区二区三区 | 欧美日韩一区二区三区久久 | 国产一区二区精品在线观看 | 亚洲欧美中文日韩在线v日本 | 精品国产高清a毛片 | 四虎影院毛片 |