• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于LUFA開源框架庫對AVR芯片進行USB終端設備開發

    基于LUFA開源框架庫對AVR芯片進行USB終端設備開發

    作者:陳哲川 時間:2014-08-26 來源:電子產品世界 收藏
    編者按:  摘要:本文針對一般USB設備的開發過程過于困難、復雜、繁瑣等不利于快速開發的問題,引入了LUFA(Lightweight USB Framework for AVRs)開源框架庫,解決了基于AVR芯片的USB設備的快速開發問題。這種方法能實現快速開發并實現相關的產品,并且有穩定的性能表現,具有工程實踐意義。   概述   目前,USB控制器主要有兩種:一種是帶USB接口的單片機(MCU),另一種是純粹的USB接口芯片。前者的最大優勢在于,開發者對系統結構和指令集非常熟悉,開發工具簡單,容易進行功能

      摘要:本文針對一般設備的開發過程過于困難、復雜、繁瑣等不利于快速開發的問題,引入了(Lightweight Framework for s)開源框架庫,解決了基于芯片的設備的快速開發問題。這種方法能實現快速開發并實現相關的產品,并且有穩定的性能表現,具有工程實踐意義。

    本文引用地址:http://www.czjhyjcfj.com/article/262220.htm

      概述

      目前,USB控制器主要有兩種:一種是帶USB接口的(),另一種是純粹的USB接口芯片。前者的最大優勢在于,開發者對系統結構和指令集非常熟悉,開發工具簡單,容易進行功能拓展,但其成本相對較高;后者的最大特點是,價格便宜,接口方便,可靠性高,但其硬件架構相對復雜,軟件部分限制相對較大。

      在工程實踐中,有時需要快速可靠地開發出相應的USB終端設備,或者針對特定領域開發出專用產品。此時,如果有一個成熟可靠的軟件框架,可以事半功倍地滿足相應的需求。本文針對的部分帶USB接口的,如:AT90USB系列,ATmega8U系列,ATmega16U系列,AT32UC3系列的部分型號,ATXmega系列的部分型號等,介紹開源框架,以實現快速開發USB終端設備,或者針對特定領域開發專用產品。

      1 USB協議概述

      USB是一種串行接口協議,應用日益廣泛。但是,要熟悉其協議內容并不簡單,其協議文檔繁雜羅嗦,Linux uhci驅動作者之一Alan Stern曾經就說過:

      The USB documentation is downright evil. Most of it is just crap, written by a committee. You're better off ignoring most of it.

      他同時還對軟件開發者指出,開發者最需要注意的是兩點:一、底層協議(非常簡單,但很多小細節要注意),二、其他。

      簡而言之,USB協議,在硬件上,靠D+,D-兩條數據線進行差分傳輸,以及NRZI的編碼方式。在通信上,依靠封包(package)格式進行數據傳輸。封包由若干個域(Package Field)構成,每個域由若干位組成(具體的位數由具體的域決定)。其細節部分繁多復雜,上手困難,也極其容易出錯。

      2 開源框架

      LUFA(Lightweight USB Framework for AVRs),由澳大利亞人Dean Camera開發,是一個基于MIT協議分發的開源框架。針對帶USB接口的Atmel AVR8和部分AVR32單片機系列,LUFA實現了一個完全符合USB通信協議的開源框架庫。基于這個框架,不僅能開發出合適的終端設備,也能在部分設備上開發出合適的主控制端。

      該框架庫經過多年的測試改進,現已處于穩定版本。其針對AVR-GCC編譯器進行了優化設計,使用了部分GCC特有的拓展方式,使得這個庫的相關API能更穩定流暢地運行。相關的編譯器AVR-GCC,能在Atmel網站下載到相應系統的版本。在LUFA源碼庫里面,有多達三四十種不同應用的示例版本。

      ● 支持的芯片類型

      LUFA是針對帶USB接口的Atmel AVR 8/32位單片機進行開發的,所以只要是帶USB接口的Atmel AVR單片機,均可使用LUFA開源框架庫。例如:AT90USB系列,ATmega8U系列,ATmega16U系列,AT32UC3系列,ATXmega系列等。詳情可查看LUFA的相關文檔。

      ● 源碼下載

      LUFA的項目主頁(英文)在http://www.fourwalledcubicle.com/LUFA.php。該項目的源碼版本管理托管在github上,相關地址在http://github.com/abcminiuser/lufa。更多詳情,可以在LUFA的項目主頁上查看。

      ● 開發環境搭建

      Atmel提供了相關的工具鏈,使得開發者可以簡單方便地進行開發,包括Linux平臺和Windows平臺。除了Atmel提供的工具鏈之外,還可以使用第三方工具鏈,按照自己的需要來進行開發。同時,LUFA已經成為Atmel Studio 6.1及后續版本的原生插件之一。無論是編譯固件,還是固件上傳,LUFA文檔都提供了詳細的說明。詳情請參閱LUFA文檔部分:LUFA Library -> Getting Started。

      3 設備開發示例說明

      在本示例中,本文以ATmega32U4制作一個可編程鍵盤為示例,演示LUFA開源框架庫的開發流程方式。該示例分成兩大部分:一、制作bootloader,以便對設備進行編程燒錄;二、實現矩陣鍵盤功能。

      ● ATmega32U4微處理器

      ATmega32U4是一款采用低功耗CMOS工藝生產的基于AVR RISC(精簡指令集)接口的高性能、低功耗8位單片機。處理器具有可控制的上電復位延時電路和可編程的前沿檢測電路,帶有雙周期乘法器,以及32個8位通用工作寄存器,內部和外部共計13個中斷源,加上豐富的的指令集,使得大部分的指令執行時僅為一個時鐘周期。因此可達到1MIPS/MHz的性能,運行速度比普通單片機高得多。


    上一頁 1 2 3 下一頁

    關鍵詞: LUFA AVR USB MCU 單片機 201409

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 尼木县| 平昌县| 高阳县| 南陵县| 肃宁县| 南岸区| 澄城县| 商都县| 东海县| 涞水县| 白水县| 盱眙县| 聂荣县| 沈丘县| 德清县| 台东市| 日照市| 黑龙江省| 甘孜县| 福海县| 滁州市| 略阳县| 乐山市| 墨玉县| 遂川县| 新晃| 东台市| 华池县| 开原市| 九龙坡区| 通州区| 桑植县| 和林格尔县| 万安县| 珠海市| 卓资县| 托克托县| 武宁县| 永川市| 玉溪市| 高安市|