輕松駕馭嵌入式USB設計--USB完全解決方案全新登場
USB接口在生活中隨處可見,其主要優(yōu)點有通信速度快、可靠性高、支持熱插撥以及低成本。
此外由于易于使用,并可以取代電腦上的RS232接口,微軟和英特爾電腦系統(tǒng)設計要求所有PC上必須有兩個以上可以直接使用的USB接口,可見USB的使用越來越廣泛。
USB協(xié)議
USB全稱為通用串行總線,HOST為主機,是通過總線發(fā)起所有傳輸的系統(tǒng);Device是與主機進行通信并且接收來自主機信息的外設設備;Hub是集線器,用來擴展USB主機接口,提供連接點和電源的設計;Pipe是管道,是邏輯上的抽象概念,指的是設備端上的端點和主機軟件之間建立的虛擬的連接通道;ENDPOINT指的是設備端用作USB的數據和發(fā)送的存儲器緩沖,包括IN端點和OUT端點。IN是USB主機讀入讀取數據的端點,OUT是USB主機寫入數據的端點。Silicon Labs單片機上端點是用片上XRAM的FIFO實現(xiàn)的。在USB的網絡協(xié)議中,每個USB的系統(tǒng)有且只有一個HOST,負責管理整個USB系統(tǒng),HOST端有一個ROOT HUB,可以提供一個或多個USB下行端口,每個端口都可以通過USB Hub進行擴展,從而連接多個USB設備,最多可以擴展到127個,其拓撲結構如圖1所示:
USB的傳輸指的是完成通信請求的過程;會話是到一個端點的發(fā)求過程;包即信息塊;幀是建立在低速和全速總線上的1ms的時間單位。傳輸被劃分為多個會話,而會話由包組成,USB主機通過將會話分配到幀進行傳輸,一個傳輸可以有多個幀。枚舉是一個識別和指派一個獨一無二的地址的行為,枚舉過程使USB設備具有被熱插拔的能力,USB主機一直檢查總線上是否有新的設備接入,直到有一個USB設備被完全枚舉完成,USB主機才開始與USB設備進行通信。因此USB主機可以枚舉USB設備并與USB外圍設備進行數據傳輸,管理USB總線,為USB設備提供電源,如一個全功耗主機給每個USB外設提供最大到500mA的電流,一些低功耗的USB主機只能給低功耗的USB外設提供最大到100mA的電流,除此之外USB外設也可以自己供電。而USB設備的作用是與USB主機傳輸數據,響應USB主機的標準請求,管理電源。
USB協(xié)議定義了四種傳輸類型:控制傳輸,塊傳輸,中斷傳輸和同步傳輸??刂苽鬏斒请p向傳輸,通常數據量較小,其用途是傳送命令請求,讓USB主機識別和枚舉外設,以及傳送用戶定義的請求??刂苽鬏數膫鬏斔俣仁歉咚倌J綖?5.8MB/s,全速模式832KB/s,低速模式24KB/s,任何USB外設都必須支持控制傳輸;塊傳輸適用于大量數據傳輸應用,但不保證數據速率和延遲,只支持高速和全速USB外設,其傳輸速度為高速模式53.2MB/s,全速模式1.2MB/s,通常應用于打印機、掃描儀、磁盤驅動器等等會有大塊數據進行傳輸的設備;中斷傳輸主要用于定時查詢設備是否有中斷數據傳輸,從而保證數據傳輸間隔的時間,高速模式為24.6MB/s,全速模式為64MB/s,低速模式為0.8KB/s,通常應用在鍵盤、鼠標、游戲手柄等傳輸要求數據量小但要定時傳輸的場合;同步傳輸是一種數據流實時傳輸的模式,由于這種模式中沒有糾錯環(huán)節(jié),因此它可以保證傳輸速率和間隔時間但不保證數據的完整性,同步傳輸的最高速度為24.6MB/s,全速模式為1MB/s。
USB主機通過獨特的標識符識別USB外設,VID(Vendor ID)是USB聯(lián)盟給USB設備提供商分配的ID號,PID是USB設備提供商給自己產品分配的ID號,串行序列號是開發(fā)商或制造商給每個USB產品分配的號碼,每個USB設備都有自己唯一的序列號。Silicon Labs公司唯一的VID是0x10C4,所有出廠產品都分配了一個PID,客戶可以根據自己的需求聯(lián)系Silicon Labs公司的相關人員為Silicon Labs的USB產品申請一個特別的PID。
USB定義了一套標準的設備類別從而實現(xiàn)不同系統(tǒng)平臺間的互操作性。HID主要應用于鍵盤、鼠標、熱量表、電壓表等;大量存儲主要用于可移動或不可移動的設備,如磁盤、硬盤、光盤以及U盤等;Audio主要應用在揚聲器、麥克風、語音處理等;Communication Device Class主要是調制解調器、模擬或數字電話和以太網卡;Imaging的應用有數碼相機、攝像機、網絡攝像頭;此外如IrDA、電源、打印機、SD卡等都有相應的類別。
Silicon Labs公司的USB解決方案
目前Silicon Labs公司的USB產品已經擴充到十五款,并且可以為客戶提供相應的五種開發(fā)板,軟件支持包括虛擬串行通訊接口驅動,USBXpress從傳輸類型的驅動層到源代碼,常用類型的參考設計,以及第三方提供的工具等。圖2所示的為Silicon Labs公司的所有USB解決方案。圖中可以看到虛擬COM口很容易使用,不需要開發(fā)固件和驅動。同時Silicon Labs公司提供的驅動支持Windows,蘋果和Linux等多個操作系統(tǒng),并且通過了WHQL認證。USBXpress可以為用戶提供簡單靈活的開發(fā)途徑,固件庫文件以及Windows動態(tài)鏈接庫,還可以處理所有USB復雜協(xié)議,簡化了設備端的固件和主機側的驅動開發(fā)。
CP210X系列包括CP2101、CP2102、CP2103,都是固定功能的USB到UART轉接橋芯片,能為用戶提供最快最簡單的從RS232升級到USB的方法。其它混合信號帶USB功能的MCU都是高速8051內核,最快可達48M的指令運行速度,全部都內置高精度的振蕩器,不需要外加晶振,最高64K Flash的程序空間和5376Byte的RAM,17通道10位200Ksps的ADC,C86F340系列帶有外部數據總線接口,支持在系統(tǒng)仿真編程,芯片內集成5V-3.3V的電壓解調器,因此芯片的有效供電電壓范圍為2.7-5.25V。
USBXpress簡化了USB的設計,為USB設備端的固件和主機側的應用軟件提供更高層的API,用戶無需掌握USB協(xié)議的主機端的驅動專門技術即可實現(xiàn)USB的應用,而且該應用軟件完全免費,并已取得Windows的設備驅動認證,支持Silicon Labs公司的所有產品。支持的操作系統(tǒng)有Windows98、Windows2000、WindowsXP,也支持其他操作系統(tǒng)。
Silicon Labs公司的十五款USB MCU產品適合全部的嵌入式應用,高性能的混合信號USB2.0使這些MCU可以很好的滿足市場需求,而且全面的軟件和硬件開發(fā)資源及參考設計加速了產品的開發(fā)周期。
ToolStick開發(fā)平臺
ToolStick開發(fā)平臺是Silicon Labs公司提供的一個低價位的MCU評估開發(fā)平臺,它可以使MCU所有的引腳都可以引出,不同的MCU做在不同的子卡上,子卡即Daughter卡,開發(fā)不同的MCU即選擇不同的子卡。圖5所示的是一個完整的ToolStick工具,左邊的Base Adapter可以與任何Silicon Labs的MCU進行通信,通過USB Debug接口和PC相連;右邊的是Daughter卡,是MCU產品開發(fā)板,不同的MCU所用Daughter卡不同。Toolstick軟件和安裝方法可以在Silicon Labs公司的網站上找到,包括Silicon Labs的IDE,Keil公司2KB代碼的評估板,C語言編譯器,參考代碼以及應用終端軟件等等。
Toolstick開發(fā)平臺將一個完成的開發(fā)系統(tǒng)包括在USBStick里,可以幫助工程師在現(xiàn)場演示如何使用Silicon Labs公司MCU,如何編程仿真和下載程序,Toolstick平臺整個應用方法如圖5所示,PC側IDE通過Base Adapter仿真調試功能對子卡上的單片機進行在線調試,同時安裝在PC側的ToolStick終端軟件可以通過Base Adapter上單片機的UART口、GPIO口跟子卡上的單片機的UART口、GPIO口進行通訊,數據的收發(fā)在這個軟件上都可以顯示出來。ToolStick插上PC以后,電源LED點亮,C8051F326執(zhí)行的是USB調試器和跟USB通信的功能,調試的時候程序的運行和停止都會在Run,Stop LED顯示出來,SocketConnector是和子卡相連的接口。
圖6是C8051F330子卡的硬件圖。其中包括兩個LED,一個指示MCU的3.3V供電是否正常,另一個接在P1.39上給客戶作實驗用;IDIC輸出側接電阻,將電流信號轉換成電壓,通過轉動電位器可以給ADC輸入0-3.3V之間的電壓。C8051F330所有的I/O口都可以引出的,更方便客戶的測試和實驗。
更多詳細內容,敬請登錄中電網在線座談網址:
http://seminar.eccn.com/071206/tindex.asp
問答選編
問:為任何一個微控制器添加USB口,有沒有最簡單的通 用方案?
答:最簡單的方案就是,使用Silicon Labs公司的CP210x系 列產品,不需要做USB的軟件開發(fā),直接將UART口轉 變成USB接口。
問:以往的USB實現(xiàn),往往都是通過加一個芯片,一般都是 支持usb1.1,兼容usb2.0,請問本產品的特點在哪里?
答:Silicon Labs公司的單片機將USB2.0的功能集成到單 片機上,使系統(tǒng)方案更加簡潔、可靠。在手持設備上使用 的話,單芯片的優(yōu)勢更加明顯。
問:我們設計的智能設備用于電力系統(tǒng),原設計是每相用一 個F310的UART接口,三相的三個接口通過串行總線 接口一個匯總的UART接口(第4個UART),通過第4 個接口對外部通信,請問如果用F340等芯片的USB接 口可以嗎?有沒有更好的方案?
答:通過F340的USB接口可以完成跟外部通信的任務,另 外F340的2個UART口也可以完成2相的通信,還需 要軟件模擬一個UART口。
問: C8051F34x MCU進行A/D轉換時,可以實時把轉換后 的數據傳輸到PC嗎? 有多長的延遲時間呢?
答:可以。使用中斷,可以快很多。關于這個問題,還得看你 F34X里的任務和軟件代碼,還有PC機側的響應時間(中 斷、定時、輪詢、任務多少)。
問:在應用方面,協(xié)議中是不是要同時用到幾種傳輸模式? 控制傳輸是不是必需用到的?
答:對,每種USB的傳輸模式中,都會有控制傳輸。其他的 傳輸類別,可以根據你的應用來選擇。
問:把傳統(tǒng)的USB主控移植到嵌入式裝置中,需要理清的 問題是不是比較多?
答:不會,使用SILICON LABS的USB可以省掉很多麻煩。 在MCU或PC機側,我們都有USBEXPRESS、VCP等等 驅動程序來支持。實際上與USB接口有關的東西,你們 的應用程序基本上是不會涉及的。
問:采用USB方案實現(xiàn)實時數據采集的最高采集信號頻率 能到多少?應該如何考慮系統(tǒng)的優(yōu)化和抗干擾問題?
答:這個取決于需要通過USB傳輸有關信號的信息的頻 率。當帶有USB中斷管道時,僅僅1ms發(fā)送一次請求, 這種情況需要考慮到MCU在多個周期內取樣一次外部 信號。
我們的USB案例是基于降低端點1USB路徑花費的時 間量而優(yōu)化的,對于其他MCU任務將會考慮最大時間量。
問:兩個問題,首先是調試時,有時需要將JTAG或兩線接口 和目標板電氣隔離,能否用光電隔離的辦法(如6N137), 能否提供解決方案?第二,不用KEIL時,不能進行軟仿 真,能否增添此方面的功能?
答:第一個問題,只要隔離是雙向的并且支持高達幾百KHz 的速度,使用隔離器就是安全的。
第二個問題,Keil是為Silicon Labs的MCU提供仿真器 的唯一廠商。我們的MCU具有實時硬件調試的性能,因 此典型應用我們推薦使用在實際硬件上調試。這樣可以 提供更高精度的仿真,目前沒有計劃增加仿真器支持Sili - con Labs IDE。
問:在使用USB/UART橋接方案的時候,經常會出現(xiàn)UART 找不到的問題,請問一般是由哪些原因造成的?
答:如果一個器件操作已經打開,則PC無法找到CP210x。 如果一個PC應用已經打開一個操作,并且器件沒有連 接到PC,但是這個操作也不會被關閉,器件也不能被檢 測到。PC應用時,必須在器件重新連接之前關閉操作。
問:塊傳輸中的HIGH SPEED能達到53.2Mbyte/sec,這已 經接近USB2.0理論上的極限值了,能否實現(xiàn)這個速度的 傳輸?與哪些因素有關?
答:Silicon Labs的MCU不支持高速,僅僅可以支持USB 全 速(48 MHz時鐘速度)和USB 低速(6 MHz時鐘)。保持 固件路徑小是達到高吞吐率的一個要求,除非是在必要 情況下,數據不可以在不同的存儲空間移動。
問:C8051F340芯片功耗怎樣,能用于低功耗手持式便攜儀 器嗎?
答:C8051F340 MCU的功耗量示于數據手冊的表3.1(33 頁)。如果器件僅僅用于USB傳輸,可以將其設置在低 功耗模式,這樣當不用USB傳輸時幾乎不需要電流。當 與PC相連接時,可以從USB主機獲取電源,如果MCU 用于采集數據或其他功能,振蕩器可以配置成低速運行 從而降低功耗。此外為了實現(xiàn)低功耗,還有一個片上低 頻率振蕩器。
問:不同速率的USB設備互聯(lián),會出現(xiàn)什么問題?常常遇 到USB設備能檢測到,但是不能識別,是信號完整性的 問題嗎?有沒有很好的解決辦法?
答:首先是USB集線器和USB主機支持連接不同速率的 USB設備(全速USB或高速USB),而一些USB集線器 僅僅可以在USB全速模式下工作。其次,如果PC可以 檢測到一個設備,但是不能識別,可能USB描述符或者 信號集成存在問題。推薦先使用USB分析器檢查USB 枚舉結果,如果枚舉正確,再檢查信號集成。