基于單片機PIC18F4550的USB接口設計
微芯公司提供了一系列的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個子程序。
評論