计算机与单片机的串行通讯探究

更新时间:2024-01-15 作者:用户投稿原创标记本站原创 点赞:8560 浏览:33794

摘 要 :串口通讯在对计算机与单片机有着非常重要的作用,它不仅仅可以把单片机的主要数据传送至计算机里,同时也可以实现将计算机控制于单片机.对此,因为在这个过程当中所应用的电缆线较少,并且接线较为简单,因此,可以通过较远的距离进行传输,从而已经得到越来越多的广泛应用.对此,本文将进一步对串行通讯进行研究分析,探究二者的通信问题.

关 键 词 :计算机系统 单片机 串行通讯

目前,在计算机技术随着的不断发展,特别在单片机技术领域,已经有了很大程度的提高.由于在单片机的应用系统当中,一般都会遇到信息交换的问题,也就是通讯.而对于串行通信所指的就是必须要按照逐位的顺序进行传递数据,而进行的通信方式,它主要是通过由三根传输线进行传送信息,并且具有相对较远的通信距离,并对控制领域进行分布控制、现场监测等功能,因此有着非常重要的利用空间.一般在单片机和计算机二者相结合组成的系统中,通常单片机会对数字量以及模拟量进行采集, 所以就必须要以通讯的方式传送到计算机当中并发送数据,同时,在单片机和计算机之间的串行通讯也应取决于系统所具有的实时性以及可靠性等方面的具体要求,对此,在二者进行串行通讯时应全面进行控制并加以说明.

1.计算机控制的主要应用

在计算机的控制工艺系统当中,主要是应用在上、下位机的系统当中,而上位机主要是对数据进行管理与处理,而下位机主要是对数据进行采集.一般上位机主要是以通讯的方法与下位机做数据的处理以及交换的计算机,并应用于PC机.而下位机主要是相连于现场的信号,通常应用的是单片机.在上位机的应用程序中一般是以VB或者是VC的组态软件进行编写的,对于VB与VC的程序必须要由专业的技术人员进行编制,并且编制和调试的时间相对较长. 然而,组态软件的应用在很多领域都得到广泛的发展,在这其中所大量应用的组态王则是PC机控制的一项智能软件包,它的主要平台就是通过中文的操作系统,同时也应用了全面的Windows系统,因其具有完备的图形功能,并且界面的一致性较好,所以界面也通常比较直观,并且再与其它的软件相对照,其设计比较简单,对计算机没有过高的要求,比较适用于现场人员应用,操作简单,方便易学.在应用PC机进行开发系统要好过应用专项机开发,它的控制系统是具有一定的通用性的,从而可以降低重复性的软件开发工作,可以充分利用PC机的大量丰富资源再进行开发.通过应用单片机和组态软件的串行通讯,它在一定程度上大大提高了采集数据的速度,同时也降低了计算机再与其它设备之间接线的复杂性,并且也提高了数据可视性,在计算机上可以清楚的看到数据所发生的变化,具有更好的实时性.

2.组态王的主要定义

在组态王当中包括了内部变量以及I/O变量,而一般串行通讯主要是应用I/O变量,也就是所谓的新建变量.对组态王变量进行定义的时候必须要注意选择合理的变量范围,并且不能超出传输数据的规定标准,应严格选用准确的变量数据类型是非常重要的,必须要与单片机当中数据的类型保持一致,以达到接收数据的标准.

3.对于单片机在通讯程序上的设计

在对单片机设计通讯程序的时候, 应全面发挥出其主要的工作效率,一般单片机主要是应用在具有较强实时性的场合, 所以,必须要对做出响应以及可控制的对象摆在优先的位置考虑,从而可以降低串行通讯方面一系列的辅助性操作对CPU的占用时间, 同时也应降低通讯部分所占用的时间,在通过对上述问题的考虑后,因此,在对单片机设计通讯程序时, 可分为两大部分,也就是通讯的处理部分以及中断接收的发送部分.当单片机与计算机进行通讯时当收到命令以后会马上做出回应, 也就是把接收和发送同时在一个过程当中,所以会把通讯的处理程序通常放到了普通程序的当中,当接收标志显示为ON的时候,会马上反应做出处理并进行发送.

4.对于计算机在通讯程序上的设计

一般在Windows的环境下进行开发通信程序时, 通常会有两种方法:一种就是可以应用 Windows的API程序进行接口函数.而另一种方法就是应用ActiveX控件,第二种方法相对比较容易掌握,并且它也是全新的一项技术,移植性比较好, 并且可以多种程序下进行应用,从而是开发通讯程序很好的一个方法.而在应用MSCOMM的串行通讯做编程设计时, 主要面对的通讯控件只有一个, 也就等于是面对一个串行通讯的控制器, 再进行设置控件的各种属性从而改变不同状态的通讯端口, 再通过驱动完成通讯的接收与发送任务.


而在一般情况下,通讯控件主要是通过对API函数的调用从而达到串行通讯的.在Windows环境下的通讯函数通常是属于中断驱动的,也就是在串口进来的字符会马上对当前的程序进行中断, 方便接收从通讯端口传送字符,同时也会在缓冲区内供一个相应程序进行使用.而在发送字符时的方式与接收字符大致相符, 而Windows系统在应用程序当中获得的字符放在缓冲区时,如果准备好通讯端口便可以直接进行传送,而且速度很快,用户不易介入.

5.设计串行通信软件

在设计串行通信软件时必须要以系统的实时性以及稳定性为基础,再按照传输数据的具体流量从而设计通信协议.而作为通信协议必须要安排好速度以及可靠性等方面问题,然而,如果要快速稳定的进行数据传输就必须应要单片机、计算机和通信协议等方面的紧密配合.

在通信时为了提高抗干扰的能力以及可靠性,就必须要建立上、下位机的通信联系,可以先应用握手信号的方式对其进行测试,如果在下位机进行自检时发生错误,就会在回答上位机发出命令时传送错误.如果在通信时所间隔的时间过长,通信数据将会作废.

单片机在接收到计算机所发出的通讯要求时,就必须要对所接收的数据严格进行检查,如果正确无误后,便可以按照通讯地址把接收数据录入到相应的内存当中,否则计算机会发出错误的数据传送结果,就要进行重新传送.但是,如果在通讯传送时,其方向显示是读出数据,计算机就只能对单片机进行通讯要求了,而单片机在接到以后,就会从内存中读取数据发送到计算机中,而计算机再收到数据以后,也要对其进行检查,当检查正确无误后,再发送回答数据的接收信号,否则会出现数据传送错误,重新进行传送,而后,再由计算机和单片机分别发出结束的信号,也就是完整了一次数据的交换过程.此外,在进行发送与接收时,应限制数据的时间要求,而确定时间限制必须要以通讯的具体内容以及合理的余量进行确定.就比如在单片机在接收到信号以后同时做出呼叫回答时会比较简单,因此,在发出呼叫以后再等待回答时也不易时间过长.在验证串行通信的可靠性方面,其最主要的指标就在于对差错进行控制.一般在传递信息的过程当中,会因为软件和硬件的各种因素,在传送时会产生一定的错误,这也是在所难免的,所以,应用差错控制就会显得非常重要了.必须要对数据进行检查和修复在传输时的 错误,应引入一定的冗余信息,在通过对其进行比较数据当中的剩余信息从而发现错误,而这部分信息也就是需要检验的部分.在该系统中,主要就是通过校验的方法检测串行通讯当中的错误,同时也是一种纠错的手段.

6.在调试过程当中存在的问题

对通讯进行调试过程当中,由于对组态王在采集频率时不能过小,一旦过小就会发生数据丢失的问题,但是也不能太大,如果太大时而数据的实时性就会很差,因此,一般采集的周期应在200--350ms刚好.在对单片机的程序进行调试时一般会发现,当只有一个下位机的时候,就不必对其判断设备的具体地址,而当数据数量一般情况下,便可由设备的地址从而替代数据的地址进行对下位机采集数据,这样才可以采集到准确的数据值.

7.结语

综上所述,根据计算机和单片机所控制的串行通讯应用的基本原理, 制定出出通讯的流程以及通讯的协议, 并得到了合理的应用.由于通常的控制系统在数据传输速度以及传输量方面的要求并不高,所以就比较适合应用于串行通讯.而计算机再与单片机的串行通讯中,必须要注意到在数据通讯当中的重要环节,技术要点以及对实现思路的详细叙述,从而实现在计算机和单片机二者之间的串行通信.