基于USB的家電自動化
近來,通用串行總線(Universal Serial Bus,USB)的使用,為家電自動化引入了一種更為簡單的實現途徑。采用稱為“即插即用”(plug-n-play)的簡單操作,當家電插入PC 上的USB 端口,就會與PC 交換USB 家電參數,從而消除了對家電接口進行設置的繁瑣工作。根據經由USB 端口傳送至PC 的家電描述符,自動把家電配置為“就緒”狀態。此外,在家電網絡上添加或刪除新家電,只要將它們簡單地插拔即可。
本文介紹了建立在USB 基礎之上的、創新的家電自動化應用,包括USB 自動洗衣機、烘干機、咖啡機、安保系統以及家電控制臺,如圖1 所示。此外,本文還以基于USB 的照明控制為例,講解了基于USB 的家電自動化的基礎知識。最后,本文比較了USB 和其他用于家電自動化的主流無線技術(如,ZigBee. 通信協議和Bluetooth. 無線通信協議等)的異同。
背景
隨著功能豐富的新型半導體器件的高速發展,同時其價格也隨之達到消費者可以承受的水平,我們正在見證一場家電行業中的自動化風暴。在這些技術進步中就包括了PC 上USB 的演化。
現在,我們的日常生活中方方面面都會用到PC 機。我們與周圍環境的互動,很大程度上是通過PC 機進行控制的。類似地,如果沒有PC 機作為其中心,未來的家電自動化根本無法想象。
此外,從PC 的角度看,USB 使外圍設備初始化方面發生了巨大的變化,不再需要用戶與PC 機進行交互或關注PC 機。USB 協議非常智能,它能自動檢測并驅動多達127 個連接在其總線上的設備。可以預見,USB 將能夠最終控制和驅動絕大部分家電。
由于USB 能實現家電自動化,它對于最終用戶是有用的。不僅如此,對于家電制造商而言,在新產品測試方面,USB 也非常有用。
USB 的演化發展,使得家電的即插即用成為現實,而這促使了操作系統供應商對標準USB 驅動程序提供支持。
比如說,Microsoft. 在其Windows. 操作系統(OS)的各版本中,提供了USB 驅動程序支持,支持諸如人機接口設備(Human Interface Device,HID)、通信設備類(Communication Device Class,CDC)和大容量存儲設備(Mass Storage Device,MSD)驅動程序。
USB 的另一項重要用途與預付費設施有關。比如說,
自動洗衣店可以向客戶發行洗衣卡,洗衣卡可以通過USB端口進行讀取,從而通過USB 總線對洗衣機進行控制。USB 總線提供了充足的數據率,用于記錄設施數據和記錄家電用電量明細。對于具有USB 總線的家電而言,這類大容量存儲USB 特別適用于數據記錄與控制。
USB 還可以用在家電的安全使用上。例如,父母能夠通過USB 端口對家電鎖定和解鎖,防止孩子自己開啟某些家電。這樣能讓人放心許多,在沒有監護人的情況下,孩子無法去操作有潛在危險的家電。
現在已經為您介紹了USB 及其可能的應用,下面讓我們來探索一下USB 協議的細節。
USB總線架構
USB 是每條總線支持一個主機的一種主機控制架構。大部分的PC 上都有多個USB 主機。設備能用集線器以菊花鏈方式連接到主機上。多個集線器能夠以菊花鏈方式連接起來,支持多達127 個不同設備,每個菊花鏈段長度不能超過五英尺。
這種菊花鏈式連接,形成了稱為層式星狀(tiered star)的拓撲結構, 它與 10-Base T 以太網類似。與以太網拓撲結構相比,USB 有一些優點,因為USB 集線器能為連接在其上的設備供電,并在發生過流現象時關閉設備。USB 集線器還能適當過濾主機和設備間的數據,實現低速(LS)、全速(FS)和高速(HS)設備的無縫集成。
USB 是即插即用型協議,能動態加載和卸載USB 驅動程序。要加載USB 驅動程序,必須有USB 提供商標識符(VID)和產品標識符(PID)。這兩個標識信息記錄在USB 設備的設備描述符中。
VID 用來識別USB 總線的制造商。通常,VID 由名為“通用串行總線開發者論壇”(USB Implementers’ Forum,USB-IF,www.usb.org)組織分配。申請者需要支付注冊VID 費用。
與VID 類似, PID 是一個16 位數字。PID 標識的是產品。設備制造商提供PID 號。不同于VID,對于PID 來說,USB-IF 對其沒有任何管理上的限制。
USB 的另一個重要特性是它支持不同類型的數據傳輸方式。例如,USB V2.0 支持四種不同類型的數據傳輸:
1. 控制傳輸方式。控制傳輸在設備插入時對其進行配置,并能用于其他的設備特定用途,諸如對設備上的其他通道進行控制等。
2. 批量傳輸方式。在數據的產生和使用量相對較大時采用批量傳輸方式。
3. 中斷傳輸方式。中斷傳輸用于及時且可靠的數據傳送。例如,具有人類可感知反應或反饋響應特征的字符或坐標,等等。
4. 同步傳輸方式。同步傳輸方式在預先約定的傳輸延遲時間占用預定的USB 帶寬。同步傳輸也稱為“流實時傳輸”。
A 型USB 連接器專用于數據下行傳輸,即,數據從設備傳輸到主機。所以,A 型連接器位于設備上。
B 型USB 連接器專用于數據上行傳輸,即,數據從USB 主機傳輸到設備或從集線器傳輸到設備。B 型連接器位于主機和集線器上,如圖2 所示。
有時為了使占用空間更小,可以使用微型USB 連接器。
USB 設備通過拉高D+ 或D-端線電平來指示其速度,最高為3.3 伏。全速設備在D+ 端接一個上拉電阻表明它是全速設備,如圖3 所示。
如果沒有上拉電阻, USB 就假定總線上沒有連接任何東西。有些設備中,上拉電阻是內置的,能通過固件開啟和關閉。另一些設備則需要外部上拉電阻。在這種情況下,通過固件進行速度控制會受到限制,并且要求另外對外部中繼服務進行實現與編碼。
低速設備在D-端連接上拉電阻,表明其為低速設備,如圖4 所示。
最開始,高速設備被當作全速設備進行連接(D+ →1.5k 至3.3V)。初始連接之后,設備在復位時將發出高速的啁啾聲,然后與主機建立高速連接。一旦設備經初始化進入高速模式,上拉電阻就被禁用。
USB數據流模式:枚舉在設備可以與應用進行通信前,USB 主機需要了解設備狀態并給它分配設備驅動程序。實現這一初始信息交換的過程就叫作枚舉。在枚舉過程中,根據USB V2.0 規范的定義,設備將經歷以下設備狀態:
1. 上電狀態(Powered)
2. 缺省狀態(Default)
3. 地址狀態(Address)
4. 配置狀態(Configured)
另外還有兩個USB 設備狀態,“連接狀態”(attached)和“掛起狀態”(suspended)。枚舉過程的具體細節超出了本文的范圍;不過,在設備配置中使用的命令與結構是相關的。
描述符是讓USB 主機能獲取設備信息的數據結構。在枚舉過程中,主機請求描述符,從最上層設備描述符開始,一直到最低層端點描述符,順序如圖5 所示。
枚舉過程
下面概述一下USB 設備的枚舉過程所包含的步驟,并講解設備在枚舉過程如何經歷從上電到缺省、地址以及配置這幾個狀態。
1. 用戶將一個USB 設備插入USB 端口。主機為端口供電,設備此時處于上電狀態。
2. 主機檢測設備。
3. 集線器使用中斷通道將事件報告給主機。
4. 主機發送Get_Port_Status(讀端口狀態)請求,以獲取更多的設備信息。
5. 集線器檢測設備是低速運行還是高速運行,并將此信息送給主機
評論