VxWorks中基于RS485总线的串口通信协议及实现
- 格式:doc
- 大小:22.50 KB
- 文档页数:3
一、RS485串口通信电路图二、VxWorks中基于RS485总线得串口通信协议及实现摘要:本文介绍了在嵌入式实时操作系统Vxworks下串行设备得驱动架构及实现,提出了一种基于RS-485总线得新型串口通信协议,重点讨论了基于这种协议得应用程序得设计方法,发送时主要采用了总线仲裁机制,接收时主要采用了字符合法性校验、长度校验、内容得CRC校验,提高了系统得通信效率与稳定性。
关键词:VxWorks;RS-485;通信协议;总线仲裁;CRC校验1 引言随着信息技术与互联网得飞速发展,以及计算机、通讯、数码产品等领域得高速增长,数字化时代已经来临。
嵌入式设备就是数字化时代得主流产品,嵌入式软件就是数字化产品得核心,作为嵌入式软件得基础与关键,嵌入式操作系统在产业发展过程中扮演着越来越重要得角色,应用遍及工业自动化、网络通信、航空航天、医疗仪器等领域。
2 RS-485总线RS-485总线接口就是一种常用得串口,具有网络连接方便、抗干扰性能好、传输距离远等优点。
RS-485收发器采用平衡发送与差分接收,因此具有抑制共模干扰得能力,加上收发器具有高得灵敏度,能检测到低达200mv得电压,可靠通信得传输距离可达数千米。
使用RS-485总线组网,只需一对双绞线就可实现多系统联网构成分布式系统、设备简单、价格低廉、通信距离长。
3 VxWorks中串口驱动得实现VxWorks 操作系统就是美国Wind River公司设计开发得嵌入式实时操作系统(RTOS),就是嵌入式开发环境得关键组成部分。
Vxworks 操作系统得I/O 系统可以提供简单、统一、与任何设备无关得接口。
这些设备包括:面向字符设备、随机块存储设备、虚拟设备、控制与监视设备以及网络设备。
Vxworks 得I/O 系统包括基本I/O 系统与缓冲I/O 系统,具有比其她I/O 系统更快速,兼容性更好得特性。
这对于实时系统就是很重要得。
3、1 串口驱动架构基于vxWorks得串口设备驱动程序架构,对vxWorks得虚拟设备ttyDrv进行封装,向上将TTY设备安装到标准得I/O系统中,上层应用通过标准得I/O 接口完成对硬件设备得操作,向下提供对实际硬件设备得底层设备驱动程序。
一种RS-485总线自定义通信协议及其应用(转)1 概述在工业控制系统中,集散控制是目前最常用的测量控制方式。
通常,一个集散控制系统由一个主控计算机(上位机)和一系列基于MCU的前端智能仪器(下位机)构成,它们之间再通过一定的物理媒介连接在一起,以完成必要的通信功能。
对于一个特定的测控系统而言,所要测控的对象和所采取的测控算法是个有个性的东西;而上位机和下位机之间的通信可以看作是一系列命令流和数据流的流动,所采用的通信协议是用来保证传输过程的可靠和高效,是具有共性的,能够也应该有一个统一的设计标准。
在集散控制系统中,普遍采用RS-485总线作为底层通信接口。
它具有稳定可靠、编程简单、组网快速、价格低廉的优点,但在协议设计实现方面并没有一个统一的规范,导致不同的控制系统常常采用不同的通信协议。
因此,有必要结合我们的工作实践,设计一种有通用性的高效可靠的协议,从而简化基于RS-485的分布式测试系统通信部分的设计,既能够保证通信的稳定可靠,又能够把精力集中到测控系统算法的设计上。
通信协议的设计通常采用分层的机构,如ISO的OSI参考模型。
这里也采用分层的结构来描述我们自定义的基于RS-485总线的通信协议,如图1所示。
图1中,物理层是利用物理媒介实现物理连接的功能描述和执行连接的规程,提供用于建立、保持和断开物理连接的机械的、电气的、功能的和过程的条件;数据链路层用于建立、维持和拆除链路连接,实现无差错传输的功能;应用层针对不同的应用,利用链路层提供的服务,完成不同通信节点之间的通信。
下面结合每一层讨论这种自定义协议的具体设计,重点介绍如何实现可靠高效的通信,如何处理通信中错误,如何编程实现。
2 协议的设计2.1 物理层协议设计RS-485通信网络是一种总线式的结构,如图2所示。
上位机(以PC为例)和下位机(以基于MCS-51的智能仪器为例)都挂在通信总线上,物理层的通信协议由RS-485标准和MCS-51的多机通信方式共同方式。
RS485通信原理图及程序实例详解RS232 标准是诞⽣于 RS485 之前的,但是 RS232 有⼏处不⾜的地⽅:接⼝的信号电平值较⾼,达到⼗⼏ V,使⽤不当容易损坏接⼝芯⽚,电平标准也与TTL 电平不兼容。
传输速率有局限,不可以过⾼,⼀般到⼀两百千⽐特每秒(Kb/s)就到极限了。
接⼝使⽤信号线和 GND 与其它设备形成共地模式的通信,这种共地模式传输容易产⽣⼲扰,并且抗⼲扰性能也⽐较弱。
传输距离有限,最多只能通信⼏⼗⽶。
通信的时候只能两点之间进⾏通信,不能够实现多机联⽹通信。
针对 RS232 接⼝的不⾜,就不断出现了⼀些新的接⼝标准,RS485 就是其中之⼀,它具备以下的特点:采⽤差分信号。
我们在讲 A/D 的时候,讲过差分信号输⼊的概念,同时也介绍了差分输⼊的好处,最⼤的优势是可以抑制共模⼲扰。
尤其当⼯业现场环境⽐较复杂,⼲扰⽐较多时,采⽤差分⽅式可以有效的提⾼通信可靠性。
RS485 采⽤两根通信线,通常⽤ A 和 B 或者 D+和D-来表⽰。
逻辑“1”以两线之间的电压差为+(0.2~6)V 表⽰,逻辑“0”以两线间的电压差为-(0.2~6)V 来表⽰,是⼀种典型的差分通信。
RS485 通信速率快,最⼤传输速度可以达到 10Mb/s 以上。
RS485 内部的物理结构,采⽤的是平衡驱动器和差分接收器的组合,抗⼲扰能⼒也⼤⼤增加。
传输距离最远可以达到 1200 ⽶左右,但是它的传输速率和传输距离是成反⽐的,只有在 100Kb/s 以下的传输速度,才能达到最⼤的通信距离,如果需要传输更远距离可以使⽤中继。
可以在总线上进⾏联⽹实现多机通信,总线上允许挂多个收发器,从现有的 RS485芯⽚来看,有可以挂 32、64、128、256 等不同个设备的驱动器。
RS485 的接⼝⾮常简单,与 RS232 所使⽤的 MAX232 是类似的,只需要⼀个 RS485转换器,就可以直接与单⽚机的 UART 串⼝连接起来,并且使⽤完全相同的异步串⾏通信协议。
基于VxWorks的双485口管理系统设计摘要:vxworks嵌入式操作系统具有高效的实时任务管理与调度、任务的同步与通信、内存管理、i/o管理、时钟管理等机制。
两个485口在通信速率、工作模式、控制方式上有较大差别且系统死线要求严格。
详细介绍了vxworks下双485口串行通信系统bsp、驱动程序和应用程序的开发过程。
基于vxworks构建的嵌入式串行通信系统实时性好,效率高,可根据硬件进行优化配置;利用vxworks的i/o系统将驱动程序作为内核过程,设备作为特殊文件处理,解决了工作方式不同的两个485口的驱动程序开发和接口统一问题。
关键词:通信系统;嵌入式串行通信引言vxworks是美国windriver公司专门为嵌入式微处理器设计的一种高模块化、高性能的实时多任务操作系统,具有很好的安全性、可靠性及系统灵活性[12]。
该系统要求两个485端口波特率分别为460.8 kb和614.4 kb;工作方式分别为程序查询式和中断驱动式;代写论文握手方式和通信控制方式也完全不具有相对的独立性和“并发性”,而且各个任务根据不同的“紧迫感”应具有不同的优先级。
根据以上多方面的要求和特点,基于优先级抢占式的多任务实时操作系统vxworks是该系统的首选[3]。
本文以研制某型训练装备为背景,详细介绍了基于vxworks的双485口通信系统设计方法和过程。
1串口通信基本原理串口通信作为最常用的通信方式,用途非常广泛,驱动易于编写,被绝大多数操作系统默认支持。
其基本功能是实现和串行设备间的编码转换发送数据时,字节数据经cpu通过通用异步接收发送器(简称uart)转换为串行位,从串行端口发送出去;接收数据时,串行位通过uart被转换为字节数据,并放入缓冲区,由cpu读取。
通过对uart的内部寄存器的控制实现字节数据和位数据的转换和通信。
通信时,uart按初始化设置,把起始位、校验位和停止位加到来自cpu的8位数据上,然后按设置的波特率把这个二进制位串发送到串行通信线上,如图1所示;同样,uart能自动从通信线上接收串行数据,并取出有效的数据位,然后转换成数据字符存入接收数据寄存器。
—16—收稿日期:2009-02-04机 车 电 传 动ELECTRIC DRIVE FOR LOCOMOTIVES№4, 2009July 10, 2009 2009年第4期 2009年7月10日研究开发基于VXWORKS的RS485-MVB网关的设计与实现肖家博1,2,杨卫峰2,黎福海1(1. 湖南大学电气与信息工程学院,湖南 长沙 410083;2. 株洲南车时代电气股份有限公司技术中心,湖南株洲412001)作者简介:肖家博(1980-),男,工程师,硕士研究生,主要从事列车控制系统基础平台研究与开发、嵌入式系统研究与应用。
摘要:针对目前列车网络控制系统的需要,设计了列车网络控制系统中MVB与RS485通信互连的网关。
重点介绍了基于VXWORKS操作系统、COLDFIRE处理器平台实现RS485- MVB网关的软、硬件设计方案与技术。
该网关系统充分利用了COLDFIRE处理器的片上资源及其优势,能很好地满足RS485-MVB网关系统的要求,具有较高的可靠性和较强的实用性。
关键词:VXWORKS操作系统;COLDFIRE处理器;RS485-MVB网关;MVB;RS485中图分类号:TN915.05;U266 文献标识码:A 文章编号:1000-128X(2009)04-0016-03Design and Implementation of RS485-MVB Gateway Based on VXWORKSXIAO Jiao-bo1,2, YANG Wei-feng2, LI Fu-hai1(1. College of Electrical and Information Engineering, Hunan University, Changsha, Hunan 410083, China;2. Technology Center, Zhuzhou CSR Times Electric Co., Ltd., Zhuzhou, Hunan 412001, China)Abstract:According to the current needs of train network control system, this paper designs gateway communicated between MVB and RS485. The paper puts emphasis on the scheme and technology of software and hardware of RS485-MVB gateway, which is based on VXWORKS operating system and COLDFIRE processor platform. The gateway system makes full use of the resources and advantages of the COLDFIRE processor-chip to meet the needs of the RS485-MVB gateway system and has the advantages of high reliability and applicability.Key words:VXWORKS operating system; COLDFIRE processor; RS485-MVB gateway; MVB; RS4850引言当前国际上主要的机车供应商为用户提供的列车控制系统都采用了符合IEC61375标准的TCN网络,如西门子公司的SIBAS32、BOMBARDIER公司的MITRAC等。
云南大学学报(自然科学版),2007,29(S2):259~262CN53-1045/N ISSN0258-7971 Journal of Yunnan U niversityΞ基于RS-485总线主从通信协议及其实现彭 娜,黎 英,林庆超,张英华(云南大学信息学院,云南昆明 650091)摘要:RS-485总线是工业现场控制系统常用的组网方法.本文中详细讨论了一种基于RS-485总线通信协议的设计,具有可靠、灵活,相比其它的主从通信协议设计可以实现即插即用功能.关键词:RS-485;主从通信协议;协议数据单元中图分类号:TP366 文献标识码:A 文章编号:0258-7971(2007)S2-0259-04 计算机技术、自动化技术和通信技术是现代信息科学技术的重要组成部分,是现代科学技术中的核心先导技术.计算机控制是计算机技术与自动控制理论及自动化技术紧密结合并应用于实际的结果.20世纪90年代高性能计算机、网络技术及多媒体技术的发展,使计算机应用向网络化、综合化、集成化、智能化发展,使自动控制技术更广泛地应用于工业、交通、服务等各行各业,而且控制的形式也越来越复杂.许多单机控制系统已逐渐向多机联网的方向发展,如:数据采集、消防、门禁、消费等控制系统,这就需要将各单机控制系统进行组网以进行相互通信,从简单的集中式控制逐渐向复杂的分布式、多控制端形式发展,出现了以网络通信技术为基础的新的控制形式.串行通信作为一种简单、廉价的通信方式在控制工程中广泛应用,其中RS -485总线型多CPU网络控制系统得到了推广与发展[1].1 硬件设计RS-485通信协议是工业控制中使用最为广泛的双向、平衡传输线标准,它支持多点联接,允许创建多达32个接点的网络,并可以在网络中增加另外32个模块;由于RS-485标准支持半双功通信,只需2根线就可以进行数据的发送和接收,同时具有抑制共模干扰的能力.在由单片机构成的多机串行通信系统中,采用主从式结构:子机不主动发送命令或数据,一切都由主机控制.并且在一个多机通信系统中,只有1台单片机作为主机,各台子机之间不能相互通讯,即使有信息交换也必须通过主机转发[2],RS-485构成的多机通信原理框图如图1.2 通信协议设计协议数据单元分为2种格式:通用帧格式(表1);特殊帧格式(表2)表1 通用帧格式T ab11 G eneral frame format地址功能数据长度数据CRC1B1B1B1-16B2B表2 特殊帧格式T ab12 S pecial frame format地址功能结束符1B1B0X00其中第1种格式为通用帧,第2种数据帧当主机检测与之连接从机的地址或者报接收数据出错时才用的格式.主从式通信方式,即主控制器采用循环查询的方式于各子控制器通信,子控制器相互间不直接通信,而是通过主控制器间接地相互通信.Ξ收稿日期:2007-09-20作者简介:彭 娜(1983- ),女,云南人,硕士生,主要从事低压电力载波通信协议方面的研究.通讯作者:黎 英(1963- ),男,云南人,教授,博士,主要从事嵌入式系统研究.主节点向从节点发送3种类型的请求:(1)广播模式 主节点向所有从节点发送请求.主节点发送的广播请求无需响应,所有的从机都必须接受,地址为0X00为广播请求保留[3].(2)查询地址模式 定期检测与主节点连接的从节点的地址,实现即插即用功能.主机发送一简单的数据帧来检测与之连接的从节点的地址.在本系统中设置的是主节点轮询完所有从节点3次,进行1次检测从节点的地址,主节点从地址0开始询问从节点,在等待一段时间(这段时间为数据往返1次的时间)后收到从节点的应答,则该从节点地址存在,将这个地址存入address[]中,如果在等待一段时间后没有收到应答信号,则认为此地址为空,将地址加1继续询问,直到地址为最大地址(最大地址指的是允许范围内可接最多的从机数量,如可最多可接32台从机,则最大地址为0X 20).图1 RS -485多机通信原理框图Fig 11 RS -485multi -SC M communication principle图2 查询地址模式流程图Fig 12 Demand address m ode flow -chart(3)单址通信模式 主节点寻址一个单独的从节点.从节点收到并处理请求之后,向主节点返回一个消息(应答).在这里一个会话包括2个消息:主节点的请求,从节点的应答.每个从节点的地址必须是独一无二的.主节点一次分别询问每一个从节点,主节点先发送握手信号给从节点,如果该从节点有数据要通信,则返回给主节点应答信号,这样从节点和主节点就建立起连接,然后交换数据,完毕后再继续询问下一台从节点;如果该从节点没有数据要通信,则不用应答主节点,主节点在固定的时间段(固定的时间段内是指数据往返1次所需的时间)内没有收到应答信号,则直接询问下一台从节点.数据的交换过程(包括建立连接和交换数据)采用一问一答的方式,主控制器询问了子控制器,子控制器才给予应答,收到应答后,数据交换才继续进行下去.这样的方式可以避免多个子控制器间没有次序的62云南大学学报(自然科学版) 第29卷数据通信,扰乱整个网络上数据的传输.本系统采用的是一问一答的可靠连接方式,在数据帧的传递过程中,如果等待对方应答超时,或者没有接收到正确数据(在指令数据帧格式中,还定义了CRC 校验字段,每一帧指令数据帧发送前,通过计算填入该字段,接收后读出该字段并进行验证),要求对方重发1次,如果再次等待应答超时或者没有接收到正确的应答,则认为此次通信失败.主机和从机的流程图分别如图3,4.图3 主机流程图Fig 13 H ost flow -chart3 小 结在系统中用AT ME L 系列单片机和RS -485通信芯片S N75176组网,波特率采用250K bps 进行通信.在实验系统中采用上述主从通信协议,主机轮询从机的方式进行通信.主机先检测与之连接从机的地址,检测之后与这些从机进行通信,轮询通信完3次后,再一次检测与之连接从机的地址,如果有新添加的从机,主机就可以在这次检测中检测到其地址,如果有拔出的从机,主机在检测中可以发现拔出从机的地址为空,则从通信从机地址中将这个地址删除.在实验中添加从机和拔出从机都不会影响整个通信,在最大从机允许范围内从机可随意添加或者删除,实现了即插即用功能.并且在整个系统中采用的是轮询方式,当与其中一台从机通信时发生故障,采取重发一次机制,如果仍然有错误,则结束与此台从机的本轮通信,开始与下一台从机通信,所以当个别从机发生故障的时候并不影响通信.162第S2期 彭 娜,等:基于RS -485总线主从通信协议及其实现图4 从机流程图Fig 14 Subordinate flow -chart参考文献:[1] 范辉.RS -485总线与C AN 总线应用比较[J ].上海电机学院学报,2005,8(5):54256.[2] 王天义,杨建中.一种新型RS -485接口芯片在远程多机通讯中的应用[J ].仪器仪表标准化与计量,2004(5):38240.[3] 王琦,秦娟英,周伟.用RS -485构成总线型多点数据采集系统[J ].计算机自动测量与控制,2000,8(6):45247.[4] 阳宪惠.现场总线技术及其应用[M].北京:清华大学出版社,1999.[5] 史兴安,姜智忠,RS -485串行总线在实时控制中的应用[J ].微电子学与计算机,2001(2):49251.[6] 马朝,詹卫前,耿德根.Atmega8原理及应用手册[M].北京:清华大学出版社,2002.[7] 王苒,汤冬谊.基于RS485主从通信协议的实现[J ].现代电子技术,2003(24):67271.Achievement of master -slave communication architecture based on RS -485PE NG Na ,LI Y ing ,LI N Qing 2chao ,ZH ANG Y ing 2hua(School of In formation Engineering ,Y unnan University ,K unming 650091,China )Abstract :RS -485bus is used to group netw ork in industry control system.The thesis discusses a design of RS-485bus based communication protocol.The protocol is reliable ,flexible and can im plement PnP (plug and play )com pare to other master -slave communication protocols.K ey w ords :RS -485;master -slave communication protocol ;protocol data unit262云南大学学报(自然科学版) 第29卷。
基于Vxworks实时操作系统的串口通信程序设计与实现摘要:结合嵌入式实时操作系统VxWorks实现风洞测控系统的实际应用,以其中的串口通信为例,讨论了在VxWorks下实现串口通信的关键技术,给出了基本原理、环境配置和程序示例。
关键词:VxWorks;实时操作系统;嵌入式操作系统;串行通信[Abstract] Combining with the application of wind tunnel measure and control system with embedded real-time operating system VxWorks , with the serial communication in it as an example ,the key techniques about realization of the serial communication in VxWorks are discussed. Communication mechanism, environment configure and corresponding program examples are provided.[Key words] VxWorks;RTOS;embedded operating system; Serial Communication1前言目前市场上比较著名的实时操作系统有:VxWorks、PSOS、Nucleus、QNX、VRTX、Windows CE、Palm 0S、Lynx0S等。
其中,VxWorks是一个具有微内核、可裁剪的高性能强实时操作系统,在实时操作系统市场上处于领先地位。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、弹道制导、飞机导航等。
在美国的 F-16战斗机、B-2 隐形轰炸机和爱国者导弹上,甚至火星探测器上都使用了VxWorks实时操作系统。
VxWorks下串口通信程序设计与实例【摘要】本问讨论了在嵌入式实时操作系统VxWorks下结合PowerPC平台实现串口通信的相关技术,给出了基本原理和程序示例。
详细介绍了串口设置时每个参数的配置方法及作用。
【关键词】VxWorks;PowerPC平台;串行通信;串口参数1.前言VxWorks是一个具有微内核、可裁剪的高性能强实时操作系统,在全球和国内被大量使用。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。
PowerPC处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量,包含串行和以太网控制器这样功能强大的集成I/O。
在计算机系统通信应用中,RS232串口是目前广泛使用的设备通信控制接口,在嵌入式实时操作系统中实现串口通信,可大大提高系统的应用范围,提高系统获取信息的能力。
2.串口通信原理及优点串口通信本质是CPU发出的命令数据经串行端口后转换为串行的位,接收方又把串行的位转换成字节命令回送CPU,实现通讯。
串口通信有如下优点:(1)开发简单,用户可以自定义数据格式,独占串口与另一方通讯。
(2)成本低廉,串口通信从转换芯片到传输介质相对其他通信成本廉价。
(3)使用灵活,有全双工RS232,亦有但双工RS485,而且转换方便。
在传输数据量不大,传输距离不大,比如一个变电站内,非常适合使用串口通信。
3.串口通信在Vxworks实现原理在VxWorks中,将I/O系统设计成为任何类型的设备提供一个简单、统一、独立于设备的接口,任何对于串口的操作都可以视为对一个文件的操作,而不必了解串口设备或程序驱动实现的细节。
下面以MPC8309 CPU添加12个串口为例解释实现过程:(1)软件添加,修改对应BSP包,使系统支持12个串口,并且申请资源。
编译BSP包,生成vxworks系统文件及bootrom文件。
系统启动时用devs命令可以查看到串口。
VxWorks中基于RS485总线的串口通信协议及实现
摘要:本文介绍了在嵌入式实时操作系统Vxworks 下串行设备的驱动架构及实现,提出了一种基于RS-485总线的新型串口通信协议,重点讨论了基于这种协议的应用程序的设计方法,发送时主要采用了总线仲裁机制,接收时主要采用了字符合法性校验、长度校验、内容的CRC校验,提高了系统的通信效率和稳定性。
关键词:VxWorks;RS-485;通信协议;总线仲裁;CRC校验1 引言随着信息技术和互联网的飞速发展,以及计算机、通讯、数码产品等领域的高速增长,数字化时代已经来临。
嵌入式设备是数字化时代的主流产品,嵌入式软件是数字化产品的核心,作为嵌入式软件的基础和关键,嵌入式操作系统在产业发展过程中扮演着越来越重要的角色,应用遍及工业自动化、网络通信、航空航天、医疗仪器等领域。
2 RS-485总线RS-485总线接口是一种常用的串口,具有网络连接方便、抗干扰性能好、传输距离远等优点。
RS-485收发器采用平衡发送和差分接收,因此具有抑制共模干扰的能力,加上收发器具有高的灵敏度,能检测到低达200mv的电压,可靠通信的传输距离可达数千米。
使用RS-485总线组网,只需一对双绞线就可实现多系统联网构成分布式系统、设备简单、价格低廉、通信距离长。
3 VxWorks中串口驱动的实现
VxWorks 操作系统是美国Wind River公司设计开发的嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
Vxworks 操作系统的I/O 系统可以提供简单、统一、与任何设备无关的接口。
这些设备包括:面向字符设备、随机块存储设备、虚拟设备、控制和监视设备以及网络设备。
Vxworks 的I/O 系统包括基本I/O 系统和缓冲I/O 系统,具有比其他I/O 系统更快速,兼容性更好的特性。
这对于实时系统是很重要的。
3.1 串口驱动架构基于vxWorks的串口设备驱动程序架构,对vxWorks的虚拟设备ttyDrv进行封装,向上将TTY设备安装到标准的I/O系统中,上层应用通过标准的I/O 接口完成对硬件设备的操作,向下提供对实际硬件设备的底层设备驱动程序。
其软件架构如图1所示。
由图1可知,串口设备驱动由两部分组成,一部分为对ttyDrv进行封装,将串行设备安装到标准的I/O系统中,提供对外的接口;另一部分为串行设备驱动程序,提供对硬件设备的基本操作。
虚拟设备ttyDrv管理着I/O系统和真实驱动程序之间的通信。
在I/O系统方面,虚拟设备ttyDrv作为一个字符型设备存在,它将自身的入口点函数挂在I/O系统上,创建设备描述符并将其加入到设备列表中。
当用户有I/O请求包到达I/O系统中时,I/O系统会调用ttyDrv相应的函数响应请求。
同时,ttyDrv管理了缓冲区的互斥和任务的同步操作。
另一方面,ttyDrv负责与实际的设备驱动程序交换信息。
通
过设备驱动程序提供的回调函数及必要的数据结构,ttyDrv 将系统的I/O请求作相应的处理后,传递给设备驱动程序,由设备驱动程序完成实际的I/O操作。
3.2 驱动初始化串口设备的初始化xxDevInit流程如图2。
设备驱动的初始化过程首先调用系统函数ttyDrv(),该函数通过调用iosDrvInstall()将ttyOpen()、ttyIoctl()、tyRead()、tyRead、tyWrite安装到系统驱动函数表中,供I/O系统调用。
接着根据用户入参对串口芯片寄存器进行初始化,安装驱动函数指针。
最后调用系统函数ttyDevCreate()创建ttyDrv设备。
该函数初始化设备描述符,调用tyDevInit()函数初始化tyLib、初始化select功能、创建信号量和输入输出缓冲区,调用iosDevAdd()函数将设备添加到设备列表中并将设备置为中断模式。
驱动模块初始化成功后,应用程序就可以用标准的I/O函数read()和write()收发数据了。
4 RS-485通信协议4.1 485通信帧格式表1 485通信帧格式目的地址源地址长度控制帧净荷数据CRC检验1Byte1Byte1Byte2Bytes由长度字节确定,≤
255Bytes2Bytes。