我的机器地串口与单片机通过RS_232相连.现在因为我是用一个串口监测单片机,本来我是想串口与单片机之间建立发下的通信协议:
           编码(8位)
     --------------->
   单       ‘1’      后
     <---------------
   片                 台
          命令码(1位)            
     ---------------->监
   机    信息(多个字节)             
    <-----------------测
           '9'/8       
    ----------------->  可是串口之间只要是连接的就是通的,我应该怎么样来定义通信协议,才可以实现后台监测与单片机之间通信时连接是唯一的。  也就是当一个单片机正在通信时,另外的单片机再有信息上来时,不互相干扰???  我也就是想一个单片机与后台建立一个通信线程,当通信结束时结束线程。。
  我应该怎么办呀
  现在我是用spcomm控件来实现通信的。》》》

解决方案 »

  1.   

    再加个地址码,每个单片机有一个唯一的编号,在通信协议中加入地址码项目,当后台机要读取某个单片机的数据时,必须输入单片机的地址,对应地址的单片机收到数据后才响应后台机
      

  2.   

    地址码是什么意思,应该怎么加??
    我现在是给每个单片机一个编码,可是因为我是一个串口并了多个单片机。所以才有点问题我觉得按我上面的协议好像是不行的。。
    当单片机传过来数据时,就报自己的编码,可是当单片机再报命令码时我又不知道是那个单片机了。。
      

  3.   

    就是给单片机分一个编码,每个单片机的这个编码不同,唯一的确定一个单片机。
    如果同时并了多个单片机,不知您是怎么接线的,一般情况下用 232 的方式是不可能直接并多个对象的,您需要用 485 转换器,把232转成485再进行多单元通信每一帧数据中都应加上这个唯一的地址编码,这样来确定是哪个单片机
      

  4.   

    就是你给每一台单片机分配一个机器号码 而后台扫描为一个特殊的号码 在每一个协议中定义一个字节表示发送方和接收方就可以了