在VC++6.0环境下实现汽车点火线圈测试台的串口通信
1 引言
点火线圈是汽车点火系统的核心部件,对整个点火系统的工作性能甚至是整个机车的工作性能都有着重要影响。因此采用先进的测试技术对点火线圈进行测试,是我们非常关注的问题。本系统采用vc++的编程平台很好的解决了对点火线圈系统产生的被测信号的采集问题。
整个平台以pc机作为上位机,测试点火线圈性能和各项参数所必需的点火电压源和控制点火时间的信号源均是程控的。电压源和信号源的参数均由用户输入给计算机,由计算机通过串口通信的方式发送给单片机。利用数据采集卡从现场采集初级、次级线圈的电压和电流。采集卡通过isa槽与pc机相连,系统框图如图1所示。本测试台的功能强大,可以测试双头、四头、六头等多种类型的汽车点火线圈,并且线圈带不带模块都可以进行测试。pc机通过操作同样连在总线上的io接口板来实现不同的逻辑组合以选择测量参数。在上述过程中,pc机与单片机的通讯可以采用基于vc++的串口通信方式来实现。
图1 系统框图
利用vc++实现串口通信的方法有多种,如:利用windows api提供的一系列标准串口通信函数、利用mscommactivex控件等。我们可以直接调用window api中的一系列标准的串口通信函数,直接用这些标准函数来完成windows下面的串口通信编程。我们也可以利用在vc++系统下提供了串口通信功能完备的activex控件即mscomm控件(microsoft communication control俗称电话盒)它使我们比较容易的写出所需要的串口通信技术,下面就这两种方法分别结合在汽车点火系统测试这一实例进行具体分析。
2 利用windowsapi函数控制
利用api函数实现对rs232串口通信的访问,在实现控制通信中,我们必定要调动3个函数来实现对串口的控制:
creatfile()函数实现串口初始化并打开串口;
readfile()函数接收串口传递过来的二进制流并返回数据到接收缓冲区中
writefile()把应用程序发出的指令送到发送缓冲区以供串口接收
2.1 打开串口
以下程序用于以同步方式打开串口com1;
handle hcom;
dword dwerror
hcomm=createfile(“com1”,generic_read|generic_write,0,null,open_existing, 0, null);
if (hcomm==(handle)0xffff)
{dwerror=getlasterror();
messagebox(dwerror);
}
2.2 配置串口
配置串口是通过改变设备控制块dcb(device control block)的成员变量值来实现的,程序实现如下:
dcb dcb
dcb.baudrate=1200; //波特率为1200bps
dcb.bytesize=8; //数据位8位
相关文章
- 2022-06-02PLC在桥式起重机中的应用
- 2023-02-22电子汽车衡检定问题的分析与研究
- 2023-05-06E+H雷达液位计在化工储罐的应用
- 2023-12-01游标卡尺量爪快速修复一例
- 2024-01-24N型热电偶的特点及二次显示仪表的改制
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。