《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于單片機PIC18F4550的USB接口應用設計
基于單片機PIC18F4550的USB接口應用設計
摘要: 本文以光柵位移傳感器檢測系統的設計為背景,詳細介紹了帶全速USB接口的單片機PIC18F4550的應用設計方法。
Abstract:
Key words :
</a>USB接口" title="USB接口">USB接口" title="USB接口">USB接口功能的單片機。使用這些專用芯片構成的數據采集系統電路設計簡單,調試方便,電磁兼容性好。然而,目前大部分具有USB功能的單片機都是專門針對個人計算機外圍設備或消費市場的需要而設計的,忽略了嵌入式工程師的需要。Microchip公司新款PIC18F4550系列單片機的問世,為廣泛的嵌入式應用增添了全速USB的優勢,即使遇到惡劣的操作環境或在只能不定時地連接個人計算機的情況下,也能正常工作。

  本文以光柵位移傳感器檢測系統的設計為背景,詳細介紹了帶全速USB接口的單片機PIC18F4550的應用設計方法。

  1 PIC18F4550介紹

  PIC18F4550是Microchip公司最新生產的帶全速USB接口的8位高檔單片機,芯片為40/44腳封裝。該單片機除了具有PIC單片機所特有的精簡指令集(RISC)、數據總線和指令總線相互獨立的哈佛(Harvard)結構等特點外,還配備了自編程閃存存儲器以及納瓦節能技術,工作頻率達48 MHz,數據傳輸速率高達12 Mbps。另外,還具有Microchip先進PMOS電可擦除單元(PEEC)閃存技術,耐擦寫次數可高達100萬次,而數據保存期能超過40年。因而該芯片有很強的控制能力和靈活的工作方式。新器件的全速USB 2.0接口具有1 KB雙重存取RAM,支持高達32個端點(雙向16對)和2種數據傳輸速率(即全速模式1 2 Mbps和低速模式1.5 Mbps),具有USB協議所規定的4種數據傳輸方式(控制傳輸方式、中斷傳輸方式、批量傳輸方式和實時傳輸方式)。該接口包括一個片上收發器和一個并行流端口,能把數據直接傳送到外部的設備,不僅減小了CPU的開銷,而且大大增強了系統的抗干擾能力和工作可靠性。

  PIC18F4550的硬件資源非常豐富,包含33個I/O,I/O端口為端口A、B、C、D、E;具有多個中斷源和1個中斷優先級選擇,4個定時器,32 KB程序閃存,256字節EEP-ROM數據存儲器,2 048字節數據隨機存儲器以及8×8硬件乘法器;集成了13通道的10位A/D轉換器,2個CCP(比較/捕捉/PWM)模塊,1個增強型CCP模塊和1個看門狗;具有省電功能的休眠模式;1個USART不僅支持異步與同步的串行通信,而且支持LIN總線;2個模擬比較器,支持I2C和SPI通信的主控同步串行端口,可編程欠壓復位及低電壓檢測電路等。

  PIC18F4550單片機的一個關鍵特性在于它配備了32 KB自編程增強型閃存,使得設計人員可以通過USB端口對最終應用進行現場升級。結合新器件配備的一系列片上外設和納瓦技術(nanoWatt)的功耗管理功能,使其非常適用于多種嵌入式應用,包括工業、醫療、汽車、電池供電和消費類產品等。

  2 PIC18F4550的設計應用

  2.1 光柵位移傳感器的基本工作原理、特點

  光柵位移傳感器的基本工作原理是利用一對光柵,其中一塊是固定的,而另一塊是運動的。當它們發生相對運動并有光通過兩者時,能夠獲得相當于干涉儀中得到的條紋信號,即所謂的“莫爾條紋信號”。對于一對計量光柵,彼此移動一條刻槽(現代計量光柵常采用4~250 L/mm)就移動一條莫爾條紋。條紋寬度不受波長影響,并且條紋較寬可進行內插,由于誤差平均效應,因而可以獲得很高的精度。與普通位移傳感器相比,它有以下幾個特點:?、?精度高。光柵位移傳感器在大量程測量長度或直線位移方面僅僅低于激光干涉傳感器;在圓分度和角位移測量方面,光柵式傳感器屬于精度最高的。

  ② 大量程測量兼有高分辨率。感應同步器和磁柵式傳感器也具有大量程測量的特點,但分辨力和精度都不如光柵位移傳感器。

 ?、?可動態測量,易于實現測量及數據處理自動化。

 ?、?具有較強的抗干擾能力,對環境條件的要求不像激光干涉傳感器那么嚴格,但不如感應同步器和磁柵式傳感器的適應性強。油污和灰塵會影響它的可靠性,主要適合于在實驗室和環境較好的車間使用。

  2.2 PIC18F4550硬件設計

  PIC18F4550的USB接口硬件設計比較簡單,而單片機控制的外圍設備屬于一般單片機設計,可以參照一般PIC單片機的設計方法。對于USB接口,Microchip公司提供了一套開發套件(Demo板)幫助使用者開發自己的產品。它提供了應用程序、驅動程序和固件,幫助使用者熟悉USB的工作過程;同時,可以直接利用開發套件來擴展外圍設備。

  圖1是一個光柵位移傳感器檢測系統硬件電路框圖,主要實現數據的采集、處理、傳輸和PWM脈沖的產生等。從光柵傳感器輸入的信號有5路:±sin,±cos以及零窗信號zero。經差分放大電路合成,分3路進入PIC單片機模擬量輸入口進行A/D轉換;同時,經差分放大電路合成后的sin、cos信號經過零比較器后轉換成數字脈沖信號,然后經D觸發器和“與”門電路完成光柵位移的辨向。PIC單片機T0和T1口接收來自“與”門電路的數字脈沖,完成光柵位移的計數(計算光柵尺移動的完整光柵數);PIC單片機RC1口輸出4 MHz的PWM脈沖信號作為D觸發器的CP信號。計算機的USB接口兩根數據線分別接PIC18F4550的D+和D-口,用于完成計算機和單片機之間的數據通信。計算機的USB電源一方面為PIC微處理器提供能源,另一方面通過電源模塊轉換成±12 V電源,為運放電路提供正負電源。

  2.3 單片機軟件部分設計

  單片機的軟件部分主要完成光柵位移傳感器的數據采集、A/D轉換、計算光柵位移傳感器的正向、反向莫爾條紋的個數、為數字電路提供CP脈沖以及完成USB的通信等工作。圖2是單片機軟件部分的流程圖。

  2.4 PIC18F4550的固件設計

  微芯公司提供了一系列的USB寄存器,使用這些寄存器可以完成USB通信。大多數的USB通信都是通過中斷來完成的,在USB中斷服務程序內,要實現輸入/輸出接口,允許大多數的USB程序在后臺完成。從應用的觀點來看,枚舉過程和數據通信的發生好像沒有聯系。

  對于單片機控制程序,目前沒有任何廠商提供自動生成固件(firmware)的工具,因此所有程序都要由自己手工編制。由于USB協議的復雜性,并且考慮 到廣大客戶的需求,因此,Microchip公司在推出PIC18F4550系列芯片時,提供了面向不同客戶群的DEMO程序,這就大大減輕了系統開發人員的負擔,同時縮短了開發周期。本系統的設計就是在Microchip公司提供的DEMO程序的基礎上,進行必要的修改來完成的。本設計的具體固件主要由以下8個文件組成。

 ?、?main.c:系統的主程序,包括InitializeSystem()和USBTasks(void)兩個子程序,主要完成系統的初始化以及其他各種子程序的調用。

  ② usb9.c:實現的是USB協議第9章的功能,包括枚舉總線的接口和核心功能,以及USB的中斷服務程序。它處理由USB用戶所產生的所有的中斷。在這個程序中,主要實現對描述符的枚舉以及休眠、復位功能,主要包括USBCheckStdRequest(void)、USBStdGetDscHandler(void)和USBStdFeatureReqHandler(void)等5個子程序。

③ usbctrltrf.c:主要實現USB控制傳輸所需的各種功能,主要由USBCtrlTrfSetupHandler(void)、USBCtr-lEPServiceComplete(void)和USBPrepareForNextSetup-Trf(void)等8個子程序組成。

 ?、?usbdrv.c:主要實現與USB驅動相關的功能,包括檢查總線狀態、USB模塊使能、USB模塊掛起、遠程喚醒等功能;主要由USBSuspend(void)、USBModuleEnable(void)、USBSoftDetach(void)和USBDriverService(void)等12個子程序組成。

 ?、?usbdsc.c:主要是對該系統的描述,包括廠商、產品號等的描述。

 ?、?usbgen.c:對USB設備類的配置(在這里把它配置為通用USB類),主要包括USB通用類的初始化端點和讀寫,由USBGenInitEP(void)、USBGenRead(byte*buffer,byte len)和USBGenWrite(byte*buffer,bytelen)三個子程序組成。

 ?、?usbmmap.c:主要用于檢查USB在通信過程中,端點號與BDT(緩沖器描述符表)之間的匹配。

 ?、?user.c:直接面向用戶的應用程序,可以幫助用戶完成自己的初始化配置、處理數據的讀/寫、I/O口的處理,設備的請求等。本設計中下位機的大部分功能都是由這個程序來實現的,比如A/D轉換及其數據的讀取、1MHz的PWM波形產生等。它主要包括UserInit(void)、BlinkUSBStatus(void)、ServiceRequests(void)、ProcessIO(void)、ResetTempLog(void)和ReadPOT(void)六個子程序。

  2.5 PC機軟件編程

  要編寫PC機上的軟件,可以利用Microchip公司提供的開發工具包。該工具包是一個安裝程序,安裝后可以在安裝目錄下找到USB通用的驅動程序、用Borland C編寫的應用程序、一些固件代碼,以及編寫應用程序所需的API函數等。對于一般的應用,驅動程序可以直接使用,無需重編。在編程中主要用到以下7個API函數:MPUSBGetDLL Version(),返回DLL的版本號;MPUSB-GetDeviceCount(),返回連接沒備的數目;MPUSBOpen(),返回指定pVID_PID和pEP的USB設備端點的句柄,返回的是一個端點句柄;MPUSBRead(),從IN端點讀取數據并填入緩沖區;MPUSBWrite(),對一個OUT端點寫入數據并使用pData緩沖區;MPUSBReadInt(),從Inter-rupt IN端點讀取數據并填人緩沖區;MPUSBClose(),關閉一個端點的句柄。因為Microchip公司提供的MPUS-BAPI.DLL源程序是用Borland C編寫的,這一程序無法在VC環境下編譯,所以也不能產生隱式調用所需的.LIB文件,因此本設計在使用DLL時用的是顯式鏈接。


  PC機的軟件部分主要用于實現上位機同下位機之間的USB通信,光柵位移傳感器位移信號的細分和顯示等功能。實現這一功能的方法有很多種,比如采用簡單的VB、數據處理能力很強的Delphi,或國內外廣泛采用的Borland C和VC等。為了下一步的軟件開發以及與廠家的其他軟件接口,本系統上位機的軟件部分采用VC++6.0來實現。圖3是PC機軟件部分的流程圖。

帶全速USB接口的PIC18F4550應用設計

 3 結 語

  選擇何種芯片來設計嵌入式系統,需要根據系統的需求、設計的難易程度和性價比等幾個方面來考慮。Micro-chip公司為PIC18F4550系列單片機提供通用的驅動程序、API函數、DEMO板和一系列范例程序等。其中,一些固件的端點與PC機通信的子程序可以直接調用,而不需要重寫,從而大大提高了開發效率,縮短了產品的研發周期,這勢必會導致該系列單片機會很快占據一部分USB接口市場。正是由于USB的諸多優點和光柵位移傳感器有著很多其他位移傳感器無法比擬的優點,因此,本設計的應用也將會越來越廣泛。

此內容為AET網站原創,未經授權禁止轉載。

相關內容


热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲美女在线视频| 国产精品亚洲一区二区三区在线| 在线观看欧美视频| 国产精品裸体一区二区三区| 国产欧美精品在线播放| 国产欧美在线观看一区| 亚洲老板91色精品久久| 欧美日韩精品三区| 在线看片成人| 亚洲激情另类| 国产日韩精品一区二区三区在线| 久久全球大尺度高清视频| 先锋影院在线亚洲| 欧美区高清在线| 亚洲国内欧美| 久久经典综合| 国产毛片精品视频| 亚洲第一中文字幕在线观看| 久久国产精品久久久久久电车| 欧美精品七区| 欧美系列精品| 久久国产精品久久精品国产| 亚洲婷婷综合久久一本伊一区| 在线免费观看一区二区三区| 亚洲一区二区在线| 久久精品国产欧美亚洲人人爽| 国产欧美一区在线| 免费成人小视频| 亚洲视频免费观看| 国产精品乱看| 性欧美大战久久久久久久免费观看| 黄色一区二区三区| 国产欧美日韩伦理| 欧美午夜激情视频| 欧美午夜宅男影院在线观看| 免费高清在线视频一区·| 欧美日韩免费在线| 久久久久综合一区二区三区| 亚洲一区免费| 欧美一区二区精品在线| 亚洲观看高清完整版在线观看| 欧美国产日韩xxxxx| 免费的成人av| 亚洲国产欧美在线人成| 国产亚洲成精品久久| 国产精品盗摄一区二区三区| 在线中文字幕一区| 久久精品国产96久久久香蕉| 亚洲国产另类精品专区| 激情综合在线| 国产精品欧美激情| 国产亚洲视频在线| 国产日韩欧美综合在线| 欧美一级视频精品观看| 亚洲人体一区| 欧美视频一区二区三区四区| 久久久人成影片一区二区三区观看| 欧美中日韩免费视频| 欧美三级网址| 国产精品美女久久久久久2018| 玖玖精品视频| 禁久久精品乱码| 亚洲免费影视| 亚洲黄页视频免费观看| 亚洲精品视频一区| 国产精品草莓在线免费观看| 91久久国产综合久久91精品网站| 亚洲国产黄色片| 一区二区三区视频在线看| 亚洲午夜女主播在线直播| 亚洲国产精品欧美一二99| 亚洲专区在线视频| 欧美一区二区三区免费观看| 亚洲国产成人av| 麻豆精品在线播放| 国产精品久久久久久av福利软件| av不卡免费看| 欧美日韩在线电影| 欧美午夜免费影院| 日韩午夜免费| 午夜精品久久一牛影视| 欧美一级夜夜爽| 欧美激情乱人伦| 国产欧美婷婷中文| 久久久久国产精品午夜一区| 亚洲欧美日韩国产精品| 免费高清在线视频一区·| 欧美日韩亚洲另类| 亚洲国产高清一区| 久久精品天堂| 校园春色国产精品| 亚洲性视频网站| 国产精品av一区二区| 国产一区二区主播在线| 老司机aⅴ在线精品导航| 亚洲午夜一二三区视频| 最新国产成人av网站网址麻豆| 亚洲精品国产精品国自产观看| 欧美成人福利视频| 亚洲图片在线| 日韩亚洲欧美在线观看| 毛片av中文字幕一区二区| 一区二区三区鲁丝不卡| 亚洲麻豆国产自偷在线| 国产精品亚洲网站| 国产美女精品一区二区三区| 欧美极品在线播放| 午夜一区二区三区不卡视频| 亚洲激情第一区| 欧美激情中文字幕乱码免费| 亚洲美洲欧洲综合国产一区| 男男成人高潮片免费网站| 欧美福利在线| 久久影音先锋| 久久亚洲欧美| 午夜精品久久久久久99热| 亚洲视频精选在线| 久久人人超碰| 欧美在线亚洲在线| 日韩视频―中文字幕| 亚洲视频一起| 米奇777在线欧美播放| 久久理论片午夜琪琪电影网| 国产欧美日韩综合精品二区| 欧美久久视频| 亚洲精品国产精品国自产观看浪潮| 国产日韩欧美一区二区三区在线观看| 亚洲性感激情| 亚洲一区美女视频在线观看免费| 日韩亚洲国产欧美| 欧美一区亚洲| 亚洲——在线| 黄色日韩精品| 久久久噜噜噜久久人人看| 美玉足脚交一区二区三区图片| 久久久99久久精品女同性| 欧美视频日韩| 亚洲精品视频免费在线观看| 一本久道久久综合中文字幕| 国产精品久久久久久久久免费桃花| 久久精品综合网| 久久久蜜臀国产一区二区| 国产精品毛片大码女人| 久久久最新网址| 9色porny自拍视频一区二区| 久热精品视频在线观看一区| 亚洲三级免费观看| 久久亚洲国产精品一区二区| 欧美三区在线观看| 99re66热这里只有精品3直播| 国产欧美日本| 久久男人资源视频| 欧美在线www| 国产欧美在线观看一区| 久久夜精品va视频免费观看| 亚洲第一精品福利| 亚洲激情一区| 亚洲精品免费在线| 久久精品盗摄| 国产精品剧情在线亚洲| 欧美成人免费大片| 欧美风情在线观看| 亚洲电影免费观看高清| 久久久久一本一区二区青青蜜月| 久久深夜福利| 国产精品久久久久久久免费软件| 黄色成人免费观看| 欧美性大战xxxxx久久久| 久久国产精品黑丝| 精品999日本| 国产婷婷色一区二区三区| 亚洲国产网站| 一色屋精品视频免费看| 亚洲精品之草原avav久久| 一区视频在线| 国产有码在线一区二区视频| 欧美日韩一级黄| 国产精品区二区三区日本| 欧美日产国产成人免费图片| 国产精品自拍一区| 欧美日韩免费观看一区| 欧美极品欧美精品欧美视频| 欧美 日韩 国产 一区| 国产亚洲一区二区三区| 亚洲国产精彩中文乱码av在线播放| 国产视频在线观看一区| 欧美日韩三级一区二区| 亚洲一区制服诱惑| 国产手机视频一区二区| 亚洲国产天堂久久国产91| 亚洲欧美在线磁力| 国产欧美日韩一区二区三区| 久久青草久久| 夜夜爽av福利精品导航| 亚洲午夜av在线| 国产视频不卡| 一区二区精品在线观看| 中文日韩在线| 91久久线看在观草草青青| 国产精品美女久久久久av超清| 久久精品一级爱片| 榴莲视频成人在线观看| 亚洲一区二区免费看| 久久一区国产| 国产深夜精品福利| 葵司免费一区二区三区四区五区| 欧美在线视频观看| 亚洲三级免费观看| 亚洲女人天堂av| 亚洲第一福利在线观看| 亚洲一区成人| 亚洲专区一区二区三区| 久久综合色天天久久综合图片| 欧美一级片久久久久久久| 亚洲国产91色在线| 欧美日韩视频| 亚洲欧美成人精品| 欧美日韩一区二区三区免费看| 日韩视频永久免费| 欧美一区二区大片| 久久亚洲一区| 翔田千里一区二区| 欧美午夜视频在线| 国语自产精品视频在线看抢先版结局| 欧美一区二区成人6969| 国产一区二区中文字幕免费看| 老牛国产精品一区的观看方式| 欧美日本高清一区| 一道本一区二区| 亚洲午夜激情网页| 在线国产亚洲欧美| 麻豆精品精品国产自在97香蕉| 国产一区自拍视频| 国产麻豆精品在线观看| 国产在线乱码一区二区三区| 欧美影院成年免费版| 一本色道久久综合亚洲精品小说| 久久综合给合| 欧美连裤袜在线视频| 日韩一二在线观看| 蜜桃久久av一区| 欧美日韩色婷婷| 99精品国产在热久久婷婷| 亚洲性xxxx| 国产精品久久久久一区| 欧美精品一区二区三区视频| 欧美日韩专区在线| 国产精品久久久久久久久搜平片| 亚洲欧美日韩精品在线| 国产精品美女主播在线观看纯欲| 国产揄拍国内精品对白| 欧美视频一二三区| 国产精品二区三区四区| 欧美激情精品久久久久久蜜臀| 欧美午夜一区二区| 99精品视频免费全部在线| 亚洲国内欧美| 午夜精品久久久久久久99热浪潮| 国产精品二区影院| 欧美一区观看| 久久久www成人免费毛片麻豆| 国产精品xxx在线观看www| 亚洲欧洲一区二区天堂久久| 久久精品人人爽| 国产精品久久午夜夜伦鲁鲁| 欧美日韩性视频在线| 亚洲一区二区三区四区视频| 欧美成人精品1314www| 精品999在线播放| 午夜视频久久久久久| 亚洲国产一区在线| 欧美视频日韩视频在线观看| 亚洲一区欧美激情| 欧美一区二区视频在线| 欧美插天视频在线播放| 欧美午夜剧场| 国产乱子伦一区二区三区国色天香| 欧美国产精品中文字幕| av不卡在线| 国产亚洲欧美日韩一区二区| 老司机免费视频久久| 久久色在线观看| 日韩亚洲欧美一区二区三区| 亚洲视频在线观看免费| 最新成人av网站| 国产精品免费一区二区三区在线观看| 免费一级欧美片在线观看| 蜜臀av性久久久久蜜臀aⅴ| 在线视频欧美日韩| 久久久久欧美精品| 一区二区三区成人| 精品成人乱色一区二区| 欧美视频在线观看 亚洲欧| 性欧美xxxx大乳国产app| 国模精品一区二区三区| 欧美日韩国产999| 亚洲老板91色精品久久| 久久国产一区二区三区| 国产精品v一区二区三区| 亚洲欧洲精品成人久久奇米网| 亚洲一区在线视频| 国产九色精品成人porny| 99精品视频免费在线观看| 亚洲欧美日韩一区二区在线| 国产精品美女午夜av| 久久久久**毛片大全| 国产欧美va欧美不卡在线| 国产精品大全| 久久精品国产久精国产爱| 国产精品主播| 国产精品日韩在线| 亚洲欧美日韩中文播放| 国产女主播一区二区三区| 欧美体内谢she精2性欧美| 亚洲国产一成人久久精品| 久久在精品线影院精品国产| 国产人久久人人人人爽| 欧美成人免费视频| a91a精品视频在线观看| 在线免费日韩片| 亚洲国产精品电影在线观看| 黄色在线一区| 午夜视频在线观看一区二区三区| 美乳少妇欧美精品| 99视频热这里只有精品免费| 久久一二三区| 亚洲精品在线三区| 夜夜嗨av一区二区三区网站四季av|