<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)化 > 設計應用 > USB在PCR儀嵌入式系統中的應用

USB在PCR儀嵌入式系統中的應用

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

2 系統的軟件設計
根據 2.O協(xié)議,在一個(gè)系統中,任何一次通信都是由USB主機發(fā)起的。USB設備根據主機發(fā)來(lái)的命令給予響應,執行相應的操作。在USB系統中,其軟件包括以下幾個(gè)部分:主機應用程序、設備驅動(dòng)程序和設備固件程序。主機用于程序為用戶(hù)提供設備應用的操作平臺和交互界面,完成數據的處理和轉換,向設備發(fā)出控制命令等。設備驅動(dòng)程序是USB設備正常工作的基礎,它提供了設備接人系統時(shí)要用到的引導文件、設備信息文件等。
2.1 動(dòng)態(tài)鏈接庫
系統應用中CH375提供了設備方式下標準驅動(dòng)CH375WDM.INF和動(dòng)態(tài)鏈接庫 CH375DL L.DLL,通過(guò)加載驅動(dòng)信息可以在應用程序中直接調用動(dòng)態(tài)鏈接庫。CH375在計算機端提供應用層接口。應用層接口是由CH375動(dòng)態(tài)鏈接庫DLL提供的面向功能應用的API,所有API在調用后都有操作狀態(tài)返回,但不一定有應答數據。CH375動(dòng)態(tài)鏈接庫提供的API包括:設備管理API、數據傳輸 API、中斷處理API。
設計中采用C語(yǔ)言作為計算機端應用軟件的開(kāi)發(fā)平臺,首先需要將CH375的動(dòng)態(tài)鏈接庫、驅動(dòng)程序添加到到編譯環(huán)境中。動(dòng)態(tài)鏈接庫的使用,簡(jiǎn)化了USB設備開(kāi)發(fā)的步驟,降低了開(kāi)發(fā)難度,為系統調試節省了時(shí)間。
2.2 應用程序與設備間的通信
通過(guò)動(dòng)態(tài)鏈接庫的數據傳輸函數,CH375在與M30627FJPGP之間提供了端對端的連接。應用程序與設備固件間的通信采用請求加應答方式,該通信方式具有較好的交互性和可控性。請求加應答方式使用一個(gè)下傳的主動(dòng)請求和一個(gè)上傳的被動(dòng)應答進(jìn)行交互式的雙向數據通信,下傳與上傳一一對應,相互關(guān)聯(lián)。所有的通信都由客戶(hù)應用程序發(fā)起,然后以接收到M30627FJPGP的應答結束。
2.3 固件程序設計
CH375與M30627FJPGP之間設計成完全的中斷驅動(dòng)。當單片機處理前臺任務(wù)時(shí),USB的傳輸可在后臺進(jìn)行,這就確保了最佳的傳輸速率和更好的軟件結構,同時(shí)簡(jiǎn)化了編程和調試。
后臺ISR(中斷服務(wù)程序)和前臺主程序循環(huán)之間的數據交換可以通過(guò)事件標志和數據緩沖區來(lái)完成,其實(shí)現原理如圖3所示。

應用中的單片機讀寫(xiě)U盤(pán)軟件可分成兩大部分:應用程序和固件程序。應用程序完成系統的數據采集、處理任務(wù)、外圍控制等功能,固件程序處理底層的USB通信協(xié)議、文件系統,完成數據在USB總線(xiàn)上的可靠傳輸和在U盤(pán)上的存取操作。為方便在不同控制器或應用系統上進(jìn)行移植,固件采取積木式結構,如圖4所示。

2.4 USB讀寫(xiě)操作
USB讀寫(xiě)操作可根據不同的系統要求設定執行程序。在儀系統設計中,M30627FJPGP將通過(guò)-A/D通道采集到的數據向U盤(pán)內指定的文件: ADC_DATA.TXT追加數據。開(kāi)機后,單片機向CH375寫(xiě)入配置字,設定其進(jìn)入主控(Host)模式,進(jìn)人數據采集狀態(tài),等待USB總線(xiàn)事件發(fā)生。U盤(pán)追加數據流程如圖5所示。

3 USB在中的難點(diǎn)及解決方案
傳統的USB主控體系結構是PC應用的一種理想的解決方案,而在中很難實(shí)現,具體表現在:
(1)具有的系統資源容量和能力有限;
(2)嵌入式應用一般要對實(shí)時(shí)事件做出及時(shí)的響應。把USB固件添加到系統中,就會(huì )增加復雜性,導致在實(shí)時(shí)應用的設計和調試中出現更多中斷和實(shí)時(shí)事件;
(3)嵌入式市場(chǎng)具有種類(lèi)繁多的處理器和實(shí)時(shí)操作系統。將USB固件開(kāi)發(fā)和移植到任何特定處理器/實(shí)時(shí)操作系統平臺的努力都將花費大量時(shí)間,而且需要工作人員在USB技術(shù)上具有很高的專(zhuān)業(yè)技能。
克服嵌入式裝置中USB主控設計的復雜性問(wèn)題,其方法之一是把與USB即插即用能力相關(guān)的智能揉入USB主端控制器本身之中。要做到這一點(diǎn),所采取的辦法是:
把USB主控棧和器件驅動(dòng)的共用組件嵌入到USB控制器硬件中;
將USB主控功能壓縮到語(yǔ)族與ANSI C兼容的API中,而這些API被系統用來(lái)獲取USB主控制器中的USB主控功能。
這種設計方法可以帶來(lái)一個(gè)無(wú)需系統處理器干預,就能處理USB主控活動(dòng)的USB主控制器。它不僅讓系統資源的消耗降至最低,而且也將通過(guò)系統總線(xiàn)的USB 數據流減至最小。API的設計將簡(jiǎn)單易行,并且獨立于處理器和實(shí)時(shí)操作系統,從而有效地降低了API集移植和集成的難度。


4 結 語(yǔ)
PCR儀系統的設計,實(shí)現USB總線(xiàn)在嵌入式系統中的基本應用模式。PCR儀中USB主機的實(shí)現方法,體現了USB存儲設備的靈活性和方便性,USB系統嵌入到PCR儀中方便了用戶(hù)的操作,提高了PCR儀的工作效率和儀器的可用性。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: USB PCR 嵌入式系統 中的應用

評論


相關(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>