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