<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于C8051F320的數據采集系統USB接口設計

基于C8051F320的數據采集系統USB接口設計

作者: 時(shí)間:2009-10-16 來(lái)源:網(wǎng)絡(luò ) 收藏

固件分為兩個(gè)部分:前臺主程序和后臺中斷服務(wù)程序(ISR)。在 固件
程序中,最重要的工作就是 描述符的定義和 傳輸中斷的處理。
USB 描述符是USB 協(xié)議定義的一套描述設備功能和屬性的固定結構的描述語(yǔ)言。
USB2.0 中的描述符包括設備描述符、配置描述符、接口描述符、端點(diǎn)描述符等8 種標準描
述符和其它一些非標準描述符。USB 主機通過(guò)USB 描述符完成設備類(lèi)型的識別和配置,客
戶(hù)端驅動(dòng)程序通過(guò)這些信息來(lái)正確訪(fǎng)問(wèn)設備并與其通信。本文在對 的配置中除
了端點(diǎn)0 外還用到了端點(diǎn)1 和端點(diǎn)2,它們的描述符如表1 所示。

本文引用地址:http://dyxdggzs.com/article/202632.htm

USB 傳輸中斷的處理也是一個(gè)重要的部分。傳輸中斷的處理由ISR 和前臺主程序共同
完成。這兩部分的數據交換通過(guò)事件標志和數據緩沖區來(lái)實(shí)現[6]。當 的USB 引
擎從主機收到一個(gè)數據包時(shí),就會(huì )產(chǎn)生一個(gè)中斷請求,C8051F320 立即響應中斷,通過(guò)讀取
USB 功能控制器的三個(gè)中斷寄存器CMINT、IN1INT 和OUT1INT 來(lái)判斷中斷來(lái)源(USB
復位中斷、端點(diǎn)0 中斷、端點(diǎn)1 輸入中斷、端點(diǎn)2 輸出中斷),然后根據不同的中斷來(lái)源跳
入相應的處理模塊以進(jìn)行不同的中斷處理,并在處理完畢后返回。其中,端點(diǎn)0 是每個(gè)USB
設備都必須支持的默認控制傳輸端點(diǎn),主要用于主機對USB 設備的配置、狀態(tài)信息的獲取
和設備錯誤的糾正等,它的中斷處理模塊由控制輸出和控制輸入兩部分組成。每次傳輸首先
由設置事務(wù)開(kāi)始,然后根據設置事務(wù)數據不同的中斷來(lái)源跳入相應的處理模塊以進(jìn)行不同的
中斷處理,并在處理完畢后返回。同時(shí)在ISR 中,固件將數據包從C8051F320 的USB 引擎
內部緩沖區移到一個(gè)自定義的數據緩沖區,并在隨后請求清零其內部緩沖區,以使其能夠繼
續接收新的數據包。然后返回到主循環(huán),檢查自定義緩沖區內是否有新的數據并開(kāi)始其它的
任務(wù)。由于這種結構,主循環(huán)只用檢查自定義緩沖區內需要處理的新數據,專(zhuān)注于新數據的
處理,而ISR 也能夠以最大速度進(jìn)行數據的傳輸。這樣,程序對USB 的操作更加簡(jiǎn)單,也
便于程序的維護。主程序和端點(diǎn)0 的控制傳輸程序流程分別如圖3、圖4 所示。端點(diǎn)1 和端
點(diǎn)2 的程序流程與之類(lèi)似。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>