<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產品分類

      當前位置: 首頁 > 工業電氣產品 > 電氣附件 > 熱縮管

      類型分類:
      科普知識
      數據分類:
      熱縮管

      ARM嵌入式系統串口擴展

      發布日期:2022-04-18 點擊率:124

      • 關鍵詞: ARM嵌入式系統 ARM 計算機模塊 串口
      • 摘要:ARM嵌入式系統常常會遇到多串口應用需求,而ARM芯片系統原生的UART數目有限,因此就需要通過其他高速總線來擴展更多的接口。本文就以Toradex 基于NXP i.MX6D/6Q處理器的Apalis i.MX6D/Q ARM計算機模塊,在Linux系統下通過EXAR方案擴展8路串口。

      ARM嵌入式系統常常會遇到多串口應用需求,而ARM芯片系統原生的UART數目有限,因此就需要通過其他高速總線來擴展更多的接口。本文就以Toradex 基于NXPi.MX6D/6Q處理器的Apalis i.MX6D/Q ARM計算機模塊,在Linux系統下通過EXAR方案擴展8路串口。

      Apalis i.MX6D/Q模塊自身最多可以支持 5 UART 串口輸出。兼容高速TIA/EIA-232F(最高 5Mbit/s)。支持78 或者 9(用于RS485)位數據,1或者2位停止位。其中 UART1 為全功能串口,其余部分串口也可支持 RTSCTS 信號。

      Linux 系統中一般會保留一個串口用于應用調試開發以及系統升級。雖然 SSH 等功能也可以用于遠程網絡訪問以及系統調試,但是對于嵌入式產品,系統啟動時,特別是 Uboot 啟動的信息,可以有助于功能調試以及問題定位。而這部分信息只能從串口輸出。Toradex 模塊在更新Linux BSP 的時候也同樣需要在 Uboot 進行。

      Apalis i.MX6Q/D 模塊剩余的4個串口,除了可以使用TTL 電平直接控制相應的外設,也可以擴展為 RS232/RS485/RS422 常用的工業控制端口。對于更多串口的需求,目前有多種方案實現串口擴展,例如通過 USBSPIMemory BusI2C以及 PCIe 等總線。 Memory Bus PCIe 相對于其他總線具有更高的實時性,在同一個接口上也能夠擴展出更多的串口。對于串口數量以及數據實時性較高的應用可以優先選擇這兩種擴展方案。與此同時, Memory Bus PCIe 屬于高速信號總線,在 PCB 布線方面需要一些特殊考慮。Toradex 為此也提供了免費的 PCB 設計指導。下面我們就將介紹如何使用 EXAR 基于 PCIe 總線的XR17V358方案,擴展 8 路串口。

      1). XR17V358方案簡介及驅動下載

      XR17V358 擴展的 8 個串口均支持RTS/CTS 或者 DTR/DSR 流控功能,每個串口帶有 256 字節的 FIFO,獨立時鐘輸出,支持半雙工 RS485,最高傳輸速度為 25 Mbps XR17V358 使用 PCIe 2.0 Gen 1 Apalis i.MX6Q/D 相連接,保證高速實時地數據傳輸。EXAR 目前為 XR17V358 提供了 Windows Linux 驅動。這里我們采用其最新的 Linux 驅動,并移植到 Apalis i.MX6 平臺上。驅動源碼下載地址http://www.exar.com/common/content/document.ashx?id=20121

      2). 配置編譯環境

      在編譯之前,還需要下載  Apalis i.MX6 Linux 內核以及交叉編譯工具。

      a). Apalis i.MX6 Linux 內核下載

      $ git clone -b toradex_imx_3.14.28_1.0.0_ga-nextgit://git.toradex.com/linux-toradex.git


      b). 交叉編譯工具下載

      $ wgethttp://releases.linaro.org/14.11/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz

      $ tar xvfgcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz

      $ ln -sgcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf gcc-linaro

      $ export ARCH=arm

      $ export PATH=~/gcc-linaro/bin/:$PATH

      $ export CROSS_COMPILE=arm-linux-gnueabihf-

      注意:上面的路徑需要對應交叉編譯工具實際解壓的目錄。


      c). 編譯 Linux 內核,為XR17V358  提供必要的配置文件。

      $ make apalis_imx6_defconfig

      $ make -j4 uImage LOADADDR=10008000


      d). 編譯  XR17V358 驅動

      // 編輯 Makefile 文件,將KERNEL_SRC  指向 Linux 內核所在目錄

      KERNEL_SRC =/home/ban/Toradex/oe-core-tegra/LinuxKernel/v2.5/mx6/toradex_imx_3.14.28_1.0.0_ga-next/linux-toradex

      // 保持后運行 make 命令進行編譯,確保上面提到的 ARCHPATH CROSS_COMPILE 參數仍然有效。

      $ make

      // 編譯成功后會生成針對 ARM 處理器的內核模塊文件  xr17v35x.ko

      $ file xr17v35x.ko

      xr17v35x.ko: ELF 32-bit LSB  relocatable, ARM, EABI5 version 1 (SYSV),BuildID[sha1]=399121b7862105b185e24b45ba3522f14158295e, not stripped


      e). 安裝驅動

      xr17v35x.ko 復制到 Apalis i.MX6 模塊上,并安裝

      root@apalis-imx6:~# insmod xr17v35x.ko

      [ 151.156648] Exar PCIe (XR17V35x) serial driver Revision: 2.0


      root@apalis-imx6:~# lspci

      00:00.0 PCI bridge: Device 16c3:abcd (rev01)

      01:00.0 PCI bridge: PLX Technology, Inc.PEX 8605 PCI Express 4-port Gen2 Switch (rev aa)

      02:01.0 PCI bridge: PLX Technology, Inc.PEX 8605 PCI Express 4-port Gen2 Switch (rev aa)

      02:02.0 PCI bridge: PLX Technology, Inc.PEX 8605 PCI Express 4-port Gen2 Switch (rev aa)

      02:03.0 PCI bridge: PLX Technology, Inc.PEX 8605 PCI Express 4-port Gen2 Switch (rev aa)

      03:00.0 Serial controller: Exar Corp.Device 0358 (rev 03)


      /dev 目錄下出現對應的串口設備文件 ttyXR0 ttyXR7

      root@apalis-imx6:/dev# ls

      autofs              network_latency     tty18               tty60

      block               network_throughput  tty19               tty61

      bus                 null                tty2                tty62

      char                port                tty20               tty63

      console             ppp                 tty21               tty7

      cpu_dma_latency     ptmx                tty22               tty8

      cuse                ptp0                tty23               tty9

      disk                pts                 tty24               ttyXR0

      dri                 ram0                tty25               ttyXR1

      fb                  ram1                tty26               ttyXR2

      fb0                 ram10               tty27               ttyXR3

      fb1                 ram11               tty28               ttyXR4

      fb2                 ram12               tty29               ttyXR5

      fb3                 ram13               tty3                ttyXR6

      fd                  ram14               tty30               ttyXR7


      f). 設置波特率

      root@apalis-imx6:~# stty -F /dev/ttyXR0115200

      驅動加載完畢后,在 Linux 中可以和其他串口一樣正常使用。


      下一篇: PLC、DCS、FCS三大控

      上一篇: 索爾維全系列Solef?PV

      推薦產品

      更多
      主站蜘蛛池模板: 亚洲国产综合91精品麻豆| 亚洲欧美熟妇综合久久久久| 亚洲国产精品综合久久久| 色综合综合色综合色综合| 色先锋资源久久综合5566| 亚洲国产婷婷综合在线精品| 亚洲综合一区二区精品导航| 国产色丁香久久综合| 亚洲色欲久久久久综合网| 久久88色综合色鬼| 综合激情区视频一区视频二区 | 色婷婷综合久久久中文字幕| 色综合AV综合无码综合网站| 国产99久久亚洲综合精品| 日日AV色欲香天天综合网| 天天做天天爱天天综合网2021| 老色鬼久久综合第一| 亚洲av综合av一区二区三区| 丁香五月亚洲综合深深爱| 一本色道久久88综合日韩精品| 亚洲综合久久综合激情久久| 亚洲国产天堂久久综合| 亚洲熟女综合一区二区三区| 国产色丁香久久综合| 久久综合给久久狠狠97色| 狠狠色色综合网站| 亚洲精品第一国产综合境外资源 | 亚洲人成综合在线播放| 久久综合综合久久综合| 久久综合九色综合欧洲| 人人狠狠综合久久亚洲婷婷| 精品国产综合成人亚洲区| 一本久道久久综合中文字幕| 激情婷婷成人亚洲综合| 久久天堂av综合色无码专区| 亚洲精品第一国产综合亚AV| 色婷婷色综合激情国产日韩 | 狠狠色狠狠色综合系列| 色婷婷久久综合中文久久一本`| 色综合久久最新中文字幕| 色偷偷91综合久久噜噜噜男男|