版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要本文提出使用USB總線來 通訊速率普遍較低,不能將測(cè)量數(shù)據(jù)及時(shí)傳送到上位機(jī)進(jìn)行分析處理,通訊接口已成為整個(gè)系統(tǒng)性能提高的一個(gè)瓶頸,因此有必要使用一種傳輸速率、時(shí)延、穩(wěn)定性均能滿實(shí)時(shí)相量數(shù)據(jù)的傳輸。在USB接口的實(shí)口芯片進(jìn)行連接,用戶必須編寫相應(yīng)的驅(qū)動(dòng)程序?qū)?shù)據(jù)轉(zhuǎn)化為符合USB系統(tǒng)協(xié)議的格式線所呈現(xiàn)的結(jié)構(gòu)。④客戶軟件與設(shè)備功能接口的關(guān)系。 :①控制傳輸:主要用于主機(jī)把命令傳給設(shè)備以及設(shè)備把狀態(tài)返回給主機(jī)。②中斷傳輸:用來支持那些偶然需要少量數(shù)據(jù)通信,但服務(wù)時(shí)間受限制的設(shè)備。③批量傳輸:用來大量的數(shù)據(jù)而沒有周期和傳輸速率的設(shè)備上。批量傳輸方式并不能保證傳輸?shù)乃俾?,以保證傳輸?shù)目煽啃?,?dāng)出現(xiàn)錯(cuò)誤的時(shí)候會(huì)要求發(fā)送方重發(fā)。④同步傳輸:以一個(gè)恒速率進(jìn)行傳輸。同步傳輸?shù)姆绞降陌l(fā)送和接收方都必須保證傳輸速率的匹配,不然會(huì)數(shù)據(jù)的丟失。2.2USB器件簡(jiǎn)介及應(yīng)用實(shí)現(xiàn)USB傳輸?shù)姆椒ㄖ饕惺褂媒涌谵D(zhuǎn)換芯片式和傳輸速度上與RS232接口完全相同。后者則可以實(shí)現(xiàn)真正的USB傳輸,使用器件的硬件管理功能,及對(duì)協(xié)議發(fā)出的各種請(qǐng)求作出響應(yīng)。而上位機(jī)驅(qū)動(dòng)程序需完據(jù)及一些相關(guān)信息傳送到PC進(jìn)行處理。傳輸?shù)臄?shù)據(jù)包括:①電壓值(每周期采樣64 上位機(jī)在接收到這些信息后將會(huì)對(duì)其進(jìn)行描點(diǎn),故障錄波,遠(yuǎn)程傳 類似的,而具體的代碼,由于使用的系統(tǒng)環(huán)境不同,存在較大差異,下面就詳細(xì)臺(tái)任務(wù)直到完成,然后返回到主循環(huán)檢查循環(huán)緩沖區(qū)內(nèi)是否有新的數(shù)據(jù),并開始其臺(tái)任務(wù)。無論是上傳或者下載數(shù)據(jù)都是對(duì)循環(huán)緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)行處理,主循環(huán)只循環(huán)緩沖區(qū)內(nèi)是否有要處理的新數(shù)據(jù)。程序整體結(jié)構(gòu)框圖如圖1所示。各模塊分工如下:變A0引腳的電平就可以完成命令模式/數(shù)據(jù)模式的切換。4.3命令接口成,先發(fā)送一條命令,然后寫該命令的具體參數(shù)。有的命令參數(shù)是多個(gè)字節(jié)的,式命令,此時(shí)就必須調(diào)用兩次寫數(shù)據(jù)線的指令。命令接口程序的編寫格式相對(duì)固 ,而主循環(huán)程序?qū)?shù)據(jù)進(jìn)行處理。當(dāng)中斷服務(wù)程序收集到足夠的數(shù)據(jù)時(shí),它通知主程序已經(jīng)做好準(zhǔn)備等待處理。例如在發(fā)送數(shù)據(jù)包階段建立包時(shí),中斷服務(wù)程序?qū)⒔头?wù)時(shí)間。4.5總線復(fù)位和掛起當(dāng)接收到總線復(fù)位或掛起的請(qǐng)求時(shí),中斷服務(wù)程序?qū)⒖蛇x的數(shù)據(jù)階段,然后結(jié)束于狀態(tài)階段。單片機(jī)需通過選擇控制輸出端點(diǎn)來提內(nèi)容來決定端點(diǎn)是為滿還是為空。如果控制端點(diǎn)是為滿,單片機(jī)將從緩沖區(qū)并將其存入存儲(chǔ)區(qū)。之后,單片機(jī)將從存儲(chǔ)區(qū)使主設(shè)備請(qǐng)求生效。如果是一個(gè) ,單片機(jī)需向控制端點(diǎn)發(fā)送應(yīng)答建立命令,以重新使能下一個(gè)建立階段。接下來單片機(jī)需進(jìn)行數(shù)據(jù)包的發(fā)送。當(dāng)下一個(gè)控制輸入標(biāo)志來到時(shí),單片機(jī)將確定剩余的字節(jié)是否如果已經(jīng)沒有數(shù)據(jù)要發(fā)送,單片機(jī)需要發(fā)送一個(gè)空的包以指示主機(jī)數(shù)據(jù)已經(jīng)發(fā)送完果建立包的為獲得描述符請(qǐng)求,那么建立包中的控制傳輸將指示此包為控制寫類型行完獲得描述符請(qǐng)求過程后,單片機(jī)處于等待數(shù)據(jù)階段。主機(jī)發(fā)送一個(gè)控制輸出的標(biāo)志,收模式,然后單片機(jī)通過檢查選擇控制輸出端點(diǎn)確認(rèn)緩沖區(qū)是否已滿,并將數(shù)據(jù)從內(nèi)讀出。4.6標(biāo)準(zhǔn)請(qǐng)求處理程序標(biāo)準(zhǔn)設(shè)備請(qǐng)求是由US數(shù)據(jù)包的形式傳送到單片機(jī)。當(dāng)單片機(jī)接收到這些標(biāo)準(zhǔn)設(shè)備請(qǐng)求時(shí)就轉(zhuǎn)入相應(yīng)的處。其過程包括:①獲取狀態(tài)。②清除特性。③設(shè)置特性。④設(shè)。⑥設(shè)置配置。⑦獲取配置信息。⑧獲取接口信息。⑨設(shè)置接口用來設(shè)置和報(bào)告一個(gè)端點(diǎn)的同步幀,在同步傳輸中才使用,如果設(shè)備不支持這個(gè)請(qǐng)回停止標(biāo)志。4.7主循環(huán)程序主循環(huán)程序主要功能是設(shè)置單片機(jī)的初始化,以及設(shè)定各個(gè)相關(guān)子程序的入口。由于使用了中斷服務(wù)程序和一系列的命令接口子程序,主程序基本概念主機(jī)驅(qū)動(dòng)程序的功能是將硬件與用戶應(yīng)用程序連接起來。編寫的方法有多種,可以直接與硬件相連接,在應(yīng)用程序中直接讀寫系統(tǒng)應(yīng)將,或者將與硬件換數(shù)據(jù)的底層工作交給操作系統(tǒng)自動(dòng)完成,應(yīng)用程序象讀寫普通文件一樣完成對(duì)硬的操作。前一種方法的代碼開銷少,但是編寫的工作量非常大,移植性也較差。后法需要大量庫(kù)函數(shù)支持,但編寫較為簡(jiǎn)單,且移植性好,甚至只需少許修改就可以統(tǒng)的工作,還是有必要對(duì)主機(jī)驅(qū)動(dòng)程序的工作方式做一個(gè)介紹。從驅(qū)動(dòng)程序的角度出發(fā),每個(gè)設(shè)備都被看成若干個(gè)設(shè)備對(duì)象,這些設(shè)備對(duì)象的來歷各不相同,每個(gè)對(duì)象都有驅(qū)動(dòng)程序與之對(duì)應(yīng)。它們根據(jù)一定的規(guī)則組成設(shè)備對(duì)象堆棧,也就是對(duì)應(yīng)的驅(qū)動(dòng)程序堆棧。處于最底層的是物理設(shè)備對(duì)象,它一般由總線生成,驅(qū)動(dòng)程序到達(dá)這里的時(shí)候,總線只是按照標(biāo)準(zhǔn)作一些動(dòng)作,即可完成對(duì)設(shè)備物理上的操作。一個(gè)設(shè)備只能有一個(gè)物理設(shè)備對(duì)象,但可以有若干個(gè)其它的設(shè)備對(duì)象。功能設(shè)備對(duì)象是由所編寫的驅(qū)動(dòng)程序生成的,它負(fù)責(zé)從邏輯上操作設(shè)備。其它的層次設(shè)備對(duì)象可以處于功能設(shè)備對(duì)象的上面或下面,它由另一些驅(qū)動(dòng)程序或者其它的系統(tǒng)組件生成,可以記錄一些設(shè)備信息,但層次設(shè)備對(duì)象不是必須的慮控制設(shè)備本身即可。5.2即插即用設(shè)備狀態(tài)及它們之間的轉(zhuǎn)換USB接口設(shè)備顯著特點(diǎn)就是接入或者拔出時(shí)不需要關(guān)閉主機(jī)和重新啟動(dòng)系統(tǒng),而是可以在系統(tǒng)運(yùn)行時(shí)直判別是否有設(shè)備存在的。當(dāng)然,還必須有相應(yīng)的驅(qū)動(dòng)程序來完成對(duì)此功能的支持。下面就將簡(jiǎn)要描述一個(gè)設(shè)備完成即插即用的過程。用戶將設(shè)備插入計(jì)算機(jī),此時(shí)設(shè)備還沒有被系統(tǒng)檢測(cè)到。要開始對(duì)設(shè)備進(jìn)行軟件配置,必須由即插即用管理器以及總線驅(qū)動(dòng)對(duì)設(shè)備進(jìn)行枚舉。即插即用管理器,有時(shí)還可能要在用戶模式下的組件工作,檢測(cè)出設(shè)備的驅(qū)動(dòng)程序,包括功能驅(qū)動(dòng)程序以及其它的層次驅(qū)動(dòng)程序。如果此時(shí)驅(qū)動(dòng)程序尚未調(diào)入,則即插即用管理器調(diào)用設(shè)備插入例程。驅(qū)動(dòng)程序完成初始化之后,接著必須對(duì)設(shè)備進(jìn)行初始即插即用管理器調(diào)用驅(qū)動(dòng)程序中添加設(shè)備的例程來初始化該驅(qū)動(dòng)程序控制的每個(gè)設(shè)備。當(dāng)一個(gè)驅(qū)動(dòng)程序從即插即用管理器中收到開始設(shè)備的請(qǐng)求時(shí),驅(qū)動(dòng)程序使設(shè)備啟動(dòng)并且做好處理這個(gè)請(qǐng)求使系統(tǒng)的損失盡可能降低。硬件卸載時(shí),調(diào)用相應(yīng)的卸載請(qǐng)求,使得該設(shè)備在軟件上也不可用。如果不對(duì)意外卸載進(jìn)行處理,就有可能造成硬件在物理意義上已不存在,但在系統(tǒng)邏輯中依然存在,造成系統(tǒng)訪問該設(shè)備的時(shí)候出現(xiàn)錯(cuò)誤,嚴(yán)重的情況可能會(huì)造成處理器進(jìn)入死循環(huán)。當(dāng)在軟件意義上對(duì)設(shè)備進(jìn)行停止時(shí),需要等其它請(qǐng)求都操作完畢后才能進(jìn)行。5.3驅(qū)動(dòng)程序結(jié)構(gòu)USB驅(qū)動(dòng)程序從結(jié)構(gòu)上可以分成兩大部分,驅(qū)入口以及處理各個(gè)事件的例程。驅(qū)動(dòng)程序入口是由系統(tǒng)定義的一組常數(shù),該部分主要完成兩件工作:一件是將注冊(cè)表項(xiàng)復(fù)制到一個(gè)全局變量中;另一件是給不同的設(shè)備事件指示處理例程。剩下的工作就是按照這些設(shè)備事件編寫各自的例程。這些設(shè)備事件主要包括下面幾個(gè)部分:(1)打開文件:當(dāng)用戶以打開文件的名義打開設(shè)備準(zhǔn)備系統(tǒng)。(3)即插即用處理:處理即插即用相關(guān)的事件,該部分例程包括許子程序,具體功能見第2節(jié)。(4芯片緩沖區(qū)內(nèi)的信息返回主機(jī)。(5)處理寫操作:當(dāng)用戶寫文件時(shí),調(diào)用以包的形式發(fā)送到接口芯片。(6)設(shè)備操作:該部分例程完成對(duì)設(shè)備硬件設(shè)備的各項(xiàng)控制任務(wù)。(7)驅(qū)動(dòng)程序初始化:當(dāng)?shù)谝淮伟惭b硬件時(shí)調(diào)用該字符串所占用的內(nèi)存,將資源歸還系統(tǒng)。(9)電源管理:所有里發(fā)出,它發(fā)出的請(qǐng)求可以是指定一種新的電源狀態(tài),或者查詢更改一種狀態(tài)是否此部分無作用,所有下位機(jī)設(shè)備都是自供電形式的,設(shè)備處于長(zhǎng)時(shí)工作狀態(tài)。5. 一樣。這是在添加設(shè)備中申請(qǐng)了一個(gè)符號(hào)鏈接,并在啟動(dòng)設(shè)備例程中將此鏈接激活處理大量的對(duì)時(shí)間要求不緊迫的數(shù)據(jù)。底層協(xié)議保證了無差錯(cuò)的傳輸,但不保證傳。(3)中斷型:中斷型傳輸對(duì)服務(wù)時(shí)間有較強(qiáng)的限制,但一次為一些需要實(shí)時(shí)相應(yīng)的消息。(4)同步型:同步傳輸可以保證會(huì)有一定的出錯(cuò)概率。對(duì)USB接口的讀寫是按照與數(shù)據(jù)文件讀寫相同的方式進(jìn)行的,第一步要打開文件,即打開設(shè)備。當(dāng)用戶以打開文件的名義打開設(shè)備時(shí),首先要檢的狀態(tài),看設(shè)備是否處于工作狀態(tài),設(shè)備的接口信息是否已經(jīng)準(zhǔn)備好。接著檢查從只是設(shè)備本身;不為0時(shí)說明打開的是某個(gè)所不同的是,單片機(jī)使用的接口芯片將數(shù)據(jù)放入硬件緩沖區(qū)內(nèi),而上位機(jī)的驅(qū)動(dòng)程構(gòu)建一個(gè)虛擬的緩沖區(qū)來完成相同的工作。當(dāng)要發(fā)送的數(shù)據(jù)大于緩沖區(qū)的容量時(shí),同單片機(jī)的情況一樣,也要對(duì)數(shù)據(jù)進(jìn)行分割。當(dāng)數(shù)據(jù)發(fā)送完畢之后,例程返回一個(gè)發(fā)送成功志。5.5USB上位機(jī)應(yīng)用程序設(shè)計(jì)簡(jiǎn)介編寫好驅(qū)動(dòng)程序以后,要在應(yīng)用程立功單片機(jī)發(fā)展有限公司開發(fā)的稱為eas驅(qū)動(dòng)程序編寫是一項(xiàng)繁瑣的工作,由于硬件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度社區(qū)保安服務(wù)合同終止與社區(qū)安全培訓(xùn)及考核協(xié)議
- 二零二五年度城市綠化工程專項(xiàng)派遣員工服務(wù)合同
- 2025年度專業(yè)運(yùn)動(dòng)隊(duì)食堂工作人員聘用與營(yíng)養(yǎng)補(bǔ)給服務(wù)合同
- 2025年度稻谷品牌授權(quán)與市場(chǎng)推廣合同
- 2025年度水電施工設(shè)備租賃及勞務(wù)服務(wù)合同
- 餐廳點(diǎn)餐課程設(shè)計(jì)
- 通信課程設(shè)計(jì)華農(nóng)
- 編程自動(dòng)消毒器課程設(shè)計(jì)
- 自然節(jié)氣課程設(shè)計(jì)圖
- 武術(shù)課課程設(shè)計(jì)
- 阿里巴巴集團(tuán)swot分析通用課件
- 2024年國(guó)華人壽保險(xiǎn)股份有限公司招聘筆試參考題庫(kù)含答案解析
- 胸痛中心護(hù)理相關(guān)知識(shí)培訓(xùn)
- 園林景觀工程施工組織設(shè)計(jì)-投標(biāo)書范本
- 護(hù)理倫理學(xué)(第二版)高職PPT完整全套教學(xué)課件
- GB/T 25919.1-2010Modbus測(cè)試規(guī)范第1部分:Modbus串行鏈路一致性測(cè)試規(guī)范
- GB/T 22484-2008城市公共汽電車客運(yùn)服務(wù)
- GB/T 14040-2007預(yù)應(yīng)力混凝土空心板
- 帶狀皰疹護(hù)理查房課件整理
- 奧氏體型不銹鋼-敏化處理
- 交通信號(hào)控制系統(tǒng)檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
評(píng)論
0/150
提交評(píng)論