基于單片機PIC18F4550的USB接口設(shè)計
微芯公司提供了一系列的USB寄存器,使用這些寄存器可以完成USB通信。大多數(shù)的USB通信都是通過中斷來完成的,在USB中斷服務(wù)程序內(nèi),要實現(xiàn)輸入/輸出接口,允許大多數(shù)的USB程序在后臺完成。從應(yīng)用的觀點來看,枚舉過程和數(shù)據(jù)通信的發(fā)生好像沒有聯(lián)系。
對于單片機控制程序,目前沒有任何廠商提供自動生成固件(firmware)的工具,因此所有程序都要由自己手工編制。由于USB協(xié)議的復(fù)雜性,并且考慮 到廣大客戶的需求,因此,Microchip公司在推出PIC18F4550系列芯片時,提供了面向不同客戶群的DEMO程序,這就大大減輕了系統(tǒng)開發(fā)人員的負(fù)擔(dān),同時縮短了開發(fā)周期。本系統(tǒng)的設(shè)計就是在Microchip公司提供的DEMO程序的基礎(chǔ)上,進行必要的修改來完成的。本設(shè)計的具體固件主要由以下8個文件組成。
① main.c:系統(tǒng)的主程序,包括InitializeSystem()和USBTasks(void)兩個子程序,主要完成系統(tǒng)的初始化以及其他各種子程序的調(diào)用。
?、?usb9.c:實現(xiàn)的是USB協(xié)議第9章的功能,包括枚舉總線的接口和核心功能,以及USB的中斷服務(wù)程序。它處理由USB用戶所產(chǎn)生的所有的中斷。在這個程序中,主要實現(xiàn)對描述符的枚舉以及休眠、復(fù)位功能,主要包括USBCheckStdRequest(void)、USBStdGetDscHandler(void)和USBStdFeatureReqHandler(void)等5個子程序。
評論