新闻中心

EEPW首页>嵌入式系统>设计应用> 一种基于RS-485接口的通信方法

一种基于RS-485接口的通信方法

作者: 时间:2012-06-19 来源:网络 收藏

  发送电流或电压数据时,为i(0≦i≦47)开始的8组采集数据,每组数据为4个字节。

  采集通道启用或禁用设置时,为6个字节,分别表示48路采集通道的状态,其中1表示启用,0表示禁用。

  在广播方式时(地址为256),为电流和电压的上、下限数据共8个字节。

  *响应帧:通过校验后,将接受帧中的命令代码改写为V,回送给主节点进行二次确认,保证数据传送无误。

3软件流程和程序清单

  为保证通信畅通和从节点的本地事务顺利执行,设计了限时退出的通信方法,既在收到与自己地址不匹配的数据帧时,临时关闭通信口。这样既保证了本地事务的执行时间,又可避免从节点常在网上可能引起的双向干扰。因此在上、下位机的软件设计中采用二次检错、重发和限时退出并重新握手建立连接等通信机制。现场调试中发现,在某些节点工作异常,甚至通信网络完全瘫痪的情况下其他各节点也能独立完成数据采集、异常报警和实时数据存储等本地事务。一旦故障节点排除,既可恢复通信。

  *软件流程如下:

  *软件实现和主要程序清单:

  在处理器内留出以COM_REG为首地址的寄存器组,用来存放接受或发送的一帧数据包,并以COM_REG_CUNT寄存器作为一帧数据长度的计数器,利用循环结构很容易编制一帧数据包的收发通用程序了。

  TRANS_485:;收发通用程序

  BCFRC,R485_P;开启485通信口。

  _DELAYD‘3‘

  MOVLWCOM_REG

  MOVWFFSR

  MOVLWCOM_REG_CUNT

  MOVWFCOUNT

  CALLRS_HEX_IN;一个字节收发子程序。

  BTFSCSYS_FLAGE,CONMM_ERR;通信错误状态标准位。

  RETURN

  MOVWFINDF

  INCFFSR

  DECFSZCOUNT

  GOTO$-6

  RETURN

  *其他主要子程序:

  XIAO_SUB;校验和子程序

  CLRFTEMP

  MOVFINDF,W

  ADDWFTEMP

  INCFFSR

  DECFSZCOM_REG_CUNT

  GOTO$-4

  RETURN

  ASCH;ASIIC码转化程序

  MOVWFTEMP

  MOVLWD‘48‘

  SUBWFTEMP,W

  BTFSSSTATUS,C

  RETLW0H

  MOVLWD‘71‘

  SUBWFTEMP,W

  BTFSCSTATUS,C



评论


相关推荐

技术专区

关闭