嵌人式操作系統中USB雙向通信的設計與實現
返回值:
0x10:USB驅動出錯(Windows USB 驅動程序出錯)
0x20:內存空間不足
0x30:請求的數據大小為0 B
0x01:下位機讀取數據軟超時
0x04:發送成功
void RequestUSB(void *pRequestBuffer,DWORD Size=5):讀取下位機返回的操作狀態。
參數說明:void *pRequestBuffer:5 B控制包緩沖
其中每次Read或Write函數的調用被分為若干次讀/寫發送。具體處理是: 設待讀寫的數據字節數為X B,當X=5B時,分割為X1=4 B和X2=1 B兩次發送(由于自定義包是5 B,為了與自定義控制包區分開);當5 B16 kB時則分割以16kB為單位的數據進行發送,不足16 kB的部分再發送一次。每次讀/寫發送分3個階段:發控制包,讀/寫數據,讀控制包狀態。
4結語
基于S1C33L11芯片在嵌入式操作系統基礎上實現的USB雙向通信嚴格遵循USB1.1協議,充分利用了S1C33L11芯片的內置功能和嵌入式操作系統的作用,具有交互作用強、嵌入式操作系統中設備無關性好的特點。
評論