<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ZYNQ linux上使用 USB CDC ACM

      一、USB CDC ACM介紹

      USB CDC ACM 是 USB 通信設(shè)備類(CDC)中的一個(gè)子類,它提供了一種通過(guò) USB 接口實(shí)現(xiàn)虛擬串行通信的標(biāo)準(zhǔn)方法。

      1. 基本概念

      CDC ACM 是 USB 規(guī)范中定義的一種設(shè)備類協(xié)議,它模擬傳統(tǒng)的串行端口通信,提供雙向數(shù)據(jù)傳輸通道,支持控制信號(hào)(如 RTS/CTS、DTR/DSR 等,是 USB 轉(zhuǎn)串口設(shè)備的常用實(shí)現(xiàn)方式。

      2. 主要特點(diǎn)

      標(biāo)準(zhǔn)化:遵循 USB-IF 定義的 CDC 規(guī)范

      兼容性:大多數(shù)操作系統(tǒng)內(nèi)置驅(qū)動(dòng)支持

      靈活性:可以在不同硬件平臺(tái)上實(shí)現(xiàn)

      多功能:支持?jǐn)?shù)據(jù)和控制通道分離

      3. 技術(shù)架構(gòu)

      CDC ACM 包含兩個(gè)主要接口:

      3.1 通信接口(Communication Interface)

      管理設(shè)備控制和狀態(tài)

      包含中斷端點(diǎn)(Interrupt Endpoint)

      處理線路編碼、控制信號(hào)等

      3.2 數(shù)據(jù)接口(Data Interface)

      處理實(shí)際數(shù)據(jù)傳輸

      包含批量輸入和輸出端點(diǎn)(Bulk In/Out Endpoints)

      實(shí)現(xiàn)數(shù)據(jù)流傳輸

      二、 Linux-USB Gadget驅(qū)動(dòng)框架

      在ZYNQ等ARM板卡上移植好linux內(nèi)核后,就可以通過(guò)linux USB Gadget驅(qū)動(dòng)框架實(shí)現(xiàn)USB CDC類。

      USB Gadget 框架是 Linux 內(nèi)核中實(shí)現(xiàn) USB 設(shè)備功能的子系統(tǒng),它允許嵌入式設(shè)備作為 USB 從設(shè)備(Peripheral)與主機(jī)通信。

      在 ZYNQ 7000系列SOC上,存在兩個(gè)USB2.0接口,支持USB HOST和USB OTG。

      筆者板卡(正點(diǎn)原子 ZYNQ7035)上的 USB HOST 接口與 USB OTG 接口(也稱 USB Slave 接口)共用了YNQ PS 端的 USB0 接口,所以在正常情況下,USB HOST 和 USB OTG 不能同時(shí)工作,所

      以在 Z100 底板上有一組跳線帽端子 J15 用于控制 USB HOST 和 USB OTG 哪個(gè)接口工作。

      對(duì)于USB OTG 接口工作:

      需要通過(guò)兩個(gè)跳線帽將 J15 端子的 DN 與 SN 相連、DP 與 SP 相連,注意先連接 DN 與SN。

      三、vivado工程配置

      在block design中,添加ZYNQ7 PS后使能USB0接口,并選擇對(duì)應(yīng)的MIO接口:
      image
      image
      設(shè)置完成后,重新生成xsa文件。

      四、設(shè)備樹配置

      在vivado中使能USB0配置后,在PCW.dtsi設(shè)備樹文件中關(guān)于usb0的節(jié)點(diǎn)status 屬性就被設(shè)置為"okay"了,

      image

      所以由此可以知道,其實(shí) pcw.dtsi 文件中已經(jīng)使能了 usb0,但是目前還是不能使用 usb0的,還需要為 usb0 節(jié)點(diǎn)添加一下屬性內(nèi)容,打開(kāi) arch/arm/boot/dts/system-user.dtsi 設(shè)備樹文件,

      添加相關(guān)內(nèi)容。首先需要在 system-user.dtsi 設(shè)備樹根節(jié)點(diǎn)下添加一個(gè) usb_phy0 節(jié)點(diǎn),用于描述 USB phy相關(guān)信息,如下所示:

      image

      其中,dr_mode可以是OTG,也可以為peripheral

      system-user.dtsi 設(shè)備樹文件修改完成之后,保存退出!然后在內(nèi)核源碼根文件目錄下執(zhí)行下面這條命令編譯設(shè)備樹文件:

      make dtbs

      將編譯得到的 system-top.dtb 文件重命名為 system.dtb,將 system.dtb 文件拷貝到開(kāi)發(fā)板SD 啟動(dòng)卡的第一個(gè)分區(qū),替換掉就的設(shè)備樹文件。

      五、內(nèi)核配置

      USB 的HOST在linux內(nèi)核中是默認(rèn)配置的,但是CDC是沒(méi)有默認(rèn)開(kāi)啟的,因此需要配置內(nèi)核相關(guān)配置。

      在內(nèi)核源碼根文件夾下執(zhí)行:

      make menuconfig
      配置路徑為:
      Device Drivers --->
      [] USB support --->
      <
      > USB Gadget Support --->
      <*> USB Gadget precomposed configurations --->
      勾選以下配置:
      20250807-145703

      20250807-145717

      配置好后, save 并退出,重新編譯下內(nèi)核:

      make -j8
      編譯成功后會(huì)在arch/arm/boot下生成zImage內(nèi)核鏡像,將該文件拷貝至U盤的vfat分區(qū)(boot)。

      同時(shí)會(huì)生成相關(guān)驅(qū)動(dòng),目錄如下:
      image
      將以下驅(qū)動(dòng)拷貝至vfat分區(qū)目錄下:

      g_serial.ko, libcomposite.ko, usb_f_acm.ko, usb_f_obex.ko, usb_f_serial.ko, u_serial.ko.

      并啟動(dòng)Linux,按順序加載前面生成的驅(qū)動(dòng)模塊:出現(xiàn)以下信息代表驅(qū)動(dòng)掛載成功了:

      image

      此時(shí)打開(kāi)設(shè)備文件發(fā)現(xiàn)多了/dev/ttyGS0設(shè)備,這個(gè)就是虛擬的串口設(shè)備。
      image

      六、讀寫測(cè)試

      將板卡上的usb slave接口鏈接電腦,這時(shí)候在windows的設(shè)備管理器中發(fā)現(xiàn)這個(gè)USB設(shè)備:
      image

      6.1 終端寫

      在電腦上通過(guò)串口工具(如xcom)打開(kāi)該設(shè)備,并在ZYNQ終端中輸入發(fā)送測(cè)試命令:
      echo hello,this is usb cdc acm device > /dev/ttyGS0`

      在串口工具成功接收到該信息:
      image

      6.2 終端讀

      在ZYNQ終端通過(guò)cat監(jiān)聽(tīng)該USB的接收信息,在串口工具,發(fā)送任意字符,并勾選發(fā)送新行(這里筆者猜測(cè)是終端的內(nèi)核緩沖區(qū)機(jī)制,\n會(huì)讓內(nèi)核接收的信息刷新出來(lái))。否則可能不會(huì)在終端打印出來(lái)
      image

      posted @ 2025-08-07 15:26  羊的第七章  閱讀(403)  評(píng)論(1)    收藏  舉報(bào)
      主站蜘蛛池模板: 久久国产免费直播| 洛阳市| 亚洲色大成网站WWW久久| 狠狠色噜噜狼狼狼色综合久| 久久香蕉国产亚洲av麻豆| 小13箩利洗澡无码视频网站| 久久99精品久久久久久9| 四虎国产精品成人免费久久| 无码日韩av一区二区三区| 熟妇的奶头又大又长奶水视频| 久久婷婷成人综合色综合| 一本久久a久久精品综合| 亚洲综合无码明星蕉在线视频| 大丰市| 国产av一区二区三区无码野战| 日本深夜福利在线观看| 最新亚洲人成无码网站欣赏网| 99er热精品视频| 亚洲AV日韩AV综合在线观看| 国产在线乱子伦一区二区| 熟女精品国产一区二区三区 | 国产熟睡乱子伦午夜视频| 久久综合开心激情五月天| 少妇又爽又刺激视频| 美女网站免费观看视频| 凹凸国产熟女精品视频| 国产草草影院ccyycom| 丰满高跟丝袜老熟女久久| 精品久久精品午夜精品久久| 偷拍久久大胆的黄片视频| 中文字幕久久国产精品| 漂亮人妻被黑人久久精品| 亚洲日韩一区二区| 制服丝袜长腿无码专区第一页| 台北县| 日日碰狠狠添天天爽五月婷| 亚洲精品韩国一区二区| 毛片网站在线观看| 三上悠亚久久精品| 中国女人熟毛茸茸A毛片| 亚洲国产av区一区二|