《labview如何进行串口通信——labview串口通信全方位了解.docx》由会员分享,可在线阅读,更多相关《labview如何进行串口通信——labview串口通信全方位了解.docx(11页珍藏版)》请在优知文库上搜索。
1、串口可以说是我们最简洁见到,也最简洁接触到的一种总线,台式机上一般都有二个,而现在许多卜位机、仪器等许多都还是运用串口通信的。论坛上许多挚友都常常会运用到串口,并遇到些问题,这里仃必要做个具体的说明,以便利广陶会员挚友便利运用.首先补充一个比较重耍的问题,就是在1.abvIEW中运用申口的话确定要光安装VISA这个驱动,然后生成的EXE运行时也须要在目标机上安装VlSARuntimeEngine,可以在打包时一起打包。1 .串口扩展的问题I先说一下串11的扩展问题,一般的台式机或工控机上都至少有二个串门,一般都是够用的,但是现在市场上已经很雄找到带串口的笔记本了,而有时候在外出调试时须要在笔记
2、本中运用到串口的,这时般是运用USB-RS232的转接线,价格从十几到一百多都有,许多挚友反应在运用价格低的转接线时会出现一塌糊涂的问题,而贵一点的线就很少听说有其它问题的,所以大家在运用便宜的USB-RS232转接线时要特殊留意线的质量,遇到一些惊奇的问题时先考虑换一根好点的线。PC1.RS232扩展卡也同理,便宜的卡也简洁出问题,尽量:买好点的,以免因小失大。PCl-RS232一般至少能扩展2个串口,有些BT一点的可以扩展到8-16个,一堆线和接头。转接战和扩展卡一般是要装驱动的。2 .串口功能的确认:在运用串口之前,最好先确认一下串口是否正常,特殊是运用转换接或扩展卡的。检查的方法很简洁
3、,就是将串口的2、3脚短接起来,3脚是发送数据,2脚接收数据,就是这个串口自发自收。电脑上的串口个件般是用串口调试助手,很出名的,也好用。如下图所示:4111iflUh手SCoBAsaiirtantV2.2For1II9X/HT/2000图1串口调试助手打开软件,选择已经短接好的串口号,点击“手动发送”,假如串口是好的,2、3脚乂短接起来了,立刻就可以在上面的接收框里看到接收的数据就是发送的数据。略微要留意一下的是有些电脑的CoMI和CoM2的位置是反过来的,所以要确定好串口调试助手左上角的串口上择的是已经短接的那一个,假如COMI没接收到,可以再先CoM2再发一次看一下。3 .串口线的检查:
4、检查好串口后,一般也要留意一下运用的串口线,标准的串口线是9根线都是用上的,但有些是只运用了三根线的:2、3、5.第3个脚管是发送,第2个管脚接收,另一个5是地线,这里叫它简化的申线,简化的串口线能用上的地方,标准的串口线也确定能用上,因为标准线的9根线已经包括了简化串U线中的3根线,但标准串口线能用上的地方,简化串口线就不确定能用上,所以在运用串口线之间确定要确定好串口线的类型,般买的事口线都是标准线,但自制的事口线因为应用场合不同就耍先确定一下。G串口线还有一个地方须要留意一下的,就是2、3脚的接法,标准接法中是2、3脚交叉的,即这边的2接另一边的3,这边的3接另一边的2,扭/一下,所以叫
5、交叉线,因为正常运用时,这边其次脚是发送数据,另一边第三脚是接收数据,所以要将这二个管脚连接起来,这样才能正常运用。但是有些状况F.2、3是直连的,即这边的第2脚连接另边的第2脚,第3脚连接第3脚,这种叫直连线,这种线一般是用手延长申的,比如须要将工控机的申口接头引到机柜表面上时,就运用这种线,这样机柜表面的串口线的定义还是跟电脑接出来的一样,外面的那一根串口线再运用交叉线。从电脑主板上将串口引到主机后面板上的线就是这样的直连线。购买串口线的时候般也会问你买直连的还是交叉的,要区分对待。事口线还有一个耍略微留意一下的就是DB头,因为电脑上接出来的一般是公头(针),要跟电脑接的话要母头孔),一般
6、仪器的串口也是公头,所以二边都是母头的串口线比较常见。串口的接头一般是DB9的,也有DB25的,但比较少用,有些比较BT的仪罂厂家尽然用RJIl(水晶头那种)作为串口头,让人不爽!总之,运用申口前确定要先确定好硬件没问题.不然很奢侈时间的.4 .串口参数设置:在1.abVIEW中运用串口时,有几个参数比较重要,须要先说明下的。个是申口初始化这个节点的“终止符和”禁用终止符?“这二个输入端,这二个输入端是相互作用的,“终止符”默认值为10,它的卜六进制是“OxOA”,这是一个ASCll码,是一个换行符,可以从1.abVlEw中的字符串的不同显示形式看出来,如卜.图:MormilDisplayDH
7、xDisplay/VCodesDisplayEnableTernmationChirCT)向国总,/拟仪器家园图2串口消息终止符左边是字符串的正常显示,中间是十六进制显示,右边是“代码显示,这三个字符串的值都是一样的。终止符是10,表示在接收数据时,遇到ASal码为10的字符(即换行符)时就停止接收数据,后面会仃例子进行说明。而“禁用终止符?”的默认值是FA1.SE,即启用终止符,启用终止符会有什么效果呢?终止符的意思就是当程序接收到这个字符时,就认为已经到了全部数据的未端了,从而停止接收,不管后面还有没有数据。终止符是10,表示在接收数据时,遇到ASClI码为10的字符(即换行符)时就停止接
8、收数据。可以做一个很简洁的试验,先短接串口2、3脚,然后将终止符设置为“0x33”,0x33是字符“3”的ASCII码,然后发送字符串可以看到接收回来的数据中只有“12”,即“3”被认为是字符串的未端1.它后面的数据就不再接收/.许多挚友就是因为这里设置钳误,导致接收数据时有时候只收到一半就没有了,特殊是在连续接收数据时,但又不是每次都只能收到一半,有时候也能接收齐全的,就是因为发送的数据中可能包含了终止符而使用口认为到了最终个字符了。般是将这个终止符禁用掉,即将“启用终止符?(EnableIerminaloE”这一端输入为False即可。另外还有一个比较重耍的设置,就是VISAREAD的“读
9、取字节数”这个输入,由于在串口通信中,假如指定读取100个串口缓冲区的字节数,假如当前缓冲区的数据量不足100个时,程序会始终停在VISAREAD这个节点上,假如在超时的时间(默认是10秒)内还没仃凑足100个数据的话,程序就会报,*TimeOUr的错误,假如超时时间设置得太长,有可能导致程序很长时间停止在VISAREAD这个节点上。解决的方法是运用“BytesatPOrr这个串口的屈性节点,在VISAScrialadvanceF,也可以在VISA资源线上右键创建属性节点串设置BytesatPort.如下图:VitiVlheHlEXCkcMrMrMl8aPAIyBMcVXQeVIXruyYib
10、AcXcr(i4tFrf4rrfwJMtrClkfwWIM1.CiaerUSttMJg4S(UvK(ttrt4S(tUJgnCIra/rast*TCTIPStaGP1B,RS232各个仪器略微不同,可以查仪器手册看下。然后就是确认串口的通信参数的配置,包括波特率、数据长度、校验方法等,有些仪器的某些参数是固定的,比如校验方法固定为奇校验,不能修改,只能在电脑上跟仪器设置为一样的。波特率一般是可以修改的。这些参数的配置确定要依据仪器手册上的来设置.假如参数设置不正确,也能收到一些数据,但一般是乱码,假如收到的数据都是乱码的话,就要先检查一下串口参数设置是否正确了。只仃电脑和仪器边的串口参数完全样
11、时才能收到正确的数据。接着是要留意发送指令和读回数据之间要有确定的延时,即VISAWRITE和VISAREAD之间要有确定的延时,般200考秒即可,因为串口是底层硬件,数据从软件到串口上要一点点时间,然后仪器对指令作出响应也要一点点时间,这些时间加起来确定比软件运行二个节点的时间要短,所以延时是确定要加的。在调试时假如发觉正常运行时不能收到数据,但高亮运行就能收到数据,就很有可能是没有加延时的缘由!或者是发一个查询指令,但返回的是上一条查询指令的结果,也可能是因为没有延时或延时不够。5.2 被动接收类型被动接收形的串口通信略微麻烦一点山干上位机是被动接收的,上位机不知道什么时候起先下位机就已经
12、有数据上来了,很布可能下便机发送到一半时,上位机刚好起先接也数据.这时只能接收到后面半的数据了,所以对于这种通信,殷是采纳数据帧的方式进行通除这种数据物的通信方式至少由三部分数据组成;帧头、数据、物尾(假如数据是固定长度的话,好像帧尾也可以省掉)。帕头是为了告知上位机:从这以后的数据就是有用的数据了,相当于约定好的暗号,一殷帕头至少用二个以上字忙假如只用一个字节的话,万一数据中的数据跟这个帧头一样了就会误以为这个数擀是帧头从而导致解析数据出招.怵尾的作用也差不多,告知上位机从这之前的数据才是有用的数据.但事实上一般的数据帧远不止这几个部分,还会加上一些校验字节、时间信息、帧计数器之类的东东在上
13、面.其中校验字节是为了检查数据在传输过程中有没有出错的,跟序11的校验位要区分清断,校验位也是检ft数据传输时有没有出1错的,但由底层硬件来实现,校验方法由标准规定好,但有几种可以选择,只有一个位(Bi,只能是O或I)。校脸字节是由软件层来实现的,至少有一个字节(Byle.有8个位),而且校验方式由用户定义,特别敏捷.由于被动方式中卡口的慑冲区中始终会有数据在,为了保持数据的连续性,在读取数据时跟第一种仅零限制类型不一样.而是实行将读取的全部的小11数据都保存在移位寄存着中.在软件上处理完这些数据后再将它们从移位寄存器中删除.他于VISAREAD的输出是字符串.所以一般运用连接字符串”这个函数将它勺连接起来.然后接到循环结构中的移位寄存器中进行保存,当移位寄存器中的数据及达到确定时或满窗数据处理的条件时,才停止这个循环输出读取到的数据.一股如卜图所示:图5被动接收类型中的数据接收在接收下位机发送的帧数据时,确定要先了解帧格式,这样才能正确解析出帧里面的数据来.下面以例子来说明数楙帧格式的通信.设定通信数据帧每7个字节为一帧数据.其中以OXAC、0x96二个字节作为数据帧头,第三、四个帧头为帧计数器,最大值为OXFFFF到达城大位后曳新从0起先计数.第4、5、6三个字节是数据信息,