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

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模型

相關閱讀

主站蜘蛛池模板: 欧美另类69xxxxx视频 | 日韩专区在线 | 最刺激黄a大片免费观看 | 亚洲精品综合欧美一区二区三区 | 一区二区三区不卡视频 | 在线成人天天鲁夜啪视频 | 456主播喷水在线观看 | 欧美另类 videos黑人极品 | 久草影音 | 国内精品视频成人一区二区 | 一级片大全 | 欧美精品免费在线 | 亚洲精品一区二区 | 亚欧毛片 | 国产三级精品三级国产 | 日本毛片在线观看 | 日韩精品无码一区二区三区 | 日韩一区二区三区免费视频 | 特级毛片aaa免费版 特级毛片a级毛免费播放 | 成人老司机深夜福利久久 | 欧洲女同互慰在线视频 | 久草在线播放视频 | 性欧美videos俄罗斯 | 在线免费观看毛片网站 | 91精品一区二区三区在线 | 国产特黄特色的大片观看免费视频 | 国产日韩欧美综合在线 | 波多野结衣一区二区三区在线观看 | 一本久久a久久精品亚洲 | 国产精品亚洲片在线观看不卡 | 亚洲wwww| 亚洲成人777 | 曰韩美女一级视频 | 亚洲大片免费 | 亚洲精品社区 | 三级网站在线免费观看 | 亚洲伊人成人 | 亚洲第一页在线播放 | 91精品综合 | 国产精品_国产精品_国产精品 | 免费看欧美一级a毛片 |