freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

usb接口芯片pdiusbd12與單片機(jī)at89c51通信系統(tǒng)(編輯修改稿)

2025-07-22 23:10 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 帶屏蔽或不是雙絞的線,但最長(zhǎng)不能超過30m。這主要是由于信號(hào)衰減的限制,為了提供信號(hào)電壓保證以及與終端負(fù)載相匹配,在電纜的每一端都使用了不平衡的終端負(fù)載,這種終端負(fù)載也保證了能夠檢測(cè)外設(shè)與端口的連接或分離,并且可以區(qū)分高速與低速設(shè)備。所有的設(shè)備都有上行的接口,上行和下行的接頭是不能互換的,這保證了不會(huì)有非法的連接出現(xiàn)。插頭與插座有兩個(gè)系列分別為A和B系列,A用于基本固定的外圍設(shè)備,而系列B用于經(jīng)常拔插的設(shè)備,這兩個(gè)系列是不能互換的。 USB 數(shù)據(jù)流從邏輯上講USB數(shù)據(jù)的傳輸是通過管道進(jìn)行的。圖26描述了USB數(shù)據(jù)傳輸?shù)倪^程。USB系統(tǒng)軟件通過缺省管道(與端點(diǎn)0相對(duì)應(yīng))管理設(shè)備,設(shè)備驅(qū)動(dòng)程序通過其它的管道來管理設(shè)備的功能接口。實(shí)際的數(shù)據(jù)傳輸過程是這樣的:設(shè)備驅(qū)動(dòng)程序通過對(duì)USBD接口(USB driver interface)的調(diào)用發(fā)出輸入輸出請(qǐng)求(IRP I/O Request Packet);USB驅(qū)動(dòng)程序接到請(qǐng)求后,調(diào)用HCD接口(host controller driver interface),將IRP轉(zhuǎn)化為USB的傳輸,一個(gè)IRP可以包含一個(gè)或多個(gè)USB傳輸;然后HCD將USB傳輸分解為總線操作,由主控制器以包的形式發(fā)出。需要注意的是所有的數(shù)據(jù)傳輸都是由主機(jī)開始的,任何外設(shè)都無權(quán)開始一個(gè)傳輸。IRP是由操作系統(tǒng)定義的,而USB傳輸與總線操作是USB規(guī)范定義的。為了進(jìn)一步說明USB傳輸,我們引出幀(frame)的概念。幀:USB總線將1ms定義為一幀,每幀以一個(gè)SOF包為起始,在這1ms里,USB進(jìn)行一系列的總線操作。引入幀的概念主要是為了支持與時(shí)間有關(guān)的總線操作。為了滿足不同外設(shè)和用戶的要求,USB 提供了四種傳輸方式:控制傳輸、同步傳輸、中斷傳輸、批傳輸。它們?cè)跀?shù)據(jù)格式、傳輸方向、數(shù)據(jù)包容量限制、總線訪問限制等方面有著各自不同的特征??刂苽鬏?Control Transfer)1. 通常用于配置/命令/狀態(tài)等情形;2. 其中的設(shè)置操作(setup)和狀態(tài)操作(status)的數(shù)據(jù)包,具有USB定義的結(jié)構(gòu),因此控制傳輸只能通過消息管道進(jìn)行;3. 支持雙向傳輸; 主機(jī) 連接 物理設(shè)備 接口X應(yīng)用接口的集合 Client SW管理一個(gè)接口 到一個(gè)接 口的通道 束 與接口 無 緩沖 沒有USB 有關(guān) USB格式 格式 端點(diǎn)0USB邏輯設(shè)備端點(diǎn)的集合USB System SW管理設(shè)備 到0號(hào)端點(diǎn)的 缺省通道USB設(shè)備(第9章) USB USB幀格式 接口 的數(shù)據(jù) 事務(wù) 主機(jī)控制器 事務(wù) USB幀格式 每個(gè)端 USB幀 SIEUSB總線接口 的數(shù)據(jù) 點(diǎn)的數(shù) 結(jié)構(gòu)的 據(jù) 數(shù)據(jù) USBSIE 主機(jī)(第10章) USB線路 機(jī)械的, 通道:兩個(gè)水平實(shí)體之間連接 電氣的, 的抽象。 數(shù)據(jù)傳遞機(jī)制 被傳遞的數(shù)據(jù)圖28 USB數(shù)據(jù)流4. 對(duì)于高速設(shè)備允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié),對(duì)于低速設(shè)備只有8 字節(jié)一種選擇;5. 端點(diǎn)不能指定總線訪問的頻率和占用總線的時(shí)間,USB系統(tǒng)軟件會(huì)做出限制;6. 具有數(shù)據(jù)傳輸保證,在必要時(shí)可以重試。同步傳輸(Isochronous Transfer)1. 是一種周期的連續(xù)的傳輸方式,通常用于與時(shí)間有密切關(guān)系的信息的傳輸;2. 數(shù)據(jù)沒有USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 單向傳輸,如果一個(gè)外設(shè)需要雙向傳輸,則必須使用另一個(gè)端點(diǎn);4. 只能用于高速設(shè)備,數(shù)據(jù)包的最大容量可以從0到1023個(gè)字節(jié);5. 具有帶寬保證,并且保持?jǐn)?shù)據(jù)傳輸?shù)乃俾屎愣?,每個(gè)同步管道每幀傳輸一個(gè)數(shù)據(jù)包;6. 沒有數(shù)據(jù)重發(fā)機(jī)制要求,具有一定的容錯(cuò)性;7. 與中斷方式一起占用總線的時(shí)間不得超過一幀的90%。中斷傳輸(Interrupt Transfer)1. 用于非周期的自然發(fā)生的數(shù)據(jù)量很小的信息的傳輸,如鍵盤、鼠標(biāo)等;2. 數(shù)據(jù)沒有USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 只有輸入這一種傳輸方式,即外設(shè)到主機(jī);4. 對(duì)于高速設(shè)備允許數(shù)據(jù)包,最大容量為小于或等于64字節(jié),對(duì)于低速設(shè)備只能小于或等于8字節(jié);5. 具有最大服務(wù)周期保證,即在規(guī)定時(shí)間內(nèi)保證有一次數(shù)據(jù)傳輸;6. 與同步方式一起占用總線的時(shí)間不得超過一幀的90%;7. 具有數(shù)據(jù)傳輸保證,在必要時(shí)可以重試。批傳輸(Bulk Transfer)1. 用于大量的對(duì)時(shí)間沒有要求的數(shù)據(jù)傳輸;2. 數(shù)據(jù)沒有USB 定義的結(jié)構(gòu)數(shù)據(jù)流管道;3. 單向傳輸,如果一個(gè)外設(shè)需要雙向傳輸,則必須使用另一個(gè)端點(diǎn);4. 只能用于高速設(shè)備,允許數(shù)據(jù)包最大容量為8,16,32或64字節(jié);5. 沒有帶寬的保證,只要有總線空閑就允許傳輸數(shù)據(jù),優(yōu)先級(jí)小,于控制傳輸;6. 具有數(shù)據(jù)傳輸保證,在必要時(shí)可以重試,以保證數(shù)據(jù)的準(zhǔn)確性。圖27 描述了輸入輸出請(qǐng)求IRP傳輸與操作之間的關(guān)系。一個(gè)同步傳送是一個(gè)或多個(gè)IN/OUT方向的數(shù)據(jù)事務(wù)。IRP數(shù)據(jù)流類型IRP事務(wù)事務(wù)事務(wù)所有的傳送都是由一個(gè)或多個(gè)事務(wù)組成。一個(gè)IRP又可由一個(gè)或多個(gè)傳送組成??刂苽魉虸RPSetup事務(wù)數(shù)據(jù)事務(wù)Status事務(wù)額外的控制傳送控制傳送首先是一個(gè)OUT方向的Setup事務(wù),然后是多個(gè)IN方向或OUT方向的數(shù)據(jù)事務(wù),最后是一個(gè)與數(shù)據(jù)反向的Status事務(wù)。中斷傳送IRP事務(wù)事務(wù)一個(gè)中斷傳送是一個(gè)或多個(gè)IN/OUT方向的數(shù)據(jù)事務(wù)。同步傳送IRP事務(wù)事務(wù)事務(wù)批傳送事務(wù)事務(wù)事務(wù)一個(gè)批傳送是一個(gè)或多個(gè)IN/OUT方向的數(shù)據(jù)事務(wù)。 圖27 USB 數(shù)據(jù)傳輸3 數(shù)據(jù)采集系統(tǒng)的固件設(shè)計(jì) 固件的開發(fā)環(huán)境Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會(huì)到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時(shí)更能體現(xiàn)高級(jí)語言的優(yōu)勢(shì)。Keil C51的工具包中,uVision是C51 for Windows的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個(gè)開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對(duì)目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級(jí)調(diào)試,也可由仿真器使用直接對(duì)目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 采用PDIUSBD12的固件設(shè)計(jì) 固件編程的主要工作固件是FIREWARE的對(duì)應(yīng)中文詞,它實(shí)際上是單片機(jī)的程序文件,包括USB設(shè)備的連接USB協(xié)議、中斷處理等,它不是單純的軟件,而是軟件和硬件的結(jié)合,開發(fā)者需要對(duì)端口、中斷和硬件結(jié)構(gòu)非常熟悉。固件程序一般放入MCU中,當(dāng)把設(shè)備連接到主機(jī)上時(shí),上位機(jī)可以發(fā)現(xiàn)新設(shè)備,然后建立連接。因此,編寫固件程序的一個(gè)最主要的目的就時(shí)讓W(xué)indows可以檢測(cè)和識(shí)別設(shè)備。USB固件程序程序由三部分組成:①初始化單片機(jī)和所有的外圍電路(包括PDIUSBD12);②主循環(huán)部分,其任務(wù)是可以中斷的;③中斷服務(wù)程序,其任務(wù)是對(duì)時(shí)間敏感的,必須馬上執(zhí)行。根據(jù)USB協(xié)議,任何傳輸都是由主機(jī)開始的。單片機(jī)作它的前臺(tái)工作,等待中斷。主機(jī)首先要發(fā)令牌包給USB設(shè)備(這里是PDIUSBD12),PDIUSBD12接收到令牌包后就給單片機(jī)發(fā)中斷。單片機(jī)進(jìn)入中斷服務(wù)程序,首先讀PDIUSBD12的中斷寄存器,判斷USB令牌包的類型,然后執(zhí)行相應(yīng)的操作。在USB單片機(jī)程序中,要完成對(duì)各種令牌包的響應(yīng),其中比較難處理的是SETUP包,主要是端口0的編程。單片機(jī)與PDIUSBD12的通信主要是靠單片機(jī)給PDIUSBD12發(fā)命令和數(shù)據(jù)來實(shí)現(xiàn)的。PDIUSBD12的命令字分為三種:初始化命令字、數(shù)據(jù)流命令字和通用命令字。PDIUSBD12數(shù)據(jù)手冊(cè)給出了各種命令的代碼和地址。單片機(jī)先給PDIUSBD12的命令地址發(fā)命令,根據(jù)不同命令的要求再發(fā)送或讀出不同的數(shù)據(jù)。因此,可以將每種命令做成函數(shù),用函數(shù)實(shí)現(xiàn)各個(gè)命令,以后直接調(diào)用函數(shù)即可。 PDIUSBD12芯片特點(diǎn)PDIUSBD12是一個(gè)性能優(yōu)化的USB器件,通常用于基于微控制器的系統(tǒng),并通過高速通用并行接口與微控制器進(jìn)行通信,而且支持本地DMA傳輸。該器件采用模塊化的方法實(shí)現(xiàn)一個(gè)USB接口,允許在眾多可用的微控制器中選擇最合適的作為系統(tǒng)微控制器,允許使用現(xiàn)存的體系結(jié)構(gòu)使固件投資減到最小。這種靈活性減少了開發(fā)時(shí)間、風(fēng)險(xiǎn)和成本。該器件使開發(fā)成本低且高效的USB外圍設(shè)備的一種有效途徑。,也能適應(yīng)大多數(shù)設(shè)備類規(guī)范的設(shè)計(jì),如成像類、大容量存儲(chǔ)類、通信類、打印類和人工輸入設(shè)備等。因此,PDIUSBD12非常適合做很多外圍設(shè)備?,F(xiàn)在很多用SCSI實(shí)現(xiàn)的很多設(shè)備如果用USB來實(shí)現(xiàn)可以直接降低成本。PDIUSBD12還集成了SoftConnect、GoodLink、可編程時(shí)鐘輸出、低頻晶振和終端電阻等特性。所有這些特性都能在系統(tǒng)實(shí)現(xiàn)時(shí)節(jié)省成本,同時(shí)在外圍設(shè)備上很容易實(shí)現(xiàn)更高級(jí)的USB功能。 PDIUSBD12固件程序的編寫USB設(shè)備啟動(dòng)流程如下:1. USB設(shè)備接入U(xiǎn)SB口,發(fā)出連接USB命令;2. 主機(jī)發(fā)出讀設(shè)備描述符兩次;3. 主機(jī)根據(jù)設(shè)備描述符—廠商ID、產(chǎn)品ID,啟動(dòng)相應(yīng)設(shè)備驅(qū)動(dòng)程序;4. 設(shè)備驅(qū)動(dòng)程序初始化USB設(shè)備;①讀設(shè)備描述符;②讀配置描述符;③選擇接口、端點(diǎn)(管道),確定傳輸方式。USB設(shè)備在正常使用以前,必須由主機(jī)配置設(shè)備。主機(jī)一般會(huì)從USB設(shè)備獲取配置信息后再確定此設(shè)備有哪些功能。作為配置操作的一部分,主機(jī)會(huì)設(shè)備設(shè)備的配置值,如果必要的話會(huì)選擇合適的接口備選設(shè)備。在發(fā)出連接USB命令后,主機(jī)先讀取設(shè)備描述符,然后發(fā)出設(shè)置USB地址SETUP包,設(shè)置USB地址后,進(jìn)行主機(jī)客戶驅(qū)動(dòng)與設(shè)備初始化。其余端點(diǎn)依此類推。在其頭文件里需定義USB規(guī)范中的各種描述符格式,包括設(shè)備描述表、配置描述表、接口描述表、端點(diǎn)描述表、字符串描述表以及描述表類型。這樣,在發(fā)送配置聯(lián)合描述表時(shí),主機(jī)USBD可以根據(jù)描述類型標(biāo)識(shí)區(qū)分各種分描述表。 固件的文件結(jié)構(gòu)本數(shù)據(jù)采集系統(tǒng)的固件有著如下的積木式結(jié)構(gòu):主循環(huán):發(fā)送USB請(qǐng)求、讀入數(shù)據(jù)、控制采集通道和處理USB總線事件等等標(biāo)準(zhǔn)請(qǐng)求 廠商請(qǐng)求中斷服務(wù)程序PDIUSBD12 命令接口硬件提取層圖31 數(shù)據(jù)采集系統(tǒng)固件的文件結(jié)構(gòu)固件設(shè)計(jì)的目標(biāo)就是使PDIUSBD12在USB上達(dá)到最大的傳輸速率。外圍設(shè)備可使用PDIUSBD12 在USB上傳輸數(shù)據(jù),這些設(shè)備的CPU要忙于處理許多設(shè)備控制和數(shù)據(jù)處理等任務(wù)。PDIUSBD12 的固件設(shè)計(jì)成完全的中斷驅(qū)動(dòng),當(dāng)CPU處理前臺(tái)任務(wù)時(shí),USB的傳輸可在后臺(tái)進(jìn)行,這就確保了最佳的傳輸速率和更好的軟件結(jié)構(gòu),同時(shí)簡(jiǎn)化了編程和調(diào)試。后臺(tái)ISR中斷服務(wù)程序和前臺(tái)主程序循環(huán)之間的數(shù)據(jù)交換通過事件標(biāo)志和數(shù)據(jù)緩沖區(qū)來實(shí)現(xiàn),例如PDIUSBD12的批量輸出端點(diǎn)可使用循環(huán)的數(shù)據(jù)緩沖區(qū),當(dāng)PDIUSBD12從USB收到一個(gè)數(shù)據(jù)包,那么就對(duì)CPU產(chǎn)生一個(gè)中斷請(qǐng)求,
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1