第7章嵌入式Linux下的通信应用.ppt

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本章主要讲述嵌入式linux系统下的各种通信应用,包括串口通信、网络通信、蓝牙通信与CAN总线通信,其中CAN总线是本章的重点和难点。每种通信所对应的协议内容和工作方式是理解每种通信应用过程的关键,建议读者仔细分析,其它的如GPRS、VoIP也可以参照上述思路进行学习。 请完成串口通信实验。 请完成嵌入式网络编程。 举例描述socket 程序中的大数量和小数据量传输方式的选择和原因。 请完成蓝牙通信实验。 请完成Can总线通信实验。 请举例简述Can数据传输一次数据的大小和回环方式的选择。 请基于Can总线通信和Qt用户界面实现聊天室程序。 思考嵌入式Linux下的其它通信方式与协议,并列表进行区分。 驱动程序会根据module_init()函数所指定的参数作为入口函数,在CAN控制器驱动中,这个入口函数为s3c2410_mcp2510_init(),它主要完成一些基本的初始化工作。CAN控制器驱动的初始化工作主要有: 软件复位,进入配置模式。 设置CAN总线波特率。 关闭中断。 设置ID过滤器。 切换MCP2510到正常状态(Normal)。 清空接受和发送缓冲区。 开启接收缓冲区,开启中断(可选)。 初始化工作完成之后,会引入驱动程序的操作集。 第四节 嵌入式蓝牙技术 —— 三、CAN控制器驱动 初始化工作完成之后,会引入驱动程序的操作集。CAN控制器驱动的操作集结构如下: static struct file_operations s3c2410_fops = { owner: THIS_MODULE, write: s3c2410_mcp2510_write, read: s3c2410_mcp2510_read, ioctl: s3c2410_mcp2510_ioctl, open: s3c2410_mcp2510_open, release: s3c2410_mcp2510_release, }; 第四节 嵌入式蓝牙技术 —— 三、CAN控制器驱动 应用层的read()函数首先调用s3c2410_mcp2510_read,该函数负责用户区和内核区之间的数据传送。之后调用RevRead函数和s3c2410_isr_mcp2510函数对数据缓冲区进行操作,在这个过程中会调用MCP2510_Read函数,它的工作包括: 在local处理器上关闭中断。 MCP2510片选ENABLE。 CAN总线发送流程。 MCP2510片选DISABLE。 打开中断。 其中, CAN总线发送流程的具体操作顺序如下: 1)在s3c2410_fops结构中添加写接口 。 2)用户程序使用CanData数据结构给驱动模块传递参数。 3)从用户空间读取待发送的内容 。 4)对用户空间传递的数据加以解析 。 5)MCP2510通过SPI接口与处理器传递数据。 第四节 嵌入式蓝牙技术 —— 三、CAN控制器驱动 对于写操作,应用层的write()函数首先调用s3c2410_mcp2510_write,该函数负责用户区和内核区之间数据传送。之后调用MCP2510_canWrite函数和MCP2510_Write_Can函数。在该函数中完成CAN的数据结构之后,调用MCP2510_Write函数,它的工作包括: 在local处理器上关闭中断。 MCP2510片选ENABLE。 CAN总线单字节写入操作。 MCP2510片选DISABLE。 打开中断。 其中,CAN总线单字节写入操作的顺序如下: 1)SPI总线发送数据函数:SendSIOData()。 2)发送单字节写入命令:0x02。 3)发送写入的地址。 4)发送写入的内容。 第四节 嵌入式蓝牙技术 —— 三、CAN控制器驱动 除了read和write操作,ioctl的操作也很重要。CAN控制器的ioctl函数如下: static int s3c2410_mcp2510_ioctl(struct inode *inode, struct file *file,unsigned int cmd, unsigned long arg) 其中,参数inode为设备节点,arg为io参数,file为CAN控制器设备的设备文件指针,cmd为io选项 第四节 嵌入式蓝牙技术 —— 三、CAN控制器驱动 下面再介绍驱动中常用到的两个数据结构:CanData和Mcp2510_DEV。 typedef struct { unsigned int id; //CAN总线ID unsigned char data[8]; //CAN总线数据 unsigned char dlc; //数据长度 int IsE

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档