- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux内核SocketCAN中文文档.
?
Linux内核Socket CAN中文文档
分类:?linux驱动2012-01-30 16:26?1301人阅读?评论(2)?收藏?举报
自己在年假中空闲之余翻译的内核中Socket CAN的文档,原文地址在:
http://lxr.linux.no/linux+v2.6.34/Documentation/networking/can.txt
但是这篇文档没有涉及广播管理协议套接字 (SOCK_DGRAM)?的内容。
另外一篇比较好的Socket CAN的英文文档是(详细介绍了广播管理协议套接字):
Low Level CAN Framework Application Programmers Interface
/docs/socketcan/llcf-api.html#SECTION00051000000000000000
自己暂时没时间翻译这篇文章了,有空再说吧。
?
自己英文水平有限,希望高人指正。
================================================================================
?
这篇文章主要针对can协议簇(aka socket can)
这篇文章包含以下内容:
===============
1 概述--什么是Socket CAN?
2 动机--为什么使用socket API接口?
3 Socket CAN详解
? ? ?3.1 接收队列
? ? ?3.2 发送帧的本地回环
? ? ?3.3 网络安全相关
? ? ?3.4 网络故障监测
4 如何使用Socket CAN
? ? ?4.1 使用can_filter的原始套接字 (RAW socket)
? ? ? ? ? 4.1.1 原始套接字选项 CAN_RAW_FILTER
? ? ? ? ? 4.1.2 原始套接字选项?CAN_RAW_ERR_FILTER
? ? ? ? ??4.1.3 原始套接字选项?CAN_RAW_LOOPBACK
? ? ? ? ??4.1.4 原始套接字选项?CAN_RAW_RECV_OWN_MSGS
? ? ?4.2 广播管理协议套接字 (SOCK_DGRAM)
? ? ?4.3 面向连接的传输协议 (SOCK_SEQPACKET)
? ? ?4.4 无连接的传输协议? (SOCK_DGRAM)
5 Socket CAN核心模块
? ? ?5.1 can.ko模块的参数
? ? ?5.2 procfs接口
? ? ?5.3 写一个自己的CAN协议模块
6 CAN网络驱动
? ? ?6.1 常见设置
? ? ?6.2 发送帧的本地回环
? ? ?6.3 CAN控制器的硬件过滤
? ? ?6.4 虚拟的CAN驱动 (vcan)
? ? ?6.5 CAN网络设备驱动接口
? ? ? ? ? 6.5.1 Netlink接口--设置/获取设备属性
? ? ? ? ? 6.5.2 设置CAN的比特_时序
? ? ? ? ? 6.5.3 启动和停止CAN网络设备
? ? ?6.6 支持Socket CAN的硬件
7?学习Socket CAN的相关资源
8 贡献者名单
==============现在开始===================
1.?概述--什么是Socket CAN?
==================
socketcan子系统是在Linux下CAN协议(Controller Area Network)实现的一种实现方法。 CAN是一种在世界范围内广泛用于自动控制、嵌入式设备和汽车领域的网络技术。Linux下最早使用CAN的方法是基于字符设备来实现的,与之不同的是Socket CAN使用伯克利的socket接口和linux网络协议栈,这种方法使得can设备驱动可以通过网络接口来调用。Socket CAN的接口被设计的尽量接近TCP/IP的协议,让那些熟悉网络编程的程序员能够比较容易的学习和使用。
2.?动机--为什么使用socket API接口?
=======================
在Socket CAN之前Linux中已经有了一些CAN的实现方法,那为什么还要启动Socket CAN这个项目呢?大多数已经存在的实现方法仅仅作为某个具体硬件的设备驱动,它们往往基于字符设备并且提供的功能很少。那些方案通常是由一个针对具体硬件的设备驱动提供的字符设备接口来实现原始can帧的发送和接收,并且直接和控制器硬件打交道。帧队列和ISO-TP这样的高层协议必须在用户空间来实现。就像串口设备接口一样,大多数基于字符设备的实现在同一时刻仅仅支持一个进程的访问。如果更换了CAN控制器,那么同时也要更换
文档评论(0)