久综合色-久综合网-玖草影视-玖草资源在线-亚洲黄色片子-亚洲黄色片在线观看

Hello! 歡迎來到小浪云!


Linux 驅動開發——Socket CAN模型


avatar
小浪云 2025-01-06 98

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级午夜毛片 | 另类在线 | 亚洲精品一区二区三区不卡 | 国产精品麻豆一区二区三区v视界 | 亚洲精品中文字幕在线 | 精品国产97在线观看 | 手机毛片在线 | 亚洲一级毛片免费在线观看 | 欧美三级在线观看不卡视频 | 伊人99re| 午夜啪啪福利视频 | 中文字幕亚洲日本岛国片 | 一级一级一片在线观看 | 99久久精品6在线播放 | 久久精品国产精品亚洲综合 | 久久成人性色生活片 | 高清不卡日本v在线二区 | 国产一级做a爰片久久毛片99 | 中文字幕亚洲另类天堂 | 日韩亚洲欧美理论片 | 欧美激情 自拍 | aa毛片免费全部播放完整 | 欧美巨大另类极品videohd | 中文国产成人精品久久一 | 国产v片在线播放免费观 | 国产精品久久久久久久久 | 91成人在线视频 | 99在线视频精品费观看视 | 免费观看毛片视频 | 在线观看国产日韩 | 亚洲品质自拍视频网站 | 一道精品视频一区二区三区图片 | 国产激情一区二区三区成人91 | 午夜视频网站 | 亚洲美女综合 | 国产成人精品免费 | 亚洲 欧美 国产 日韩 制服 bt | 亚洲精品中文字幕久久久久久 | 欧美做爰免费大片在线观看 | 久久久久久久99精品免费观看 |