




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、、RS485串口通信电路图 o 7ITL I . / JI itNTu Un I5 网络 二.VxWorks中基于RS485总线的串口通信协议及实现 摘 要:本文介绍了在嵌入式实时操作系统 Vxworks下串行设备的驱动架构 及实现,提出了一种基于 RS-485总线的新型串口通信协议,重点讨论了基于这 种协议的应用程序的设计方法,发送时主要采用了总线仲裁机制,接收时主要采 用了字符合法性校验、长度校验、内容的CRC校验,提高了系统的通信效率和稳 定性。 关键词:VxWorks RS-485;通信协议;总线仲裁;CR(校验 1引言 随着信息技术和互联网的飞速发展, 以及计算机、通讯、数码产品等领
2、域的高速 增长,数字化时代已经来临。嵌入式设备是数字化时代的主流产品, 嵌入式软件 是数字化产品的核心,作为嵌入式软件的基础和关键,嵌入式操作系统在产业发 展过程中扮演着越来越重要的角色,应用遍及工业自动化、网络通信、航空航天、 医疗仪器等领域。 2 RS-485 总线 RS-485总线接口是一种常用的串口,具有网络连接方便、抗干扰性能好、传输 距离远等优点。RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干 扰的能力,加上收发器具有高的灵敏度,能检测到低达200mv的电压,可靠通信 的传输距离可达数千米。使用 RS-485总线组网,只需一对双绞线就可实现多系 统联网构成分布式系统、
3、设备简单、价格低廉、通信距离长。 3 VxWorks中串口驱动的实现 VxWorks操作系统是美国 Wind River公司设计开发的嵌入式实时操作系统 (RTOS),是嵌入式开发环境的关键组成部分。Vxworks操作系统的I/O系统可 以提供简单、统一、与任何设备无关的接口。这些设备包括:面向字符设备、随 机块存储设备、虚拟设备、控制和监视设备以及网络设备。Vxworks的I/O系 统包括基本I/O系统和缓冲I/O系统,具有比其他I/O系统更快速,兼容性更 好的特性。这对于实时系统是很重要的。 3.1串口驱动架构 基于vxWorks的串口设备驱动程序架构,对vxWorks的 虚拟设备ttyD
4、rv进行封装,向上将TTY设备安装到标 准的I/O系统中,上层应用通过标准的I/O接口完成 对硬件设备的操作,向下提供对实际硬件设备的底层设 备驱动程序。其软件架构如图1所示。 由图1可知,串口设备驱动由两部分组成,一部分为对 ttyDrv进行封装,将串行设备安装到标准的I/O系统 中,提供对外的接口;另一部分为串行设备驱动程序, 提供对硬件设备的基本操作。 虚拟设备ttyDrv管理着I/O系统和真实驱动程序之间 的通信。在I/O系统方面,虚拟设备ttyDrv作为一个乩:i ,;、:严匸门心却 字符型设备存在,它将自身的入口点函数挂在I/O系统 上,创建设备描述符并将其加入到设备列表中。当用户
5、有I/O请求包到达I/O 系统中时,I/O系统会调用ttyDrv相应的函数响应请求。同时,ttyDrv管理了 缓冲区的互斥和任务的同步操作。另一方面,ttyDrv负责与实际的设备驱动程 序交换信息。通过设备驱动程序提供的回调函数及必要的数据结构,ttyDrv将 系统的I/O请求作相应的处理后,传递给设备驱动程序,由设备驱动程序完成实 际的I/O操作。 串口驰动初始化凉程 3.2驱动初始化 串口设备的初始化xxDevInit流程如图2。 设备驱动的初始化过程首先调用系统函数ttyDrv(),该 函数通过调用 iosDrvInstall() 将 ttyOpen()、 ttyloctl() 、tyR
6、ead()、tyRead、tyWrite 安装到系统 驱动函数表中,供I/O系统调用。 接着根据用户入参对串口芯片寄存器进行初始化,安装 驱动函数指针。 最后调用系统函数ttyDevCreate()创建ttyDrv设备。 该函数初始化设备描述符,调用tyDevInit()函数初始化tyLib、初始化select 功能、创建信号量和输入输出缓冲区,调用iosDevAdd()函数将设备添加到设备 列表中并将设备置为中断模式。 驱动模块初始化成功后,应用程序就可以用标准的I/O函数read()和write() 收发数据了。 4 RS-485通信协议 4.1 485通信帧格式 表1 485通信帧格式
7、目的地址 源地址 长度 控制 帧净荷数据 CRC检验 1Byte 1Byte 1Byte 2Bytes 由长度字节确定, 2Bytes 255Bytes 长度字段不包含控制字段、检验字段。校验字段使用CCITT的CRC16勺校验方法, 其生成多项式为 卜fl。校验字段默认是加上的,只有在发 送方的CPU负荷比较大时,并且能够保证本帧出现的错误不会对系统产生潜在的 和现实的影响,或者保证影响在可以控制在一定范围内并且可以忍受时,才考虑 取消校验字段。当接收方接收到帧的总长度减去长度字段值与帧头的长度之和, 得到的结果为2时,表明发送方附带了校验和。 4.2 485数据链路层帧 表2485链路层帧
8、格式 头标志(0 x7E)485通信帧尾标志 (0 x7E) 1Byte最大不超过485通信帧的长度(不包括字节拆分2Bytes 的添加字符) 头标志是任意个数的连续的字符 0 x7E,尾标志也是任意个数的连续的字符 0 x7E。 预定头标志为1Byte,尾标志为2Bytes,在发送方的CPU认为发送完毕最后一个 尾标志字符时,保证第一个尾标志字符能够完全到达目的设备。发送方除头标志 或尾标志之外,不允许出现 0X7E,若遇到0X7E,则拆分成0X7D 0X5E若出现 0X7D则拆分成0X7D 0X5D传送。 5串行通信应用程序设计 5.1初始化配置 创建一个51200Bytes的接收环形缓冲
9、区,用来存放剩余的或不成帧的数 据:g_tRecvRingId = rngCreate(51200); 串口设备描述符为“myCor”i,打开串口并创建设备读写描述符: g_sdwChannelFD = open( “myCofti , O_RDWR, 0); 设置波特率:ioctl(g_sdwCha nn elFD, FIOBAUDRATE, g_RS485Li nkCBi.sdwBaudRate); 清空接收、发送缓存:ioctl(g_sdwCha nn elFD, FIOFLUSH,0); 工作模式设置: ioctl(g_sdwCha nn elFD, FIOSETOPTIONS, OP
10、T_RAW); 5.2通信发送过程 在发送之前,发送方 需要按照双方约定的 485通信帧格式将消 息组帧,并按照约定 数据链路传输协议组 成485的数据链路帧 接下来就是如何发送 数据包了。 在RS-485通信中,发 送过程主要采取了总 线仲裁机制: 在向485总线写数据 时,主设备先写一字 节的地址请求,所有 的从设备均会收到, 只有地址与之相等的 从设备端口打开,其 他设备全部关闭。这 样,主设备与从设备 之间的通信就是点对 点的。 每一个从设备均有 根请求线与主设备相连,若从设备需要与主设备通信时,先通过请求线进行请求, 当请求成功后,从设备应能检测到总线上的地址与自身地址相同, 从设备
11、才能打 开发送中断,才能发送消息,发送完之后必须关闭发送中断,释放总线,以保证 其他从设备这段时间能与主设备正常通信,提高通信效率。 RS-485通信发送流程图如图3所示 5.3通信接收过程 对于串口通信,仍然要关心数据接收的实时性,因此采用中断方式,利用VxWorks 提供的select函数的事件触发机制,将读串口的任务阻塞使其一直等待数据, 当有数据来到的时候该任务会立刻自动响应,提高系统的实时性,调用read() 接收数据并存入先前创建的接收环形缓冲区g_tRecvRingld中直至缓冲区 g_tRecvRingld满或接收完链路上的数据,接下来就是根据通信协议来处理数据 包解帧处理过程
12、。 接收方判断开始485通信帧的条件是,设备不报告接收错误的情况下,接收到 0 x7E字符之后的第一个非0 x7E的字符。判断帧结束的条件是,帧接收已经开始, 遇到第一个尾标志字符。在两个0X7E间若收到0X7D则丢弃,并将其后的一个 字节数据与0X20异或。 当链路层的通信帧接收已经开始的情况下,设备报告字符接收错误,此时应当丢 弃本帧,结束帧的接收,重新开始搜索下一帧。 长度字段后面的字节个数不等于长度字段指示,并且也不等于长度字段加2时, 指示长度错误,作无效帧。帧长度小于帧头的长度的帧视为无效帧。当接收的字 符个数超过最大的485通信帧字节数一一262时,也认为接收错误,重新开始搜 索
13、头标志,检出下一帧数据。 超时保护:如果接收收方在接收一帧数据时,在未接收完一帧时,超过20ms (2 个Ticks )仍未有数据到达,则认为本帧数据接收结束,并将其丢弃。 在允许进行校验的情况下,对接收到的帧进行CR(校验。如果校验字段与帧的校 验结果不符,认为帧出错,通常作丢弃处理。 帧头中,目的地址与接收单元不匹配时,丢弃该帧。 6、结束语 VxWorks是一种高性能嵌入式实时操作系统,它以其良好的可靠性和卓越的实时 性被广泛地应用在通信、自动化、航空等各个领域中。许多外部终端设备如打印 机、逻辑分析仪等都采用串行方式,以及对单板的调试也要用到串行口,因此掌 握在Vxworks下的串行通信是非常重要的。 本文的创新之处在于提出一种新的 RS-485通信协议,在这种协议中,发送方根 据协议组帧,再采用总线仲裁机制将消息发送出去, 而接收方则将收
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国冷冻蔬菜行业发展趋势预测及投资战略咨询报告
- 推拿治疗学测试题附答案详解(综合卷)
- 2025版离婚房产分割与个人财产界定合同范本
- 2025电商农产品上行合作协议书
- 2025版离婚协议签订后的共同生活费用分担合同
- 2025年数据中心防排烟系统施工与调试合同
- 2025年度企业市场拓展与品牌战略咨询协议
- 2025版装配式砌墙施工技术交流合作合同
- 2025年有限责任公司股东风险管理与责任承担协议
- 2025年度教育培训机构课程开发与推广委托服务合同样本
- 千人相亲活动方案
- 消防避火服课件教学
- 土地法学教学课件电子教案课件
- 儿童银行开业活动方案
- 小学二年级上册心理健康教案(适合北京教育出版社)
- CJ/T 43-2005水处理用滤料
- 无人机技能培训课件
- 数据标注项目管理制度
- 如何写好作文开头结尾 课件
- 回收拆除废旧设备合同协议书
- 2024有限公司生产安全事故应急预案
评论
0/150
提交评论