多个下位单片机与上位机pc通过串口通信的实现

多个下位单片机与上位机pc通过串口通信的实现,第1张

如果是一个单片机具有多个串口,那么中断和地址是不同的,通信程序中更改下地址和中断就好了

如果单片机只有一个串口,那就要更改硬件电路了,串口是1对1的,不支持1对多

422和485可以支持1对多

给每一个下位机编写一个不同的地址码,放入一个寄存器中,每次上传给上位机数据的时候,把地址码包含在数据包中,收到有效数据后,就可以根据地址码确认了,相当于身份ID

如果不想在程序中修改,也可以通过拨码开关,在外部拨到地址位,每次上电后,通过读取拨码开关的值来确定自己的身份ID

上位机向下位机发送数据的时候,如果是向单个发送的,就在数据包增加要发送下位机的地址码,如果是要向全部发送,就把地址码设为一特殊值,当作广播下发

这个要在上下位机通讯协议中明确出来

上位机和下位机分别是:

1、上位机:

上位机是指可以直接发出 *** 控命令的计算机,一般是PC/host computer/master computer/upper computer,屏幕上显示各种信号变化。

2、下位机:

下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机single chip microcomputer/slave computer/lower computer之类的。

扩展资料:

通常上位机和下位机通讯可以采用不同的通讯协议,可以有RS232的串口通讯或者采用RS485串行通讯。

当用计算机和PLC通讯的时候,不但可以采用传统的D形式的串行通讯,还可以采用更适合工业控制的双线的PROFIBUS-DP通讯。采用封装好的程序开发工具就可以实现PLC和上位机的通讯,可以自己编写驱动类的接口协议控制上位机和下位机的通讯。

参考资料来源:百度百科—上位机

参考资料来源:百度百科—下位机

使用SerialPort 类,基本实例代码如下,如果下位机自动上传数据的使用此类对象的DataReceived事件即可,你也可以在网上找此类的其他应用方法。

public class Read

{

SerialPort sp = new SerialPort();

public Read(string p_portname,string p_baudrate,string p_databits,string p_stopbits)

{

try

{

spPortName = p_portname;//端口号---“COM1”

spBaudRate = intParse(p_baudrate);//波特率--“38400”

spDataBits = intParse(p_databits);//数据位---“8”

spStopBits = (StopBits)intParse(p_stopbits);//停止位----“1”

spReadTimeout = 1000;

spOpen();

}

catch (Exception ex)

{

throw new Exception(exMessage);

}

}

//发送数据

public void WriteToComm(string p_data)

{

spWrite(p_data);

}

//读取数据

public string RecieveFromComm()

{

return spReadExisting();

}

//sp释放

public void CloseComm()

{

spClose();

}

}

因为你的问题太不明确,所以别人也不好回答,不知道你到底需要什么。如果你要让PC机能够与单片机联机调试,先从简单的说。

最简单的方法是单片加上一片MAX202或MAX232芯片,然后连用9针DB头与PC机的串行口连接,就可以编译下载了。当然单片机要选用可以与PC机串口连接的型号,我推荐SST89E516RD单片机,可以与Keil直接联机调试。STD单片机也可以与PC串口连接下载,但是不能Debug。所以还是SST好。凌阳61单片机也能与PC机联机调试,但用的是并行口,改USB比较困难,使用者好像不太多。

然后就是你提到的USB与单片机连接的问题了。

这首先PLC得有这个自诊断功能;然后信息需要存在PLC的存储区,且这个存储区外部可以访问;接着一般用该品牌的PLC自带的OPC Server软件,在PC上运行,连到PLC上,就可以读取了。

以上就是关于多个下位单片机与上位机pc通过串口通信的实现全部的内容,包括:多个下位单片机与上位机pc通过串口通信的实现、什么是上位机和下位机、c#如何通过串口接收下位机(单片机)中的数据即PC如何获取下位机中的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10118726.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存