基于单片机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个子程序。
评论