基于CY7C68013的高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)
2 固件程序設(shè)計(jì)
由于高速數(shù)據(jù)傳輸不需要固件程序參與,固件程序僅僅處理主機(jī)的發(fā)送請求。在發(fā)送端,固件將數(shù)據(jù)放置到I/O口上供MAX7128讀取;在接收端,MAX7128完成串并轉(zhuǎn)換后,將數(shù)據(jù)用特定時序?qū)懭隒Y7C68013。此時只需設(shè)定寄存器,固件程序相對簡單,圖2為發(fā)送和接收固件程序流程。
CY7C68013芯片固件程序負(fù)責(zé)處理主(從)機(jī)發(fā)送來的各種請求,以完成與外圍電路間的各種數(shù)據(jù)傳輸。本系統(tǒng)固件一共包含九個程序文件,其中的頭文件分別定義了CY7C68013中的寄存器名和特殊功能寄存器、通用的CY7C68013常量、數(shù)據(jù)類型和宏、特殊功能寄存器所需要的同步延遲宏、用來描述CY7C68013狀態(tài)的各種USB描述符、INT2和INT4中斷跳轉(zhuǎn)表等。主函數(shù)負(fù)責(zé)處理標(biāo)準(zhǔn)USB請求和自定義請求,控制整個硬件系統(tǒng)的運(yùn)行。接收端固件主循環(huán)不用做任何操作,與發(fā)送端程序流程圖完全相同。其固件運(yùn)行的主程序清單如下,負(fù)責(zé)處理主機(jī)發(fā)出的各種USB請求。
……
TD_Init();//初始化用戶設(shè)備
EZUSB_IRQ_ENABLE();//使能USB中斷(INT2)
EZUSB_ENABLE_RSMIRQ();//使能喚醒中斷
INTSETUP |=(bmAV2EN | bmAV4EN);//使能INT2
//和INT4中斷跳轉(zhuǎn)向量
USBIE |=bmSUDAV | bmSUTOK | bmSUSP | bmURES |
bmHSGRANT;//使能所選擇的中斷
EA=1;//打開8051中斷
UsbDisconnect();
評論