国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

將應(yīng)用從串行接口移植到USB接口的簡便方法

發(fā)布時間:2010-11-3 19:30    發(fā)布者:techshare
關(guān)鍵詞: USB , 串行 , 接口 , 移植
由于可以獲得很多支持USB的微控制器和接口器件,所以對嵌入式應(yīng)用設(shè)計工程師而言,沒有COM端口并不會帶來障礙。選擇正確的工具和軟件解決方案提供了一條轉(zhuǎn)移到USB的捷徑。

硬件補丁程序

對那些需要為基于串行端口的老項目提出快速解決方案的設(shè)計工程師來說,最先有吸引力的策略是采用一種補丁系統(tǒng)。

這可通過在嵌入式控制器串行接口與PC機USB連接器之間增加一個定制的USB-UART轉(zhuǎn)換器來實現(xiàn)(圖1)。

這些器件通常配有支持各種操作系統(tǒng)的定制驅(qū)動程序,完全可以仿真一個標(biāo)準(zhǔn)的串行端口。




圖1:與采用大部分USB-UART接口器件相比,兼容USB接口的MCU單芯片解決方案具有更高的性能和更低的成本。

該方法意味著需要重新設(shè)計嵌入式應(yīng)用電路板以騰出空間容納新的元件,但它不用改變固件和PC應(yīng)用程序。拆除已證明無用的串行端口接收器有時只增加幾美元成本,但卻失去了采用USB所帶來的大部分好處。

實際上,USB能夠更快地傳輸數(shù)據(jù),傳輸速度可達到典型串行端口的100倍(12 Mbps與115 kbps),繼續(xù)使用UART,就會成為主要的設(shè)計瓶頸。另外,由于大部分USB-UART接口器件缺乏靈活性,無法實現(xiàn)靈活的電源管理,而這在許多嵌入式設(shè)計中是一個關(guān)鍵特性。

單芯片解決方案

從串行端口轉(zhuǎn)移到USB的一個更好的硬件選擇是采用單芯片解決方案,即選用具有USB接口的微處理器,并開發(fā)驅(qū)動程序(圖2)以模仿串行端口。從硬件角度來看,單芯片解決方案顯得非常有趣。





圖2:采用單芯片解決MCU解決方案可很好地將應(yīng)用從串行接口移植到USB接口。

幾乎不增加額外成本就可以在通用模型上使用兼容USB的通用型微控制器。拆除了串行端口接收器,電路板上元件的數(shù)量也就相應(yīng)減少,可以在低成本USB連接器與新型兼容USB微控制器的D+/D-管腳間建立直接鏈接。

當(dāng)通用微控制器和兼容USB的微控制器引腳互相兼容,就能將電路板重新設(shè)計的成本和工作量減小到最低。此外,不再為那些可以使用USB總線5V電源的應(yīng)用配備電源適配器,也可以進一步降低成本。

軟件界面

一旦我們選擇了單芯片解決方案,我們就為應(yīng)用需要開發(fā)新的PC驅(qū)動程序,甚至可能是新的固件。幸運的是,軟件開發(fā)人員有多種選擇,可通過重復(fù)使用應(yīng)用界面種類的方法來減小開發(fā)工作量。

被構(gòu)建到現(xiàn)在PC操作系統(tǒng)中,并具有最好支持的最常見USB接口類大概要算所謂的人機接口設(shè)備(通常指HID類)。所有的PC都需要一些像鍵盤或鼠標(biāo)這樣的人機接口,這些設(shè)備的連接已經(jīng)從串行或者PS/2端口升級進USB。

所有操作系統(tǒng)都可以很好地支持HID,因為其驅(qū)動程序已經(jīng)捆綁在Windows、Linux和MAC OS的每個拷貝中。因此,對于那些想從不太復(fù)雜的嵌入式設(shè)備中讀寫少量數(shù)據(jù)的設(shè)計工程師而言,HID是一個非常有吸引力的選擇。

不幸的是,應(yīng)用編程接口(API)沒有什么能比得上COM端口接口,其結(jié)果是,將API移植到現(xiàn)有系統(tǒng)上更成問題,特別當(dāng)PC上已經(jīng)有一個復(fù)雜的應(yīng)用軟件的時候。

其它像打印機類和海量存儲這樣的標(biāo)準(zhǔn)USB接口類都是可能與嵌入式設(shè)備進行通訊。它們將遭遇同樣問題,即陌生的接口和開發(fā)新PC應(yīng)用軟件的需求。

驅(qū)動程序開發(fā)需要有操作系統(tǒng)底層的深厚知識。就Windows PC機而言,這意味著要熟悉通常叫做WDM的Windows驅(qū)動程序模型。如果沒有這方面的專業(yè)知識(大部分嵌入式控制設(shè)計工程師并不是WMD方面的專家),那么開發(fā)一個可基本工作的驅(qū)動程序原型也需要花費數(shù)月時間。

幸運的是,在大部分最新版本的Windows內(nèi)的一個接口類可以使我們擺脫困境。微軟公司原先開發(fā)這個叫做USB通訊設(shè)備類(CDC)是用來支持調(diào)制解調(diào)器應(yīng)用。例如,開發(fā)人員可以獲得CDC接口的完整源代碼,以進行面向PIC18F4550系列的快閃USB 8位微控制器的開發(fā)。

CDC接口提供以下有用特性:固件庫的代碼量相對較小,為3KB;單芯片解決方案;數(shù)據(jù)存儲僅占用大約50B的存儲器空間(不包括緩沖區(qū));最大吞吐量為80 KBps;完全由USB協(xié)議控制數(shù)據(jù)流量(不需要RS-232 XON/XOFF和硬件流控)。

簡單的固件移植

在以后情況中,我們假設(shè)原先的串行端口代碼是用C語言編寫的,并且使用了可訪問集成UART外設(shè)的公共C庫。給定這些條件后,將固件移植到CDC需要進行如下的修改:

在主文件頭部,用相應(yīng)的USB聲明代替針對串行端口的#include聲明;

在主函數(shù)中,增加對USB-CDC初始化代碼的調(diào)用;

在主循環(huán)中,增加對USB后臺任務(wù)的調(diào)用;

驗證應(yīng)用程序代碼,以實現(xiàn)與USB后臺任務(wù)的協(xié)同多任務(wù)處理;

最后,為鏈接器提供USB-CDC專用庫,生成最終的可執(zhí)行代碼,然后對快閃芯片進行編程。

在實踐中,上述這種情況要求包含阻塞循環(huán)的應(yīng)用程序不能調(diào)用任何功能,換而言之,它不能占用100%的處理器時間,也不能妨礙USB后臺任務(wù)執(zhí)行。反過來,所有USB控制函數(shù)、中斷、標(biāo)志和緩沖機制都由CDC類固件后臺任務(wù)管理,設(shè)計工程師無需關(guān)注其實現(xiàn)細(xì)節(jié)。所有顯示出來的只是一個非常類似于公共串行端口庫的小的函數(shù)集。

聯(lián)機的時間

現(xiàn)在可以將應(yīng)用連接到PC上,Windows即插即用技術(shù)該登場了。在對所有USB應(yīng)用都適用的初始枚舉階段后,屏幕上將彈出一個對話框,提醒用戶已經(jīng)發(fā)現(xiàn)一個新的硬件設(shè)備,需要為操作系統(tǒng)對其進行配置,以便使用它。

雖然CDC驅(qū)動程序已經(jīng)是操作系統(tǒng)的一部分,但仍然需要更多的信息來幫助將它們與新發(fā)現(xiàn)的設(shè)備進行綁定,這也在Windows硬件管理器中創(chuàng)建一個端口特定的“屬性頁”,以后用戶可以用它卸載或重新配置端口。在安裝階段,一個很小的純文本文件(擴展名為.inf)非常有用,它需要先用(文本編輯器)準(zhǔn)備好,當(dāng)即插即用向?qū)б髸r提供。

獲得COM端口

如果一切順利,此時即插即用已經(jīng)完成了安裝過程,一個新的串行設(shè)備就會出現(xiàn)在硬件管理器中,系統(tǒng)會自動使用下一個可用的序列號為它指定一個名稱(例如,已經(jīng)安裝了COM2和COM1,就會出現(xiàn)COM3),用戶可以使用已經(jīng)編寫好用來訪問實際COMx端口的程序來訪問這個端口(如所有Windows軟件中的超級終端程序)。

連接好后,除了通訊速度提高了,功能上沒有什么區(qū)別。與PC上最快的串行端口相比,通訊速度提高了一個或兩個數(shù)量級。Visual Basic或C++程序員可通過標(biāo)準(zhǔn)的Windows OpenFile()、ReadFile() 和WriteFile() API 來對仿真的COM端口進行讀寫,而不用改變?nèi)魏未a。

現(xiàn)在已經(jīng)可以使用兼容USB的、完整版閃存微控制器,這些單芯片解決方案為嵌入式控制設(shè)計工程師提供了最低的成本和最大的靈活性。通過使用CDC類庫,串行端口仿真為工程師們將應(yīng)用程序移植到更快的USB通訊、擺脫傳統(tǒng)串行端提供了一條捷徑,同時也消除了Windows開發(fā)中的障礙。按照上述步驟,嵌入式設(shè)計工程師可以快速地從串行端口轉(zhuǎn)移到USB,使他們將100%的精力集中到嵌入式應(yīng)用這個主要的專業(yè)領(lǐng)域。
本文地址:http://www.qingdxww.cn/thread-36101-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 你仿真過嗎?使用免費的MPLAB Mindi模擬仿真器降低設(shè)計風(fēng)險
  • 想要避免發(fā)生災(zāi)難,就用MPLAB SiC電源仿真器!
  • Cortex-M4外設(shè) —— TC&TCC結(jié)合事件系統(tǒng)&DMA優(yōu)化任務(wù)培訓(xùn)教程
  • 我們是Microchip
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 求四虎tv的网站 | 一区二区中文字幕在线观看 | 男人天堂网在线播放 | 亚洲国产成人私人影院 | 激情综合五月亚洲婷婷 | 精品欧美一区视频在线观看 | 欧美xxxxx九色视频免费观看 | 中文字幕一区二区在线观看 | 欧美黑人成人www在线观看 | 国产在线观看福利 | 亚洲二区在线视频 | 久久好色 | 国产精品东北一极毛片 | 亚洲国产精品自产在线播放 | 中文精品视频一区二区在线观看 | 国产精亚洲视频 | 99re这里有精品 | 精品国产一区二区三区香蕉 | 99视频国产精品 | 日本激情视频网站 | 黄页网站在线看 | 国产成人精品日本亚洲直接 | 99精品视频免费 | 国产精品老牛影视 | 婷婷丁香七月 | aaaa一级片| 午夜影剧院| 欧美高h | 精品在线免费观看视频 | 国产99久久精品一区二区 | 午夜在线成人 | 欧美性插视频 | 99久久精品免费视频 | 亚洲成在人线综合导航下载 | 97夜夜澡人人爽人人喊一欧美 | 亚洲十八 | 全部在线播放免费毛片 | 久久久精品日本一区二区三区 | 99视频在线看| 羞羞网站在线免费观看 | 狠狠色婷婷丁香六月 |