在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于嵌入式Linux 和Docker平臺測試CAN通信

星星科技指導員 ? 來源:eetop ? 作者:toradex ? 2024-02-19 09:39 ? 次閱讀

1).簡介

隨著嵌入式設備的發展,由于部署更靈活應用方便等特性,原本在網絡應用中廣泛使用的docker技術也慢慢在一些嵌入式設備中應用,因此本文就基于嵌入式ARM平臺使用集成docker技術的Liinux系統來測試CAN通信功能。

本文所演示的平臺來自于Toradex Colibri iMX8X ARM嵌入式平臺,這是一個基于NXP iMX8X ARM處理器,支持Cortex-A35和Coretex-M4架構的計算機模塊平臺。

2.準備

a).Colibri iMX8X 2GB WB ITARM核心版配合Colibri Evaluation載板,連接調試串口UART1(載板X27)到開發主機方便調試。

b). Colibri iMX8X通過Toradex Easy Installer安裝包含Docker支持的Torizon Linux操作系統,目前最新的monthly發布TorizonCore 5.1.0-devel-202012+build.6

c).Apalis iMX8QM4GB WB IT ARM核心版配合Ioxra載板,連接調試串口UART1(載板X22)到開發主機方便調試。

d). Apalis iMX8QM同樣通過Toradex Easy Installer安裝標準嵌入式Linux用于CAN接口測試時候對接,系統版本為Linux Reference Multimedia 5.1.0-devel-202012

3).測試系統配置

a). Colibri iMX8X CAN接口對應管腳說明如下,本文測試使用FlexCAN1接口

c3b43493ab6fcd4d5bb2e8a168433638.png

b).測試系統如下硬件連接將Colibri iMX8X CAN1和Apalis iMX8QM CAN0接口進行連接

./ Colibri Eva Board JP4和JP5跳線斷開,將X9連接器SODIMM_55和SODIMM_63管腳分別連接到X38連接器TX和RX插座。

./ Colibri Eva Board X2 Top DB9管腳2和7通過兩端均配置120Ohm終端電阻的連線和Ixora載板X20管腳1和2連接。

c). Colibri iMX8X TorizonCore linux系統默認使能的是Colibri Evaluation Board載板上面的MCP2515 SPI CAN接口,需要通過如下device tree overlay配置修改為iMX8X的兩個FlexCAN接口

./ device tree overlay的基本說明請參考這里,編譯方法請參考這里。

./ overlay源文件請參考如下鏈接

https://gitee.com/simonqin09/colibri_imx8x_flexcan/blob/master/colibri-imx8x_enable_flexcan_overlay.dts

./將上述源文件編譯好的overlay文件(可以從這里下載)根據這里的說明部署到Colibri iMX8X上

4).部署CAN測試Docker image

a).首先參考這里的說明在開發PC上面配置Docker編譯環境

b).在開發PC創建如下Dockerfile用于進行CAN測試

-------------------------------

ARG IMAGE_ARCH=arm64v8

# Use the parameter below for Arm 32 bits (like iMX6 and iMX7)

# ARG IMAGE_ARCH=arm32v7

FROM torizon/$IMAGE_ARCH-debian-shell:1.0

WORKDIR /home/torizon

RUN apt-get -y update && apt-get install -y \

nano \

python3 \

python3-pip \

python3-setuptools \

git \

iproute2 \

can-utils \

net-tools \

vim \

python3-can \

&& apt-get clean && apt-get autoremove && rm -rf /var/lib/apt/lists/*

-------------------------------

c).如下編譯并打包成離線Docker image文件,當然也可以上傳到dockerhub上面通過在線的方式在設備安裝

-------------------------------

$ docker build -t can-test-torizon .

$ docker save -o can-test-torizon.tar can-test-torizon

-------------------------------

e).將上面打包好的docker image復制到Colibri iMX8x設備上面,并安裝并運行

-------------------------------

### load docker image

$ docker load -i can-test-torizon.tar

### check docker image

$ docker images

REPOSITORY TAG IMAGE ID CREATED SIZE

can-test-torizon latest 3f1a2122de1c 10 minutes ago 236MB

### run docker image

$ docker run -it --rm --name=can-test-torizon --net=host --cap-add="NET_ADMIN" -v /dev:/dev -v /tmp:/tmp -v /run/udev/:/run/udev/ can-test-torizon

-------------------------------

5). CAN通訊測試

a).在上述Colibri iMX8x啟動的docker image里面使能can1接口

-------------------------------

### set can1 interface up

/home/torizon# ip link set can1 type can bitrate 1000000

/home/torizon# ip link set can1 up

### check can1 interface

/home/torizon# ifconfig can1

can1: flags=193 mtu 16

unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)

RX packets 0 bytes 0 (0.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 0 bytes 0 (0.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

device interrupt 69

-------------------------------

b).繼續在docker image里面創建如下”can-test.sh”腳本用于間隔50ms連續發送CAN標準包

-------------------------------

#!/bin/bash

for ((i=1; i<=20; i++))

do

cansend can1 01F#1122334455667788

sleep 0.05

done

-------------------------------

c).在Apalis iMX8QM Linux下運行下面命令使能can0接口并準備進行CAN包接收

-------------------------------

root@apalis-imx8:~# ip link set can0 type can bitrate 1000000

root@apalis-imx8:~# ip link set can0 up

root@apalis-imx8:~# candump can0

-------------------------------

d).在colibri imx8x docker內執行上面創建的腳本發送CAN包

-------------------------------

/home/torizon# chmod +x can-test.sh

/home/torizon# ./can-test.sh

-------------------------------

e). Apalis iMX8QM接收到對應的CAN包

-------------------------------

root@apalis-imx8:~# candump can0

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

can0 01F [8] 11 22 33 44 55 66 77 88

-------------------------------

f).將發送和接收互換后測試也同樣結果

-------------------------------

### Apalis iMX8QM發送

root@apalis-imx8:~# ./can-test.sh

### Colibri iMX8x接收

/home/torizon# candump can1

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

can1 01F [8] 11 22 33 44 55 66 77 88

-------------------------------

6).總結

本文使用NXP iMX8X嵌入式平臺配合嵌入式Linux和Docker平臺測試CAN通信,相比原生CAN通信,利用Docker技術可以更靈活的用包管理方式安裝所需的組件,同時在不同平臺遷移也相對更簡單,但需要注意的是在Docker環境下訪問主機外設需要對cgroup權限做正確的設置以保證可以順利加載。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9137

    瀏覽量

    368269
  • 嵌入式
    +關注

    關注

    5088

    文章

    19158

    瀏覽量

    306482
  • CAN
    CAN
    +關注

    關注

    57

    文章

    2762

    瀏覽量

    464018
  • Linux
    +關注

    關注

    87

    文章

    11329

    瀏覽量

    209969
  • Docker
    +關注

    關注

    0

    文章

    489

    瀏覽量

    11892
收藏 人收藏

    評論

    相關推薦

    工業嵌入式計算平臺開發招聘

    西電移動計算與通信團隊招聘:嵌入式軟件開發(專職或兼職)研究方向:工業嵌入式計算平臺開發。需求人數:1人要求:1、熟悉linux操作系統和
    發表于 10-12 09:32

    嵌入式Linux CAN的相關資料推薦

    文章目錄前言CAN終端測試SocketCANC語言CAN發送示例C語言CAN接收示例微信公眾號前言這是前篇:嵌入式
    發表于 10-27 09:40

    嵌入式Linux network的相關資料分享

    文章目錄前言網絡通信簡介服務器程序客戶端程序運行微信公眾號前言這是前篇:嵌入式Linux i.MX開發板嵌入式Linux NFS
    發表于 11-05 09:29

    嵌入式系統測試教學實訓平臺由哪幾部分組成

    使用手冊等2.2教學實驗箱凱云嵌入式系統測試教學實訓平臺實驗箱由測件板(待測系統)、Andriod顯示板、多功能接口板、串口通信板(RS232)、C
    發表于 12-21 08:09

    嵌入式系統安裝docker的步驟

    系列文章目錄docker 門外初體驗–嵌入式系統安裝docker(九)文章目錄系列文章目錄前言一、設計思路二、操作要點三、驗證四、總結前言嵌入式開發精髓在于軟硬件的結合,如果
    發表于 12-22 06:27

    PXA255上的嵌入式Linux應用平臺說明

    PXA255上的嵌入式Linux應用平臺說明
    發表于 03-28 09:52 ?28次下載

    嵌入式Linux

    嵌入式Linux隨著Linux的迅速發展,嵌入式Linux現在已經有許多的版本,包括強實時的嵌入式
    發表于 06-17 00:36 ?952次閱讀

    嵌入式LINUX開發基礎知識

    嵌入式LINUX簡介,嵌入式LINUX開發平臺簡介,嵌入式L
    發表于 07-31 21:34 ?261次下載

    Linux嵌入式系統與硬件平臺的關系

    Linux嵌入式系統與硬件平臺的關系
    發表于 09-25 15:08 ?10次下載

    嵌入式LinuxCAN接口調試

    CAN(Controller Area Network)總線是嵌入式設備最為常用的接口之一,常用于汽車以及工業自動化等嵌入式領域,因此本文就基于嵌入式
    發表于 04-29 16:40 ?3284次閱讀

    嵌入式Linux CAN

    文章目錄前言CAN終端測試SocketCANC語言CAN發送示例C語言CAN接收示例微信公眾號前言這是前篇:嵌入式
    發表于 10-19 18:33 ?6次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> <b class='flag-5'>CAN</b>

    嵌入式linux和桌面linux的區別

    嵌入式linux和桌面linux的區別主要區別是:1. 硬件平臺嵌入式Linux一般是Mips
    發表于 10-20 15:36 ?4次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>和桌面<b class='flag-5'>linux</b>的區別

    嵌入式linux開發環境搭建(Docker版,基于iTop 4412開發板)

    嵌入式linux開發環境搭建(Docker版,基于iTop 4412開發板)文章目錄嵌入式linux開發環境搭建(
    發表于 11-01 16:57 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>開發環境搭建(<b class='flag-5'>Docker</b>版,基于iTop 4412開發板)

    嵌入式linux讀寫can收發簡單示例基于socket can

    嵌入式linux讀寫can簡單示例
    發表于 11-01 17:07 ?14次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>讀寫<b class='flag-5'>can</b>收發簡單示例基于socket <b class='flag-5'>can</b>

    嵌入式Linux network

    文章目錄前言網絡通信簡介服務器程序客戶端程序運行微信公眾號前言這是前篇:嵌入式Linux i.MX開發板嵌入式Linux NFS
    發表于 11-02 10:51 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b> network
    主站蜘蛛池模板: xxx性欧美| 一区二区三区在线免费| 97人人艹| 99久久久精品| 天堂在线网站| 久热精品在线视频| 宅男lu66国产在线播放| 激情综合丝袜美女一区二区| 91亚洲免费视频| 能可以直接看的av网址| 激情综合激情| 91md天美精东蜜桃传媒在线| 很黄网站| 国产黄色a三级三级三级| 亚洲国产成人久久77| 色综合久久久久久久久久久 | 中文网丁香综合网| 国产精品你懂的在线播放| 欧美精品videosex极品| 久久亚洲精品成人综合| 不良视频在线观看| 人人干人人做| 免费被视频网站在线观看| 男女视频免费| 四虎国产精品影库永久免费| 亚洲天天做日日做天天看2018 | 在线黄| 色吧亚洲欧美另类| 午夜免费成人| 理论片人人51| 亚洲午夜影视| www.福利| 国产高清在线观看| 日本黄色大片在线播放视频免费观看| 色偷偷88欧美精品久久久| 美女黄页网| 久久婷婷色| 亚洲成a人片在线看| 午夜激情福利视频| 日色视频| 免费性bbbb台湾|