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