首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

.NET Micro Framework 新特性:USB 雙介面支援 (Composite Device)

     編輯:關於.NET

背景動機

早期開發板僅單一 USB 介面,SideShow 通訊與 MF 偵錯皆需 USB,驅動程式衝突導致無法同時偵錯與測試 USB 功能。USB 雙介面 (Composite Device) 讓單一實體裝置呈現兩個邏輯介面 (如 Debug + Mass Storage / HID / Application),解決驅動共存與線上偵錯難題。

實作層級修改

  1. USB 介面配置:將單一介面描述符修改為兩個介面 (Interface 0、1)。
  2. USB 驅動端點擴充:原支援端點 1/2 (介面 0),新增端點 3/4 (介面 1) 支援。
  3. PAL 層介面:增加端點 3/4 讀寫函數。
  4. P/Invoke 封送:讓 C# 程式可呼叫端點 3/4 讀寫 (端點 1/2 保留給偵錯器)。
  5. Windows 驅動程式:修改 INF 支援複合裝置;若介面為 HID/Mass Storage 則免驅動開發。
  6. 完整測試:Debug+Mass Storage、Debug+HID、Debug+Application 均通過驗證。

裝置端測試程式 (回送測試)

using System; using Microsoft.SPOT; using System.Threading; using Microsoft.SPOT.Hardware;
namespace USBDeviceTest {
  public class Program {
    public static void Main() {
      byte[] buf = new byte[1024];
      YFInterop.MFNative.Usb_Open(0); // 開啟介面 1 (端點 3/4)
      while (true) {
        int sz = YFInterop.MFNative.Usb_Available();
        if (sz > 0 && YFInterop.MFNative.Usb_Read(buf, 0, sz) == sz) {
          string dbg = sz + ":";
          for (int i=0;i

測試環境

  • VS 2008 維持偵錯模式 (介面 0),即時列印 Debug.Print。
  • PC 端自製 USB 讀寫工具 (介面 1) 同時收發資料,驗證雙介面並行運作。

擴充性

架構支援任意擴充至 3、4 個或更多介面,依產品需求組合 Debug、Mass Storage、HID、Vendor-defined 等功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved