久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1884|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

POWERLINK協(xié)議源碼(最新)在stm32單片機上的移植指南

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1077574 發(fā)表于 2023-5-15 11:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近著了powerlink的道,連續(xù)幾晚十二點前沒睡過覺。不得不說興趣這東西勁太大了,讓人睡不著。喜歡上研究POWERLINK,最新版的源碼結(jié)構(gòu)挺清晰的,移植并測試了嵌入式linux作為從站和電腦主站之間的通信,挺有趣的。接下來想嘗試下在單片機上的移植,降低POWERLINK協(xié)議的使用門檻,讓POWERLINK協(xié)議可以用的更廣泛,算是件有意義的事。

以下分享下openPOWERLINK最新源碼v2.7.2在單片機上的移植思路。

使用倒推法(由編譯結(jié)果去推導(dǎo)需要依賴的代碼文件),能夠直觀的看到平臺差異性相關(guān)的文件。因此移植也很簡單,照著以下指南來,肯定沒問題。

openPOWERLINK最新源碼地址:openPOWERLINK :: openPOWERLINK

powerlink不錯的協(xié)議,但大都去卷ethercat了。我想powerlink這么好的協(xié)議真沒啥難的,了解后會覺得比485總線還好用。之前就難資料太少,沒人去研究推動和分享,我想趁我興致正濃就多輸出幾篇分享給大家。


前提條件
openPOWERLINK源碼要想成功運行在單片機上,需要一定的前提條件。最起碼單片機板子上得有以太網(wǎng)功能吧。至于是否得有tcp/ip協(xié)議棧才能運行powerlink? 這個是非必要的,也就是說即便單片機板子上只有MCU+MAC+PHY芯片,沒有移植lwip協(xié)議棧也是可以的。

如果是單片機mcu內(nèi)核涵蓋MAC鏈路層功能,則直接外接一顆PHY芯片即可。這需要單片機具備mac接口,一般像stm32F4系列以上的稍微高端點的單片機才具有mac功能。

媒體訪問控制(MAC,Media Access Control),又稱作介質(zhì)訪問控制,簡稱MAC,是局域網(wǎng)中數(shù)據(jù)鏈路層的下層部分,提供地址及媒體訪問的控制方式,使得不同設(shè)備或網(wǎng)絡(luò)上的節(jié)點可以在多點的網(wǎng)絡(luò)上通信,而不會互相沖突,上述的特性在局域網(wǎng)中格外重要。早期網(wǎng)絡(luò)發(fā)展時以MAC判別各個網(wǎng)絡(luò)接口的位置,但后來互聯(lián)網(wǎng)發(fā)展后,才有IP的制定與使用。若只是兩臺設(shè)備之間全雙工的通信,因為兩臺設(shè)備可以同時發(fā)送及接收數(shù)據(jù),不會沖突,因此不需要用到MAC協(xié)議。

媒體訪問控制MAC子層負(fù)責(zé)解決與媒體接入有關(guān)的問題,在物理層的基礎(chǔ)上進(jìn)行無差錯的通信。

MAC子層是網(wǎng)絡(luò)與設(shè)備的接口,它從網(wǎng)絡(luò)層接收數(shù)據(jù)幀,然后通過媒體訪問規(guī)則和物理層將數(shù)據(jù)幀發(fā)送到物理鏈路上。它也從物理層接收數(shù)據(jù)幀,再送到網(wǎng)絡(luò)層。總的來說,MAC有三大功能:

1.決定節(jié)點何時發(fā)送數(shù)據(jù)包。
2.將數(shù)據(jù)幀發(fā)送到物理層,然后發(fā)送到物理鏈路。
3.從物理層接收數(shù)據(jù)幀,然后送給網(wǎng)絡(luò)層處理。
其中最重要的是第一點:決定節(jié)點何時發(fā)送數(shù)據(jù)包。對于每一種媒體訪問控制技術(shù),用來控制節(jié)點發(fā)送時機的規(guī)則叫做媒體訪問規(guī)則。局域網(wǎng)上的節(jié)點不能想要發(fā)送數(shù)據(jù)就發(fā)送,節(jié)點只能在輪到它的時候才發(fā)送。

僅有STM32自帶的MAC還不能做網(wǎng)絡(luò)通信,還需要外接以太網(wǎng)PHY芯片才可以,如同RS485通信一樣,僅有一個串口是不行的,還需要外接RS485的PHY芯片。

PHY(Port Physical Layer),可稱之為端口物理層,是一個對OSI模型物理層的簡稱。現(xiàn)在常用于STM32的有DP83848,LAN8270,DM9161/9162等。這些PHY芯片都大同小異,基本寄存器都是一樣的,只有擴(kuò)展寄存和廠商專門設(shè)置的寄存器不同。如果用戶將其中一個PHY驅(qū)動成功了,驅(qū)動另一個也是非常方便的。

如果低端點兒單片機沒MAC功能呢?如何外接以太網(wǎng)芯片?辦法也是有的,現(xiàn)在有的廠商提供集成的模塊兒,自帶MAC和PHY芯片的功能,對外通過SPI接口操作訪問。如常用的芯片w5500芯片,就是一顆集成了MAC和PHY功能的芯片,通過SPI接口可以訪問和使用。SPI接口幾乎高低端的單片機都有的常見接口。W5500 芯片是一款集成全硬件 TCP/IP 協(xié)議棧的嵌入式以太網(wǎng)控制器,同時也是一顆工業(yè)級以太網(wǎng)控制芯片。是韓國WIZnet(微知納特)發(fā)布全硬件TCP/IP協(xié)議棧以太網(wǎng)接口芯片。W5500 支持高速標(biāo)準(zhǔn)4線SPI接口與主機進(jìn)行通信,該 SPI 速率理論上可以達(dá)到 80MHz。或者CH395芯片,也是SPI接口連接MCU,它是沁恒公司的一款以太網(wǎng)協(xié)議棧管理芯片。CH395 芯片自帶10/100M以太網(wǎng)介質(zhì)傳輸層(MAC)和物理層(PHY),完全兼容IEEE802.310/100M 協(xié)議,內(nèi)置了PPPOE、IP、DHCP、ARP、ICMP、IGMP、UDP、TCP 等以太網(wǎng)協(xié)議棧固件。


綜上所述,POWERLINK協(xié)議棧源碼對單片機的要求并不高,一般的單片機都能滿足,無論單片機mcu上是否具備MAC接口。協(xié)議棧源碼也不是很大,不過當(dāng)然mcu性能越高越好了。

此外對單片機的要求是最好具備嵌入式操作系統(tǒng)如Rtx,rtthread,freeRTOS或ucosII等多任務(wù)系統(tǒng),這樣才更容易移植和使用。嵌入式系統(tǒng)最好具備軟件定時器功能,方便實現(xiàn)用戶層的定時器功能。

還有需要注意,如果單片機是使用的三方庫提供的接口操作以太網(wǎng)模塊,需要確認(rèn)下接口是否具備直接操作發(fā)送mac幀的能力。因為powerlink的鏈路層可沒有走tcp/ip協(xié)議棧,直接操作的mac報文幀。

mac幀模式介紹

可以使用wireshark工具抓包,看看發(fā)送的mac幀報文是不是正確的。以下舉例一包arp協(xié)議請求包的完整mac幀格式如下:

//以太網(wǎng)首部(14Byte)

0000: ff ff ff ff ff ff                                 //目的主機為廣播地址

0006: 84 c2 e4 f0 08 ef                      //源主機MAC地址為84-C2-E4-F0-08-EF

000c: 08 06                                            //上層協(xié)議類型0x0806表示ARP或RARP

//ARP請求(28Byte)

000e: 00 01                                           //硬件類型0x0001表示以太網(wǎng)

0010: 08 00                                           //協(xié)議類型0x0800表示IP協(xié)議

0012: 06 04                                           //MAC地址長度為6; IP地址長度為4

0014: 00 01                                           // op為0x0001表示請求目的主機的MAC地址

0016: 84 c2 e4 f0 08 ef                      //源主機MAC地址為00-1C-23-17-4A-CB

001c: c0 a8 01 65                                 //源主機IP地址(192.168.1.101)

0020: 00 00 00 00 00 00                   //目的主機MAC地址未知,全0待填寫

0026: c0 a8 01 67                                 //目的主機的IP地址(192.168.1.103)

//填充數(shù)據(jù)(18Byte)

002c: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

003c: 00 00

原文鏈接:https://blog.csdn.net/yyz_1987/article/details/130648388
移植完成,歡迎交流
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: www.99热| 午夜免费在线观看 | 精品免费国产视频 | 欧美一区二区三 | 日韩精品一区二区三区高清免费 | 欧美一级三级在线观看 | 久久久高清 | 久久久久久久久淑女av国产精品 | 天天综合网天天综合色 | 国产黄色麻豆视频 | 久久免费视频1 | 在线观看av免费 | 自拍偷拍3p | www国产成人免费观看视频,深夜成人网 | 天天天天天天天干 | 免费视频99 | 欧美久久一区二区三区 | 国产羞羞视频在线观看 | 亚洲高清在线观看 | 播放一级毛片 | 成人精品视频免费 | 日韩av啪啪网站大全免费观看 | 91极品欧美视频 | 色综合一区二区 | 成人免费三级电影 | www.狠狠干 | 色在线免费视频 | 黄色三级在线播放 | 男女网站免费 | 日本精品在线一区 | 成人精品一区亚洲午夜久久久 | 日日操av | 久久久久亚洲精品 | 97伦理影院 | 亚洲视频一区二区三区四区 | 中文字幕在线观看一区二区 | 亚洲精品1区| 在线国产视频观看 | 婷婷中文在线 | 成人精品久久 | 韩国理论电影在线 |