




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-假设品艰0丁-串口通信的根本概念串口通信的根本概念1,什么是串口?2,什么是 RS-232?3,什么是RS-422?4,什么是 RS-485?5,什么是握手?1,什么是串口?串口是计算机上一种非常通用设备通信的协议不要与通用串行 总线Universal Serial Bus或者USBf!淆.大多数计算机包含两个基于RS232的串口.串口同时也是仪器仪表设备通用的通信 协议;很多GP旧兼容的设备也带有RS-232 口.同时,串口通信 协议也可以用于获取远程采集设备的数据.串口通信的概念非常简单,串口按位bit 发送和接收字节. 尽管比按字节byte的并行通信慢,但是串口可以在使用一根 线发送数
2、据的同时用另一根线接收数据.它很简单并且能够实现 远距离通信.比方IEEE488定义并行通行状态时,规定设备线总 常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达 1200米.典型地,串口用于ASCII码字符的传输.通信使用3根线完成: 假设品 Wlpr1-1地线,2发送,3接收.由于串口通信是异步的,端 口能够在一根线上发送数据同时在另一根线上接收数据.其他线 用于握手,但是不是必须的.串口通信最重要的参数是波特率、 数据位、停止位和奇偶校验.对于两个进行通行的端口,这些参 数必须匹配:a,波特率:这是一个衡量通信速度的参数.它表示每秒钟传送的bit的个数.例
3、如300波特表示每秒钟发送300个bit.当我 们提到时钟周期时,我们就是指波特率例如如果协议需要 4800波特率,那么时钟是4800Hz这意味着串口通信在数据线上的采 样率为4800H乙通常 线的波特率为14400, 28800和36600. 波特率可以远远大于这些值,但是波特率和距离成反比.高波特 率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信.b,数据位:这是衡量通信中实际数据位的参数.当计算机发送 一个信息包,实际的数据不会是 8位的,标准的值是5、7和8 位.如何设置取决于你想传送的信息.比方,标准的 ASCII码是 0127 7位.扩展的ASCII码是0255
4、 8位.如果数据使 用简单的文本标准ASCII码,那么每个数据包使用7位数据. 每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位. 由于实际数据位取决于通信协议的选取,术语“包指任何通信的情况.c,停止位:用于表示单个包的最后一位.典型的值为 1, 1.5和-假设 品-2位.由于数据是在传输线上定时的,并且每一个设备有其自己 的时钟,很可能在通信中两台设备间出现了小小的不同步.因此 停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步 的时机.适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢.d,奇偶校验位:在串口通信中一种简单的检错方式.有四种检 错方
5、式:偶、奇、高和低.当然没有校验位也是可以的.对于偶 和奇校验的情况,串口会设置校验位数据位后面的一位,用 一个值保证传输的数据有偶个或者奇个逻辑高位.例如,如果数 据是011,那么对于偶校验,校验位为 0,保证逻辑高的位数是 偶数个.如果是奇校验,校验位位 1,这样就有3个逻辑高位.高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验.这样使得接收设备能够知道一个位的状态,有时机判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步.2,什么是 RS-232?RS-232 ANSI/EIA-232标准是旧M-PC及其兼容机上的串行连 接标准.可用于许多用途,比方连接鼠标、打印机或者Mo
6、dem同时也可以接工业仪器仪表.用于驱动和连线的改良,实际应用 中RS-232的传输长度或者速度常常超过标准的值.RS-232只限 于PC串口和设备间点对点的通信. RS-232串口通信最远距离是50英尺DB-9针连接头从计算机连出的线的截面.RS-232针脚的功能:数据:TXD(pin 3 ):串口数据输出RXD(pin 2 ):串口数据输入握手:RTS (pin 7 ):发送数据请求CTS(pin 8 ):去除发送DSR(pin 6 ):数据发送就绪DCD(pin 1 ):数据载波检测DTR(pin 4 ):数据终端就绪地线: 假设品艰071一- GND(pin5 ):地线其他RI (pi
7、n 9 ):铃声指示3,什么是RS-422?RS-422 (EIA RS-422-A Standard )是 Apple 的 Macintosh 计算 机的串口连接标准.RS-422使用差分信号,RS-232使用非平衡 参考地的信号.差分传输使用两根线发送和接收信号,比照RS-232,它能更好的抗噪声和有更远的传输距离.在工业环境中 更好的抗噪性和更远的传输距离是一个很大的优点.4,什么是 RS-485?RS-485 (EIA-485标准)是RS-422的改良,由于它增加了设备的 个数,从10个增加到32个,同时定义了在最大设备个数情况下 的电气特性,以保证足够的信号电压.有了多个设备的水平,
8、你 可以使用一个单个RS-422 口建立设备网络.出色抗噪和多设备 水平,在工业应用中建立连向 PC机的分布式设备网络、其他数 据收集限制器、HMI或者其他操作时,串行连接会选择RS-485.RS-485是RS-422的超集,因此所有的RS-422设备可以被 RS-485限制.RS-485可以用超过4000英尺的线进行串行通行假设品WbQDB-9引脚连接从计算机连出的线的截面.RS-485和RS-422的引脚的功能数据:TXD+ (pin 8), TXD- (pin 9), RXD+(pin 4), RXD- (pin 5)握手:RTS+ (pin 3) , RTS- (pin 7), CTS
9、+ (pin 2), CTS- (pin 6)地线:GND (pin 1 )5,什么是握手?RS-232通行方式允许简单连接三线:Tx、Rx和地线.但是对于 数据传输,双方必须对数据定时采用使用相同的波特率.尽管这 种方法对于大多数应用已经足够,但是对于接收方过载的情况这 种使用受到限制.这时需要串口的握手功能.在这一局部,我们 讨论三种最常用的RS-232握手形式:软件握手、硬件握手和假设品3 Xmodema,软件握手:我们讨论的第一种握手是软件握手.通常用在实 际数据是限制字符的情况,类似于GP旧使用命令字符串的方式. 必须的线仍然是三根:Tx, Rx和地线,由于限制字符在传输线上 和普通
10、字符没有区别,函数SetXModemfc许用户使能或者禁止用 户使用两个限制字符XOM口 OXFF这些字符在通信中由接收方发 送,使发送方暂停.例如:假设发送方以高波特率发送数据.在传输中,接收方发现 由于CPU忙于其他工作,输入buffer已经满了.为了暂时停止传输,接收方发送XOFF典型的值是十进制19,即十六进制13, 直到输入buffer空了.一旦接收方准备好接收,它发送XON典 型的值是十进制17,即十六进制11,继续通信.输入buffer半满时,LabWindows发送XOFF止匕外,如果XOFF专输被打断,LabWindows会在buffer达至U 75%和90%时发送XOFF显
11、然,发送方必须遵循此守那么以保证传输继续.b,硬件握手:第二种是使用硬件线握手.和 Tx和Rx线一样, RTS/CTSffi DTR/DSR-起工作,一个作为输出,另一个作为输入.第一组线是 RTS (Request to Send )和 CTS (Clear to Send ). 当接收方准备好接收数据,它置高 RTS线表示它准备好了,如果 发送方也就绪,它置高 CTS表示它即将发送数据.另一组线是假设品城07-DTR(Data Terminal Ready )和 DSR(Data Set Ready).这些现 主要用于Modem!信.使得串口和Modemil信他们的状态.例如: 当Mode
12、mB经准备好接收来自PC的数据,它置高DT就,表示 和 线的连接已经建立.读取DS瞰置高,PC机开始发送数据.一个简单的规那么是 DTR/DS即于表示系统通信就绪,而 RTS/CTS 用于单个数据包的传输.在LabWindows函数SetCTSMod敏能或者禁止使用硬件握手.如果CT蹴式使能,LabWindows使用如下规那么:当PC发送数据:RS-232库必须检测CT酸高后才能发送数据.当PC接收数据:如果端口翻开,且输入队列有空接收数据,库函数置高RT印DDTR 如果输入队列90%满,库函数置低RTS但使DTRt持高电平.如果端口队列近乎空了,哭喊数置高RTS但使DRTI持高电平.如果端口
13、关闭,库函数置低 RT第口 DTRc, XModemi手:最后讨论的握手叫做XModem件传输协议.这 个协议在Modemil信中非常通用.尽管它通常使用在 Modemil信中,XMode的议能够直接在其他遵循这个协议的设备通信中使 用.在LabWindows中,实际的XModer用对用户隐藏了.只要假设品艰(7丁 -PC和其他设备使用XModem、议,在文件传输中就使用 LabWindows的 XModenB数.函数是 XModemConfig XModemSend 和 XModemReceiveXModemiS用介于如下参数的协议:start_of_data 、end_of_data、 n
14、eg_ack、wait_delay 、start_delay 、max_tries 、packet_size . 这些参数需要通信双方认定,标准的 XModenW一个标准的定义: 然而,可以通过XModemConfig®数修改,以满足具体需要.这 些参数的使用方法由接收方发送的字符neg_ack确定.这通知发送方其准备接收数据.它开始尝试发送,有一个超时参数 start_delay ;当超时的尝试超过 max_ties次数,或者收到接收 方发送的start_of_data ,发送方停止尝试.如果从发送方收到 start_of_data ,接收方将读取后继信息数据包.包中含有包的 数目
15、、包数目的补码作为错误校验、packet_size字节大小的实际数据包,和进一步错误检查的求和校验值.在读取数据后,接 收方会调用wait_delay ,然后想发送方发送响应.如果发送方没 有收到响应,它会重新发送数据包,直到收到响应或者超过重发 次数的最大值max_tries.如果一直没有收到响应,发送方通知 用户传输数据失败.由于数据必须以pack_size个字节按包发送,当最后一个数据包 发送时,如果数据不够放满一个数据包,后面会填充 ASCII码 NULL(0)字节.这导致接收的数据比原数据多.在 XModer#况下一定不要使用XON/XOFF由于XModemt送方发出包的数目很可能增
16、加到XON/OF限制字符的值,从而导致通信故障.RS-232, RS-422 和 RS-485 串口通讯接口的快速比拟问题:RS-232, RS-422 以及RS-485 串口的根本区别是什么?解答:下面的表格比拟了:工作方式,驱动器和接收器的总数,电缆的最大长度及最大传输速率.RS-232 是大多数计算机通用的接口,比方 COM1 和COM2.注意,大多数计算机的接口COM1 以及COM2 并不是RS-422/RS-485.然而,RS-422 是苹果 Macintosh计算机的标准接口. RS-485 是基于 RS-422 的一种改良,在工业中更普遍.所有 NI的RS-485 板卡都支持 R
17、S-422 标准.顼甘RS-422RST35守方式的差分,单续上的能动器和核 收船的总果RS.4g5 陶部一次一个奥动器 呼1个鬓动器1个修程罪1 个驱动器 个售收器g个理动器 整个横圆器龟嫌最长长度3 口 英尺 C500pF)4的0英尺最大传输速率附尺4W0舜R3的特定情同下可以更高10 KtbiUklOMbiU'e问题:串行通讯的根本架构是什么?解答:串口通讯架构每一个异步串行系统的核心都是一个UART通用异步接收机/发送机.UART不仅限制传输的数据,相应的电平,同时也限制通讯的速度.UART能够存储足够的信息,所以保证了在电脑忙得时候,数据流也能连续传输.这对于同时处理大量任务
18、的操作系统非常有帮助.下面附图是理想串行通讯的示意.我们大局部的串行卡都有一个输入输出的FIFO 查看目录了解详细信息.FIFO 的数据可以通过串行驱动获取.串行驱动会自动地把FIFO 的数据传输到软件的缓存,这个缓存是可以在应用软件由用户配置的比方,在LabVIEW 您可以使用Serial PortInit VI来设置缓存去大小.读接口的数据实际上包含从软件缓存读的过程.确认硬件操作的回路测试有三种方式确认串口的操作:LabVIEW ,超级终端和 LabWindows/CVI .这三种方式进行回路测试是把串口的发送和接受引脚短接.第一步描述短接引脚的过程.LabVIEW的处理写在下面,而超级
19、终端和LabWindows/CVI的过程在本文后面的链接里.对于 LabVIEW建议使用如下步骤:a,连接一根电缆到串口.最常用的 RS-232 电缆是9针或者25针DB-9 或者DB-25 .在电缆端把 2、3引脚短接.这会把计算机发送数据的线连接到接收数据的线.一旦短接,BD-9的上一排变成1 2 =3 4 5对于RS-485 端口,电压是差分的.因此,你必须短接TXD+ 和RXD+ 、TXD-和RXD-对于 DB-9 电缆,连尚品城7川接pin4 到pin8 和pin5 到pin9 ;对于模块化接口,连接 pin2 到pin6 和pin3 到pin7 ;对于 Combicon接头,连接p
20、inl到pin5 和pin2 到pin4 .保证你的软件配置为 4线模式.在LabVIEW 中应用串口第一局部使用LabVIEW系统VI、串口 VI介绍LabVIEW 的串口通讯 VI 位于 Instrument I/O Platte 的 Serial 中,包括:VI名称VI功能VISA Configure Serial Port初始化 VISA resource name指定的串口通讯参数VISA Write将输出缓冲区中的数据发送到VISA resource name 指定的串 口VISA Read将 VISA resource name指定的串口接收缓冲区中的数据读取指定字节数的数据到计
21、算机内存中VISA Serial Break向 VISA resource name指定的串口发送一个暂停信号VISA Bytes at Serial Port查询 VISA resource name指定的串口接收缓冲区中的数据字节数VISA Close结束与 VISA resource name指定的串口资源之间的会话VISA Set I/O Buffer Size设置 VISA resource name指定的串口的输入输出缓冲区大小VISA Flush I/O Buffer清空 VISA resource name指定的串口的输入输出缓冲区二、使用说明国一翻发送数斑VISJI关闭在La
22、bVIEW环境中使用串口与在其它开发环境中开发过程类似,根本的流程框图如下商品城77 -首先需要调用 VISA Configure Serial Port完成串口参数的设置,包括串口资源分配、波特率、数据位、停止位、校验位和流控等等如果初始化没有问题,就可以使用这个串口进行数据收发.发送数据使用VISA Write ,接收数据使用 VISA Read .在接收数据之前需要使用 VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果 VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read 操作将一直等待,直至 Timeout或者缓冲区中
23、的数据字节数到达要求的字节数.当然也可以分批读取接收缓冲区或者只从中读取一定字节的数据.图3、从串口发送数据图4、从串口接收数据在某些特殊情况下,需要设置串口接收/发送缓冲区的大小,此时可以使用VISA Set I/O Buffer Size ;而使用VISA FlushI/O Buffer那么可以清空接收与发送缓冲区.在串口使用结束后,使用 VISA Close 结束与VISA resource name 指定的串口之间的会话.品plica士白 VTSjk r营亏uturc:用 nam片huplitg七百 VISA r esotir ee nara巨"Supli VISA reso
24、urce nane图5、设置缓冲区大小I/陶1Irani图6、清空缓冲区图7、结束会话/线程具体的例子可以参考:examplesinstrsmplserl.llb第二局部使用 MSCOMM控件在LabVIEW 中使用MSCOMM 控件,与在 VC、VB中使用一样.同样可以使用中断方式进行接收.具体的例子可以发图8、使用控件的串口收发程序JLII串口限制$ ."串注Chan狷口口 口口 口3彳 1 U. 1 Tk _amHSCommISVS 购的m Jk ComftPo-rtk Settingsk PortDpenRThraikoldk SHur4sLold.R -CUISComm =
25、° F 工晤匚 omm ;FirtOpin h号>“ k FirtOpftii尚临令口【J -CIMSCciwi SCiffimEvftnt-C工怖.nm-t工H乳wnm看除窗口PortOpenPortOpn图9、程序数据流图首先通过LabVIEW的工具菜单Tools >> Advanced >> Import ActiveX Controls 将 Microsoft 的串口控件-“MicroCommunications Control找到这个控件.,version 6.0"添加到LabVIEW 环境中,存放在缺省路径即可,这样在User Co
26、ntrols Palette里面工国 山北上迂11三4 2.立口上 2i*lillHue Conila.QpU 4IVS. +.VI Metrics.Frtfili Vis .Elii Error Codts.Eii+ Palfittft Vi 4WS.Ep4rt Slrizigs.Tmpof t Strizigs.Lmpcrt ActiveX ContriQils ,hctiveX Frorty rowEer.BJI Assembly References.图10、添加ActiveX控件菜单图12、用户控件圜>1 放置在 Front Panel将串口控件注意:一个串口资源要有一个MSC
27、OMM控件与之相对应上,在框图程序中用控件属性对其进行编程,实现所需要的功能.第三局部考前须知、串口通讯的波特率设置要精确,比方要求9600的波特率,那么晶振应选择11.0593MHz或其倍数.二、由于通常情况下 LabVIEW 串口 VI接收或发送的都是字符串 Normal ,所以如果需要发送或接收十六进制数值 Hex ,请在2 或接收之前进行必要的转换.2.1、数值型数据的处理方法:2.1.1、1、如果这些数据是静态的,也就说在程序设计阶段要传输的数据就已经确定了,在这种情况下,首先设置VISA Write的write bu的显示属性为 Hex Display,然后直接输入要发送的16进制
28、字符串就可以了.串口设备的限制命令通常是由一个或多个16进制字符势的,当我们需要对其进行限制时经常会采用这种方法发送限制命令.2.1.2、数据是动态的;即要传输的数值型数据是动态产生和变化的,在发送之前首先要将其转换成对应的16进制字符串,才能赋给VVISA WWrite发送.将这些数据构成一个数组,用 Byte Array To String 进行转换,转换的结果就是对应数组数值的字符串,可以提交 发送.或者使用 Type Cast也可以实现同样的功能.串口发送数据2345 2967 93字符串2 £ H电幕)字符串1 ( Hex雷口发送数据串口接收数据 Hex )2345 2967 63上面星串口发送数据界面下面是串口接收数据界面字符串2 C Kex】Ube 11数披1器口接收数据f7:0 >数也密®数通图13、串口数据转换界面图14、串口数据转换数据流图图15、操作界面unsigned int zrfpqr口; ohai丁 bn£8;Ln匕mEW展虚拟仪器协作同盟Http:/1ab/iewnypicnQQ:359305303switch (command in. i )case 1D1;jargs-ssc=flnf (ficaim
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防设施维保内容及实施方案
- 2025年湿法混合颗粒机项目发展计划
- 2025年CTD剖面仪项目合作计划书
- 2025年紫外固化材料项目合作计划书
- 甘肃省天水市五中2025年高二物理第二学期期末监测模拟试题含解析
- 教育科技产品的伦理设计及市场策略
- 医疗健康信息的多样化传播途径
- 智慧教室中在线学习平台的设计与实践
- 家长参与的社区教育项目实践与思考
- 新媒体技术在商业培训中的价值体现
- 2025至2030中国耐腐蚀高温合金行业发展趋势分析与未来投资战略咨询研究报告
- 人文关怀病区管理制度
- 中华诗词大赛1-3年级题库(含答案)
- 中国军魂课件
- 油田调度汇报管理制度
- 2025至2030中国汽车线束与连接器行业发展趋势分析与未来投资战略咨询研究报告
- 2025春季学期国开电大本科《会计信息系统(本)》一平台在线形考客观题试题及答案
- JG/T 574-2019纤维增强覆面木基复合板
- 录音棚合伙人合同范本
- 管道防腐处理技术行业深度调研及发展项目商业计划书
- 以实验为翼:高中物理教学难点突破的创新实践
评论
0/150
提交评论