歡迎您光臨本站 登入註冊首頁

在單片機上實現USB移動存儲

admin @ 2014-03-26 , reply:0

概述

第1章主要硬體晶元介紹1.1系統總體設計  USB主機系統設計是一個軟、硬體結合的整體,宏觀上主要包括三個層次的設計:USB匯流排物理層介面設計、USB核心繫統設計和USB客戶系統……

第1章 主要硬體晶元介紹
1.1系統總體設計
   USB主機系統設計是一個軟、硬體結合的整體,宏觀上主要包括三個層次的設計:USB匯流排物理層介面設計、USB核心繫統設計和USB客戶系統設計。匯流排介面主要處理主機與設備之間的電氣及協議層的互連,是信息包進出的物理橋樑;USB核心繫統主要管理和協調主機與從機間的邏輯數據傳輸,解析雙方聯繫的握手協議,是驗證信息包的邏輯關卡;客戶系統是最終用戶直接和USB設備功能交互的邏輯平台,不同的USB設備歸屬於不同的類,是利用相關的類協議來實現的,所以客戶系統驅動程序具有多變性,需要為專門的類定製專門的驅動程序。
    在單片機上實現USB移動存儲功能,具體包括USB主機介面的硬體設計和整機USB驅動固件的設計。其中驅動固件的設計具體又包含幾個協議的實現:USB1.1控制傳輸協議、USB BULK傳輸協議、USB海量存儲類協議、UFI磁碟操作命令和FAT文件系統標準等。

1.2硬體設計
1.2.1USB主控制器
    USB主控制器主要是完成底層物理介面設計,是USB系統架構的必要部分,是USB數據包進出的必經通道。本系統採用的USB主機晶元是Cypress公司的SL811HS。Cypress公司是最早從事USB晶元開發的公司之一,其EZ-USB系列晶元在業界有非常好的口碑。SL811HS是當經第一個支持USB 主從機的介面晶元,性能穩定,資料全面。
(1)晶元特性
     SL811HS是自動兼容USB全速或者低速的嵌入式USB主從機的介面晶元,它支持微處理器、微控制器或者DSP的USB介面設計,同時也可以直接連到ISA、PCMICA等其它匯流排[8],晶元使用標準的USB1.1協議。SL811HS通過內部集成的全/低速傳輸引擎產生USB串列介面功能,在全速時帶寬為12Mbps,低速時為1.5Mbps。晶元支持8位并行數據埠或者I/O口的設計,同時也支持DMA,自動中斷檢測連介面,可以非常容易地在MCS-51系列微處理器、摩托羅拉微控制器或者其它控制晶元上完成設計。總的來說具有如下特性:

  1. 可在軟體控制下,單一地實現主機或者從機功能,28腳PLCC,48腳TQFP封裝。
  2. 低速1.5Mbps,高速12Mbps,主從模式下都一樣。
  3. 自動檢測連接設備是否為高速或者低速。
  4. 支持8位雙向並口傳輸,或者I/O口,DMA傳輸。
  5. 片上集成SIE和USB傳輸器。
  6. 片上集成了一個USB根集線器。
  7. 256位元組內部SRAM,支持乒乓傳輸。
  8. 工作頻率在12M或者48M,3.3伏供電,最高5伏耐壓介面。
  9. 支持匯流排掛起、喚醒和掉電模式。
  10. 自動產生SOF和循環冗餘校驗,自動地址增長模式,保存讀寫周期。

SL811HS內部電路結構見圖1.1
 

(2)相關寄存器介紹
    USB系統驅動的編程,實質上就是對SL811HS的寄存器和一些緩存區的讀寫,SL811HS內部一共有256個位元組的緩存,高端240個位元組作為通用內存,可以隨意訪問,低端16個位元組是特殊功能寄存器,USB的一些規範就融合在裡面。SL811HS有A、B兩套并行的寄存器,功能和使用完全一樣,見表1.1。
 
(3)介面電路
    SL811HS既可以作為嵌入式的主機又可以作為設備,靈活性非常大。它可以直接連到處理器或者按內存映射的方式接到ARM處理器上。硬體設計時候主要注意幾個關鍵引腳的處理:

  1. nCS:低電平有效,使能SL811HS介面和讀寫寄存器與內存。必須使nCS在一個傳輸周期中至少要保持65納秒以上才能進行有效的通信。
  2. nWR:低電平有效,要使數據有效nWR也至少需要持續65個納秒以上。一但nWR  為低時,匯流排上的信息至少要保持5個納秒。
  3. nRD:低電平有效,讀取數據之前,必須先寫入地址,nRD的最小周期是65個納秒。一但nRD為低時,匯流排上的信息至少要保持5個納秒。
  4. A0:低電平時代表地址,高電平時代表數據。A0至少要保持10個納秒以上才能保證數據正確寫入。
  5. INTRQ:高電平有效,當傳輸事務完成,或者有外部設備接入時,就會觸發中斷。通過寫入中斷寄存器可以清除中斷。
  6. nRest:低電平有效,SL811HS上電后需要複位。

常見8位嵌入式處理器和SL811HS的連接見圖1.2。SL811HS讀時序見圖1.3,寫時序見圖1.4。
 
 
 
1.2.2 微處理器
    本設計的主要目的是在普通單片機下能夠使用USB移動存儲,同時通過該系統的串口能夠完成讓外部的嵌入式設備也能使用USB移動存儲。主機處理器晶元選用兼容MCS-51指令的AT89C52,並外擴一個32K的RAM。系統的功能設計見圖1.5。
 
    AT89C52控制器主要是通過SL811HS對USB移動存儲進行操作,外部控制按鈕(小鍵盤)輸入不同的值可以實現不同的功能,比如寫文件、讀文件、建立目錄或刪除文件等。RS232介面,主要是留給外部系統使用,其它的嵌入式系統只要接上該系統的串口,按照一定的命令格式就可以通過串口使用USB移動存儲。根據SL811HS容錯報告所知,SL811HS的內部鎖相環非常敏感,易受高頻雜訊干擾,從而導致時鐘抖動,進而會使SOF不準確(標準周期為1毫秒)。解決這個問題有兩種措施:

  1. 盡量使用有源的48M晶體
  2. 備選方案是使用無源48M晶振,同時在SL811HS的VDD腳加上適當的濾波電容,並注意PCB的布線。


[admin via 研發互助社區 ] 在單片機上實現USB移動存儲已經有2717次圍觀

http://cocdig.com/docs/show-post-44809.html