<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 帶全速USB接口的單片機PIC18F4550的應用設計方法

帶全速USB接口的單片機PIC18F4550的應用設計方法

作者: 時(shí)間:2012-03-30 來(lái)源:網(wǎng)絡(luò ) 收藏

 2.4 的固件

本文引用地址:http://dyxdggzs.com/article/171728.htm

  微芯公司提供了一系列的寄存器,使用這些寄存器可以完成通信。大多數的通信都是通過(guò)中斷來(lái)完成的,在USB中斷服務(wù)程序內,要實(shí)現輸入/輸出,允許大多數的USB程序在后臺完成。從的觀(guān)點(diǎn)來(lái)看,枚舉過(guò)程和數據通信的發(fā)生好像沒(méi)有聯(lián)系。

  對于控制程序,目前沒(méi)有任何廠(chǎng)商提供自動(dòng)生成固件(firmware)的工具,因此所有程序都要由自己手工編制。由于USB協(xié)議的復雜性,并且考慮 到廣大客戶(hù)的需求,因此,Microchip公司在推出系列芯片時(shí),提供了面向不同客戶(hù)群的DEMO程序,這就大大減輕了系統開(kāi)發(fā)人員的負擔,同時(shí)縮短了開(kāi)發(fā)周期。本系統的就是在Microchip公司提供的DEMO程序的基礎上,進(jìn)行必要的修改來(lái)完成的。本的具體固件主要由以下8個(gè)文件組成。

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

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

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

 ?、?usbdrv.c:主要實(shí)現與USB驅動(dòng)相關(guān)的功能,包括檢查總線(xiàn)狀態(tài)、USB模塊使能、USB模塊掛起、遠程喚醒等功能;主要由USBSuspend(void)、USBModuleEnable(void)、USBSoftDetach(void)和USBDriverService(void)等12個(gè)子程序組成。

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

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

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

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

  2.5 PC機軟件編程

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


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

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

 3 結 語(yǔ)

  選擇何種芯片來(lái)設計嵌入式系統,需要根據系統的需求、設計的難易程度和性?xún)r(jià)比等幾個(gè)方面來(lái)考慮。Micro-chip公司為系列提供通用的驅動(dòng)程序、API函數、DEMO板和一系列范例程序等。其中,一些固件的端點(diǎn)與PC機通信的子程序可以直接調用,而不需要重寫(xiě),從而大大提高了開(kāi)發(fā)效率,縮短了產(chǎn)品的研發(fā)周期,這勢必會(huì )導致該系列會(huì )很快占據一部分USB接口市場(chǎng)。正是由于USB的諸多優(yōu)點(diǎn)和光柵位移傳感器有著(zhù)很多其他位移傳感器無(wú)法比擬的優(yōu)點(diǎn),因此,本設計的應用也將會(huì )越來(lái)越廣泛。

干涉儀相關(guān)文章:干涉儀原理



上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 應用 設計 方法 PIC18F4550 單片機 USB 接口 全速

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>