第10章 高速串行總線_第1頁
第10章 高速串行總線_第2頁
第10章 高速串行總線_第3頁
第10章 高速串行總線_第4頁
第10章 高速串行總線_第5頁
已閱讀5頁,還剩66頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第第1010章章 高速串行總線高速串行總線第第1010章章 高速串行總線高速串行總線 第第1010章章 高速串行總線高速串行總線本章內(nèi)容 USB系統(tǒng)原理及組成 USB通信協(xié)議 IEEE 1394系統(tǒng)結(jié)構(gòu) IEEE 1394的通信協(xié)議第第1010章章 高速串行總線高速串行總線10.1 高速串行接口簡介 USBUniversal Serial Bus(通用串行總線) IEEE1394IEEE1394 High Performance Serial Bus Standard 第第1010章章 高速串行總線高速串行總線1 1USBUSB接口的特點(diǎn)接口的特點(diǎn) USB接口主要有以下特點(diǎn): 使用方便“即插即

2、用”。 速度快USB1.X接口的最高傳輸率目前可達(dá)12Mb/s,USB2.0的傳輸速度可以達(dá)到480Mb/s。 連接靈活 獨(dú)立供電第第1010章章 高速串行總線高速串行總線2IEEE1394的特點(diǎn)(1)采用“級(jí)聯(lián)”方式連接各個(gè)外部設(shè)備(2)能夠向被連接的設(shè)備提供電源(3)采用基于內(nèi)存的地址編碼,具有高速傳輸能力(4)采用點(diǎn)對(duì)點(diǎn)結(jié)構(gòu)(peer to peer ) (5)安裝方便且容易使用(6)兼容性好(7)廉價(jià)第第1010章章 高速串行總線高速串行總線10.2 USB體系結(jié)構(gòu) 在物理上,USB系統(tǒng)由三個(gè)部分組成:一是具備USB接口的計(jì)算機(jī)系統(tǒng),二是支持USB接口的系統(tǒng)軟件,三是使用USB接口的設(shè)

3、備。第第1010章章 高速串行總線高速串行總線10.2.1 USB拓?fù)浣Y(jié)構(gòu) 有層次性的星型結(jié)構(gòu)第第1010章章 高速串行總線高速串行總線 USB框架中包含的硬件有:USB主機(jī)、USB集線器USB設(shè)備 USB框架中包含的軟件有:USB主機(jī)控制器驅(qū)動(dòng)程序USB驅(qū)動(dòng)程序USB設(shè)備驅(qū)動(dòng)程序。第第1010章章 高速串行總線高速串行總線1USB主機(jī) USB只有主機(jī)才能擔(dān)當(dāng)主控端 USB主機(jī)一般具有以下功能:檢測(cè)USB設(shè)備的插拔動(dòng)作(通過根集線器來實(shí)現(xiàn));管理USB主機(jī)與USB 設(shè)備之間的控制流;管理USB主機(jī)與USB 設(shè)備之間的數(shù)據(jù)流;收集USB主機(jī)的狀態(tài)和USB設(shè)備的動(dòng)作信息。 第第1010章章 高速串

4、行總線高速串行總線2USB集線器 集線器采用一對(duì)多的方式連接外設(shè),7位地址,共128個(gè),USB主機(jī)控制器必須保留一個(gè),還有127個(gè)地址可以連接USB設(shè)備。 USB規(guī)范中,USB設(shè)備與USB集線器的連接點(diǎn)被稱作為端口(Port)。每個(gè)USB 集線器將一個(gè)連接點(diǎn)轉(zhuǎn)化成多個(gè)連接點(diǎn)。 第第1010章章 高速串行總線高速串行總線3 3USBUSB設(shè)備設(shè)備 通過總線與USB主機(jī)相連的稱為USB設(shè)備全速設(shè)備(12Mb/s)低速設(shè)備(1.52Mb/s高速設(shè)備,(480Mb/s ; USB 2.0) 第第1010章章 高速串行總線高速串行總線 總線接口總線接口 是最底層的物理實(shí)體,是USB發(fā)送和接收數(shù)據(jù)的接口。

5、 邏輯設(shè)備邏輯設(shè)備 處于中間層次,基本上就是USB協(xié)議的主體。 功能單元功能單元 提供不同USB設(shè)備各自的特定功能第第1010章章 高速串行總線高速串行總線 USB設(shè)備提供了各種屬性描述符(Descriptor)類(Class)功能(Function)/接口(Interface)端點(diǎn)(Endpoint)管道(Pipe)設(shè)備地址(Device Address)第第1010章章 高速串行總線高速串行總線10.2.2 USB的物理接口1 1USBUSB連線連線4線電纜 D+與D用來進(jìn)行差分?jǐn)?shù)據(jù)傳輸 VBUS 的電壓為5V 最長可以5米 第第1010章章 高速串行總線高速串行總線2 2USBUSB連接

6、器連接器 A型和B型兩種插頭和插座 USB A型插座 USB A型插頭 Mini-USB A型插座 Mini-USB A型插頭 第第1010章章 高速串行總線高速串行總線 3 3供電模式供電模式自供電(Self-Powered )總線供電(Bus -Powered) 4 4低功耗低功耗正常工作(Normal)狀態(tài)掛起(Suspend)狀態(tài) 5 5即插即用即插即用第第1010章章 高速串行總線高速串行總線10.3 USB通信協(xié)議10.3.1 通信模型圖9.6 USB通信模型第第1010章章 高速串行總線高速串行總線 USB通信邏輯上分三層:信號(hào)層 實(shí)現(xiàn)在USB設(shè)備和主機(jī)的物理連接之間傳輸位信息流

7、的信息協(xié)議層(邏輯層) 實(shí)現(xiàn)在USB設(shè)備和USB主機(jī)端的協(xié)議軟件之間傳輸包字節(jié)流的信息。數(shù)據(jù)傳輸層 實(shí)現(xiàn)在USB主機(jī)端的客戶端驅(qū)動(dòng)程序和設(shè)備端的功能接口之間傳輸有一定意義的信息,這些信息在協(xié)議層被打包成包格式。第第1010章章 高速串行總線高速串行總線 信號(hào)層傳輸?shù)奈恍畔⒘鞣Q為包(Packet) 協(xié)議層傳輸?shù)陌畔⒘鞣Q為事務(wù)處理(Transaction) 數(shù)據(jù)傳輸層傳輸?shù)男畔⒘鞣Q為傳輸(Transfer)第第1010章章 高速串行總線高速串行總線 協(xié)議層在邏輯上將設(shè)備分成了三層實(shí)體:總線接口:傳送和接收數(shù)據(jù)信號(hào),識(shí)別設(shè)備的當(dāng)前唯一地址 端點(diǎn):設(shè)備端用于傳輸數(shù)據(jù)的接收點(diǎn)和發(fā)送點(diǎn),它的功能相當(dāng)于其

8、它總線設(shè)備的I/O端口 。功能接口:由一組端點(diǎn)組成,用來完成特定的功能。 第第1010章章 高速串行總線高速串行總線10.3.2 數(shù)據(jù)格式 1 1包的組成包的組成同步字段同步字段用于數(shù)據(jù)包位同步用于數(shù)據(jù)包位同步包標(biāo)識(shí)符(包標(biāo)識(shí)符(PIDPID、Packet IdentifierPacket Identifier)字段)字段 令牌包(令牌包(Token PacketToken Packet) 數(shù)據(jù)包(數(shù)據(jù)包(Data PacketData Packet) 握手包(握手包(Handshake PacketHandshake Packet) 特殊包(特殊包(Special PacketSpecial

9、 Packet,也稱為專用包)。,也稱為專用包)。數(shù)據(jù)字段數(shù)據(jù)字段攜帶主機(jī)與設(shè)備之間要傳遞的信息,攜帶主機(jī)與設(shè)備之間要傳遞的信息,CRCCRC字段字段用來檢測(cè)包中數(shù)據(jù)的錯(cuò)誤,只存在于令用來檢測(cè)包中數(shù)據(jù)的錯(cuò)誤,只存在于令牌包和數(shù)據(jù)包中。牌包和數(shù)據(jù)包中。包結(jié)尾字段包結(jié)尾字段作為包的結(jié)束標(biāo)志作為包的結(jié)束標(biāo)志 同步字段 包標(biāo)識(shí)字段 數(shù)據(jù) 校驗(yàn)字段 包結(jié)尾字段(SYNC) (PID) 字段 (CRC) (EOP)第第1010章章 高速串行總線高速串行總線2包的類型(1)令牌包(Token Packet)起始令牌包(SOF)輸入令牌包(IN)輸出令牌包( OUT)設(shè)置令牌包(SETUP) 同步字段(8位)

10、CRC5(5位)PID(8位)EOP(23位)7位設(shè)備地址 4位端點(diǎn)11位序列幀號(hào)第第1010章章 高速串行總線高速串行總線 (2)數(shù)據(jù)包USB 1.X規(guī)范支持DATA0、DATA1類數(shù)據(jù)PID 在USB2.0規(guī)范中,新添加了DATA2的數(shù)據(jù)PID 其中DATA0表示的數(shù)據(jù)包是數(shù)據(jù)傳輸中的第1、3、5 等奇數(shù)包,而DATA1所表示的數(shù)據(jù)包是數(shù)據(jù)傳輸中的第2、4、6 等偶數(shù)包。 同步字段(8位)CRC16(16位)PID(8位)EOP(23位)數(shù)據(jù)(01023字節(jié))第第1010章章 高速串行總線高速串行總線 (3)握手包ACK(應(yīng)答Acknowledge)NAK(無應(yīng)答No Acknowledg

11、e)STALL(中止)。 同步字段(8位)PID(8位)EOP(23位)第第1010章章 高速串行總線高速串行總線 (4)特殊包當(dāng)包中的PID 類型為PRE時(shí),是一種特殊包。PRE稱為前同步,目的是為了提醒USB集線器要傳輸?shù)南乱粋€(gè)包是一個(gè)低速包。前同步是為了讓系統(tǒng)區(qū)分全速設(shè)備和低速設(shè)備。前同步的包結(jié)構(gòu)和握手包類似,但是沒有包結(jié)尾字段EOP。第第1010章章 高速串行總線高速串行總線10.3.3 事務(wù)處理 (1)輸入事務(wù)處理(IN) (2)輸出事務(wù)處理(OUT) (3)設(shè)置事務(wù)處理(SETUP)第第1010章章 高速串行總線高速串行總線(1)輸入事務(wù)處理(IN) 表示USB主機(jī)從總線上的某個(gè)U

12、SB設(shè)備接收一個(gè)數(shù)據(jù)包的過程。 輸入事務(wù)的過程一般包括令牌時(shí)相(令牌包)、數(shù)據(jù)時(shí)相(數(shù)據(jù)包)和握手時(shí)相(握手包)。分下列幾種情況數(shù)據(jù)正確的事務(wù)過程 數(shù)據(jù)包錯(cuò)誤的事務(wù)過程 設(shè)備未準(zhǔn)備好。 設(shè)備出錯(cuò) 。實(shí)時(shí)傳輸?shù)妮斎胧聞?wù)處理 第第1010章章 高速串行總線高速串行總線(2)輸出事務(wù)處理(OUT) 表示USB 主機(jī)向總線上的某個(gè)USB設(shè)備發(fā)送一個(gè)數(shù)據(jù)包的過程 正確情況下,USB主機(jī)先發(fā)出令牌包,接著發(fā)出數(shù)據(jù)包,對(duì)方設(shè)備接著會(huì)向USB主機(jī)返回一個(gè)ACK握手包,表示此事務(wù)處理過程正確結(jié)束。對(duì)方設(shè)備沒有準(zhǔn)備好接收數(shù)據(jù)時(shí),就會(huì)在握手時(shí)相返回一個(gè)NAK 握手包,表示設(shè)備沒有準(zhǔn)備好或設(shè)備正忙。當(dāng)發(fā)送的數(shù)據(jù)包出現(xiàn)

13、錯(cuò)誤時(shí),指定的設(shè)備不返回任何握手包,導(dǎo)致USB主機(jī)超時(shí)重傳。第第1010章章 高速串行總線高速串行總線(3)設(shè)置事務(wù)處理(SETUP) 設(shè)置事務(wù)處理僅在控制傳輸中使用,表示USB 主機(jī)向某個(gè)USB 設(shè)備發(fā)送控制命令。它一般包括令牌時(shí)相(令牌包)、數(shù)據(jù)時(shí)相(數(shù)據(jù)包)和握手時(shí)相(握手包)三部分。 第第1010章章 高速串行總線高速串行總線 事務(wù)處理的特點(diǎn)USB協(xié)議規(guī)定的數(shù)據(jù)包中的最大長度為1023字節(jié),一次事務(wù)處理中最多只有一個(gè)數(shù)據(jù)包,因此設(shè)備和它的客戶端驅(qū)動(dòng)程序之間進(jìn)行數(shù)據(jù)傳輸可能包括多次事務(wù)處理。數(shù)據(jù)處理的順序規(guī)則由USB 主機(jī)總控,它不會(huì)將一個(gè)事務(wù)處理分到不同的幀中。在事務(wù)處理中,包是按順序

14、傳輸?shù)模缌钆瓢偸窃跀?shù)據(jù)包的前面發(fā)送。所有的令牌包都由USB 主機(jī)發(fā)出,設(shè)備不發(fā)送令牌包。設(shè)備端根據(jù)令牌決定自己是否發(fā)送數(shù)據(jù),而不能未經(jīng)允許發(fā)送數(shù)據(jù)包。 第第1010章章 高速串行總線高速串行總線10.3.4 數(shù)據(jù)傳輸模式 1 1傳輸類型傳輸類型 批量(Bulk)傳輸 中斷(Interrupt)傳輸 同步(Isochronous)傳輸 控制(Control)傳送第第1010章章 高速串行總線高速串行總線 2 2傳輸特點(diǎn)傳輸特點(diǎn) 傳輸速率 數(shù)據(jù)傳輸方向性 流量控制 數(shù)據(jù)包最大長度 數(shù)據(jù)的健壯性第第1010章章 高速串行總線高速串行總線10.4 PC機(jī)的USB應(yīng)用及開發(fā) (A)硬件結(jié)構(gòu) (B)軟

15、件結(jié)構(gòu)PC機(jī)中的USB應(yīng)用第第1010章章 高速串行總線高速串行總線USB設(shè)備開發(fā)流程第第1010章章 高速串行總線高速串行總線10.4.1 PDIUSBD12 芯片特點(diǎn)芯片特點(diǎn) PDIUSBD12具備以下特性: 符合通用串行總線USB 2.0規(guī)范(basic speed)。 高性能USB 接口器件,集成了SIE、FIFO存儲(chǔ)器、收發(fā)器以及電壓調(diào)整器。 符合大多數(shù)器件的設(shè)計(jì)規(guī)范。 可與任何外部微控制器/微處理器實(shí)現(xiàn)高速并行接口(2M字節(jié)/秒)。 完全自治的DMA 操作。 集成320 字節(jié)多構(gòu)造(multi-configuration)的FIFO 存儲(chǔ)器。 主端點(diǎn)的雙緩沖配置增加了數(shù)據(jù)吞吐量并輕

16、松實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)傳輸。 在批量模式和同步模式下均可實(shí)現(xiàn)1M 字節(jié)/秒的數(shù)據(jù)傳輸速率。 具有良好的總線供電能力。 在掛起時(shí)可控制LazyClock 輸出。第第1010章章 高速串行總線高速串行總線 可通過軟件控制與USB 的連接SoftConnectTM。 采用GoodLinkTM技術(shù),通訊時(shí)LED會(huì)閃爍。 可編程的時(shí)鐘頻率輸出。 符合ACPI,OnNOW 和USB 電源管理的要求。 內(nèi)部上電復(fù)位和低電壓復(fù)位電路。 可選SO28 和TSSOP28 封裝。 工業(yè)級(jí)工作溫度-40+85。 高于8kV 的在片靜電防護(hù)電路減少了額外元件的費(fèi)用。 具有高錯(cuò)誤恢復(fù)率(99%)的全掃描設(shè)計(jì)確保了高品質(zhì)。 雙電源

17、操作3.30.3V 或擴(kuò)展的5V 電源,范圍為4.05.5V。 多中斷模式實(shí)現(xiàn)批量和同步傳輸。第第1010章章 高速串行總線高速串行總線 PDIUSBD12集成以下部件和功能: 模擬收發(fā)器 電壓調(diào)整器 PLL 位時(shí)鐘恢復(fù) Philips 串行接口引擎PSIE SoftConnectTM GoodLinkTM 存儲(chǔ)器管理單元MMU 和集成RAM 并行和DMA 接口第第1010章章 高速串行總線高速串行總線10.4.2 PDIUSBD12 10.4.2 PDIUSBD12 芯片引腳芯片引腳第第1010章章 高速串行總線高速串行總線10.4.3 PDIUSBD12 10.4.3 PDIUSBD12

18、的典型連接的典型連接第第1010章章 高速串行總線高速串行總線 10.4.4 10.4.4 固件程序設(shè)計(jì)固件程序設(shè)計(jì)固件程序結(jié)構(gòu)示意圖第第1010章章 高速串行總線高速串行總線 各模塊的功能如下: 主循環(huán)程序:PDIUSBD12與單片機(jī)之間是工作在一種中斷的方式下,PDIUSBD12通過中斷向單片機(jī)發(fā)送各種請(qǐng)求。程序入口調(diào)用了一些初始化設(shè)備的函數(shù)(如各種寄存器、定時(shí)器、計(jì)數(shù)器等),初始化PDIUSBD12芯片并完成連接等工作,然后程序進(jìn)入循環(huán)等待階段,等待中斷的發(fā)生。 中斷處理程序:對(duì)USB接口芯片產(chǎn)生的中斷進(jìn)行處理,并設(shè)定用于前后臺(tái)通信的事件標(biāo)志,將數(shù)據(jù)緩沖區(qū)數(shù)據(jù)傳輸給主程序。因?yàn)镻DIUS

19、BD12從硬件連線上來說只有一個(gè)中斷請(qǐng)求管腳,但是中斷有好幾種類型的。因此,需要在中斷發(fā)生之后讀PDIUSBD12的中斷寄存器來判斷是什么類型的中斷,然后調(diào)用相應(yīng)的子函數(shù)處理,并在處理結(jié)束前清除中斷寄存器中的標(biāo)志以等待下一次中斷。第第1010章章 高速串行總線高速串行總線 標(biāo)準(zhǔn)設(shè)備請(qǐng)求處理程序:對(duì)USB的標(biāo)準(zhǔn)設(shè)備請(qǐng)求進(jìn)行處理,實(shí)現(xiàn)與PC通訊時(shí)的標(biāo)準(zhǔn)請(qǐng)求響應(yīng)函數(shù),如SetAddress等函數(shù)。 USB接口芯片操作接口:用于實(shí)現(xiàn)向PDIUSBD12發(fā)送特定的命令字的函數(shù),這些定義都是為了方便以后對(duì)芯片控制時(shí)的調(diào)用。 廠商請(qǐng)求處理程序:處理用戶添加的請(qǐng)求。 硬件提取層:USB接口芯片直接的硬件操作。

20、 這些模塊的代碼非常多,以下簡述代表性代碼。第第1010章章 高速串行總線高速串行總線1. 1. 中斷處理程序中斷處理程序 在ISR的入口,固件使用D12_ReadInterruptRegister()來決定中斷源,然后進(jìn)入相應(yīng)的子程序進(jìn)行處理,流程如圖第第1010章章 高速串行總線高速串行總線根據(jù)流程圖寫出ISR.C的主要代碼:Void Isr() ULONG i_st;.bD12flags.bits.At_IRQL1 = 1;i_st = D12_ReadInterruptRegister();if(i_st != 0) /i_st!=0進(jìn)入中斷if(i_st & D12REG_I

21、NTSRC_BUSRESET) /總線復(fù)位Isr_BusReset();else if(i_st & D12REG_INTSRC_SUSPEND) /掛起改變Isr_SuspendChange();else if(i_st & D12REG_INTSRC_EOT) /DMA輸出Isr_DmaEot(); .第第1010章章 高速串行總線高速串行總線else if(i_st & D12REG_INTSRC_EP01) Isr_Ep01Done(); /端點(diǎn)1中斷實(shí)現(xiàn)PC數(shù)據(jù)的發(fā)送和返回 if(i_st & D12REG_INTSRC_EP02) Isr_Ep02D

22、one(); /端點(diǎn)2中斷實(shí)現(xiàn)PC數(shù)據(jù)的發(fā)送和返回.bD12flags.bits.At_IRQL1 = 0;第第1010章章 高速串行總線高速串行總線2. 2. 標(biāo)準(zhǔn)設(shè)備請(qǐng)求處理標(biāo)準(zhǔn)設(shè)備請(qǐng)求處理 對(duì)于標(biāo)準(zhǔn)設(shè)備,一般來說,請(qǐng)求過程的處理如圖所示。第第1010章章 高速串行總線高速串行總線在CHAP_9.C文件中,包含了USB標(biāo)準(zhǔn)請(qǐng)求函數(shù),用于完成USB設(shè)備枚舉的命令。其中部分函數(shù)如下:CHAP9_Getstatus(void) UCHAR endp, txdat2;UCHAR c;UCHAR bRecipient=ControlData.DeviceRequest.bmRequestType &

23、amp; USB_RECIPIENTIf(bRecipient=USB_RECIPIENT_DEVICE) /判斷是否為設(shè)備狀態(tài) /在內(nèi)部可編寫是否支持遠(yuǎn)程喚醒、自供電等的代碼If(bRecipient=USB_RECIPIENT_INTERFACE) /判斷是否為接口狀態(tài) If(bRecipient=USB_RECIPIENT_ENDPOINT) /判斷是否為端點(diǎn)狀態(tài)Else stallep0(); /若全不是為非標(biāo)準(zhǔn)請(qǐng)求,發(fā)送STALL第第1010章章 高速串行總線高速串行總線CHAP9_SetAddress(void)D12_SetAddressEnable(UCHAR)(Control

24、Data.DeviceRequest.wValue &DEVICE_ADDRESS_MASK), 1); /分配新地址Single_transmit(0,0) /發(fā)送響應(yīng)CHAP9_GetDecriptor(void) UCHAR bDescriptor = MSB(ControlData.DeviceRequest.wValue);UCHAR bDescriptorIndex = LSB(ControlData.DeviceRequest.wValue);Switch(bDescriptor) case USB_DEVICE_DESCRIPTOR_TYPE: /獲取設(shè)備描述符Chap

25、9_BurstTransmitEP0( (PUCHAR)&DeviceDescr , sizeof(USB_DEVICE_DESCRIPTOR); case USB_CONFIGURATION_DESCRIPTOR_TYPE:/獲取配置描述符第第1010章章 高速串行總線高速串行總線 Chap9_BurstTransmitEP0(PUCHAR)&ConfigDescr_a, sizeof(USB_CONFIGURATION_DESCRIPTOR_a); case USB_STRING_DESCRIPTOR_TYPE: /獲取字符串描述符 case USB_INTERFACE_D

26、ESCRIPTOR_TYPE: /獲取接口描述符case USB_ENDPOINT_DESCRIPTOR_TYPE: /獲取端點(diǎn)描述符case USB_POWER_DESCRIPTOR_TYPE: /獲取電源描述符default:Chap9_StallEP0InControlRead();break;第第1010章章 高速串行總線高速串行總線CHAP9_SetConfiguration(void)if(ControlData.DeviceRequest.wValue=0)/配置值不對(duì),設(shè)備進(jìn)入未配置狀態(tài)single_transmit(0,0); /發(fā)送響應(yīng)DISABLE;bEPPflags.b

27、its.configuration=0; /標(biāo)記未配置ENABLE;Init_unconfig(); /進(jìn)入地址狀態(tài),禁止0除外的所有端口Else if(ControlData.DeviceRequest.wValue=1) /配置設(shè)備single_transmit(0,0); /發(fā)送響應(yīng)Init_unconfig(); /進(jìn)入地址狀態(tài),禁止0除外的所有端口Init_config(); /配置處理,允許端點(diǎn)收發(fā)DISABLE;bEPPflags.bits.configuration=1; /標(biāo)記已配置ENABLE;Else stall_ep0(); /沒有該請(qǐng)求,返回STALL第第1010章章

28、 高速串行總線高速串行總線3. 主程序主程序主程序是上電復(fù)位后進(jìn)行的一系列初始化操作,如初始化定時(shí)器、中斷、USB芯片等。然后進(jìn)入一個(gè)查詢各個(gè)標(biāo)志位狀態(tài)的循環(huán)中。一旦檢測(cè)到某個(gè)標(biāo)志有效,則進(jìn)行相應(yīng)處理。程序框架如下:Void Mainloop (void) /初始化定時(shí)器、中斷 . /以下主循環(huán) While(1) if(.) . if(.) . .第第1010章章 高速串行總線高速串行總線 10.4.5 10.4.5 驅(qū)動(dòng)程序設(shè)計(jì)驅(qū)動(dòng)程序設(shè)計(jì) 客戶端驅(qū)動(dòng)程序設(shè)計(jì)包括驅(qū)動(dòng)程序需求分析和具體設(shè)計(jì)。首先要考慮USB主機(jī)所需要工作的軟件環(huán)境,比如操作系統(tǒng)等。第第1010章章 高速串行總線高速串行總線

29、10.4.6 10.4.6 應(yīng)用程序設(shè)計(jì)應(yīng)用程序設(shè)計(jì) 應(yīng)用程序設(shè)計(jì)過程與一般程序設(shè)計(jì)基本一樣,可以采用VC+、VB等開發(fā),與USB設(shè)備的通信可通過驅(qū)動(dòng)程序進(jìn)行。下面是一些示例代碼,用于主機(jī)控制USB設(shè)備上的Led燈。其中定義了一個(gè)類對(duì)象CUSBDev,調(diào)用這個(gè)類提供的成員函數(shù),可以完成與驅(qū)動(dòng)程序的對(duì)話。第第1010章章 高速串行總線高速串行總線HANDLE CUSBDev:OpenDev() /打開驅(qū)動(dòng)程序.HANDLE hDevice = OpenByInterface(&ClassGuid, 0, &Error); /OpenByInterface函數(shù)在建立驅(qū)動(dòng)程序時(shí)自動(dòng)生

30、成return hDevice; BOOL CUSBDev:SetLed(HANDLE hDevice, unsigned char bLed)DWORD nRet = 0;BOOL bRet = FALSE; .bRet=DeviceIoControl(hDevice, USB_REQ01, &bLed, sizeof(unsigned char), NULL, 0, &nRet, NULL); /向驅(qū)動(dòng)程序發(fā)送控制命令和數(shù)據(jù)return bRet;第第1010章章 高速串行總線高速串行總線 下面是程序?qū)υ捒蚬こ讨械牟糠执a。 #include USBDev.h CUSBDe

31、v MyDev; HANDLE hDevice; /在對(duì)話框啟動(dòng)時(shí)加載驅(qū)動(dòng)程序hDevice = MyDev.OpenDev();if(hDevice=INVALID_HANDLE_VALUE) :MessageBox(hWnd,設(shè)備驅(qū)動(dòng)加載失敗,錯(cuò)誤,MB_OK); 第第1010章章 高速串行總線高速串行總線 void CLed:OnLed()/控件函數(shù),發(fā)送對(duì)Led的控制命令 . if(m_Led) bLed|=0 x01; else bLed&=0 x02; BOOL bRet=MyDev.SetLed(hDevice,bLed); if(!bRet) :MessageBox(h

32、Wnd,設(shè)備驅(qū)動(dòng)調(diào)用失敗,錯(cuò)誤,MB_OK); return; void CLed:OnExit() /退出時(shí)關(guān)閉驅(qū)動(dòng)程序句柄 if(hDevice!=NULL) CloseHandle(hDevice); 第第1010章章 高速串行總線高速串行總線10.5 USB2.0簡介 1999年2月,Compaq、HP、Intel等7家廠商聯(lián)合制定了USB2.0規(guī)范。 USB2.0將設(shè)備之間的數(shù)據(jù)傳輸速度增加到了480Mb/s,保證了向下兼容。 USB2.0支持 低速傳輸(1.5Mb/s)、全速傳輸(12Mb/s)、高速傳輸(480Mb/s) 支持4種不同類型的數(shù)據(jù)傳輸方式:批量傳輸、中斷傳輸、同步傳

33、輸、控制傳輸, USB2.0增加了新的令牌數(shù)據(jù)包,如PING數(shù)據(jù)包 廣泛應(yīng)用于實(shí)時(shí)圖像數(shù)據(jù)傳輸、高速存儲(chǔ)設(shè)備的數(shù)據(jù)通信方面第第1010章章 高速串行總線高速串行總線10.6 IEEE1394體系結(jié)構(gòu) IEEE1394 High Performance Serial Bus Standard, 1992年提出 1995年正式被IEEE作為工業(yè)標(biāo)準(zhǔn) 具有64位的尋址空間 三種速率:98.304 Mbps,196.608 Mbps,392.216 Mbps。一般稱為100 Mbps ,200 Mbps ,400 Mbps第第1010章章 高速串行總線高速串行總線10.6.1 IEEE1394的拓?fù)浣Y(jié)構(gòu) 1節(jié)點(diǎn)和模塊體系第第1010章章 高速串行總線高速串行總線 單元(unit):節(jié)點(diǎn)內(nèi)部實(shí)現(xiàn)具體功能的部分。 節(jié)點(diǎn)(node) :模塊內(nèi)部的一個(gè)邏輯實(shí)體,擁有唯一的地址。 模塊(module) :連接到總線上的物理設(shè)備。每個(gè)模塊包含一個(gè)或多個(gè)可以獨(dú)立初始化和配置的節(jié)點(diǎn),這些節(jié)點(diǎn)共享一個(gè)物理接口 第第1010章章 高速串行總線高速串行總線2拓?fù)浣Y(jié)構(gòu)第第1010章章 高速串行總線高速串行總線3尋址64位固定尋址方式, 高16 位為節(jié)點(diǎn)標(biāo)識(shí)。而節(jié)點(diǎn)標(biāo)識(shí)又分為兩部分:總線標(biāo)識(shí)(Bus

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論