原创 linux設置進程CPU親和力函數sched_setaffinity()簡介

在多CPU系統中,通過sched_setaffinity()可以設置進程的CPU親和力,使進程綁定在某一個CPU上運行,避免在CPU之間來回切換,從而提高該進程的實時性能。 一、CPU MASK

原创 libmodbus的python接口pylibmodbus簡介

一、安裝libmodbus 在ubuntu1404環境下安裝libmodbus: #sudo apt-get install libmodbus-dev libmodbus源碼下載地址爲: https://libmodbus.o

原创 Ethercat開源主站Etherlab----收發幀過程(Generic 驅動)

Etherlab1.5.2 提供了Generic驅動,從而使Etherlab能通過任何網卡收發EtherCAT幀。 數據幀收發時經過的大致路徑如下圖所示:  點贊 1 收藏 分享 文章舉報

原创 EtherCAT ET1100從站信息接口介紹

ESC使用EEPROM來存儲所需要的設備相關信息,稱爲從站信息接口SII(Slave Information Interface)。 以Beckhoff 兩通道模擬量輸入模塊EL3102爲例,簡單介紹 EEPROM中存儲的各種信息的位置和

原创 EtherCAT主站SOEM源碼解析----EEPROM訪問

SOEM(Simple Open EtherCAT Master)是一個開源的EtherCAT主站。 本文介紹其中讀取從站EEPROM信息的步驟。 1、ESC EEPROM訪問控制寄存器 從站控制芯片ESC EEPROM控制寄存

原创 EtherCAT主站SOEM源碼解析----ecx_siiPDO()

1、從站EEPROM的PDO信息 從站EEPROM存儲的PDO信息如下如所示: TxPDO的類型名爲50(0x0032),RxPDO的類型名爲51(0x0033). 每個PDO佔用的EEPROM字節數爲8+8*er(er位E

原创 EtherCAT主站SOEM源碼解析----分佈時鐘DC

        分佈時鐘(DC,Dsitributed Clock)可以使所有EtherCAT設備使用相同的系統時間,從而控制各設備任務的同步執行。   1、DC從站        支持分佈式時鐘的從站稱爲DC從站,同步原理如下所示:  

原创 EtherCAT主站SOEM源碼解析----同步管理器SM配置

本文介紹SOEM(Simple Open Source Master)如何配置從站的SM(SyncManager)寄存器。 基於SOEM-1.3.1。 1、SM寄存器 SM配置寄存器從0x800開始,每個通道使用8個字節,

原创 EtherCAT主站SOEM在Ubuntu上的移植

      SOEM(Simple Open EtherCAT Master)是rt-lab提供的一個開源EtherCAT主站,使用裸套接字收發EtherCAT幀,可以很方便地移植到嵌入式設備上。       本文介紹如何在Ubuntu

原创 EtherCAT主站SOEM源碼解析----Raw Socket

SOEM使用Raw Socket收發EtherCAT幀,通過系統調用bind、send和recv實現EtherCAT通信。 1、創建Socket 初始化函數ec_init(ifname)最終會調用/oshw/linux/nicdr

原创 EtherCAT---幀格式詳解

以COE(CANopen over EtherCAT)的SDO服務爲例,EtherCAT幀格式如下圖所示:從圖中可看出CANopen、EtherCAT和Ethernet這幾個協議的大致關係。 點贊 4 收藏 分享

原创 EtherCAT主站SOEM源碼解析----IOmap

SOEM通過函數ec_config_map(&IOmap)完成邏輯地址和物理地址的映射,應用程序需要定義一個數組IOmap,例如: char IOmap[4096]; 完成映射後,應用程序就可以通過讀寫數組IO

原创 Linux 進程間通信-消息隊列

一、簡單例子 發送消息: //sender #include <stdio.h> #include <sys/msg.h> typedef struct { long type; char data[512]; }MSG

原创 Linux 設備樹詳解

本文基於天嵌E9V3開發板,詳解設備樹的語法結構和用法。 一、設備樹 二、E9V3設備樹總覽 E9V3設備樹總覽: 三、設備樹編寫規則

原创 isolcpus在樹莓派3上的使用

linux內核參數isolcpus的作用是隔離一定數量的CPU,使其獨立於內核的平衡調度算法,也就是內核本身不會將進程分配到被隔離的CPU上運行。之後用戶可將指定的進程綁定到被隔離的CPU上運行,讓進程獨佔CPU,使其實時性得到一定程