请各位高手赐教:单片机和计算机的通信?(100分)

  • 主题发起人 主题发起人 zsb2000
  • 开始时间 开始时间
Z

zsb2000

Unregistered / Unconfirmed
GUEST, unregistred user!
我要做的系统是:单片机把采集到的数据传到数传电台,数传电台再传到主机。而
单片机有很多,主机只有一个。我对DELPHI有一些了解,但不是很深。现在不知道怎
么实现通信,怎么配通信协议。有没有原代码,越详细越好,一定重谢!
 
通过串口
使用控件,比如mscomm,spcomm,等,很好控制的
 
单片机与计算机一般是通过串口通信(USB也可)。其它我们的打印机、鼠标、扫描仪
等等都是单片机与计算机通信例子。通过研究它们的驱动程序和原理,你可以了解到一些
方法。
串口和USB都支持连接多个设备。
 
不好意思:“其实”写成了“其它”。
另外比较专业办法是购买数据采集卡,可满足特殊要求。
 
用spcomm 控件
 
我也听说过用spcomm但具体怎么用,我还是不知道,还有怎么编通信协议,怎么区分那么多
单片机哪?有没有原代码,急用!谢谢了!
 
采用串行通信,单片机到数传电台数传电台类似应该是类似于到modem,单片机上一般都带有
串行通信口,配合232或485驱动芯片就可以实现串行通信,485支持多设备长距离通信(256个
设备,1200米).不过实际232也能实现多设备通信,在数据包头部包含设备ID号,如果有返回
数据也包含目标设备的ID,每个设备都能接受到返回数据,只有相应ID的设备处理数据,建议
采用计算机轮询的方式采集数据,这样不会有通讯冲突问题.
计算机一方如采用232就直接使用delphi+spcomm控件或mscomm(VB中有),只要在控件中配
和电台一样波特率位数就行了.使用comm控件与使用stream差不多,主要是发送和接受.
不过采用串口你要自己进行差错校验.如CRC校验,要有出错重传处理.
 
那通信协议要自己配吗?还有关于spcomm控件怎么用,在什么地方可以查到它的资料?DELPHI
的帮助里有吗?怎么实现定时采集数据?
 
简单的办法,可采用查询方式,计算机作上位机,单片机按一定的顺序编号,由计算机发出控制
吗和数据吗,单片机接收,控制吗包含顺序编号,单片机接收后若顺序号一致,则应答.通讯采
用应答方式.设计好数据头尾长度校验等即可.计算机上可用spcomm等控件,在极度历险上有
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=541941
 
关键还是通信协议,有没有这方面的原代码?GODDY说的那里我已经下载了,要好好看看
再说.主要是我还是菜鸟,希望大家多给点具体的帮助。
 
告诉EMail,spcomm控件的使用例子我给你发过去。
我刚写了个dll,用于计算机与单片机之间的通信,通讯协议全部封装在库里。
你准备这样做吗?
 
我靠,我97年毕业的时候毕业设计就做这个,都四年了,你们还作呀,呵呵~~~
 
浪边人:我的信箱是z-s-b@263.net赶快给我发吧!对,我也想那么做。
惊工之鸟:这也是我的毕业设计,实际上就是卖苦力了!
 
做毕业设计呵,通信协议还是自己做的好,很锻炼人的。
可以参考一些好的协议系统。
 
我想您求教一个问题:我在用delphi编写串口程序时,使用的是Pcomm链接库,但在接受对方给我发的16进制字节时,受到的是一些奇怪的字符。比如,对方发51 01 7d ff,我收到的却是'Q'#1'}'?,请问我怎样才能将这些字符转化为我需要的16进制字节呢?请告诉我,谢谢!
 

Similar threads

后退
顶部