版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、USB總線在同步相量測量單元中的應(yīng)用摘要本文提出使用usb總線來進(jìn)展下位機(jī)與上位機(jī)之間的數(shù)據(jù)通訊,以滿足同步相量測量單元對數(shù)據(jù)傳輸高速率、低延時(shí)和高可靠性的要求。這里主要解決的是usb接口驅(qū)動(dòng)程序的問題,通過編寫上位機(jī)與下位機(jī)的硬件驅(qū)動(dòng)程序,實(shí)現(xiàn)利用usb接口進(jìn)展atage128與上位微機(jī)之間數(shù)據(jù)傳輸?shù)墓ぷ?。關(guān)鍵詞usb總線;同步相量測量單元;數(shù)據(jù)通訊;通訊接口1引言同步相量測量單元(pu)測量裝置與上位計(jì)算機(jī)之間的通訊速率普遍較低,不能將測量數(shù)據(jù)及時(shí)傳送到上位機(jī)進(jìn)展分析處理,通訊接口已成為整個(gè)系統(tǒng)性能進(jìn)步的一個(gè)瓶頸,因此有必要使用一種傳輸速率、時(shí)延、穩(wěn)定性均能滿足同步相量測量數(shù)據(jù)傳輸?shù)耐ㄓ媒?/p>
2、口。采用usb接口作為上位機(jī)與下位機(jī)的通訊接口方式可以解決這些問題。利用usb接口中斷傳輸速率大,時(shí)延小,過失率極低的特點(diǎn)來完成實(shí)時(shí)相量數(shù)據(jù)的傳輸。在usb接口的實(shí)際應(yīng)用中,驅(qū)動(dòng)程序的開發(fā)是最為困難的局部,由于usb接口誕生較晚,目前尚未成為多數(shù)單片微機(jī)的標(biāo)準(zhǔn)設(shè)備,還需要使用專門的接口芯片進(jìn)展連接,用戶必須編寫相應(yīng)的驅(qū)動(dòng)程序?qū)?shù)據(jù)轉(zhuǎn)化為符合usb系統(tǒng)協(xié)議的格式進(jìn)展傳輸。本文表達(dá)了atage128單片機(jī)使用pdiusbd12接口芯片完成usb接口數(shù)據(jù)通訊的過程。通過驅(qū)動(dòng)程序完成對相關(guān)硬件設(shè)備的操作。該驅(qū)動(dòng)程序完成usb接口的中斷傳輸功能,用戶調(diào)用通用命令就可以像使用一個(gè)普通的存儲(chǔ)器一樣使用usb
3、接口芯片。該接口實(shí)現(xiàn)了各采樣點(diǎn)的低延時(shí)上傳功能,可以在1s內(nèi)完成一個(gè)工頻周期全部采樣值的傳輸。2usb系統(tǒng)及其器件選擇介紹2.1usb體系概述usb(universalserialbus)是一種通用串行總線,為了實(shí)現(xiàn)整個(gè)計(jì)算機(jī)系統(tǒng)中總線的一致性,由paq/intel/irsft和ne等公司共同開發(fā)出的一種新的、快速的、雙向的、同步傳輸?shù)牟⒖梢詿岚尾宓臄?shù)據(jù)傳輸總線,簡稱usb總線。usb總線由以下四個(gè)主要局部構(gòu)成:主機(jī)和設(shè)備:是指usb系統(tǒng)中的主要構(gòu)件。物理構(gòu)成:是指usb元件的連接方法。邏輯構(gòu)成:不同的usb元件所擔(dān)當(dāng)?shù)慕巧拓?zé)任,以及從主機(jī)和設(shè)備的角度出發(fā)usb總線所呈現(xiàn)的構(gòu)造??蛻糗浖c設(shè)
4、備功能接口的關(guān)系。usb總線有四種數(shù)據(jù)傳輸方式:控制傳輸:主要用于主機(jī)把命令傳給設(shè)備以及設(shè)備把狀態(tài)返回給主機(jī)。中斷傳輸:用來支持那些偶爾需要少量數(shù)據(jù)通信,但效勞時(shí)間受限制的設(shè)備。批量傳輸:用來傳輸大量的數(shù)據(jù)而沒有周期和傳輸速率的設(shè)備上。批量傳輸方式并不能保證傳輸?shù)乃俾剩梢员WC傳輸?shù)目煽啃?,?dāng)出現(xiàn)錯(cuò)誤的時(shí)候會(huì)要求發(fā)送方重發(fā)。同步傳輸:以一個(gè)恒定的速率進(jìn)展傳輸。同步傳輸?shù)姆绞降陌l(fā)送和接收方都必須保證傳輸速率的匹配,不然會(huì)造成數(shù)據(jù)的喪失。2.2usb器件簡介及應(yīng)用實(shí)現(xiàn)usb傳輸?shù)姆椒ㄖ饕惺褂媒涌谵D(zhuǎn)換芯片和專用的接口芯片兩種。前者就是將usb接口轉(zhuǎn)換為標(biāo)準(zhǔn)的rs232接口使用,在操作方式和傳輸速
5、度上與rs232接口完全一樣。后者那么可以實(shí)現(xiàn)真正的usb傳輸,使用usb1.1標(biāo)準(zhǔn)的接口芯片如pdiusbd12可以到達(dá)最高12b/s的傳輸速率,使用usb2.0標(biāo)準(zhǔn)的接口芯片如isp1581那么可以到達(dá)480b/s的傳輸速率。假如要使用專用的usb接口芯片就必須編寫相應(yīng)的下位機(jī)與上位機(jī)驅(qū)動(dòng)程序,由于usb傳輸不同于串口傳輸,usb傳輸?shù)姆绞蕉际峭ㄟ^協(xié)議規(guī)定的數(shù)據(jù)包來完成的,所以下位機(jī)的軟件必須實(shí)現(xiàn)對接口器件的硬件管理功能,及對協(xié)議發(fā)出的各種懇求作出響應(yīng)。而上位機(jī)驅(qū)動(dòng)程序需完成對接口芯片的枚舉、地址分配等工作。2.3usb接口在本系統(tǒng)中的作用usb接口在本系統(tǒng)中用來完成下位機(jī)與上位機(jī)的通訊,
6、詳細(xì)就是連接avr單片機(jī)與p,將下位機(jī)采集的數(shù)據(jù)及一些相關(guān)信息傳送到p進(jìn)展處理。傳輸?shù)臄?shù)據(jù)包括:電壓值(每周期采樣64個(gè)點(diǎn),12位數(shù)據(jù))。電流值(每周期采樣64個(gè)點(diǎn),12位數(shù)據(jù))。同步時(shí)間信號(取自gps)。上位機(jī)在接收到這些信息后將會(huì)對其進(jìn)展描點(diǎn),故障錄波,遠(yuǎn)程傳送等處理。12位的電壓電流數(shù)據(jù)都要經(jīng)過變換,成為16位數(shù)據(jù),占一個(gè)字節(jié)。每通道1秒鐘傳輸?shù)臄?shù)據(jù)在6kb以上,多個(gè)通道合計(jì),接口的傳輸速率至少要40kb/s,這一要求已經(jīng)超過rs232接口所能提供的傳輸速率。假如使用an總線進(jìn)展傳輸,那么硬件設(shè)備較為復(fù)雜。綜合比擬后,采用pdiusbd12作為接口芯片進(jìn)展數(shù)據(jù)傳輸是較適宜的選擇。采用塑
7、料極小封裝的pdiusbd12可以很容易安置在電路板上。而且對上位機(jī)的要求也較為寬松,只要有usb接口的計(jì)算機(jī)都可以作為本系統(tǒng)的上位機(jī)。3atage128單片機(jī)3.1atage128單片機(jī)介紹atage128單片機(jī)是由atel公司出品的一款高性能低功耗的8位微型控制器,最高時(shí)鐘頻率可以達(dá)16hz。片內(nèi)集成有容量為128kb的閃存作為程序存儲(chǔ)器,4kb的eepr,以及4kb的片內(nèi)存儲(chǔ)器,最高可支持64kb的片外存儲(chǔ)器。3.2開發(fā)過程簡述tage128的開發(fā)一般是由atel公司提供的免費(fèi)仿真工具avrstudi完成的,與常用的51單片機(jī)略有不同,使用語言進(jìn)展開發(fā)的時(shí)候必須使用第三方編譯器對源代碼進(jìn)
8、展編譯后才能在仿真環(huán)境下運(yùn)行。本次采用的是i作為編譯器,本文所有的單片機(jī)程序都在此環(huán)境下運(yùn)行調(diào)試。usb接口器件采用總線控制方式,數(shù)據(jù)傳輸形式采用中斷傳輸。usb接口器件在使用上與一個(gè)普通的外部存儲(chǔ)器一樣,所有的控制與數(shù)據(jù)傳輸都必須對atage128中相應(yīng)的存放器進(jìn)展讀寫操作才能完成。4usb驅(qū)動(dòng)程序u局部u即設(shè)備方控制器,可以是各類型單片機(jī)或者是p,它們的驅(qū)動(dòng)程序在構(gòu)造上是類似的,而詳細(xì)的代碼,由于使用的系統(tǒng)環(huán)境不同,存在較大差異,下面就詳細(xì)說明以atage128單片機(jī)作為設(shè)備方控制器的usb驅(qū)動(dòng)程序構(gòu)造以及詳細(xì)實(shí)現(xiàn)的代碼。4.1程序整體構(gòu)造對于pu而言,pdiusbd12芯片與一個(gè)外部存儲(chǔ)
9、器完全一樣,pu通過總線控制的方式對pdiusbd12進(jìn)展操作。usb接口的傳輸并不會(huì)占用許多pu資源,pu可以執(zhí)行前臺(tái)操作,而usb接口傳輸?shù)墓ぷ髂敲丛诤笈_(tái)完成,兩者之間通過中斷效勞程序連接。當(dāng)pdiusbd12從usb收到一個(gè)數(shù)據(jù)包,那么就對pu產(chǎn)生一個(gè)中斷懇求,pu立即響應(yīng)中斷。在isr中固件將數(shù)據(jù)包從pdiusbd12內(nèi)部緩沖區(qū)移到循環(huán)數(shù)據(jù)緩沖區(qū),并在隨后清零pdiusbd12的內(nèi)部緩沖區(qū)以使能接收新的數(shù)據(jù)包pu可以繼續(xù)它當(dāng)前的前臺(tái)任務(wù)直到完成,然后返回到主循環(huán)檢查循環(huán)緩沖區(qū)內(nèi)是否有新的數(shù)據(jù),并開場其它的前臺(tái)任務(wù)。無論是上傳或者下載數(shù)據(jù)都是對循環(huán)緩沖區(qū)內(nèi)的數(shù)據(jù)進(jìn)展處理,主循環(huán)只要檢查循
10、環(huán)緩沖區(qū)內(nèi)是否有要處理的新數(shù)據(jù)。程序整體構(gòu)造框圖如圖所示。各模塊分工如下:(1)硬件提取層:對單片機(jī)的i/口、數(shù)據(jù)總線等硬件接口進(jìn)展操作。(2)pdiusbd12命令接口:對pdiusbd12器件進(jìn)展操作的模塊子程序集。(3)中斷效勞程序:當(dāng)pdiusbd12向單片機(jī)發(fā)出中斷懇求時(shí),讀取pdiusbd12的中斷傳輸來的數(shù)據(jù),并進(jìn)展相關(guān)處理。(4)標(biāo)準(zhǔn)懇求處理程序:對usb的標(biāo)準(zhǔn)設(shè)備懇求進(jìn)展處理。(5)廠商懇求處理程序:對用戶添加的廠商懇求進(jìn)展處理。(6)主循環(huán)程序:發(fā)送usb懇求、處理usb總線事件和用戶功能處理等。圖1usb驅(qū)動(dòng)u整體構(gòu)造圖4.2硬件提取層相關(guān)程序硬件提取層執(zhí)行對單片機(jī)i/口
11、、數(shù)據(jù)總線等的操作,包含向pdiusbd12發(fā)送數(shù)據(jù)或命令的子程序及從pdiusbd12讀取數(shù)據(jù)的子程序,該局部代碼需對地址總線和數(shù)據(jù)總線進(jìn)展直接操作。pdiusbd12的任何操作都是由命令指令和數(shù)據(jù)指令組合完成的,通過改變a0引腳的電平就可以完成命令形式/數(shù)據(jù)形式的切換。4.3命令接口該局部是由一系列命令接口子程序構(gòu)成的,包含了所有pdiusbd12給出的訪問功能接口的命令。在命令接口中調(diào)用了硬件提取層中的子程序。pdiusbd12的所有功能都必須由類似的方法完成,先發(fā)送一條命令,然后寫該命令的詳細(xì)參數(shù)。有的命令參數(shù)是多個(gè)字節(jié)的,如設(shè)置形式命令,此時(shí)就必須調(diào)用兩次寫數(shù)據(jù)線的指令。命令接口程序
12、的編寫格式相對固定,按照pdiusbd12說明書中給出的命令匯總表依次編寫即可。4.4中斷效勞程序中斷效勞程序代碼處理由pdiusbd12產(chǎn)生的中斷,它將數(shù)據(jù)從pdiusbd12內(nèi)部的緩沖區(qū)內(nèi)取出,并建立正確的標(biāo)志,通知主循環(huán)進(jìn)展處理。當(dāng)pdiusbd12向單片機(jī)發(fā)出中斷懇求后,單片機(jī)調(diào)用讀取中斷存放器的標(biāo)準(zhǔn)命令接口子程序d12_readinterruptregister()來決定中斷源,然后跳轉(zhuǎn)到相應(yīng)的中斷效勞子程序進(jìn)展處理。中斷效勞程序從pdiusbd12搜集數(shù)據(jù),而主循環(huán)程序?qū)?shù)據(jù)進(jìn)展處理。當(dāng)中斷效勞程序搜集到足夠的數(shù)據(jù)時(shí),它通知主程序已經(jīng)做好準(zhǔn)備等待處理。例如在發(fā)送數(shù)據(jù)包階段建立包時(shí),
13、中斷效勞程序?qū)⒔蛿?shù)據(jù)都存入緩沖區(qū)內(nèi),然后將setup_paket標(biāo)志送到主循環(huán),這樣主循環(huán)就可以節(jié)省不必要的效勞時(shí)間。4.5總線復(fù)位和掛起當(dāng)接收到總線復(fù)位或掛起的懇求時(shí),中斷效勞程序?qū)us_set或suspends標(biāo)志位置位,然后退出??刂苽鬏斂偸怯山㈦A段開場,之后為可選的數(shù)據(jù)階段,然后完畢于狀態(tài)階段。單片機(jī)需通過選擇控制輸出端點(diǎn)來提取建立包的內(nèi)容來決定端點(diǎn)是為滿還是為空。假如控制端點(diǎn)是為滿,單片機(jī)將從緩沖區(qū)內(nèi)讀出內(nèi)容并將其存入存儲(chǔ)區(qū)。之后,單片機(jī)將從存儲(chǔ)區(qū)使主設(shè)備懇求生效。假如是一個(gè)有效的懇求,單片機(jī)需向控制端點(diǎn)發(fā)送應(yīng)答建立命令,以重新使能下一個(gè)建立階段。接下來單片機(jī)需要證實(shí)傳輸是
14、控制讀還是寫,這可以通過建立包重定向的懇求類型位來實(shí)現(xiàn)。建立階段完畢后,主機(jī)就會(huì)執(zhí)行數(shù)據(jù)階段。pdiusbd12等待接收控制輸入包。單片機(jī)首先需要讀取最后處理狀態(tài)存放器清零中斷標(biāo)志位。確認(rèn)pdiusbd12處于傳輸形式后,進(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ā)送完畢。假如建立包的為獲得描繪符懇求,那么建立包中的控制傳輸將指示此包為控制寫類型。在執(zhí)行完獲得描繪符懇求過程后,單片機(jī)處于等待數(shù)據(jù)階段。主機(jī)發(fā)送一個(gè)控制輸出的標(biāo)志,單片機(jī)從pdiusbd12緩沖區(qū)內(nèi)減去數(shù)據(jù)。此時(shí)單片機(jī)確認(rèn)pdiu
15、sbd12是否處于usb接收形式,然后單片機(jī)通過檢查選擇控制輸出端點(diǎn)確認(rèn)緩沖區(qū)是否已滿,并將數(shù)據(jù)從緩沖區(qū)內(nèi)讀出。4.6標(biāo)準(zhǔn)懇求處理程序標(biāo)準(zhǔn)設(shè)備懇求是由usb協(xié)議決定的,由主機(jī)發(fā)出,以數(shù)據(jù)包的形式傳送到單片機(jī)。當(dāng)單片機(jī)接收到這些標(biāo)準(zhǔn)設(shè)備懇求時(shí)就轉(zhuǎn)入相應(yīng)的處理程序。其過程包括:獲取狀態(tài)。去除特性。設(shè)置特性。設(shè)置地址。獲取設(shè)備描繪符。設(shè)置配置。獲取配置信息。獲取接口信息。設(shè)置接口。同步鄭其中同步幀用來設(shè)置和報(bào)告一個(gè)端點(diǎn)的同步幀,在同步傳輸中才使用,假如設(shè)備不支持這個(gè)懇求,返回停頓標(biāo)志。4.7主循環(huán)程序主循環(huán)程序主要功能是設(shè)置單片機(jī)的初始化,以及設(shè)定各個(gè)相關(guān)子程序的入口。由于使用了中斷效勞程序和一系列
16、的命令接口子程序,主循環(huán)程序中涉及usb接口的局部只是設(shè)定相關(guān)的存放器。5usb驅(qū)動(dòng)程序上位機(jī)局部5.1驅(qū)動(dòng)程序根本概念主機(jī)驅(qū)動(dòng)程序的功能是將硬件與用戶應(yīng)用程序連接起來。編寫的方法有多種,可以直接與硬件相連接,在應(yīng)用程序中直接讀寫系統(tǒng)應(yīng)將,或者將與硬件直接交換數(shù)據(jù)的底層工作交給操作系統(tǒng)自動(dòng)完成,應(yīng)用程序象讀寫普通文件一樣完成對硬件設(shè)備的操作。前一種方法的代碼開銷少,但是編寫的工作量非常大,移植性也較差。后一種方法需要大量庫函數(shù)支持,但編寫較為簡單,且移植性好,甚至只需少許修改就可以完成對另一種硬件的支持。在本系統(tǒng)中使用的是由廠商提供的驅(qū)動(dòng)程序,為了充分說明usb系統(tǒng)的工作,還是有必要對主機(jī)驅(qū)動(dòng)
17、程序的工作方式做一個(gè)介紹。從驅(qū)動(dòng)程序的角度出發(fā),每個(gè)設(shè)備都被看成假設(shè)干個(gè)設(shè)備對象,這些設(shè)備對象的來歷各不一樣,每個(gè)對象都有驅(qū)動(dòng)程序與之對應(yīng)。它們根據(jù)一定的規(guī)那么組成設(shè)備對象堆棧,也就是對應(yīng)的驅(qū)動(dòng)程序堆棧。處于最底層的是物理設(shè)備對象,它一般由總線生成,驅(qū)動(dòng)程序到達(dá)這里的時(shí)候,總線只是按照標(biāo)準(zhǔn)作一些動(dòng)作,即可完成對設(shè)備物理上的操作。一個(gè)設(shè)備只能有一個(gè)物理設(shè)備對象,但可以有假設(shè)干個(gè)其它的設(shè)備對象。功能設(shè)備對象是由所編寫的驅(qū)動(dòng)程序生成的,它負(fù)責(zé)從邏輯上操作設(shè)備。其它的層次設(shè)備對象可以處于功能設(shè)備對象的上面或下面,它由另一些驅(qū)動(dòng)程序或者其它的系統(tǒng)組件生成,可以記錄一些設(shè)備信息,但層次設(shè)備對象不是必須的。
18、由于驅(qū)動(dòng)程序的這種層次構(gòu)造,在編寫驅(qū)動(dòng)程序的時(shí)候不必考慮內(nèi)存分配、i端口配置、da申請等。inds將資源申請全部自動(dòng)化,由總線完成,編寫驅(qū)動(dòng)程序時(shí)只要考慮控制設(shè)備本身即可。5.2即插即用設(shè)備狀態(tài)及它們之間的轉(zhuǎn)換usb接口設(shè)備的一個(gè)顯著特點(diǎn)就是接入或者拔出時(shí)不需要關(guān)閉主機(jī)和重新啟動(dòng)系統(tǒng),而是可以在系統(tǒng)運(yùn)行時(shí)直接插入或者拔出。這與usb接口的硬件設(shè)置有關(guān),usb接口是通過檢測接口上拉電阻來判別是否有設(shè)備存在的。當(dāng)然,還必須有相應(yīng)的驅(qū)動(dòng)程序來完成對此功能的支持。下面就將簡要描繪一個(gè)設(shè)備完成即插即用的過程。用戶將設(shè)備插入計(jì)算機(jī),此時(shí)設(shè)備還沒有被系統(tǒng)檢測到。要開場對設(shè)備進(jìn)展軟件配置,必須由即插即用管理器
19、以及總線驅(qū)動(dòng)對設(shè)備進(jìn)展枚舉。即插即用管理器,有時(shí)還可能要在用戶形式下的組件工作,檢測出設(shè)備的驅(qū)動(dòng)程序,包括功能驅(qū)動(dòng)程序以及其它的層次驅(qū)動(dòng)程序。假如此時(shí)驅(qū)動(dòng)程序尚未調(diào)入,那么即插即用管理器調(diào)用設(shè)備插入例程。驅(qū)動(dòng)程序完成初始化之后,接著必須對設(shè)備進(jìn)展初始化。即插即用管理器調(diào)用驅(qū)動(dòng)程序中添加設(shè)備的例程來初始化該驅(qū)動(dòng)程序控制的每個(gè)設(shè)備。當(dāng)一個(gè)驅(qū)動(dòng)程序從即插即用管理器中收到開場設(shè)備的懇求時(shí),驅(qū)動(dòng)程序使設(shè)備啟動(dòng)并且做好處理i操作。在inds2000及更高版本的操作系統(tǒng)中,和停頓有關(guān)的懇求只有在重新分配硬件資源的時(shí)候才會(huì)使用。意外卸載時(shí)是指硬件在物理上被卸載(熱拔出),驅(qū)動(dòng)程序處理這個(gè)懇求使系統(tǒng)的損失盡可能
20、降低。硬件卸載時(shí),調(diào)用相應(yīng)的卸載懇求,使得該設(shè)備在軟件上也不可用。假如不對意外卸載進(jìn)展處理,就有可能造成硬件在物理意義上已不存在,但在系統(tǒng)邏輯中仍然存在,造成系統(tǒng)訪問該設(shè)備的時(shí)候出現(xiàn)錯(cuò)誤,嚴(yán)重的情況可能會(huì)造成處理器進(jìn)入死循環(huán)。當(dāng)在軟件意義上對設(shè)備進(jìn)展停頓時(shí),需要等其它懇求都操作完畢后才能進(jìn)展。5.3驅(qū)動(dòng)程序構(gòu)造usb驅(qū)動(dòng)程序從構(gòu)造上可以分成兩大局部,驅(qū)動(dòng)程序入口以及處理各個(gè)事件的例程。驅(qū)動(dòng)程序入口是由系統(tǒng)定義的一組常數(shù),該局部主要完成兩件工作:一件是將注冊表項(xiàng)復(fù)制到一個(gè)全局變量中;另一件是給不同的設(shè)備事件指示處理例程。剩下的工作就是按照這些設(shè)備事件編寫各自的例程。這些設(shè)備事件主要包括下面幾個(gè)局
21、部:(1)翻開文件:當(dāng)用戶以翻開文件的名義翻開設(shè)備準(zhǔn)備讀寫的時(shí)候,調(diào)用該局部例程進(jìn)展準(zhǔn)備。(2)關(guān)閉文件:當(dāng)用戶關(guān)閉文件(關(guān)閉設(shè)備)的時(shí)候,調(diào)用該例程清掃系統(tǒng)。(3)即插即用途理:處理即插即用相關(guān)的事件,該局部例程包括許多硬件相關(guān)的子程序,詳細(xì)功能見第2節(jié)。(4)處理讀操作:當(dāng)用戶讀取文件時(shí),調(diào)用該例程將接口芯片緩沖區(qū)內(nèi)的信息返回主機(jī)。(5)處理寫操作:當(dāng)用戶寫文件時(shí),調(diào)用該例程將數(shù)據(jù)以包的形式發(fā)送到接口芯片。(6)設(shè)備操作:該局部例程完成對設(shè)備硬件的控制,一般含有i控制碼,這些控制碼在用戶頭文件中定義,該例程根據(jù)不同的i控制碼,完成對設(shè)備的各項(xiàng)控制任務(wù)。(7)驅(qū)動(dòng)程序初始化:當(dāng)?shù)谝淮伟惭b硬件
22、時(shí)調(diào)用該局部例程,創(chuàng)立物理設(shè)備對象。對所涉及的各個(gè)變量進(jìn)展初始化。這局部程序一般操作系統(tǒng)中有自帶。(8)驅(qū)動(dòng)程序的卸載:用于去除硬件在系統(tǒng)中留下的痕跡,釋放全局變量中注冊表途徑字符串所占用的內(nèi)存,將資源歸還系統(tǒng)。(9)電源管理:所有和電源相關(guān)的例程都由這里發(fā)出,它發(fā)出的懇求可以是指定一種新的電源狀態(tài),或者查詢更改一種狀態(tài)是否可靠。此局部對于總線供電的usb設(shè)備較為重要,涉及設(shè)備的掛起和喚醒等操作。在本系統(tǒng)中此局部無作用,所有下位機(jī)設(shè)備都是自供電形式的,設(shè)備處于長時(shí)工作狀態(tài)。5.4usb設(shè)備讀寫usb設(shè)備的讀寫操作是大局部用戶主要關(guān)心的內(nèi)容。由于設(shè)備驅(qū)動(dòng)程序的作用,用戶應(yīng)用程序和usb設(shè)備的讀寫
23、操作變的非常簡單,用戶翻開usb設(shè)備就像翻開文件一樣。這是在添加設(shè)備中申請了一個(gè)符號鏈接,并在啟動(dòng)設(shè)備例程中將此鏈接激活而實(shí)現(xiàn)的。usb中的讀寫操作分為四種:(1)控制型:控制型傳輸主要為對usb本身的配置,前面所描繪的usb配置實(shí)際上都是通過控制傳輸實(shí)現(xiàn)的。(2)批量型:批量型傳輸用來處理大量的對時(shí)間要求不緊迫的數(shù)據(jù)。底層協(xié)議保證了無過失的傳輸,但不保證傳輸時(shí)延。(3)中斷型:中斷型傳輸對效勞時(shí)間有較強(qiáng)的限制,但一次傳輸?shù)臄?shù)據(jù)量不多,主要為一些需要實(shí)時(shí)相應(yīng)的消息。(4)同步型:同步傳輸可以保證傳輸時(shí)延、保證帶寬和保證恒定的數(shù)據(jù)傳輸速率,但是在傳送失敗的情況下。不使用“重試來傳輸數(shù)據(jù),因此可能
24、會(huì)有一定的出錯(cuò)概率。對usb接口的讀寫是按照與數(shù)據(jù)文件讀寫一樣的方式進(jìn)展的,第一步要翻開文件,即翻開設(shè)備。當(dāng)用戶以翻開文件的名義翻開設(shè)備時(shí),首先要檢查設(shè)備的狀態(tài),看設(shè)備是否處于工作狀態(tài),設(shè)備的接口信息是否已經(jīng)準(zhǔn)備好。接著檢查從上面?zhèn)飨聛淼奈募ο蟮暮戏ㄐ?指針不為空)。然后檢查文件名的長度,當(dāng)為0時(shí),說明翻開的只是設(shè)備本身;不為0時(shí)說明翻開的是某個(gè)管道,調(diào)用管道相關(guān)例程,將管道明轉(zhuǎn)換為指向?qū)?yīng)管道綜合信息的指針即可。讀寫usb設(shè)備實(shí)際上是調(diào)用同一個(gè)傳輸例程的,所區(qū)別的是傳輸方向符不同,由于通訊雙方遵守的都是usb協(xié)議,所有的數(shù)據(jù)包的格式都是一致的,所以這沒有什么問題。驅(qū)動(dòng)程序控制的上位機(jī)讀寫過程和單片機(jī)的情況類似,所不同的是,單片機(jī)使用的接口芯片將數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 17715:2025 EN Flour from wheat (Triticum aestivum L.) - Amperometric method for starch damage measurement
- 2025-2030年中國智慧養(yǎng)老服務(wù)行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國汽車后市場行業(yè)開拓第二增長曲線戰(zhàn)略制定與實(shí)施研究報(bào)告
- 2025-2030年中國控制線纜組件行業(yè)資本規(guī)劃與股權(quán)融資戰(zhàn)略制定與實(shí)施研究報(bào)告
- 收看《反腐為人民》心得體會(huì):弘揚(yáng)清風(fēng)正氣筑牢廉潔根基
- 年產(chǎn)xxx新型建材新型墻體材料項(xiàng)目可研報(bào)告模板
- 廣西河池市環(huán)江縣2021-2022學(xué)年五年級上學(xué)期英語期末試卷
- 商品加工知識培訓(xùn)課件
- 學(xué)校消防安全知識培訓(xùn)
- 債券價(jià)格的敏感性第五章
- 2023年長沙市中考數(shù)學(xué)真題試卷及答案
- 《電力設(shè)備消防典型準(zhǔn)則》(DL5027-2022)
- 米吳科學(xué)漫畫奇妙萬象篇
- 河南省鄭州市金水區(qū)2022-2023學(xué)年三年級上學(xué)期期末數(shù)學(xué)試卷
- XXX酒店開辦費(fèi)POB預(yù)算
- Z矩陣、Y矩陣、A矩陣、S矩陣、T矩陣定義、推導(dǎo)及轉(zhuǎn)換公式
- 中美歐規(guī)范樁基承載力計(jì)算設(shè)計(jì)對比
- 外科洗手操作考核評分表
- 復(fù)旦大學(xué)外國留學(xué)生入學(xué)申請表
- 長安汽車發(fā)動(dòng)機(jī)水溫高故障案例分析處置
- 瞬時(shí)單位線法計(jì)算洪水
評論
0/150
提交評論