通信程序设计上位机通信程序设计对于DOS系统,应用程序可以通过对端口的直接访问,并结合中断的使用来完成串口通信;而在Windows系统下,不允许直接访问端口(Windows9x除外),也没有中断的概念,应用程序必须使用系统提供的API函数来完成对串口的各种操作,要高效地实现串口通信,还要运用到线程。我们先简述Win-dows的串口通信机制,再结合线程的使用,说明在我们的系统中串口通信的实现过程。串口在Windows中被定义为一种通信资源,即一种物理或逻辑的设备,也可以看做为一种特殊的文件,因而可以用文件操作函数来访问它,如CreateFile、ReadFile等。要实现串口通信,应用程序要完成以下的任务:(1)为指定的通信资源打开一个句柄应用程序调用CreateFile打开一个串行通信资源句柄,在调用时要指定的参数有:设备名(如COM1、COM2),是否用重叠方式(overlapped,也称为异步方式)来访问设备等。 (2)设置和查询串行通信资源的配置打开一个串行通信资源句柄后,应用程序可调用GetCommState来得到串行通信资源的初始配置,并通过结构DCB(devicecontrolblock)来返回。DCB结构的成员包括串行通信的波特率、数据位,停位和校验方式等,要修改这些参数,可以调用SetCommState函数来完成。 (3)对串行通信资源进行读写操作对串口的读写可以调用ReadFile和WriteFile来实现,读写操作可以是同步的,也可以是异步的,这根据设备打开的方式决定。异步方式可以使调用线程在读写操作没有结束时能够同时处理别的任务,读串口和写串口函数的主要代码监视串行通信事件,并进行相应的处理应用程序可以监视一系列的串行通信事件,比如CTS信号的状态改变。设定要监视的事件可调用SetComm-Mask,要得到当前的监视事件则执行GetComm-Mask,通常的事件值有:EV_CTS、EV_DST、EV_ERR和EV_RXCHAR等。监视事件指定后,可以调用WaitCommEvent来等待指定事件的发生,并做处理。 下位机通信程序设计下位机通信程序包括对下位机的串行口进行初始化,以及发送数据和接收数据等。当DSP收到的地址为31h,则由DSP发送数据给计算机,若DSP收到的地址为32h时,则置SLEEP位为0,等待接收数据。DSP的接收和发送功能模块均放在其接收中断服务程序里完成。以下给出以DSP汇编语言编写的下位机通信部分的部分程序代码。 变频调速可视化开发系统所示是作者在串行通信程序基础上开发的变频调速可视化开发系统的界面。该软件主要作的任务是:读取来自变频器的数据,处理这些数据,如:以图形的方式直观的显示于计算机屏幕,查看这些数据,检查这些数据是否是在报警限以内,决定是否发出报警,将这些数据保存于存贮介质,供以后分析使用;向变频器发出指令,如:启动或停机或急停机、反转正转、打开或关闭主电源、设置频率大小等。 结语作者通过应用API函数,结合VC 6.0的可视化开发环境以及多线程技术,完整地编写、调试并通过了微机与以DSP为核心的变频调速系统之间的串行通信程序,方便地实现了对系统的控制与监视,整个系统性能稳定、运行良好、监控方便,具有很大的实用性。声明:本文为转载类文章,如涉及版权问题,请及时联系我们删除(QQ: 229085487),不便之处,敬请谅解!