cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1126|回复: 7

关于多线程求助?

[复制链接]
发表于 2008-9-22 11:35:03 | 显示全部楼层 |阅读模式
我的程序是这样的:计算机通过串口给单片机发指令,使单片机产生脉冲以控制步进电机运行,同时通过以太网从某一仪器读取数据。在程序中使用了一个timer控件,以实现这样的功能:比如给单片机发5个脉冲,当电机运行完5个脉冲后计算机开始从以太网读取数据,读完后开始下一个循环。
目前存在的问题:当定时器的时间间隔设置为5个脉冲的时间,则数据还没有读完就触发下一个循环;要保证timer回调函数执行完再触发下一个循环,定时器的时间间隔设置应大于5个脉冲的时间,则电机的运行就不连续。
为了解决这个矛盾,想采用多线程来解决,但不清楚如何利用多线程,请各位高手给出建议,在此多谢了!
发表于 2008-9-22 12:54:00 | 显示全部楼层
你需要处理的问题可能比你设想的要多!
1、CVI中默认的定时器的定时精度只能达到1ms,而电机运行5个脉冲的时间是多少?
2、从以太网读数据的时间是多长?如果时间长了,电机难道就停在那里?
3、通过串口发送数据,你还得考虑串口传送时间和波特率的问题,他们是否满足定时要求?
4、建议你多看一点多线程的例子,对你要用到的技术有一个全面的认识,再动手去做。
 楼主| 发表于 2008-9-23 08:49:45 | 显示全部楼层
十分感谢!
1 若脉冲频率为1000Hz,则电机运行5个脉冲的时间就为5ms,定时器的精度可以达到要求。
2 在运行过程中,电机确实有停顿的现象。
3 串口的波特率为9600,应该可以达到要求,因为每次只发送4个16进制数。
对于多线程,我看了一些资料,还是不太清楚具体怎么做,希望版主能给我一些思路或这方面的资料。谢谢了。
发表于 2008-9-23 09:01:04 | 显示全部楼层
1、运行中电机出现停顿,说明你的方案有待商榷!
2、能否说一下你的串口通信帧的格式具体设置?
 楼主| 发表于 2008-9-23 14:47:04 | 显示全部楼层
波特率9600,无检验,8个数据位,一个停止位,最大输入输出队列为256

需要说明的是,单独控制电机运行程序没有问题,用示波器测过了;加上从以太网读数据就出现上述问题。
发表于 2008-9-23 17:33:29 | 显示全部楼层
我想问你的串口通讯帧的格式:比如帧头、帧尾、帧类型(如果有的话)、校验和、数据域的长度(占几个字节)的情况,以此来判断一下9600的通讯速率是否合乎要求。
 楼主| 发表于 2008-9-24 09:04:12 | 显示全部楼层
不好意思,我对串口通讯不熟悉,程序这样的:每个循环向单片机发送的16进制数,具体为0aaa1005,其中0a为握手信号,aa为电机运行方向,10为脉冲数,05是子延时程序里的一个数,可以控制脉冲频率,当运行完10个脉冲后,单片机向上位机发送一个16进制数88H。见笑了。请版主帮忙看看。
发表于 2008-9-24 10:17:02 | 显示全部楼层
RS232串口通讯在底层只能传输字符型变量,CVI中的读和写端口的函数原形为:
int ComRd (int portNumber, char buffer[], int count);
int ComWrt (int portNumber, char buffer[], int count);
在串口通讯中,为了保证通讯的质量,首要的事是设计上层通讯协议。包括双方怎样握手,多帧通讯时,怎样鉴别不同帧,发生传输错误怎样处理等。
具体起来,就是通讯帧的设计。一般通讯帧格式包括:
[帧头+帧类型+数据长度+数据域+校验和+帧尾]。
就你的情况来看,通讯帧的设计还存在一些缺陷,比如说,如果串口传输中发生了错误:发送的0aaa1005,变成了0aaa1006。该如何避免?
另外,在9600传输率,8个数据位,1个停止位的设置下,传输0aaa1005这八个字符,在线路上的延时就将近8ms,还不算Windows系统的延时,这种情况是否能满足电机驱动时间的要求呢?
所以,你还要多方面考虑一下,以做出相应调整。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-21 18:30 , Processed in 0.419171 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表