日韩天堂,国产精品久久久久久久久久一区,羞羞羞网站,自拍视频网站,久久亚洲欧美成人精品,桃花阁成人网在线观看

Hello! 歡迎來到小浪云!


Linux 驅動開發——Socket CAN模型


avatar
小浪云 2025-01-06 153

1. 控制器局域網協議 (CAN)

can是指控制器局域網(controller area network)協議。它最初由德國電氣公司博世在1986年開發,主要應用于汽車通信系統。如今,can通信協議已成為iso國際標準化的串行通信協議之一。根據不同的網絡和距離需求,can協議可以配置不同的速度,最高可達1mbit/s。整個can協議被劃分為三個層次,對應于iso模型的不同部分,具體如圖1.1所示:

  1. CAN對象層 (The Object Layer)

    這一層是CAN協議的最高層,負責定義通信的對象及其屬性。它決定了數據在網絡中的結構和組織方式。

  2. CAN傳輸層 (The Transfer Layer)

    傳輸層位于協議的中間層,承擔著數據傳輸的責任。它負責確保數據的可靠傳輸,并處理錯誤檢測和糾正,以保證通信的穩定性和準確性。

  3. CAN物理層 (The Physical Layer)

    物理層是CAN協議的最底層,它定義了數據在網絡中的傳輸方式和電氣特性。這一層面向硬件,負責實際的信號傳輸和接收。

Linux 驅動開發——Socket CAN模型

圖1.1

對象層和傳輸層包括所有由ISO/OSI模型定義的數據鏈路層的服務和功能。 

1.1 對象層的作用范圍包括:

(1)查找被發送的報文。

(2)確定由實際要使用的傳輸層接收哪一個報文。

(3)為應用層相關硬件提供接口

1.2 傳輸層的作用主要:

(1)傳送規則,也就是控制幀結構、執行仲裁、錯誤檢測、出錯標定、故障界定。

(2)總線上什么時候開始發送新報文及什么時候開始接收報文均在傳輸層里確定。

(3)位定時的一些普通功能也可以看作是傳輸層的一部分。

(4)傳輸層的修改是受到限制的。

1.3 物理層的作用:

在不同節點之間根據所有的電氣屬性進行位信息的實際傳輸。當然,同一網絡內,物理層對于所有的節點必須是相同的。盡管如此,在選擇物理層方面還是很自由的。 

2. Linux下Socket CAN驅動模型

Linux下Socket CAN驅動屬于網絡設備的一部分。Linux下Socket CAN分層模型見圖2.1: 

Linux 驅動開發——Socket CAN模型

圖2.1

Linux下Socket CAN的驅動模型見圖2.2:

Linux 驅動開發——Socket CAN模型

圖2.2

3. Socket CAN驅動框架的重要數據結構

3.1 struct net_device_ops結構體

Linux 驅動開發——Socket CAN模型

Struct net_device_ops定義了網絡設備的操作方法,.ndo_open開啟網絡設備的操作,.ndo_stop停止網絡設備,.ndo_start_xmit發送網絡數據,.ndo_change_mtu網絡設備一次最大傳輸單元。

3.2 struct can_frame 結構體

Linux 驅動開發——Socket CAN模型

其中can_id表示can frame的id,can_dlc表示can frame數據的長度,data[CAN_MAX_DLEN]表示攜帶的數據。

3.3 struct platform_driver 結構體

Linux 驅動開發——Socket CAN模型

其中probe是驅動初始化函數入口,初始化本地結構體,remove是驅動卸載函數入口。

4. Linux下NAPI機制

CAN協議所對應的ISO模型見圖1.1:linux下網絡數據接收機制NAPI:混合使用中斷與輪詢,而不使用純粹的中斷事件驅動模型。這樣就提高了系統的性能,當設備產生一個數據接收中斷后,新機制的軟中斷處理函數就會輪詢設備的入口隊列,直到入口隊列中沒有數據了,再開啟中斷。NAPI數據接收的流程為:
a、接收中斷來臨
b、關閉接收中斷
c、以輪詢方式接收所有數據包直到收空
d、開啟接收中斷

NAPI驅動程序各部分的調用關系見圖4.1:

Linux 驅動開發——Socket CAN模型

圖4.1

5. 數據發送接收流程

Linux下Socket CAN在用戶空間提供socket接口,在內核空間實現CAN Frame協議,并協同CAN控制器驅動控制CAN控制器的驅動,實現CAN通信。

5.1 發送流程

Linux 驅動開發——Socket CAN模型

圖5.1

5.2 接收流程

Linux 驅動開發——Socket CAN模型

相關閱讀

主站蜘蛛池模板: 自拍视频网站 | 在线观看色视频 | 国产小视频在线免费 | 一本久久a久久精品vr综合 | 丁香花在线免费高清观看 | 欧美综合久久 | 九月丁香激情综合婷婷玉立 | 欧美精品久久久久久久小说 | 白云精品视频国产专区 | 一级精品视频 | 亚洲国产高清在线 | xxx 日本韩国 | 亚洲国产日本 | 国产成人精品免费久久久久 | 伊人婷婷色香五月综合缴缴情小蛇 | 欧美日韩在线网站 | 久久成人精品视频 | 亚洲精品福利网站 | 日本在线免费观看 | 国产精品无码永久免费888 | 丁香5月婷婷| 国产一区成人 | 永久视频免费 | 四虎4hu永久免费视频大全 | 国产精品麻豆网站 | 性欧美在线视频 | 久久久高清国产999尤物 | 怡春院欧美一区二区三区免费 | 九色97| 性色屋| 一色桃子在线精品播放 | 欧美视频第一页 | 五月天 婷 | 欧美日韩国产一区二区三区伦 | 久久久免费精品视频 | 在线亚洲精品国产成人二区 | 九九视频精品全部免费播放 | 色五阁 | 日日综合 | 中文字幕国产 | 国产精品久久久一区二区三区 |