三種方式解決USB接口與串口設(shè)備之間互連問題
過去PC用戶在接入新設(shè)備時還需要安裝相應(yīng)的驅(qū)動程序,對于非專業(yè)用戶來講不僅麻煩而且容易出錯,他們一直希望在連接新外設(shè)時能減少這些讓人困惑的難題。通過去除串口、并口以及PS2口等老式端口,然后用諸如USB之類即插即用端口加以替代,最終用戶現(xiàn)在終于能夠體驗(yàn)到這一方面的顯著改善(圖1)。
USB為消費(fèi)類電子產(chǎn)品提供了輕松的擴(kuò)展功能,許多設(shè)備操作系統(tǒng)本身就可以提供支持,不要求外設(shè)開發(fā)人員提供驅(qū)動程序,從而使添加外設(shè)變得更為簡單。同時通過集線器擴(kuò)展總線功能使普通用戶能夠方便地添加更多外設(shè),無傳統(tǒng)接口的PC目前已成為現(xiàn)實(shí),正在向普通用戶提供著種種便利。
但是,許多業(yè)界專業(yè)人士或嵌入式應(yīng)用人員卻并不像普通用戶那樣對無傳統(tǒng)接口PC的出現(xiàn)這么振奮。許多應(yīng)用一直采用各種UART接口,既不需要也不希望有什么改變。不管是RS-232、RS-422還是RS-485,UART連接方式數(shù)十年來一直是低帶寬通信的主流。就控制、監(jiān)控與小容量數(shù)據(jù)傳輸而言,UART連接提供了一種成本低廉使用方便的解決方案,應(yīng)用系統(tǒng)開發(fā)人員在上面已耗費(fèi)了大量時間與金錢,同時對其性能也感到滿意。
針對定制專用產(chǎn)品系統(tǒng)級設(shè)計與實(shí)施,技術(shù)人員創(chuàng)建出多年來一直穩(wěn)定的系統(tǒng)架構(gòu),可提供所有必需的功能與性能,為系統(tǒng)處理器實(shí)現(xiàn)這些功能而開發(fā)的固件也都假定采用UART連接來傳輸數(shù)據(jù),此外在產(chǎn)品整個生命周期中還開發(fā)并優(yōu)化了主機(jī)應(yīng)用軟件,也是假定采用UART連接。因此上述任何一項(xiàng)如要改變都需巨額投資,而且對專業(yè)用戶而言,無傳統(tǒng)接口PC的優(yōu)勢并不明顯。
設(shè)計人員的選擇
那么面對目前不斷涌現(xiàn)的新型無傳統(tǒng)接口PC,嵌入式設(shè)計人員有什么對策呢?答案是可采用三種基本方法調(diào)整系統(tǒng),使之適應(yīng)無傳統(tǒng)接口PC。第一種方法是進(jìn)行全面的系統(tǒng)再設(shè)計,使設(shè)備本身能夠支持USB連接;第二種方法是使用目前市面上出現(xiàn)的USB至RS-232適配器;第三種方法則是采用為系統(tǒng)應(yīng)用定制的USB至UART適配器。我們下面不妨分別看看這三種方式的優(yōu)缺點(diǎn)。
全面系統(tǒng)再設(shè)計方法將涉及很多工作。例如很可能需要新的系統(tǒng)處理器或微控制器,轉(zhuǎn)為本身具備USB支持的新控制器,或選用新端口橋接方案,包括存儲器映射接口或并行主機(jī)處理器接口。采用本機(jī)具備USB支持方案的好處在于可使數(shù)據(jù)傳輸量提高。
除了硬件改變之外,還需進(jìn)行軟件方面的改動。采用新處理器很可能要新的固件,因?yàn)樘幚砥骰蛭⒖刂破鞴碳仨氝m應(yīng)新的數(shù)據(jù)發(fā)送與接收方法;還要修改主機(jī)用戶應(yīng)用軟件,以適應(yīng)新的連接方法,目前接到串口的軟件要直接接到新端口。除了應(yīng)用軟件之外,無論是USB還是其它端口連接改變,主機(jī)驅(qū)動程序也應(yīng)相應(yīng)修改。如果應(yīng)用程序可調(diào)整為適用于本機(jī)具備USB支持所提供的驅(qū)動程序,外設(shè)OEM廠商就不必再為其設(shè)備提供安裝盤,而且如果基本功能無需特定用戶應(yīng)用軟件的話,它還可以兼容于新型PC實(shí)現(xiàn)即插即用。
第二種方法是采用眾多市面上現(xiàn)有的USB至串行轉(zhuǎn)接口(dongle)或線纜。許多不同供應(yīng)商均可提供這類設(shè)備,它能夠迅速連接到無傳統(tǒng)接口的PC,并創(chuàng)建虛擬COM口(VCP)。假定應(yīng)用軟件可映射至任何COM端口,則只需簡單對應(yīng)用重新映射即可訪問新的VCP。每種接口都可提供VCP驅(qū)動程序,驅(qū)動程序必須安裝在PC上才能啟用端口,許多接口經(jīng)調(diào)整均能適用于諸如PDA托架(cradles)或串行調(diào)制解調(diào)器等特定應(yīng)用。
盡管這種方法能夠幫助盡快將產(chǎn)品投放市場,但設(shè)計人員還應(yīng)考慮對產(chǎn)品總體戰(zhàn)略方面的影響。使用現(xiàn)成產(chǎn)品將使設(shè)計人員在兼容性、質(zhì)量或與其產(chǎn)品結(jié)合使用的配件品牌控制上受到限制,可能導(dǎo)致維修服務(wù)增加,并使客戶對產(chǎn)品產(chǎn)生負(fù)面評價,與控制成本或持續(xù)提供所選接口相關(guān)的供貨問題也應(yīng)在考慮之列。最后,這種方法就每單個產(chǎn)品而言成本也是相當(dāng)高的。
第三種方法則是設(shè)計自己的專用USB至串行接口或嵌入式連接橋。這能最大限度利用現(xiàn)有可選設(shè)備的優(yōu)勢,并克服其諸多缺點(diǎn),這種方法有助于讓連接橋?qū)ν獠肯到y(tǒng)與主機(jī)應(yīng)用軟件看起來都像是VCP。它同樣需要VCP驅(qū)動程序,但可調(diào)整適應(yīng)于具體應(yīng)用。構(gòu)建本機(jī)接口或嵌入式連接橋?qū)⒂兄趯?shí)現(xiàn)對兼容性、質(zhì)量、品牌、成本與供應(yīng)的控制。嵌入式連接橋方式要求對主板進(jìn)行更改,但其BOM成本低于外部接口。我們可以更進(jìn)一步來看看下面兩種方法。
專用外部接口
專用外部接口方案與購買市場上現(xiàn)有接口很像,但可以克服后者所有的缺點(diǎn)?,F(xiàn)有系統(tǒng)實(shí)現(xiàn)方案不需要改變,硬件也無需修改,只需將串行接口與設(shè)備的現(xiàn)有串行接口相對應(yīng)即可。通過設(shè)計自身接口,還可針對諸如RS-232、RS-422、RS-485、LVDS等具體的應(yīng)用需求優(yōu)化線路驅(qū)動器或收發(fā)器。大多數(shù)商用接口都局限于RS-232,且不能用于其它串行接口。
同樣,主機(jī)應(yīng)用軟件也不需要任何更改。唯一的潛在問題就是應(yīng)用是否會映射至不同的COM口,或其是否會一直映射至特定的COM口。如果它一直映射至特定的COM端口,則我們建議改變軟件,讓最終用戶來修改COM端口映射。由于上述方法確實(shí)在計算機(jī)上創(chuàng)建了新的VCP,因此要為產(chǎn)品提供VCP驅(qū)動程序。通過設(shè)計并構(gòu)建自己的接口而不是使用現(xiàn)有接口,可使設(shè)備具有根據(jù)具體應(yīng)用需求定制驅(qū)動程序的能力,這將實(shí)現(xiàn)更好的功能,并在最終設(shè)備與接口間實(shí)現(xiàn)更好的兼容性。
上述方法的另一優(yōu)勢在于能夠讓一種終端設(shè)備盒既用于帶傳統(tǒng)接口的PC,又可用于新型無傳統(tǒng)接口PC,它最大的劣勢在于總體實(shí)施成本。如果根據(jù)每個單元來分?jǐn)傞_發(fā)成本,并加到外部接口實(shí)際BOM成本中,那么這很可能是總體實(shí)施成本最高的一種方法。
嵌入式橋接
嵌入式橋接方法將接口放置于終端設(shè)備線路板上,基本屬于外部接口的板級實(shí)現(xiàn)方式。將USB至串行口橋接嵌入到“盒”中,盡管它仍是VCP連接但看上去卻像是本機(jī)USB器件(圖2)。
對系統(tǒng)處理器與主機(jī)PC而言它看上去像VCP,就像專用外部接口,所以軟件所需更改極小,任何改變都應(yīng)與專用外部接口一樣。
通過將橋接器件置于板上,不但可以大大節(jié)約單位器件成本,還能避免與外部接口附件相關(guān)的諸如印刷電路板、機(jī)箱或封裝、連接器等硬件方面的費(fèi)用,此外還可通過將橋接器件置于板上節(jié)省電子元器件。橋接器件與系統(tǒng)處理器或微控制器之間不再需要任何諸如RS-232、RS-422、RS-485等串行線纜收發(fā)器。顯然,具有系統(tǒng)處理器的板級橋接器要求更改線路板布局,但即使將開發(fā)成本一起分?jǐn)偟疆a(chǎn)品使用壽命中,它很可能仍然是成本最低的實(shí)施方案。此方法的總開發(fā)成本低于整個系統(tǒng)再設(shè)計的成本,單位成本也低于任何一種外部接口方法。
選擇新型驅(qū)動程序
所有USB至串行端口橋接法的共同問題是需要新的虛擬COM口驅(qū)動程序,這種過濾器驅(qū)動程序?qū)⒂脩魬?yīng)用程序生成的COM命令轉(zhuǎn)換為橋接器件在USB端口上接收的USB協(xié)議,橋接器件隨后負(fù)責(zé)將上述USB命令轉(zhuǎn)換回串行命令,驅(qū)動程序使USB器件對操作系統(tǒng)(OS)看起來像是COM口器件。
這會使得用戶忽略實(shí)際是通過USB連接進(jìn)行通信這一事實(shí),而為應(yīng)用軟件給出標(biāo)準(zhǔn)的COM口通信指令。設(shè)計人員如不希望對應(yīng)用軟件及系統(tǒng)透明,就無需VCP過濾器驅(qū)動程序。如果可以接受上面任何一項(xiàng)更改,系統(tǒng)重新設(shè)計中給出的方法(本機(jī)驅(qū)動程序)則可作為一種專用方法,不可用于市面上現(xiàn)有的接口。
評論